Spec-Driven Development & Context Engineering
for AI Coding Agents
Archcore keeps your project's decisions, specs, and rules in the repo.
Your coding agent reads them before it writes, so it builds by this repo's rules instead of the ones it happens to know.
Claude Code · Cursor · Codex CLI · Copilot · Gemini CLI · any MCP agent
Open source · Local-first
From idea to reviewed code
One feature in 50 seconds.
A research note goes into /archcore:plan, which asks about the edge case and writes a spec, examples, and a plan. The agent builds from them. Before merge, /archcore:review finds the rule the code missed, and the agent fixes it.
What you get
The agent builds from a spec you agreed on
/archcore:planasks only what the repo cannot answer, then writes the spec and the tasks. The package fits the change: a small fix gets no documents, a large initiative gets a PRD and one spec per capability.Decisions stay and shape the next change
/archcore:documentturns one sentence into a linked decision record in.archcore/. The next session and the next agent read it from the same folder.A broken decision caught before merge
/archcore:reviewreads your branch against the spec and the decision record. It returnscode-wrongon the file that ignored them, orspec-wrongwhen the document is the one out of date.
Project knowledge becomes files
.archcore/example- architecture.doc.md
- conventions.rule.md
- api/
- rate-limiting.spec.md
- rate-limiting.plan.md
- token-bucket-in-redis.adr.md
- error-shapes.rule.md
- auth/
- session-model.adr.md
- oauth-migration.rfc.md
- billing/
- usage-based-pricing.prd.md
- stripe-webhooks.spec.md
- web/
- design-tokens.rule.md
- onboarding-flow.plan.md
- testing.guide.md
opentoken-bucket-in-redis.adr.md
title: Rate limiting uses a token bucket in Redis
status: accepted
---## Context
The public API needs per-client limits. Redis is already the shared store for sessions.
## Decision
Token bucket per API key, stored in Redis, refilled on a fixed interval.
## Consequences
Every handler in src/api/ reads the bucket from Redis. No in-memory counters.
implements → api/rate-limiting.spec.md
Architecture, specs, requirements, decisions, rules, plans, and guides live in .archcore/ as plain Markdown, versioned with the code they describe. Archcore ships 23 document types, and a change to any of them is a diff someone approves.
Four things you say
Plain sentences, or the slash command. Each one uses what the last one saved, which is why the review at the end knows what the plan and the decision said.
/archcore:initSet up Archcore in this repo.
Proposes documents for the architecture, rules, and key modules. You approve before anything is saved.
/archcore:planPlan rate limiting for the public API.
Sizes the change first. Here that means a spec for how rate limiting must behave and a plan that breaks the work into tasks.
/archcore:documentRecord the decision to use a token bucket in Redis.
Saves the choice and its reasoning as an architecture decision record.
/archcore:reviewReview my branch before merge.
Reads the spec from step 2 and the decision from step 3. Verdict per finding:
spec-wrong,code-wrong, orok.
Every agent reads the same folder
Context engineering for AI coding agentsSpec-driven development for AI coding agents
Claude Code, Cursor, Codex CLI, GitHub Copilot, Gemini CLI, OpenCode, Roo Code, and Cline. Slash commands, skills, and guardrails run inside the first four; the rest reach the same documents over MCP. Where the host supports hooks, they arrive before the edit with no command from you.
Setting up a specific agent? Claude CodeCursorCodex CLIGitHub CopilotGemini CLI
Frequently Asked Questions
How is this different from CLAUDE.md or AGENTS.md?
Instruction files are flat memory: one tool, one file. Archcore is structured. It stores typed documents (ADR, rule, plan, guide, spec) with relations and versioned history, read and written during real work, and reused across every agent.
I already have a CLAUDE.md or .cursor/rules. Do I start over?
No. archcore init imports your existing instruction files (CLAUDE.md, AGENTS.md, .cursorrules, .cursor/rules/*) as structured documents, so the context you already wrote carries over.
Which AI agents are supported?
The plugin runs inside Claude Code, Cursor 2.5+, Codex CLI 0.117+, and GitHub Copilot CLI. The CLI works with any MCP-aware agent: those four plus Gemini CLI, OpenCode, Roo Code, and Cline. It is also scriptable in CI.
Does this eat my agent's context window?
No. At session start the agent gets a compact index of your documents. Full documents are pulled on demand over MCP, through search, relations, and single reads, instead of being loaded wholesale.
Does my code leave my machine?
Archcore stores project documents locally in .archcore/. Your coding agent may send document excerpts to its model provider. Install and update analytics contain version and platform information, not your project content. See the privacy policy for details and opt-out options.
Do I need both the plugin and the CLI?
The install script adds the CLI and the plugin for Claude Code, Codex CLI, and GitHub Copilot CLI when their commands are on PATH. Run archcore init in each project where you want MCP tools and hooks. Cursor still needs plugin setup in its UI.
Open source, built in public. A star helps more developers find it.