Skill Tracer
Skills › BMAD Method › bmad-walkthrough › workflow.md

workflow.md

100 lines · skills/bmad-walkthrough/workflow.md at bd70c64

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1Guide a human review of a target, one block at a time. They may
2stop to inspect, edit, or test. Keep track of which blocks the
3user has called done. A block or the review as a whole is done
4only when the user says it is.
5
6# Terms
7
8- **Target:** The commit, PR, file, or directory being reviewed.
9- **Review:** The session. Done when the user says it is.
10- **Block:** One slice of the walkthrough. Accepted only when the user
11 says so.
12- **Review narrative:** The human-facing writeup. Organized in blocks.
13 Owns block review status.
14- **Review log:** Append-only record of review activities and outcomes.
15- **Finding:** A concrete issue from inspection.
16- **Move:** A user-selected action, maybe from a repertoire of
17 moves in the walkthrough step.
19# Human attention is scarce
21Show only what a human needs to see. Do not distract them. Write
22the log, edit the narrative, look things up, reason — but do not
23put it in the session.
25When subagents are available, spawn a cheap background one for
26writing log and narrative files. Doing that work in the main
27session distracts the user.
29# Write for a human
31The session output and the review narrative file are for a human.
32Assume that said human has reasonable understanding of the
33surrounding context, but doesn't know anything about the target
34except things that have been mentioned in this session. Leave the
35brief log style to the log.
37# Clickable file refs
39Never write a file or `file:line` reference in human-facing output
40as plain text.
42In the review narrative file, every file and `file:line` must be a
43markdown link relative to that file (`[label](../src/foo.ts)`).
45In the session, never write a markdown link. Use a form the host
46can click: a Cursor code citation (`startLine:endLine:path` on the
47opening fence); a VS Code `#file:path`; or a CWD-relative
48`path:line` with no leading `/`. If unsure, use `path:line`.
50# Block shapes
52**Intent** (block 1). What the change is for and why it exists now.
53If the target's ticket states the intent, paste it verbatim; failing
54that, a plan file's intent section. Otherwise generate from what you
55know about the target, no more than 300 tokens. Include a short note
56on where you got it from.
58**Broad strokes** (block 2). What the change generally is, and its top
59level: the three to five entry points a reader would open first, each
60with one clickable reference and one clause saying what it is. This is
61neither a second prose account of the intent nor an index of every
62changed file. If you find yourself listing a layer's files, stop; that
63belongs in the slices. Test: the reviewer can open the linked spots in
64order and understand the mechanism without reading anything else.
66**Slices** (middle blocks). One concern per block, not one file. Lead
67with the mechanism in two or three sentences, then the specific places
68with references.
70For a simple change applied to a large number of files, group the
71files by how they were changed (one or several groups). Treat each
72group as a slice: one or two worked examples, plus a clickable list
73of the rest that got the same treatment.
75**Periphery** (last block). Docs, build registration, small enablers.
76References only, one clause each.
78{% if workflow.on_activation %}
79# On Activation
81{{ workflow.on_activation }}
82{% endif %}
83{% if workflow.persistent_facts %}
84# Persistent facts
86Do not compact these away. Load `file:` paths. Expand globs and read
87every match. Other entries are facts.
89{{ workflow.persistent_facts }}
91{% endif %}
92# Workflow
94Follow the step files in order. Read one step fully, execute it, then
95load the next step only when directed. Do not skip, reorder, or
96pre-load steps.
98# FIRST STEP
100Read fully and follow: `{{ rendered("step-01-orientation.md") }}` to begin.

Guide a human review of a target, one block at a time. They may stop to inspect, edit, or test. Keep track of which blocks the user has called done. A block or the review as a whole is done only when the user says it is.

Terms

  • Target: The commit, PR, file, or directory being reviewed.
  • Review: The session. Done when the user says it is.
  • Block: One slice of the walkthrough. Accepted only when the user says so.
  • Review narrative: The human-facing writeup. Organized in blocks. Owns block review status.
  • Review log: Append-only record of review activities and outcomes.
  • Finding: A concrete issue from inspection.
  • Move: A user-selected action, maybe from a repertoire of moves in the walkthrough step.

Human attention is scarce

Show only what a human needs to see. Do not distract them. Write the log, edit the narrative, look things up, reason — but do not put it in the session.

When subagents are available, spawn a cheap background one for writing log and narrative files. Doing that work in the main session distracts the user.

Write for a human

The session output and the review narrative file are for a human. Assume that said human has reasonable understanding of the surrounding context, but doesn't know anything about the target except things that have been mentioned in this session. Leave the brief log style to the log.

Clickable file refs

Never write a file or file:line reference in human-facing output as plain text.

In the review narrative file, every file and file:line must be a markdown link relative to that file ([label](../src/foo.ts)).

In the session, never write a markdown link. Use a form the host can click: a Cursor code citation (startLine:endLine:path on the opening fence); a VS Code #file:path; or a CWD-relative path:line with no leading /. If unsure, use path:line.

Block shapes

Intent (block 1). What the change is for and why it exists now. If the target's ticket states the intent, paste it verbatim; failing that, a plan file's intent section. Otherwise generate from what you know about the target, no more than 300 tokens. Include a short note on where you got it from.

Broad strokes (block 2). What the change generally is, and its top level: the three to five entry points a reader would open first, each with one clickable reference and one clause saying what it is. This is neither a second prose account of the intent nor an index of every changed file. If you find yourself listing a layer's files, stop; that belongs in the slices. Test: the reviewer can open the linked spots in order and understand the mechanism without reading anything else.

Slices (middle blocks). One concern per block, not one file. Lead with the mechanism in two or three sentences, then the specific places with references.

For a simple change applied to a large number of files, group the files by how they were changed (one or several groups). Treat each group as a slice: one or two worked examples, plus a clickable list of the rest that got the same treatment.

Periphery (last block). Docs, build registration, small enablers. References only, one clause each.

{% if workflow.on_activation %}

On Activation

{{ workflow.on_activation }} {% endif %} {% if workflow.persistent_facts %}

Persistent facts

Do not compact these away. Load file: paths. Expand globs and read every match. Other entries are facts.

{{ workflow.persistent_facts }}

{% endif %}

Workflow

Follow the step files in order. Read one step fully, execute it, then load the next step only when directed. Do not skip, reorder, or pre-load steps.

FIRST STEP

Read fully and follow: {{ rendered("step-01-orientation.md") }} to begin.

Raw lines 1 to 100
Starts an agent subagents :25
Starts an agent spawn :25