Repospec Protocol — Implementation Roadmap
This roadmap turns the architecture into sequenced, shippable work. It follows the nine phases from the charter in order — phases are never skipped. Each phase maps to a milestone, each milestone to a set of GitHub issues, and each issue to small implementation tasks.
Legend: every issue below is sized to be a single, reviewable PR. Tasks inside an issue are checklist items, not separate PRs.
Status (2026-07-01): all milestones S–7 are delivered and shipped in the published
@repospec/*packages — including the gated plugin runtime (Milestone 6) and AI-assisted bootstrap (Milestone 7). This document is the original, sequenced plan; the checklists below are kept as that historical plan and do not track current completion. For live status see../TODO.md, and for the shipped command surface seecommands.md.
Milestone S — Specification & Vision (precedes all code) — ✅ DONE
Goal: the standard exists in writing before any implementation, so the engine and CLI are built to a contract (ADR-0007). Status: delivered in the design phase.
- [x] S.1
docs/vision.md— the product argument (why Repospec exists). - [x] S.2
spec/protocol.md— terminology, principles, conformance levels. - [x] S.3
spec/repository.md—.repospec/layout + ownership model. - [x] S.4
spec/configuration.md—project.yamlfields + validation. - [x] S.5
spec/agent.md— agent & rule artifacts (frontmatter + body). - [x] S.6
spec/workflow.md— engineering-workflow artifact. - [x] S.7
spec/lifecycle.md— states + protocol operations (CLI-independent). - [x] S.8
spec/versioning.md— protocol semver, compatibility, migration. - [x] S.9
spec/rfcs/0000-template.md— RFC process scaffolding.
The JSON Schema (schemas/0.1/) is intentionally generated later, from the engine (Milestone 5), with this prose as the authoritative source.
Milestone 0 — Repository foundation (precedes Phase 2 code)
Goal: a contributor can clone, install, build, lint, and test an empty monorepo. No product code yet.
Issue 0.1 — Scaffold the pnpm monorepo
- [ ]
package.json(private root),pnpm-workspace.yaml(packages/*). - [ ] Base
tsconfig.base.json; per-package extends. - [ ] prettier + eslint config at the root;
format/lintscripts. - [ ] vitest config at the root;
testscript. - [ ] Node + pnpm version pin (
.nvmrc/packageManager).
Issue 0.2 — Create empty packages with boundaries (ADR-0001)
- [ ]
packages/{protocol,engine,templates,cli}each withpackage.json,src/index.ts,tsup.config.ts, and a stubREADME.md. - [ ] Wire the dependency graph (cli→engine→protocol/templates).
- [ ]
buildscript that builds all packages via tsup.
Issue 0.3 — CI pipeline
- [ ] GitHub Actions: install → build → lint → test on PRs.
- [ ] Cache pnpm store.
- [ ] Add Changesets + a release-check job.
Issue 0.4 — Project meta files
- [ ]
CONTRIBUTING.md,CODE_OF_CONDUCT.md,SECURITY.md,CODEOWNERS. - [ ] Issue/PR templates under
.github/. - [ ] Expand root
README.mdwith quickstart + links todocs/.
Milestone 1 — Phase 1 + Phase 2: Structure & CLI shell
Goal: repospec --help runs and lists planned commands; the CLI is wired to engine stubs.
Issue 1.1 — protocol: types + zod schemas for project.yaml
- [ ] Define
Projecttype + zod schema (name, description,repospecProtocol, stack, conventions, repo type, adapters). - [ ] Define frontmatter schemas for
agents/*andrules/*. - [ ] Export
PROTOCOL_VERSIONandsupports()(ADR-0002). - [ ] Unit tests: valid + invalid fixtures.
Issue 1.2 — protocol: (de)serialize a .repospec/ tree
- [ ] Injected-fs interface; read/parse
.repospec/→ model; serialize model → files. - [ ] Round-trip tests with an in-memory fs.
Issue 1.3 — cli: commander shell + clack bootstrap
- [ ]
repospecbinary; register command stubs:init,doctor,sync,review,bootstrap,upgrade,architect,generate. - [ ] Global
--version(CLI + supported protocol range),--help. - [ ] Each stub prints "not yet implemented" + exit codes.
- [ ] Smoke test:
--helpand--version.
Milestone 2 — Phase 3 + Phase 4: repospec init → static .repospec/
Goal: repospec init runs an interview and writes a complete, valid .repospec/.
Issue 2.1 — templates: seed content + manifest (ADR-0006)
- [ ] Seed
constitution.md,architecture.md,workflow.md. - [ ] Starter
agents/*andrules/*with valid frontmatter. - [ ] Template manifest (files, ownership, target paths, variables).
Issue 2.2 — engine: init pipeline (answers → FilePlan → write)
- [ ]
normalize(answers)→ config; validate with zod. - [ ] Build a
FilePlan(writes tagged with owner). - [ ] Execute the plan via injected fs; dry-run support.
- [ ] Detect existing
.repospec/→ defer to update/upgrade (W8); never overwrite without a flag.
Issue 2.3 — cli: interview UX for init
- [ ] clack flow: project identity, stack, conventions, adapters.
- [ ] Map answers → engine; render the FilePlan preview; confirm; write.
- [ ]
--yes/non-interactive mode using defaults.
Issue 2.4 — Snapshot tests + example output
- [ ] Snapshot the generated
.repospec/tree for 2–3 archetypes (TS library, web app, service). - [ ] Commit a generated example under
examples/.
Milestone 3 — Phase 5: Configuration files & adapters
Goal: .repospec/ projects into at least one assistant's native entrypoint, kept current by sync.
Issue 3.1 — engine: adapter registry + interface (ADR-0003)
- [ ] Adapter contract:
id, owned paths,render(model). - [ ] Registry + selection from
project.yaml.
Issue 3.2 — First adapter: Claude / AGENTS.md + CLAUDE.md
- [ ] Render
.repospec/→ assistant entrypoint with managed header (ADR-0004). - [ ] Snapshot test of rendered output.
Issue 3.3 — repospec generate
- [ ] Render enabled adapters (or a targeted subset).
- [ ] Wire CLI command + tests.
Issue 3.4 — repospec sync with ownership guard (ADR-0004)
- [ ] Checksum-based diff; skip human-modified outputs;
--force. - [ ]
--checkmode for CI (no writes, non-zero on drift). - [ ] Idempotency test (second run = no writes).
Issue 3.5 — repospec doctor
- [ ] Validate
project.yamlfor its declared version; check referenced files; detect adapter drift. - [ ] Human-first error messages; non-zero exit on error.
Milestone 4 — Phase 6: Templates system
Goal: templates are extensible and well-documented (still bundled/offline).
Issue 4.1 — Variable interpolation + partials in templates.
Issue 4.2 — Additional adapters (Cursor, Copilot) behind the registry.
Issue 4.3 — templates README documenting how to author a template.
Milestone 5 — Phase 7: Protocol validation & published schema
Goal: the (already-authored, Milestone S) specification becomes machine-checked and externally consumable.
Issue 5.1 — Generate JSON Schema from zod → schemas/0.1/ (ADR-0005).
Issue 5.2 — Conformance test suite: validate fixtures against the spec.
Issue 5.3 — repospec upgrade skeleton + version-mismatch errors (ADR-0002).
Issue 5.4 — Reconcile generated schema with spec/*.md; drift snapshot test.
Note: the normative prose spec and RFC scaffolding were delivered in Milestone S. This milestone makes them executable, it does not re-author them.
Milestone 6 — Phase 8: Plugins — ✅ DONE
Goal: a plugin model exists and executes safely — gated by consent + integrity + a worker sandbox (ADR-0008, ADR-0009, RFC-0001).
Issue 6.1 — Declarative plugin schema (PluginRefSchema + manifest/lockfile).
Issue 6.2 — Security ADR for the plugin runtime (trust/sandbox): ADR-0008/0009.
Issue 6.3 — Plugin discovery + validation + approval + gated execution.
Milestone 7 — Phase 9: AI-powered bootstrap (opt-in)
Goal: repospec bootstrap/repospec architect can infer a draft .repospec/ from an existing repo. Strictly opt-in; the only network feature.
Issue 7.1 — Repo analysis → draft answers (offline heuristics first).
Issue 7.2 — Optional AI provider behind an explicit flag/config; redaction
and consent UX.
Issue 7.3 — Human review/approval gate before writing (human decisions win).
Sequencing rules
- Do not start a milestone before the prior one is green in CI.
- Any issue touching
spec/orprotocol's public shape requires an RFC + ADR. - Each issue ships with tests and docs — no exceptions (charter rule).