Claude Code: Explore, Plan, Implement — and Give It a Way to Verify
Claude Code is an agentic coding tool that reads your codebase, edits files, runs commands and integrates with your development tools, in the terminal, in IDEs, in a desktop app and in the browser. Its documentation is unusually direct about what works: give it something it can run to check its own work, plan before implementing when the approach is uncertain, and keep persistent instructions short. Vibrr adds the specification on the way in and an independent audit on the way out. Disclosure: Vibrr uses Anthropic's API for some of its own features. That is a customer relationship, not a partnership, and it does not mean Anthropic endorses Vibrr or that Vibrr is affiliated with Claude Code.
Vibrr is an independent product. It is not affiliated with, endorsed by or sponsored by Claude Code. Product names are trademarks of their respective owners and are used here only to describe compatibility and content.
What Claude Code is and what makes its workflow different
Claude Code is closer to a colleague with a terminal than to an autocomplete. The documentation describes it as reading the codebase, editing files, running commands and working with git — staging changes, writing commit messages, creating branches and opening pull requests. The same engine sits behind every surface, so a repository's CLAUDE.md files, settings and MCP servers work across the terminal, IDE extensions, the desktop app and the web. Vibrr summarises the workflow as: repository understanding, plan, implementation, tools and tests, repair, verification.
| Capability | What the source says | Evidence |
|---|---|---|
| Codebase understanding | Reads the codebase and works across multiple files and tools. | Documented · Claude Code overview |
| CLAUDE.md and .claude/rules/ | Markdown instruction files read at the start of every session; project, user, local and managed scopes; path-scoped rules via frontmatter. | Documented · How Claude remembers your project |
| Auto memory | Notes Claude writes itself across sessions; the first 200 lines or 25KB of MEMORY.md load each session. | Documented · How Claude remembers your project |
| Plan mode | Separates exploration and planning from implementation; recommended when the approach is uncertain or the change spans several files. | Documented · Best practices for Claude Code |
| terminal | Runs in the terminal, can run commands, and can be scripted non-interactively with claude -p. | Documented · Claude Code overview; Best practices for Claude Code |
| git | Stages changes, writes commit messages, creates branches and opens pull requests. | Documented · Claude Code overview |
| GitHub Actions and GitLab CI/CD | Documented integrations for automated code review and issue triage in CI. | Documented · Claude Code overview |
| Model Context Protocol | Connects to external data sources and tools through MCP servers. | Documented · Claude Code overview |
| hooks | Shell commands that run at fixed lifecycle events, deterministic regardless of what the model decides. | Documented · How Claude remembers your project; Best practices for Claude Code |
| subagents | Separate context windows for investigation or review; useful for keeping research out of the main conversation. | Documented · Claude Code overview; Best practices for Claude Code |
| checkpoints | Snapshots files before each change made through Claude's file-editing tools. Changes made by Bash commands or external processes are not captured, and this is not a replacement for git. | Documented · Best practices for Claude Code |
| scheduled tasks | Routines, desktop scheduled tasks and /loop for recurring work. | Documented · Claude Code overview |
How Vibrr works with Claude Code
- Specify. Write the brief once in Vibrr: outcome, constraints and the checks that prove it.
- Compile. Vibrr's compiler can produce a Claude Code-shaped prompt that follows the documented explore, plan, implement, commit sequence and names the verification command. The app's prompt generator currently produces initial-build prompts; the task-specific forms on Claude Code prompts are compiler output that is not yet exposed there.
- Work in Claude Code. Vibrr does not run inside it.
- Audit independently. The best-practices guide itself recommends a fresh reviewer that did not write the code; Vibrr's audit is one more independent read.
Guidance versus enforcement
This is the single most useful idea in Claude Code's documentation, and it is easy to miss. CLAUDE.md and auto memory are loaded as context. The documentation says Claude treats them as context, not enforced configuration, and that there is no guarantee of strict compliance. Where something must happen every time, it points to hooks — shell commands that run at fixed lifecycle events — and to permission settings.
Documented constraints and limits for Claude Code
- Documented CLAUDE.md and auto memory are treated as context, not enforced configuration. There is no guarantee of strict compliance; use hooks or permission settings to enforce behavior. — How Claude remembers your project
- Documented Claude Code reads CLAUDE.md, not AGENTS.md. A repository that already uses AGENTS.md can import it from CLAUDE.md with @AGENTS.md. — How Claude remembers your project
- Documented Target under 200 lines per CLAUDE.md file; longer files consume more context and reduce adherence. — How Claude remembers your project
- Documented The context window fills quickly and performance degrades as it fills; the documentation treats context as the most important resource to manage. — Best practices for Claude Code
Architecture: how to lay out persistent instructions
- CLAUDE.md for facts held in every session: build commands, conventions that differ from defaults, architectural decisions and gotchas. Under 200 lines per file.
- `.claude/rules/` for topic-specific or path-scoped instructions that should load only when matching files are read.
- Skills for multi-step procedures that only matter sometimes.
- Hooks and permissions for anything that must be deterministic.
- AGENTS.md is not read by Claude Code. If your repository already has one, import it from CLAUDE.md so both tools read the same source.
Common mistakes
Claude Code's best-practices page lists recurring failure patterns by name. Vibrr records them as documented guidance — how often they occur has not been measured.
Failure modes for Claude Code that a source documents or an experiment supports
Treating CLAUDE.md as enforcement
Documented guidance — how often it happens has not been measured
- Trigger
- A must-hold rule (never touch migrations, always run lint) is written only in CLAUDE.md.
- Symptom
- The rule is followed most of the time and skipped some of the time.
- Risk
- Policy violations that look like compliance until they do not.
- Prevention
- Use permission settings or a hook for anything that must hold every time; keep CLAUDE.md for guidance.
- Verify
- Attempt the forbidden action deliberately and confirm the hook or permission blocks it.
Source: How Claude remembers your project
AGENTS.md ignored
Documented guidance — how often it happens has not been measured
- Trigger
- A repository keeps its agent instructions only in AGENTS.md.
- Symptom
- Claude Code does not see those instructions.
- Risk
- Instructions the team believes are active are not loaded.
- Prevention
- Create a CLAUDE.md that imports AGENTS.md so both tools read one source.
- Verify
- Run /context and confirm the instructions appear under Memory files.
Source: How Claude remembers your project
Context saturation
Documented guidance — how often it happens has not been measured
- Trigger
- Long sessions mixing unrelated tasks, repeated corrections, or unscoped investigations.
- Symptom
- Earlier instructions are forgotten and mistakes increase.
- Risk
- Degraded output quality that is hard to attribute.
- Prevention
- Clear context between unrelated tasks; after two failed corrections restart with a better prompt; scope investigations or use subagents.
- Verify
- Compare a clean session with a specific prompt against the long-running one on the same task.
Source: Best practices for Claude Code
Plausible but unverified implementation
Documented guidance — how often it happens has not been measured
- Trigger
- No test, build or check is supplied, so the only signal is that the work looks done.
- Symptom
- An implementation that reads well and misses edge cases.
- Risk
- Defects shipped because nothing could fail.
- Prevention
- Supply verification criteria in the prompt; ask for evidence rather than assertions.
- Verify
- Run the supplied check yourself once before trusting a green report.
Source: Best practices for Claude Code
Production readiness and audit
Claude Code works on a repository you control and can run tests, so much of production readiness is making sure the checks it runs are the right ones. The production checklist for AI-built apps lists them; the security audit guide covers the most consequential class. If you use several coding agents, see Cursor compared with Claude Code.
Example: one brief, compiled for Claude Code
Vibrr compiler output for a feature-addition task. The base specification and acceptance criteria are identical on every platform.
Example brief: Add CSV export to the reports page of an existing web application. Only users with the analyst role may export; exports over 10,000 rows must run in the background and notify the user. Add tests for the permission check and the background path.
# Base specification
Add CSV export to the reports page of an existing web application. Only users with the analyst role may export; exports over 10,000 rows must run in the background and notify the user. Add tests for the permission check and the background path.
# Acceptance criteria
1. The project installs and builds from a clean checkout using documented commands.
2. Every requirement in the specification is implemented or explicitly reported as not implemented.
3. Protected data and actions are authorized on the server, not only hidden in the UI.
4. Loading, empty and error states exist for every data-dependent view.
5. No secrets are committed or shipped in the client bundle; required environment variables are documented.
6. Automated checks (tests, typecheck, lint) are provided and their output is reported.
# Engineering requirements
- Authorization is enforced on the server: Hiding a route or a button is not access control. Every protected resource must be authorized in backend code, per operation, and the prompt must name the resources and roles.
- Every requirement has a check that can fail: A requirement with no way to fail is a wish. State the command, test or observable behavior that proves each requirement.
- Loading, empty and error states are designed: Every data-dependent view specifies what it shows while loading, when empty, and when the request fails.
- Change one thing and say what must not change: Scope each change, state the keep-list, and review the diff against it before continuing.
# Platform adaptation: Claude Code
Workflow this prompt is written for: Repository understanding → plan → implement → run tools and tests → repair → verify.
In plan mode, have Claude read the relevant code and produce a plan; review it; switch out of plan mode to implement against the plan with a check it can run; then commit.
Work in this order:
1. Explore: read the specific area and answer questions, no edits
2. Plan: files to change, flow, edge cases
3. Implement: follow the plan, write and run tests
4. Commit with a descriptive message
Documented platform constraints to respect:
- CLAUDE.md and auto memory are treated as context, not enforced configuration. There is no guarantee of strict compliance; use hooks or permission settings to enforce behavior.
- Claude Code reads CLAUDE.md, not AGENTS.md. A repository that already uses AGENTS.md can import it from CLAUDE.md with @AGENTS.md.
- Target under 200 lines per CLAUDE.md file; longer files consume more context and reduce adherence.
- The context window fills quickly and performance degrades as it fills; the documentation treats context as the most important resource to manage.
Known failure modes to avoid:
- Context saturation — Clear context between unrelated tasks; after two failed corrections restart with a better prompt; scope investigations or use subagents.
- Plausible but unverified implementation — Supply verification criteria in the prompt; ask for evidence rather than assertions.
# Verification
Report evidence (command output, test results), not assertions:
- Provide tests, a build, a linter or a screenshot Claude can run and read
- Have Claude show the evidence, not assert success
- A role × resource × operation test matrix that runs against the backend, not the UI.
- Run the checks and read their output; do not accept a self-reported pass.
- Force each state (throttle, empty dataset, failed request) and look at it.
- Diff review against the stated keep-list.What the compiler decided
- Strategy
- Explore, plan, implement, commit (claude-code.feature-addition.explore-plan-implement)
- Knowledge version
- 2026-09-18.1
- Evidence behind the adaptation
- claude-code.feature-addition.explore-plan-implement (documented); claude-code.context-saturation (documented); claude-code.unverified-output (documented); claude-code.instructions-are-context (documented); claude-code.reads-claude-md-not-agents-md (documented); claude-code.claude-md-size (documented); claude-code.context-degrades (documented)
- Assumptions
- Requires from the requester: Which files or directories are relevant. Requires from the requester: Constraints and patterns to follow. Requires from the requester: A check Claude can run to verify the result.
- Prompt checks (heuristic)
- requirementCoverage: pass · ambiguity: pass · platformCompatibility: pass · architectureConsistency: pass · unsupportedClaims: pass · missingAcceptanceCriteria: pass · securityGaps: pass · testability: pass · deploymentReadiness: pass · contextCompleteness: pass
Sources and verification
Sources reviewed for Claude Code
- Claude Code overview — Anthropic, read 2026-09-18. docs.claude.com/en/docs/claude-code/overview returned a 301 to this URL.
- How Claude remembers your project — Anthropic, read 2026-09-18
- Best practices for Claude Code — Anthropic, read 2026-09-18
Frequently asked questions
Does Claude Code follow everything in CLAUDE.md?
Not guaranteed. The documentation says CLAUDE.md is treated as context, not enforced configuration. Use hooks or permission settings for anything that must always happen.
Does Claude Code read AGENTS.md?
No. The documentation says it reads CLAUDE.md, and suggests importing AGENTS.md from CLAUDE.md if your repository already uses it.
Is Vibrr affiliated with Anthropic?
No. Vibrr uses Anthropic's API for some of its own features as a customer. That is not a partnership or an endorsement.
When was this checked?
On 2026-09-18, against the overview, memory and best-practices pages. docs.claude.com now redirects to code.claude.com.
Official and primary sources
- Claude Code overview — Anthropic, read 2026-09-18. docs.claude.com/en/docs/claude-code/overview returned a 301 to this URL.
- How Claude remembers your project — Anthropic, read 2026-09-18
- Best practices for Claude Code — Anthropic, read 2026-09-18