Loading…
How code lands.
main is production (currently monorepo is the active integration branch — will rename to
main after first prod cutover).main: feature/<short-description>, fix/<short-description>,
chore/<short-description>.slice-3-workspace-carve.<subject — imperative mood, <72 chars>>
<wrap body at 80 chars. Explain why, not what — the diff shows what.
Reference the PR / issue. Document any decisions or trade-offs taken.>
Co-Authored-By: ...
Slice 3 Phase A: …. Makes the history readable.## What
One paragraph: the user-visible change.
## Why
The motivation — what was broken or what's being unlocked.
## How
Brief overview of the approach. Call out any non-obvious choices.
## Testing
- [ ] `pnpm run type:check` clean
- [ ] `pnpm --filter @matters/workspace type:check` clean
- [ ] `pnpm --filter @matters/webdocs type:check` clean
- [ ] Manual smoke test (describe).
- [ ] Updated docs in `apps/webdocs/` if the change is user-visible.
## Risk
What could go wrong? How would we know? What's the rollback?
main (currently lighter — bring in a second reviewer for
anything touching auth, RBAC, money, or PII).apps/webdocs/?.github/workflows/ci.yml runs on every push and PR:
continue-on-error: true).Merging without green CI is allowed today but discouraged. The lint gate will go to
continue-on-error: false once the existing lint debt is paid down — track in
PROD_CHECKLIST.md § 4.
If you make a non-obvious choice (e.g. "we picked Fumadocs over Nextra because X"), put it either:
apps/webdocs/ page if it affects future contributors.Open a PR but tag @security and wait for explicit approval before merging:
packages/auth/src/email-allowlist.ts.lib/auth/rbac-shared.ts (roles, permissions)./api/webhooks/* routes.proxy.ts (either root or workspace).process.env.* reads (route them through env).Ask. The 30-second Slack message is cheaper than a bad merge.