Repository structure
Keep public and operational surfaces consistent without forcing unsuitable source layouts.
Use the selected repository profile as the structural contract. A repository can add product-owned folders when the architecture requires them.
Required root files
README.md
AGENTS.md
CLAUDE.md
MAINTAINING.md
CONTRIBUTING.md
SECURITY.md
LICENSE
CHANGELOG.md
package.json
pnpm-lock.yaml
pnpm-workspace.yaml
.github/
docs/A deployed app can omit CHANGELOG.md when it does not make versioned
releases. A library must include it.
File ownership
README.mdserves package users and repository visitors.AGENTS.mdrecords architecture, invariants, verification, and prohibited actions.MAINTAINING.mdrecords quick fixes, large changes, dependency updates, documentation changes, releases, rollbacks, and incidents.CONTRIBUTING.mddefines contributor scope and pull request requirements.SECURITY.mdgives the private vulnerability-reporting path.CLAUDE.mdpoints toAGENTS.md. It does not copy policy.docs/WRITING.mddefines the repository's public writing terms.
Library layout
A single-package library keeps its package at the root. A package monorepo
keeps published packages in packages/. Both keep the deployable documentation
app in docs/.
Do not put the documentation app in apps/docs in one repository and docs
in another. The Vercel Root Directory is always docs/ for the standard
profiles.
Local independence
The handbook is the fleet-wide source of truth. A repository still includes the exact commands and constraints needed to operate it. A maintainer must not need this site to identify the package list or run the release checks.