Contributing to Repospec
Thank you for helping build Repospec. This project aims to become a standard, so the way we work is deliberate. Please read this before opening your first PR.
Two tracks of change
| You are changing… | Process |
|---|---|
| Code (CLI, engine, templates, adapters, docs, tests) | Pull Request |
The protocol itself (the .repospec/ format or its meaning) | RFC first — see spec/rfcs/0000-template.md and docs/governance.md |
Protocol changes are heavier on purpose: third parties depend on the format's stability.
Prerequisites
- Node.js (see
.nvmrc) - pnpm 10+ (
corepack enablewill provide it)
Setup
bash
pnpm install
pnpm build
pnpm testThe development loop
bash
pnpm dev # watch-build all packages
pnpm test:watch # run tests in watch mode
pnpm lint # eslint
pnpm format # prettier --write
pnpm typecheck # tsc --noEmit across packagesBefore pushing, make sure the full check suite is green (this is exactly what CI runs):
bash
pnpm format:check && pnpm lint && pnpm build && pnpm typecheck && pnpm testRepository structure
spec/ the Repospec Specification (the standard) — read this first
docs/ architecture, ADRs, roadmap, governance, vision
packages/ the reference implementation
protocol/ executable spec (types + zod)
engine/ protocol operations (UI-agnostic)
templates/ default content + adapter templates
cli/ the repospec command-line front-endThe dependency direction is strict: cli → engine → protocol/templates (ADR-0001 / ADR-0007). Do not import "upward."
Definition of Done
Every change must satisfy:
- [ ] Tests pass and cover the change (
pnpm test). - [ ] Docs updated (package README / ADR / spec as applicable).
- [ ] A changeset is included for user-facing changes (
pnpm changeset). - [ ] It respects the ownership model (ADR-0004) and protocol versioning (ADR-0002).
- [ ]
pnpm format:check && pnpm lint && pnpm typecheckare clean.
Commits & PRs
- Keep changes small and focused — one concern per PR (charter: "small iterations over rewrites").
- Use clear, imperative commit subjects.
- Reference the issue/milestone from
docs/roadmap.mdwhere relevant.
Architecture decisions
Significant or hard-to-reverse decisions are recorded as ADRs in docs/adr/. If your change makes such a decision, add an ADR using docs/adr/template.md.
Code of Conduct
Participation is governed by our Code of Conduct.