Your coding agent builds fast.
Arnold makes sure it builds what you asked for.
Write requirements in plain English. Build with any AI coding agent. Arnold checks whether what got built matches what you asked for, and shows you exactly where docs and code have drifted apart.
Open-source. Works inside Claude Code, Cursor, Windsurf, and 30+ agents.
The problem with AI-generated code
You describe a product. A coding agent builds it. But it doesn't build everything you described, or it builds things you didn't ask for, or your spec goes stale the moment someone makes a manual edit.
The gap between what you said to build and what actually got built grows quietly. Documentation drifts. Requirements rot. Nobody notices until something breaks in production.
AI coding agents make it worse. They're fast, but they don't remember what you asked for last week. They don't check whether what they built actually satisfies your requirements. They just build, and move on.
That's documentation drift. Arnold exists to detect it.
How It Works
Describe your product
Tell Arnold what you're building. It scaffolds structured docs organized by feature. Not a flat spec, a living wiki. /arnold:init
Arnold writes the docs
Feature overviews, core rules, acceptance criteria, and open questions. Plain English. Organized by what the feature IS, not what it does. /arnold:plan
Build with any coding agent
Use Claude Code, Cursor, Windsurf, or whatever you like. Or let /arnold:build guide construction straight from your docs.
Arnold checks for drift
/arnold:check reads every doc and every source file, then tells you exactly where they disagree. File paths, line numbers, specific values.
Fix and repeat
/arnold:resolve walks you through each mismatch. You choose: fix the code, update the docs, or skip. The gap stays visible until you decide.
What Arnold Does
Structured docs. Drift detection. Build guidance.
Scaffold Docs from Anything
New project, existing codebase, or a PRD someone emailed you.
Arnold generates structured docs organized by feature, not by document type. /arnold:init scans existing code and extracts what's already built. /arnold:spec decomposes an existing spec into Arnold's format. Greenfield or brownfield, Arnold meets you where you are.
Detect Documentation Drift
The feature nobody else has.
Run /arnold:check and Arnold reads every doc and every source file, then shows you where they disagree. "Docs say sessions expire after 24 hours. Code has SESSION_TTL = 72 hours. Which is right?" Snapshots make future checks instant. This is the one.
Build from Docs
Acceptance criteria drive the code.
Run /arnold:build and Arnold reads your feature docs, enumerates every acceptance criterion, builds code to satisfy them, then verifies each one with a code citation before marking it complete. The docs are the blueprint. The code proves it.
Full Lifecycle Commands
From 'what are we building' to 'is it still what we said.'
Init, plan, check, resolve, update, build, review, decide, bug, milestone, feature, diff, recap, status, spec, archive, help. From project kickoff to ongoing maintenance, Arnold covers the full development loop.
See Drift Detection in Action
Docs on the left. Code on the right. Arnold finds the gap.
## Capacity Rules Each class has a maximum capacity. - Maximum 20 spots per class - Users cannot book if class is full - Waitlist available when full ## Session Rules - Sessions expire after 24 hours - Rate limit: 5 attempts per minute
class Booking < ApplicationRecord belongs_to :user belongs_to :fitness_class MAX_CAPACITY = 3020 validate :class_not_full validate :no_duplicate_booking SESSION_TTL = 72 * 60 * 6024 * 60 * 60 RATE_LIMIT = 5 # per minute end
How Arnold Is Different
vs Claude Code Alone
CLAUDE.md persists context. Arnold structures it.
CLAUDE.md is great for general project context, but it's freeform. Arnold gives you a structured docs/ folder organized by feature, with overviews, flows, edge cases, and acceptance criteria. Then it checks whether the code actually matches those docs. Structure plus verification.
vs Spec Tools & Static Docs
Traditional specs are write-once, drift-forever.
Arnold keeps specs alive. /arnold:check compares your docs to your code and tells you where they've diverged. That's the feature nobody else has in an open-source coding agent extension.
vs Jira, Notion & Trackers
Those tools live outside your codebase.
Arnold puts docs next to your code as markdown files you version-control with Git. When docs and code drift, Arnold sees it. No syncing between systems. No stale tickets. One source of truth.
Get Started
curl -fsSL ...Arnold/install.sh | bash
.claude/commands/arnold/ and sets up CLAUDE.md./arnold:init
/arnold:check
/arnold:resolve
Other install methods
Claude Code plugin:
/install ArtifactHQ/Arnold
Other agents: Arnold follows the Agent Skills standard. Copy the skills/ folders into your project:
- Cursor:
.cursor/rules/arnold.md - Windsurf:
.windsurf/rules/arnold.md - Gemini CLI:
GEMINI.md - Codex:
AGENTS.md