Repository & Workflow
Guardrails
- Monorepo managed by pnpm workspaces + Turborepo
- Layout:
repo-root/
apps/ # Deployable apps (frontend, backend, workers)
web/
api/
packages/ # Shared libraries (ui, utils, config, logging)
infra/ # Terraform, deployment config
docs/ # Docusaurus site, ADRs, RFCs
.github/ # Actions workflows
turbo.json
pnpm-workspace.yaml
- GitHub Flow (shortβlived branches β PR β main). Merge strategy: merge commits. 1 review required. Selfβapprove allowed. No PR size/SLA limits.
- Conventional Commits naming is expected. (Commitlint is 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, not squash/rebase, in instructions or examples.
Reference configs
packages:
- 'apps/*'
- 'packages/*'
- 'docs'
- 'infra'
{
"$schema": "https://turbo.build/schema.json",
"pipeline": {
"lint": { "outputs": [] },
"typecheck": { "outputs": [] },
"build": { "dependsOn": ["^build"], "outputs": ["dist/**", ".next/**"] },
"test": { "outputs": ["coverage/**"] }
}
}
{
"name": "repo",
"private": true,
"packageManager": "pnpm@9",
"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'"
}
}
# Example: require reviews from owners by path
/apps/web/ @frontend-leads
/apps/api/ @backend-leads
/packages/ui/ @design-systems
/docs/adr/ @architecture-guild