agentleFS
Luis85Luis85/agentic-workflow/.claude/skills/tracer-bullet/SKILL.md

tracer-bullet

Skill0 starsChanged 6 months agoMITView on GitHub

Decompose spec into vertical end-to-end slices, each committable. Use in stage 6 (Tasks). Triggers "tracer bullet", "vertical slice", "smallest commits", or when a plan reads as horizontal layers.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 1 is distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    After Hunt & Thomas's "tracer bullets" and Pocock's to-issues and request-refactor-plan.

    line 9
  2. Very specific:

    Read specs/<slug>/spec.md (or whatever artifact is being decomposed).

    line 15
  3. Very specific:

    Write specs/<slug>/tasks.md from templates/tasks-template.md.

    line 44
  4. Distinctive:

    Test approach (RED test or characterization test).

    line 50
  5. Very specific:

    Use vocabulary from docs/glossary/<slug>.md exactly.

    line 69

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Tracer-bullet planning

After Hunt & Thomas's "tracer bullets" and Pocock's to-issues and request-refactor-plan. The cure for half-finished features and integration drift is to make every step a thin end-to-end slice.

Procedure

Step 1 — Read the spec

Read specs/<slug>/spec.md (or whatever artifact is being decomposed). Identify:

  • Behaviors: what observable user-visible outcomes the spec promises.
  • Layers touched: data, API, business logic, UI, observability, etc.
  • Existing seams: where the codebase is already factored to accept new behavior.

Step 2 — Draft slices

For each behavior, draft a slice that:

  • Touches every layer it needs to (data → API → UI for a user-visible feature; data → API for a backend-only).
  • Is the smallest meaningful slice — the minimum that produces an observable change.
  • Leaves the codebase in a working, committable state at slice end (tests pass, type-check passes, no broken paths).
  • Has explicit acceptance criteria phrased as observable behavior, not file changes.
  • Declares dependencies on other slices (Blocked by: T-<AREA>-NNN).

Step 3 — Order slices

Sort slices by:

  1. TDD discipline first (per docs/specorator.md §3.6) — test tasks for a requirement come before implementation tasks for the same requirement.
  2. Dependency-respecting — no slice unblocked before its dependencies.
  3. Risk-first when ties — the slice with the most uncertainty goes first so we learn early.
  4. Smallest first within a risk tier — a 2-hour slice before a half-day slice.

Number slices T-<AREA>-NNN per the traceability scheme (docs/traceability.md).

Step 4 — Write tasks.md

Write specs/<slug>/tasks.md from templates/tasks-template.md. For each slice:

  • Title (verb-first, observable outcome).
  • ID (T-<AREA>-NNN).
  • Why this slice (one sentence linking to a REQ or SPEC ID).
  • Acceptance criteria (observable behaviors, ≤4 bullets).
  • Test approach (RED test or characterization test).
  • Risk level (L/M/H — high if anything is unknown).
  • Blocked by (list of slice IDs).
  • Owner (agent role from specorator).

Include a dependency graph at the top of tasks.md (mermaid flowchart or simple ASCII).

End with a Definition of done section: the user-visible behaviors that prove the whole spec is satisfied.

Anti-patterns to refuse

  • Horizontal slices. "All the database changes" then "all the endpoints" then "all the UI" is forbidden. If the slice doesn't go end-to-end, it's the wrong shape.
  • Mega-slice. Anything >½ day is too big — split it.
  • Speculative slice. "Refactor X first to make later work easier" — only allowed if it's required by an immediate slice, otherwise defer to a later workflow.
  • Implementation-detail slice. "Add helper function" is not a slice — it's implementation noise inside someone else's slice.

Rules

  • Refer to behaviors and contracts. Avoid file paths and line numbers in the task description (per the docs/specorator.md discipline).
  • Use vocabulary from docs/glossary/<slug>.md exactly. If you need a new term, coin it via /glossary:new "<term>" (the new-glossary-entry skill) before writing the task. Per ADR-0010, the legacy ubiquitous-language flow is deprecated.
  • This skill produces tasks.md. The dev agent during /spec:implement is the one that walks the list with tdd-cycle.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.