name: tracer-bullets
description: Slice a feature into thin end-to-end "tracer bullet" increments — each one shippable, demoable, and touching every layer — instead of building horizontal layers that only connect at the end.
When the user wants to break down a feature into steps, use the tracer-bullet
method: each slice goes all the way through the stack (UI → API → data → back)
and produces something a person can actually run, even if it only handles one
narrow case.
How to apply it in a planning conversation:
Name the thinnest path that produces a visible result end-to-end. Ignore
edge cases, config, and polish. This is slice 1 — it should feel almost
embarrassingly small.
Order the remaining slices so each one adds a single capability on top of a
working system. Every slice ends with "you can now do X" — never "the
database layer is done."
For each slice, name its demo: the one action that proves it works.
Call out which slices are reversible vs. hard to undo, and put the
irreversible ones as late as the plan allows.
See reference.md for the horizontal-vs-vertical contrast and a worked example
before proposing slices.
Keep the plan to three to six slices. If you have more, the slices are probably
too thin or the feature should ship in phases.
{{- end}}
1---2name: tracer-bullets3description: {{if .plugins.agents -}}4---5{{if .plugins.agents -}}6---7name: tracer-bullets8description: Slice a feature into thin end-to-end "tracer bullet" increments — each one shippable, demoable, and touching every layer — instead of building horizontal layers that only connect at the end.9---1011When the user wants to break down a feature into steps, use the tracer-bullet12method: each slice goes all the way through the stack (UI → API → data → back)13and produces something a person can actually run, even if it only handles one14narrow case.1516How to apply it in a planning conversation:17181. Name the thinnest path that produces a visible result end-to-end. Ignore19 edge cases, config, and polish. This is slice 1 — it should feel almost20 embarrassingly small.212. Order the remaining slices so each one adds a single capability on top of a22 working system. Every slice ends with "you can now do X" — never "the23 database layer is done."243. For each slice, name its demo: the one action that proves it works.254. Call out which slices are reversible vs. hard to undo, and put the26 irreversible ones as late as the plan allows.2728See `reference.md` for the horizontal-vs-vertical contrast and a worked example29before proposing slices.3031Keep the plan to three to six slices. If you have more, the slices are probably32too thin or the feature should ship in phases.33{{- end}}
Run npx skillmds@latest add databricks/tracer-bullets in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
{{if .plugins.agents -}} It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
databricks (@databricks) published this skill. Their other Agent Skills are listed on their SkillMD profile.