vibe-racer: Instructions file for Claude Code

CLAUDE.md

vibe-racer CLAUDE.md is an instructions file for Claude Code from teripaquitinho/vibe-racer. It costs 1,614 tokens per session, scanned A, original, MIT.

Instructions for vibe-racer, a command-line tool that runs software tasks through fixed stages involving an AI coding session and human review points. It ends with code that has been tested and committed to Git, a system for tracking code changes.

In plain words
What is it for?
Use it to initialize and run tasks, move them through the pipeline, inspect or coordinate work, validate changes, and run the project's development commands.
Why use it?
It gives software tasks a defined workflow, so progress, reviews, validation, branches, commits, and secret checks follow one process.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: mentions CLAUDE.md; mentions Claude Code.

This is teripaquitinho/vibe-racer's own configuration. It tells Claude Code how to work on vibe-racer itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything vibe-racer configures →

Reuse

Borrowing it

Nothing to install: this file belongs to teripaquitinho/vibe-racer. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/teripaquitinho/vibe-racer/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/teripaquitinho/vibe-racer

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for vibe-racer CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/teripaquitinho/vibe-racer/claude-md/github.svg)](https://agentmods.dev/instructions/teripaquitinho/vibe-racer/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/teripaquitinho/vibe-racer/claude-md"><img src="https://agentmods.dev/badge/instructions/teripaquitinho/vibe-racer/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for vibe-racer CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/teripaquitinho/vibe-racer/claude-md"><img src="https://agentmods.dev/badge/instructions/teripaquitinho/vibe-racer/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 1,614 This file is loaded in full into every session.
When invoked 1,614 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.01614 $0.01614
Opus 5.5 $0.00646 $0.00646
Sonnet 5.5 $0.00323 $0.00323
Haiku 4.5 $0.00161 $0.00161

Measured 1mo ago against content hash 96abf71afc65, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

vibe-racer CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 54 lines

How it starts

The opening of the file, as written. The whole thing — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.

vibe-racer

CLI that runs structured AI pipelines ("races") on software tasks using Claude Code SDK. Each task moves through a fixed state machine — alternating between human pit stops and AI-driven laps — ending in committed, tested code.

Key docs

  • Pipeline stages & architecture: docs/how-it-works.md
  • All CLI commands: docs/commands.md
  • Configuration (.vibe-racer.yml): docs/configuration.md
  • Roadmap: backlog.md

Project structure

src/
  cli/          # commander commands (init, new, drive, pitwall, radio, fasten)
  pipeline/     # state machine, validation
    markdown-scan.ts   # fence/blockquote-aware line scan shared by the two readers below (leaf module, no imports)
    execute-table.ts   # the Execution Status table contract: parser, status writes, table queries, EXECUTION_TABLE_SPEC
    operator-block.ts  # the "Operator actions" pause block: render, find, normalise, read, PAUSE_BLOCK_SPEC
    handlers/   # one handler per agent stage (qa.ts, execute.ts, done.ts, review-runner.ts, ...)
  claude/       # SDK session runner, prompt builder, tool guard, skills, fasten analysis
  state/        # task discovery, state.yml read/write, advancement logic
  git/          # branch management, commits, secret scanning
  config/       # .vibe-racer.yml parsing

Dev commands

npm run dev          # run CLI via tsx (no build needed)
npm run build        # tsup → dist/
npm run test         # vitest run
npm run typecheck    # tsc --noEmit
npm run lint         # eslint src/

Key decisions

  • No runtime dependency on host project — vibe-racer is a standalone CLI; it only reads the host project's README.md / CLAUDE.md as context.
  • State lives in plans/NNNN_slug/state.yml — never in memory; every command re-reads state from disk.
  • One branch per task (vibe-racer/NNNN_slug) — created automatically on first drive, never pushed automatically.
  • Persona per lap — system prompt is extended with a role-specific persona (Product Designer / Architect / Engineer / QA Engineer / Release Manager) depending on the current stage. Personas live in PERSONAS in src/claude/prompts.ts.
  • Seven laps, seven documents — objective, product, design, plan, execute, QA (05_qa.md, written by handlers/qa.ts), decision (06_decision.md, written by handlers/done.ts). Execution is one session per milestone against the Execution Status table in 04_execute.md (handlers/execute.ts, parsed by execute-table.ts), bounded by MAX_STALLED_SESSIONS per milestone and a per-drive session cap sized from the unfinished agent rows; the loop never trusts a regex count. Execution advances to ai_qa, not to cleanup.
  • state.yml is pipeline-owned — guard Rule 0 denies agent Write/Edit to any state.yml under plans_dir at every stage. Stage changes go through updateStage only. setError salvages a corrupt state.yml rather than dying on it.
  • One markdown reader — execute-table.ts and operator-block.ts both scan through markdown-scan.ts (scanLines/isHeading/isLive), so a heading, table row or checkbox inside a fence or behind a > is inert to both. They used to disagree: the table parser matched headings with a bare regex, so the worked example an agent quoted into its own playbook outranked the real table — the loop executed the quotation and the status writer edited it. Hence EXECUTION_TABLE_SPEC ships without its own ## Execution Status heading and PAUSE_BLOCK_SPEC's example stays fenced when interpolated. markdown-scan.ts imports nothing by design, so execute-table.ts can be pulled into prompts without a cycle. An unterminated fence swallows the rest of the file, as CommonMark says it does; callers that can be defeated that way name the stray fence instead of failing silently. Any change to markdown-scan.ts changes both readers at once: re-run the four-playbook parse equivalence check (plans/0005_infinite-loop-fix/05_qa_batch-b.md §6) before trusting it.
  • One (file, markerText) pair per stage — STAGE_QUESTIONS_FILE in src/pipeline/states.ts maps each human stage to a pair, and it is the pair that must stay unique, not the file. need_execution and need_operator both read 04_execute.md but never share a marker: the resume marker is Operator actions complete — resume execution, deliberately not a "Ready to advance …" line. Pointing need_operator at a "Ready to advance" marker is the issue-#3 stale-tick regression in its new form — the ticked sign-off box already in the file would resume a pause nobody looked at — and states.test.ts fails if anyone does.
  • Operator gates and the need_operator detour — a step vibe-racer must not or cannot take is declared at plan time as its own Owner = operator row (G<n>) in the Execution Status table, never as prose between rows. need_operator lives outside STAGE_ORDER (with error, in NON_LINEAR_STAGES) and always returns to ready_to_execute. The agent signals through 04_execute.md only — a needs_operator status and an "Operator actions" pause block — and the handler writes the stage (pauseForOperator), the agent never does. Resume reads the last pause block only and settles just the two statuses the pipeline itself wrote, so hand edits to the table survive.
  • Where the execute lap ends — the Execution Status table holds only work that finishes before QA. Merge, tag, release and deploy of the task's own work are never rows: QA reviews git diff main...HEAD and needs the branch unmerged. Every gate row is followed by the milestone it unblocks; the plan prompt says so, tryAdvance refuses the need_execution sign-off tick when it is not true (trailingOperatorRows), and the loop completes into ai_qa rather than pausing on a trailing gate left by an older plan.
  • Completion checkboxes are appended idempotently — handlers use ensureCompletionSection, never a bare append; a session that writes its own "# Complete" block would otherwise leave two checkboxes in one file.
  • Tool guard — canUseTool in src/claude/guard.ts enforces security rules on every SDK tool call.
  • Skills per lap — src/claude/skills.ts maps each agent stage to a lap and each lap to a skill list (skills key in .vibe-racer.yml overrides). Sessions load settingSources: ["project", "user"].
  • Trivial fast-path — detected by file presence, not by the agent writing state: objective review writes 03_plan_questions.md instead of 01_product_questions.md, and the handler sets trivial: true itself. Trivial tasks skip product and design laps.

Read the full file on GitHub · 54 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago Changed · +6 lines · +787 tokens per session 96abf71afc65
  2. 1mo ago Changed · +6 lines · +351 tokens per session d74b770ae4ef
  3. 2mo ago First seen · 42 lines · 476 tokens per session scan A 815fa9054faf

Subscribe to this mod's changes

vibe-racer CLAUDE.md is an instructions file published in the GitHub repository teripaquitinho/vibe-racer (5 stars, last pushed 18d ago), licensed MIT. It adds 1,614 tokens to every session, about $0.0065 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 9,715 tokens

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,461 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).

microsoft/vscode · 5,262 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,680 tokens

vscode copilot-instructions.md

Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).

microsoft/vscode · 2,750 tokens

deno copilot-instructions.md

Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.

denoland/deno · 3,077 tokens