Repository & Workflow
Guardrails
- Monorepo managed by
pnpmworkspaces + Turborepo - Layout:
repo-root/
apps/
web/
api/
packages/
infra/
docs/
.github/
turbo.json
pnpm-workspace.yaml
- GitHub Flow (short‑lived branches → PR → main). Merge strategy: merge commits. 1 review required. Self‑approve allowed.
- Conventional Commits naming is expected (not enforced).
LLM Notes
- Generate new code under
apps/(deployables) orpackages/(shared libs). Do not introduce new top‑level folders without an ADR. - Use merge commits in examples, not squash/rebase.
Reference Configs
pnpm-workspace.yaml packages:
packages:
- 'apps/*'
- 'packages/*'
- 'docs'
- 'infra'
Turbo pipeline:
{
"$schema": "https://turbo.build/schema.json",
"pipeline": {
"lint": { "outputs": [] },
"typecheck": { "outputs": [] },
"build": { "dependsOn": ["^build"], "outputs": ["dist/**", ".next/**"] },
"test": { "outputs": ["coverage/**"] }
}
}
Root package.json scripts:
{
"scripts": {
"setup": "pnpm -w i && pnpm -w build:infra && pnpm -w docs:build",
"dev": "turbo run dev --parallel",
"build": "turbo run build",
"lint": "turbo run lint",
"typecheck": "turbo run typecheck",
"test": "turbo run test -- --coverage",
"format": "prettier -w .",
"docs:build": "docusaurus build",
"docs:serve": "docusaurus start",
"build:infra": "echo 'terraform fmt -recursive' && echo 'terraform init -backend=false'"
}
}
CODEOWNERS example:
/apps/web/ @frontend-leads
/apps/api/ @backend-leads
/packages/ui/ @design-systems
/docs/adr/ @architecture-guild