Repository navigation
docs(governance): add contributor onboarding process (#1565) - #1744
Merged
RUKAYAT-CODER merged 1 commit intoSep 30, 2026
Merged
RUKAYAT-CODER merged 1 commit into
RUKAYAT-CODER merged 1 commit into
Conversation
Adds Governance/processes/ONBOARDING.md covering who owns onboarding, the phased onboarding steps, and the resources a new contributor receives. Documents regression tests as not applicable, with justification: the change is Markdown-only inside Governance/, which is outside the Jest root and the TypeScript build, and excluded from container images. Links the new process from the Governance README index and adds a change-log entry. Closes rinafcode#1565
|
@MerlinTheWhiz Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
Contributor
|
Thank you for contributing to the project. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Description
docs(governance): add contributor onboarding process
closes #1565
Summary
Adds
Governance/processes/ONBOARDING.md, closing a governance gap: theGovernance/folder documented the offboarding half of the contributorlifecycle but had no onboarding counterpart, so contributors and maintainers
lacked a versioned reference for how a new contributor is brought into the
project.
The new document defines who owns onboarding, the phased onboarding
steps, and the resources a new contributor receives, and records why
regression tests are not applicable to this change. It is linked from the
GovernanceREADME process index alongside the existing offboarding entry.Background
Governance/processes/OFFBOARDING.mddefines access revocation and knowledgehandover for a departing contributor, but nothing defines the entry path. The
consequences:
and quality gates needed to open a first pull request.
rather than surfacing as an escalation.
Governance/README.mdalready advertises an "onboarding/offboardinglifecycle" under Roles & membership, but the Processes index linked only the
offboarding document — the promise was not kept.
Related existing documents this deliberately does not duplicate:
CONTRIBUTING.md(authoritative for branch strategy, commits, PR requirements,review SLA, and CI),
policies/FIRST_TIME_CONTRIBUTOR.md(support andmentorship expectations), and
roles/CONTRIBUTOR.md(the role reached by amerged PR).
What the document covers
CONTRIBUTING.md§1–3/§8, Code of Conduct, communication norms, enable 2FA, claim a reserved issue) → 1 local environment (prerequisites,npm ci,.envfrom.env.example, PostgreSQL/Redis, migrations, four quality gates) → 2 first contribution (branch fromdevelop, Conventional Commits, PR requirements, testing standards) → 3 after the first merge (contributor status, recognition, promotion is separate and never automatic).CONTRIBUTING.md,docs/setup.md,.env.example,docs/testing-standards.md,openapi-spec.json,docs/api/, README architecture sections,docs/RUNBOOKS.md,docs/troubleshooting.md, CODEOWNERS as documented in §9, and seven governance documents. States explicitly that onboarding grants no additional access or credentials.Governance/, ≤2 files), substantive changes underASYNC_DECISIONS, recording inDECISION_LOG.md, plus a1.0.0 · 2026-09-30change-log row.Also included: §1 Purpose, §2 Scope (with explicit exclusions for privileged
and production access, deferred to
domains/ACCESS_CONTROL.md§3), §6Expected Timelines (labelled community norms, not SLAs), §9 Related Documents.
Regression tests
Not applicable — documentation-only change. The PR adds Markdown and
modifies no TypeScript, configuration, schema, or dependency.
Governance/isoutside the Jest root (
jest.config.jssetsrootDir: 'src'), outside theTypeScript build (
tsconfig.build.jsonincludessrc/**/*), and excluded fromcontainer images by the
*.mdrule in.dockerignore.No test asserting on the prose of a process document was added: such a test
would have no value and would become maintenance debt. No other document in
Governance/has one either. What must hold is that the existing suites keeppassing, which is verified below.
Verification performed
Static checks on the new document
filesystem — 0 missing.
CONTRIBUTING.mdsection references (§1, §2, §3, §5, §7, §8, §9,§10, §11, §13) were checked against the current file and the titles match.
package.jsonscripts.CONTRIBUTING.md§5 — identical.Quality gates (run against the branch, exit code 0)
npm run format:checknpm run typechecknpm run lint:ciTest suite — no regression
npx jestwas run on this branch and on a pristineHEADcheckout in the sameenvironment, and the set of failing suites is byte-identical between the
two. No suite fails on this branch that did not already fail at
HEAD.Two caveats a reviewer should know:
suites fail on both
HEADand this branch, with errors such asSyntaxError: Unexpected token 'export'fromjwks-rsa. The total varies byone suite between runs, which indicates pre-existing flakiness.
npm cifails(
Missing: multer@2.1.1 from lock file) andpnpm install --frozen-lockfilefails (overridesconfig mismatch). Gateswere therefore run in a throwaway copy outside the working tree, installed
with
--no-frozen-lockfile. That forced a different transitive dependencyresolution (notably
jwks-rsa3.x → 4.0.1, an ESM-only release) which is thelikely cause of the failures above. CI, which installs the intended
dependency tree, may well be green where this environment is not.
Neither lockfile was modified, since doing so would breach the two-file scope.
Acceptance criteria
Governance/processes/ONBOARDING.mdcreated with steps, resources, and ownership defined.git show --stat: 2 files, 287 insertions, 0 deletions).Governancefolder — both paths are underGovernance/.HEAD; no.tsfile touched.format:check,typecheck,lint:ciall exit 0.GovernanceREADME change-log table.Files changed
Governance/processes/ONBOARDING.md(new — 283 lines)Governance/README.md(modified — +4 lines: process index entry and change-log row)The
Governance/README.mddiff is purely additive (4 insertions, 0 deletions),and the new document is Prettier-clean so the commit hook will not rewrite it.
Breaking API changes
None. Documentation only; no runtime, schema, or interface change.
Observations for maintainers (not addressed here)
Found while following the contribution process. Each would breach the
two-file scope, so they are raised rather than fixed:
developbranch.CONTRIBUTING.md§3 says all non-hotfixPRs target
develop, but onlymainexists locally and on origin, and allrecent governance PRs were merged into
main. This PR therefore targetsmain.package.json—npm ciandpnpm install --frozen-lockfileboth fail out of the box.governanceis not a documented commit scope.CONTRIBUTING.md§7 listsmodule names only, yet roughly 15 recent commits use
docs(governance): ….commitlintis not enforced.commitlint.config.cjsexists but there isno
.huskydirectory and nocommit-msghook, andlint-staged.config.jsruns only Prettier and ESLint. The §7 rules are currently self-enforced.
CONTRIBUTING.md§3 specifies
<prefix>/issue-<N>-<slug>, but recent branches usedocs/1584-meeting-cadence,governance/add-credits-policy, and similar.This PR follows the documented form.
Checklist
#1565,Closes #1565in the commit message)CONTRIBUTING.md§3 —chore/issue-1565-contributor-onboardingCONTRIBUTING.md§7 —docs(governance): …, 60 chars, imperative, issue number in parenthesesCONTRIBUTING.md§4 and §9)