incitaciones 0.11.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/content/distilled/issues/references/create-issues/SKILL.md +21 -6
- package/content/distilled/issues/references/create-issues/references/criteria.md +2 -1
- package/content/distilled/issues/references/create-issues/references/templates.md +5 -3
- package/content/distilled/issues/references/issue-review/SKILL.md +1 -1
- package/content/distilled/issues/references/issue-review/references/pass-5-executability.md +7 -0
- package/content/manifest.json +1 -1
- package/package.json +1 -1
- package/pi-package/skills/create-issues/SKILL.md +28 -10
- package/pi-package/skills/issue-review/SKILL.md +8 -1
- package/pi-package/skills/issues/references/create-issues/SKILL.md +21 -6
- package/pi-package/skills/issues/references/create-issues/references/criteria.md +2 -1
- package/pi-package/skills/issues/references/create-issues/references/templates.md +5 -3
- package/pi-package/skills/issues/references/issue-review/SKILL.md +1 -1
- package/pi-package/skills/issues/references/issue-review/references/pass-5-executability.md +7 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- skill: create-issues, version: 1.
|
|
1
|
+
<!-- skill: create-issues, version: 1.5.0, status: verified -->
|
|
2
2
|
# Tracer-Bullet Issue Creation from Plan
|
|
3
3
|
|
|
4
4
|
Break a reviewed plan into independently grabbable issues using tracer-bullet vertical slices.
|
|
@@ -22,9 +22,19 @@ You are a Technical Project Manager. Translate a plan, spec, or PRD into thin en
|
|
|
22
22
|
- Prefer **vertical slices** over phase-by-phase horizontal tickets.
|
|
23
23
|
- Each issue should cut through all necessary layers for one narrow capability: storage/schema, business logic, interface, tests, and observability/docs when relevant.
|
|
24
24
|
- A slice must be independently verifiable or demoable.
|
|
25
|
-
- Mark each slice
|
|
26
|
-
- **
|
|
27
|
-
|
|
25
|
+
- Mark each slice with a **lane** (execution mode) and a **complexity** grade:
|
|
26
|
+
- **Lane:**
|
|
27
|
+
- **AFK** — bounded, mechanically verifiable, mergeable without human intervention; the `afk` label means "safe to run autonomously", so it may only be applied when an objective gate exists (test suite, CI, or Meter command). Label: `afk`.
|
|
28
|
+
- **DESIGN** — needs an interactive design session before implementation: semantics decisions, API shape, concurrency models, trade-offs. A human works this with a strong-reasoning model, never autonomously. Label: `design`.
|
|
29
|
+
- **HITL** — pure human decision, approval, copy review, or policy signoff with little or no model work. Label: `hitl`.
|
|
30
|
+
- **REVIEW** — second-opinion pass over existing output (code review, spec audit, conformance check). Label: `review`.
|
|
31
|
+
- **Complexity (effort / model tier)** — graded by falsifiable criteria so a reviewer can gate a wrong tag:
|
|
32
|
+
- **S** — matches an existing pattern in the repo (same change shape already exists in code or a prior ticket); ≤3 files; no new public interface, dependency, or invariant; the Meter is an existing test command. Label: `complexity:s`.
|
|
33
|
+
- **M** — multi-file change within established patterns; new tests follow existing conventions; no new public API beyond the slice's own; no concurrency or protocol semantics. Label: `complexity:m`.
|
|
34
|
+
- **L** — introduces or changes an invariant, concurrency semantics, protocol conformance, or a public API; correctness requires reasoning the repo's existing tests do not already encode. Label: `complexity:l`.
|
|
35
|
+
- **XL** — unresolved semantics or cross-repo scope: two competent agents would disagree on what "done" means; do not schedule — decompose into S/M/L slices first. Label: `complexity:xl`.
|
|
36
|
+
- **Grade gate:** an S/M ticket that touches a public API, an invariant, or concurrency code is mis-tagged — retag L before publishing; an L ticket fully covered by an existing pattern plus an existing test command is mis-tagged — retag M or S.
|
|
37
|
+
- Classification signals: `decision`-type tickets or titles starting with Decide/Choose/Approve/Scope → DESIGN or HITL, never AFK; bounded bugs with a failing test or concrete repro in a repo with CI → AFK; verification/conformance sweeps → AFK; concurrency/security/semantics work → DESIGN unless a failing repro test exists; epics → XL. If the target repo has no CI or test suite, tag `no-gate` — never schedule AFK work without a gate.
|
|
28
38
|
- Avoid tickets like “build backend”, “add UI”, or “refactor models first” unless the work is genuinely standalone.
|
|
29
39
|
- **Title lint (hard rule — run on every drafted title before presenting):** a title must name a user-visible outcome (“CSV export works end-to-end”), not a layer. If a title names a layer or artifact — backend, frontend, API, route, button, serializer, schema, tests-only, docs-only, refactor-only — merge it into the outcome slice it serves. Layers differing is never sufficient reason to split: split by capability, never by layer.
|
|
30
40
|
|
|
@@ -33,11 +43,13 @@ You are a Technical Project Manager. Translate a plan, spec, or PRD into thin en
|
|
|
33
43
|
- Present a numbered list before creating anything.
|
|
34
44
|
- For each slice include:
|
|
35
45
|
- **Title**
|
|
36
|
-
- **
|
|
46
|
+
- **Lane:** AFK | DESIGN | HITL | REVIEW
|
|
47
|
+
- **Complexity:** S | M | L | XL
|
|
48
|
+
- **Gate:** Meter command or CI suite (required for AFK; `no-gate` otherwise)
|
|
37
49
|
- **Blocked by:** slice numbers or “None”
|
|
38
50
|
- **User stories covered**
|
|
39
51
|
- **Why this is a tracer bullet:** brief end-to-end justification
|
|
40
|
-
- Ask whether the granularity, dependency graph, and
|
|
52
|
+
- Ask whether the granularity, dependency graph, and lane/complexity split look right.
|
|
41
53
|
- Iterate until approved.
|
|
42
54
|
|
|
43
55
|
5. **Prepare issue bodies:**
|
|
@@ -90,6 +102,9 @@ You are a Technical Project Manager. Translate a plan, spec, or PRD into thin en
|
|
|
90
102
|
- **Name the cheats:** add anti-goals wherever the gate could be gamed (test edits, new deps, API breaks).
|
|
91
103
|
- **Anchor staleness:** always record `base_commit` metadata at creation; never publish a ticket anchored to nothing.
|
|
92
104
|
- **Stop and ask:** if the plan only supports horizontal decomposition, propose a vertical rewrite before publishing.
|
|
105
|
+
- **Lane and complexity are mandatory metadata:** every published slice carries both (`bd update <id> --label design --label complexity:m`). Route by them, not by preference: S/M AFK work defaults to the cheapest capable model tier; DESIGN and L work gets the strongest reasoning tier with elevated effort.
|
|
106
|
+
- **No gate, no AFK label:** in a repo without CI/tests, tag `no-gate` *instead of* `afk` — the ticket is not scheduled autonomously until a gate exists; when one does, replace `no-gate` with `afk`.
|
|
107
|
+
- **Escalation is a retag:** after two failed implementation attempts, raise complexity one grade (S→M→L); if the failure cause is semantic (unclear spec or design rather than implementation), switch the lane to `design`. Record the failure cause in the ticket either way.
|
|
93
108
|
|
|
94
109
|
## References
|
|
95
110
|
- **Templates:** `references/templates.md`
|
|
@@ -18,7 +18,8 @@ Use these criteria to evaluate whether a plan has been translated into strong tr
|
|
|
18
18
|
| **Baseline anchored** | Measurable claims record the pre-work value and the HEAD SHA as `base_commit` metadata for staleness detection. |
|
|
19
19
|
| **Dependency hygiene** | Only real blockers are encoded; parallel work is not serialized without reason. |
|
|
20
20
|
| **Workflow Mandate** | Includes the mandatory TDD and Tidy First block. |
|
|
21
|
-
| **Execution mode** | Slice is explicitly marked AFK or
|
|
21
|
+
| **Execution mode** | Slice is explicitly marked with a lane (AFK/DESIGN/HITL/REVIEW) and a complexity grade (S/M/L/XL); AFK slices carry an objective gate or `no-gate` tag. |
|
|
22
|
+
| **Complexity honesty** | Complexity matches the work, not the optimism: XL is used when semantics or scope are unresolved, not as a badge. |
|
|
22
23
|
|
|
23
24
|
## Tracer-Bullet Heuristics
|
|
24
25
|
|
|
@@ -6,7 +6,9 @@ Use these templates for proposed slice breakdowns, issue descriptions, and the f
|
|
|
6
6
|
|
|
7
7
|
```markdown
|
|
8
8
|
1. **[Title]**
|
|
9
|
-
- **
|
|
9
|
+
- **Lane:** [AFK|DESIGN|HITL|REVIEW]
|
|
10
|
+
- **Complexity:** [S|M|L|XL]
|
|
11
|
+
- **Gate:** [Meter command / CI suite — required for AFK]
|
|
10
12
|
- **Blocked by:** [None | Slice 1, Slice 2]
|
|
11
13
|
- **User stories covered:** [Story A, Story B]
|
|
12
14
|
- **Tracer-bullet rationale:** [Why this is a thin end-to-end slice]
|
|
@@ -71,8 +73,8 @@ Or: `None - can start immediately`
|
|
|
71
73
|
**Plan:** [path/to/plan.md]
|
|
72
74
|
|
|
73
75
|
### Approved Slice Set
|
|
74
|
-
1. **[Title]** — [AFK|HITL], blocked by [None|IDs]
|
|
75
|
-
2. **[Title]** — [AFK|HITL], blocked by [None|IDs]
|
|
76
|
+
1. **[Title]** — [AFK|DESIGN|HITL|REVIEW] [S|M|L|XL], blocked by [None|IDs]
|
|
77
|
+
2. **[Title]** — [AFK|DESIGN|HITL|REVIEW] [S|M|L|XL], blocked by [None|IDs]
|
|
76
78
|
|
|
77
79
|
### Summary
|
|
78
80
|
- **Total Issues Created:** [count]
|
|
@@ -26,7 +26,7 @@ Treat the best issue sets as:
|
|
|
26
26
|
- thin vertical slices rather than layer tickets
|
|
27
27
|
- independently verifiable or demoable
|
|
28
28
|
- minimal but sufficient dependency graphs
|
|
29
|
-
- explicit about AFK
|
|
29
|
+
- explicit about lane (AFK/DESIGN/HITL/REVIEW) and complexity (S/M/L/XL) work
|
|
30
30
|
- traceable back to stories, plans, or specs
|
|
31
31
|
- self-describing: tickets that create or reshape source files carry the file-header criterion (see `file-headers`) — undocumented files force agents to re-derive intent
|
|
32
32
|
- machine-verifiable value claims: quantified Must gate, runnable Meter, explicit anti-goals, and a `base_commit` anchor that reveals staleness
|
|
@@ -6,6 +6,9 @@ Focus on:
|
|
|
6
6
|
- Is there a machine-checkable Must gate (quantified, unit + number) backed by a runnable Meter command?
|
|
7
7
|
- Are touched code files self-describing — Purpose/Responsibilities/Rationale header present and current (see `file-headers`)?
|
|
8
8
|
- Are priorities and labels sensible?
|
|
9
|
+
- Does every ticket carry lane and complexity metadata (`afk`/`design`/`hitl`/`review` + `complexity:s/m/l/xl`)?
|
|
10
|
+
- Are lane/complexity tags consistent with the work (DESIGN or HITL work never tagged `afk`)?
|
|
11
|
+
- Are AFK tickets backed by an objective gate (CI/test suite/Meter), or tagged `no-gate` and kept out of autonomous scheduling?
|
|
9
12
|
- Are HITL handoff points explicit?
|
|
10
13
|
- Is it clear what demo, test, or observable behavior proves completion?
|
|
11
14
|
|
|
@@ -19,6 +22,10 @@ Watch for:
|
|
|
19
22
|
- Tickets that create or reshape source files with no file-header acceptance criterion — undocumented files force every implementing agent to re-derive intent
|
|
20
23
|
- No regression suite named (pass-to-pass coverage unspecified)
|
|
21
24
|
- HITL work masquerading as AFK
|
|
25
|
+
- DESIGN work (semantics decisions, API shape, concurrency models) tagged or scheduled as AFK — semantics need an interactive session, not an overnight run
|
|
26
|
+
- Tickets tagged `complexity:xl` (epic-sized or semantics-heavy) presented as schedulable work instead of decomposition candidates
|
|
27
|
+
- AFK tickets with no objective gate and no `no-gate` tag
|
|
28
|
+
- Complexity grades that fail the falsifiable criteria — an S/M ticket touching a public API, an invariant, or concurrency code is mis-tagged and must be retagged L before scheduling
|
|
22
29
|
- Tickets that cannot be closed without information from another issue not listed as a blocker
|
|
23
30
|
|
|
24
31
|
Prefix findings with `EXEC-`.
|
package/content/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@ disable-model-invocation: true
|
|
|
12
12
|
|
|
13
13
|
#### Core Instructions (content/distilled/issues/references/create-issues/SKILL.md)
|
|
14
14
|
|
|
15
|
-
<!-- skill: create-issues, version: 1.
|
|
15
|
+
<!-- skill: create-issues, version: 1.5.0, status: verified -->
|
|
16
16
|
# Tracer-Bullet Issue Creation from Plan
|
|
17
17
|
|
|
18
18
|
Break a reviewed plan into independently grabbable issues using tracer-bullet vertical slices.
|
|
@@ -36,9 +36,19 @@ You are a Technical Project Manager. Translate a plan, spec, or PRD into thin en
|
|
|
36
36
|
- Prefer **vertical slices** over phase-by-phase horizontal tickets.
|
|
37
37
|
- Each issue should cut through all necessary layers for one narrow capability: storage/schema, business logic, interface, tests, and observability/docs when relevant.
|
|
38
38
|
- A slice must be independently verifiable or demoable.
|
|
39
|
-
- Mark each slice
|
|
40
|
-
- **
|
|
41
|
-
|
|
39
|
+
- Mark each slice with a **lane** (execution mode) and a **complexity** grade:
|
|
40
|
+
- **Lane:**
|
|
41
|
+
- **AFK** — bounded, mechanically verifiable, mergeable without human intervention; the `afk` label means "safe to run autonomously", so it may only be applied when an objective gate exists (test suite, CI, or Meter command). Label: `afk`.
|
|
42
|
+
- **DESIGN** — needs an interactive design session before implementation: semantics decisions, API shape, concurrency models, trade-offs. A human works this with a strong-reasoning model, never autonomously. Label: `design`.
|
|
43
|
+
- **HITL** — pure human decision, approval, copy review, or policy signoff with little or no model work. Label: `hitl`.
|
|
44
|
+
- **REVIEW** — second-opinion pass over existing output (code review, spec audit, conformance check). Label: `review`.
|
|
45
|
+
- **Complexity (effort / model tier)** — graded by falsifiable criteria so a reviewer can gate a wrong tag:
|
|
46
|
+
- **S** — matches an existing pattern in the repo (same change shape already exists in code or a prior ticket); ≤3 files; no new public interface, dependency, or invariant; the Meter is an existing test command. Label: `complexity:s`.
|
|
47
|
+
- **M** — multi-file change within established patterns; new tests follow existing conventions; no new public API beyond the slice's own; no concurrency or protocol semantics. Label: `complexity:m`.
|
|
48
|
+
- **L** — introduces or changes an invariant, concurrency semantics, protocol conformance, or a public API; correctness requires reasoning the repo's existing tests do not already encode. Label: `complexity:l`.
|
|
49
|
+
- **XL** — unresolved semantics or cross-repo scope: two competent agents would disagree on what "done" means; do not schedule — decompose into S/M/L slices first. Label: `complexity:xl`.
|
|
50
|
+
- **Grade gate:** an S/M ticket that touches a public API, an invariant, or concurrency code is mis-tagged — retag L before publishing; an L ticket fully covered by an existing pattern plus an existing test command is mis-tagged — retag M or S.
|
|
51
|
+
- Classification signals: `decision`-type tickets or titles starting with Decide/Choose/Approve/Scope → DESIGN or HITL, never AFK; bounded bugs with a failing test or concrete repro in a repo with CI → AFK; verification/conformance sweeps → AFK; concurrency/security/semantics work → DESIGN unless a failing repro test exists; epics → XL. If the target repo has no CI or test suite, tag `no-gate` — never schedule AFK work without a gate.
|
|
42
52
|
- Avoid tickets like “build backend”, “add UI”, or “refactor models first” unless the work is genuinely standalone.
|
|
43
53
|
- **Title lint (hard rule — run on every drafted title before presenting):** a title must name a user-visible outcome (“CSV export works end-to-end”), not a layer. If a title names a layer or artifact — backend, frontend, API, route, button, serializer, schema, tests-only, docs-only, refactor-only — merge it into the outcome slice it serves. Layers differing is never sufficient reason to split: split by capability, never by layer.
|
|
44
54
|
|
|
@@ -47,11 +57,13 @@ You are a Technical Project Manager. Translate a plan, spec, or PRD into thin en
|
|
|
47
57
|
- Present a numbered list before creating anything.
|
|
48
58
|
- For each slice include:
|
|
49
59
|
- **Title**
|
|
50
|
-
- **
|
|
60
|
+
- **Lane:** AFK | DESIGN | HITL | REVIEW
|
|
61
|
+
- **Complexity:** S | M | L | XL
|
|
62
|
+
- **Gate:** Meter command or CI suite (required for AFK; `no-gate` otherwise)
|
|
51
63
|
- **Blocked by:** slice numbers or “None”
|
|
52
64
|
- **User stories covered**
|
|
53
65
|
- **Why this is a tracer bullet:** brief end-to-end justification
|
|
54
|
-
- Ask whether the granularity, dependency graph, and
|
|
66
|
+
- Ask whether the granularity, dependency graph, and lane/complexity split look right.
|
|
55
67
|
- Iterate until approved.
|
|
56
68
|
|
|
57
69
|
5. **Prepare issue bodies:**
|
|
@@ -104,6 +116,9 @@ You are a Technical Project Manager. Translate a plan, spec, or PRD into thin en
|
|
|
104
116
|
- **Name the cheats:** add anti-goals wherever the gate could be gamed (test edits, new deps, API breaks).
|
|
105
117
|
- **Anchor staleness:** always record `base_commit` metadata at creation; never publish a ticket anchored to nothing.
|
|
106
118
|
- **Stop and ask:** if the plan only supports horizontal decomposition, propose a vertical rewrite before publishing.
|
|
119
|
+
- **Lane and complexity are mandatory metadata:** every published slice carries both (`bd update <id> --label design --label complexity:m`). Route by them, not by preference: S/M AFK work defaults to the cheapest capable model tier; DESIGN and L work gets the strongest reasoning tier with elevated effort.
|
|
120
|
+
- **No gate, no AFK label:** in a repo without CI/tests, tag `no-gate` *instead of* `afk` — the ticket is not scheduled autonomously until a gate exists; when one does, replace `no-gate` with `afk`.
|
|
121
|
+
- **Escalation is a retag:** after two failed implementation attempts, raise complexity one grade (S→M→L); if the failure cause is semantic (unclear spec or design rather than implementation), switch the lane to `design`. Record the failure cause in the ticket either way.
|
|
107
122
|
|
|
108
123
|
## References
|
|
109
124
|
- **Templates:** `references/templates.md`
|
|
@@ -133,7 +148,8 @@ Use these criteria to evaluate whether a plan has been translated into strong tr
|
|
|
133
148
|
| **Baseline anchored** | Measurable claims record the pre-work value and the HEAD SHA as `base_commit` metadata for staleness detection. |
|
|
134
149
|
| **Dependency hygiene** | Only real blockers are encoded; parallel work is not serialized without reason. |
|
|
135
150
|
| **Workflow Mandate** | Includes the mandatory TDD and Tidy First block. |
|
|
136
|
-
| **Execution mode** | Slice is explicitly marked AFK or
|
|
151
|
+
| **Execution mode** | Slice is explicitly marked with a lane (AFK/DESIGN/HITL/REVIEW) and a complexity grade (S/M/L/XL); AFK slices carry an objective gate or `no-gate` tag. |
|
|
152
|
+
| **Complexity honesty** | Complexity matches the work, not the optimism: XL is used when semantics or scope are unresolved, not as a badge. |
|
|
137
153
|
|
|
138
154
|
## Tracer-Bullet Heuristics
|
|
139
155
|
|
|
@@ -175,7 +191,9 @@ Use these templates for proposed slice breakdowns, issue descriptions, and the f
|
|
|
175
191
|
|
|
176
192
|
```markdown
|
|
177
193
|
1. **[Title]**
|
|
178
|
-
- **
|
|
194
|
+
- **Lane:** [AFK|DESIGN|HITL|REVIEW]
|
|
195
|
+
- **Complexity:** [S|M|L|XL]
|
|
196
|
+
- **Gate:** [Meter command / CI suite — required for AFK]
|
|
179
197
|
- **Blocked by:** [None | Slice 1, Slice 2]
|
|
180
198
|
- **User stories covered:** [Story A, Story B]
|
|
181
199
|
- **Tracer-bullet rationale:** [Why this is a thin end-to-end slice]
|
|
@@ -240,8 +258,8 @@ Or: `None - can start immediately`
|
|
|
240
258
|
**Plan:** [path/to/plan.md]
|
|
241
259
|
|
|
242
260
|
### Approved Slice Set
|
|
243
|
-
1. **[Title]** — [AFK|HITL], blocked by [None|IDs]
|
|
244
|
-
2. **[Title]** — [AFK|HITL], blocked by [None|IDs]
|
|
261
|
+
1. **[Title]** — [AFK|DESIGN|HITL|REVIEW] [S|M|L|XL], blocked by [None|IDs]
|
|
262
|
+
2. **[Title]** — [AFK|DESIGN|HITL|REVIEW] [S|M|L|XL], blocked by [None|IDs]
|
|
245
263
|
|
|
246
264
|
### Summary
|
|
247
265
|
- **Total Issues Created:** [count]
|
|
@@ -40,7 +40,7 @@ Treat the best issue sets as:
|
|
|
40
40
|
- thin vertical slices rather than layer tickets
|
|
41
41
|
- independently verifiable or demoable
|
|
42
42
|
- minimal but sufficient dependency graphs
|
|
43
|
-
- explicit about AFK
|
|
43
|
+
- explicit about lane (AFK/DESIGN/HITL/REVIEW) and complexity (S/M/L/XL) work
|
|
44
44
|
- traceable back to stories, plans, or specs
|
|
45
45
|
- self-describing: tickets that create or reshape source files carry the file-header criterion (see `file-headers`) — undocumented files force agents to re-derive intent
|
|
46
46
|
- machine-verifiable value claims: quantified Must gate, runnable Meter, explicit anti-goals, and a `base_commit` anchor that reveals staleness
|
|
@@ -340,6 +340,9 @@ Focus on:
|
|
|
340
340
|
- Is there a machine-checkable Must gate (quantified, unit + number) backed by a runnable Meter command?
|
|
341
341
|
- Are touched code files self-describing — Purpose/Responsibilities/Rationale header present and current (see `file-headers`)?
|
|
342
342
|
- Are priorities and labels sensible?
|
|
343
|
+
- Does every ticket carry lane and complexity metadata (`afk`/`design`/`hitl`/`review` + `complexity:s/m/l/xl`)?
|
|
344
|
+
- Are lane/complexity tags consistent with the work (DESIGN or HITL work never tagged `afk`)?
|
|
345
|
+
- Are AFK tickets backed by an objective gate (CI/test suite/Meter), or tagged `no-gate` and kept out of autonomous scheduling?
|
|
343
346
|
- Are HITL handoff points explicit?
|
|
344
347
|
- Is it clear what demo, test, or observable behavior proves completion?
|
|
345
348
|
|
|
@@ -353,6 +356,10 @@ Watch for:
|
|
|
353
356
|
- Tickets that create or reshape source files with no file-header acceptance criterion — undocumented files force every implementing agent to re-derive intent
|
|
354
357
|
- No regression suite named (pass-to-pass coverage unspecified)
|
|
355
358
|
- HITL work masquerading as AFK
|
|
359
|
+
- DESIGN work (semantics decisions, API shape, concurrency models) tagged or scheduled as AFK — semantics need an interactive session, not an overnight run
|
|
360
|
+
- Tickets tagged `complexity:xl` (epic-sized or semantics-heavy) presented as schedulable work instead of decomposition candidates
|
|
361
|
+
- AFK tickets with no objective gate and no `no-gate` tag
|
|
362
|
+
- Complexity grades that fail the falsifiable criteria — an S/M ticket touching a public API, an invariant, or concurrency code is mis-tagged and must be retagged L before scheduling
|
|
356
363
|
- Tickets that cannot be closed without information from another issue not listed as a blocker
|
|
357
364
|
|
|
358
365
|
Prefix findings with `EXEC-`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- skill: create-issues, version: 1.
|
|
1
|
+
<!-- skill: create-issues, version: 1.5.0, status: verified -->
|
|
2
2
|
# Tracer-Bullet Issue Creation from Plan
|
|
3
3
|
|
|
4
4
|
Break a reviewed plan into independently grabbable issues using tracer-bullet vertical slices.
|
|
@@ -22,9 +22,19 @@ You are a Technical Project Manager. Translate a plan, spec, or PRD into thin en
|
|
|
22
22
|
- Prefer **vertical slices** over phase-by-phase horizontal tickets.
|
|
23
23
|
- Each issue should cut through all necessary layers for one narrow capability: storage/schema, business logic, interface, tests, and observability/docs when relevant.
|
|
24
24
|
- A slice must be independently verifiable or demoable.
|
|
25
|
-
- Mark each slice
|
|
26
|
-
- **
|
|
27
|
-
|
|
25
|
+
- Mark each slice with a **lane** (execution mode) and a **complexity** grade:
|
|
26
|
+
- **Lane:**
|
|
27
|
+
- **AFK** — bounded, mechanically verifiable, mergeable without human intervention; the `afk` label means "safe to run autonomously", so it may only be applied when an objective gate exists (test suite, CI, or Meter command). Label: `afk`.
|
|
28
|
+
- **DESIGN** — needs an interactive design session before implementation: semantics decisions, API shape, concurrency models, trade-offs. A human works this with a strong-reasoning model, never autonomously. Label: `design`.
|
|
29
|
+
- **HITL** — pure human decision, approval, copy review, or policy signoff with little or no model work. Label: `hitl`.
|
|
30
|
+
- **REVIEW** — second-opinion pass over existing output (code review, spec audit, conformance check). Label: `review`.
|
|
31
|
+
- **Complexity (effort / model tier)** — graded by falsifiable criteria so a reviewer can gate a wrong tag:
|
|
32
|
+
- **S** — matches an existing pattern in the repo (same change shape already exists in code or a prior ticket); ≤3 files; no new public interface, dependency, or invariant; the Meter is an existing test command. Label: `complexity:s`.
|
|
33
|
+
- **M** — multi-file change within established patterns; new tests follow existing conventions; no new public API beyond the slice's own; no concurrency or protocol semantics. Label: `complexity:m`.
|
|
34
|
+
- **L** — introduces or changes an invariant, concurrency semantics, protocol conformance, or a public API; correctness requires reasoning the repo's existing tests do not already encode. Label: `complexity:l`.
|
|
35
|
+
- **XL** — unresolved semantics or cross-repo scope: two competent agents would disagree on what "done" means; do not schedule — decompose into S/M/L slices first. Label: `complexity:xl`.
|
|
36
|
+
- **Grade gate:** an S/M ticket that touches a public API, an invariant, or concurrency code is mis-tagged — retag L before publishing; an L ticket fully covered by an existing pattern plus an existing test command is mis-tagged — retag M or S.
|
|
37
|
+
- Classification signals: `decision`-type tickets or titles starting with Decide/Choose/Approve/Scope → DESIGN or HITL, never AFK; bounded bugs with a failing test or concrete repro in a repo with CI → AFK; verification/conformance sweeps → AFK; concurrency/security/semantics work → DESIGN unless a failing repro test exists; epics → XL. If the target repo has no CI or test suite, tag `no-gate` — never schedule AFK work without a gate.
|
|
28
38
|
- Avoid tickets like “build backend”, “add UI”, or “refactor models first” unless the work is genuinely standalone.
|
|
29
39
|
- **Title lint (hard rule — run on every drafted title before presenting):** a title must name a user-visible outcome (“CSV export works end-to-end”), not a layer. If a title names a layer or artifact — backend, frontend, API, route, button, serializer, schema, tests-only, docs-only, refactor-only — merge it into the outcome slice it serves. Layers differing is never sufficient reason to split: split by capability, never by layer.
|
|
30
40
|
|
|
@@ -33,11 +43,13 @@ You are a Technical Project Manager. Translate a plan, spec, or PRD into thin en
|
|
|
33
43
|
- Present a numbered list before creating anything.
|
|
34
44
|
- For each slice include:
|
|
35
45
|
- **Title**
|
|
36
|
-
- **
|
|
46
|
+
- **Lane:** AFK | DESIGN | HITL | REVIEW
|
|
47
|
+
- **Complexity:** S | M | L | XL
|
|
48
|
+
- **Gate:** Meter command or CI suite (required for AFK; `no-gate` otherwise)
|
|
37
49
|
- **Blocked by:** slice numbers or “None”
|
|
38
50
|
- **User stories covered**
|
|
39
51
|
- **Why this is a tracer bullet:** brief end-to-end justification
|
|
40
|
-
- Ask whether the granularity, dependency graph, and
|
|
52
|
+
- Ask whether the granularity, dependency graph, and lane/complexity split look right.
|
|
41
53
|
- Iterate until approved.
|
|
42
54
|
|
|
43
55
|
5. **Prepare issue bodies:**
|
|
@@ -90,6 +102,9 @@ You are a Technical Project Manager. Translate a plan, spec, or PRD into thin en
|
|
|
90
102
|
- **Name the cheats:** add anti-goals wherever the gate could be gamed (test edits, new deps, API breaks).
|
|
91
103
|
- **Anchor staleness:** always record `base_commit` metadata at creation; never publish a ticket anchored to nothing.
|
|
92
104
|
- **Stop and ask:** if the plan only supports horizontal decomposition, propose a vertical rewrite before publishing.
|
|
105
|
+
- **Lane and complexity are mandatory metadata:** every published slice carries both (`bd update <id> --label design --label complexity:m`). Route by them, not by preference: S/M AFK work defaults to the cheapest capable model tier; DESIGN and L work gets the strongest reasoning tier with elevated effort.
|
|
106
|
+
- **No gate, no AFK label:** in a repo without CI/tests, tag `no-gate` *instead of* `afk` — the ticket is not scheduled autonomously until a gate exists; when one does, replace `no-gate` with `afk`.
|
|
107
|
+
- **Escalation is a retag:** after two failed implementation attempts, raise complexity one grade (S→M→L); if the failure cause is semantic (unclear spec or design rather than implementation), switch the lane to `design`. Record the failure cause in the ticket either way.
|
|
93
108
|
|
|
94
109
|
## References
|
|
95
110
|
- **Templates:** `references/templates.md`
|
|
@@ -18,7 +18,8 @@ Use these criteria to evaluate whether a plan has been translated into strong tr
|
|
|
18
18
|
| **Baseline anchored** | Measurable claims record the pre-work value and the HEAD SHA as `base_commit` metadata for staleness detection. |
|
|
19
19
|
| **Dependency hygiene** | Only real blockers are encoded; parallel work is not serialized without reason. |
|
|
20
20
|
| **Workflow Mandate** | Includes the mandatory TDD and Tidy First block. |
|
|
21
|
-
| **Execution mode** | Slice is explicitly marked AFK or
|
|
21
|
+
| **Execution mode** | Slice is explicitly marked with a lane (AFK/DESIGN/HITL/REVIEW) and a complexity grade (S/M/L/XL); AFK slices carry an objective gate or `no-gate` tag. |
|
|
22
|
+
| **Complexity honesty** | Complexity matches the work, not the optimism: XL is used when semantics or scope are unresolved, not as a badge. |
|
|
22
23
|
|
|
23
24
|
## Tracer-Bullet Heuristics
|
|
24
25
|
|
|
@@ -6,7 +6,9 @@ Use these templates for proposed slice breakdowns, issue descriptions, and the f
|
|
|
6
6
|
|
|
7
7
|
```markdown
|
|
8
8
|
1. **[Title]**
|
|
9
|
-
- **
|
|
9
|
+
- **Lane:** [AFK|DESIGN|HITL|REVIEW]
|
|
10
|
+
- **Complexity:** [S|M|L|XL]
|
|
11
|
+
- **Gate:** [Meter command / CI suite — required for AFK]
|
|
10
12
|
- **Blocked by:** [None | Slice 1, Slice 2]
|
|
11
13
|
- **User stories covered:** [Story A, Story B]
|
|
12
14
|
- **Tracer-bullet rationale:** [Why this is a thin end-to-end slice]
|
|
@@ -71,8 +73,8 @@ Or: `None - can start immediately`
|
|
|
71
73
|
**Plan:** [path/to/plan.md]
|
|
72
74
|
|
|
73
75
|
### Approved Slice Set
|
|
74
|
-
1. **[Title]** — [AFK|HITL], blocked by [None|IDs]
|
|
75
|
-
2. **[Title]** — [AFK|HITL], blocked by [None|IDs]
|
|
76
|
+
1. **[Title]** — [AFK|DESIGN|HITL|REVIEW] [S|M|L|XL], blocked by [None|IDs]
|
|
77
|
+
2. **[Title]** — [AFK|DESIGN|HITL|REVIEW] [S|M|L|XL], blocked by [None|IDs]
|
|
76
78
|
|
|
77
79
|
### Summary
|
|
78
80
|
- **Total Issues Created:** [count]
|
|
@@ -26,7 +26,7 @@ Treat the best issue sets as:
|
|
|
26
26
|
- thin vertical slices rather than layer tickets
|
|
27
27
|
- independently verifiable or demoable
|
|
28
28
|
- minimal but sufficient dependency graphs
|
|
29
|
-
- explicit about AFK
|
|
29
|
+
- explicit about lane (AFK/DESIGN/HITL/REVIEW) and complexity (S/M/L/XL) work
|
|
30
30
|
- traceable back to stories, plans, or specs
|
|
31
31
|
- self-describing: tickets that create or reshape source files carry the file-header criterion (see `file-headers`) — undocumented files force agents to re-derive intent
|
|
32
32
|
- machine-verifiable value claims: quantified Must gate, runnable Meter, explicit anti-goals, and a `base_commit` anchor that reveals staleness
|
|
@@ -6,6 +6,9 @@ Focus on:
|
|
|
6
6
|
- Is there a machine-checkable Must gate (quantified, unit + number) backed by a runnable Meter command?
|
|
7
7
|
- Are touched code files self-describing — Purpose/Responsibilities/Rationale header present and current (see `file-headers`)?
|
|
8
8
|
- Are priorities and labels sensible?
|
|
9
|
+
- Does every ticket carry lane and complexity metadata (`afk`/`design`/`hitl`/`review` + `complexity:s/m/l/xl`)?
|
|
10
|
+
- Are lane/complexity tags consistent with the work (DESIGN or HITL work never tagged `afk`)?
|
|
11
|
+
- Are AFK tickets backed by an objective gate (CI/test suite/Meter), or tagged `no-gate` and kept out of autonomous scheduling?
|
|
9
12
|
- Are HITL handoff points explicit?
|
|
10
13
|
- Is it clear what demo, test, or observable behavior proves completion?
|
|
11
14
|
|
|
@@ -19,6 +22,10 @@ Watch for:
|
|
|
19
22
|
- Tickets that create or reshape source files with no file-header acceptance criterion — undocumented files force every implementing agent to re-derive intent
|
|
20
23
|
- No regression suite named (pass-to-pass coverage unspecified)
|
|
21
24
|
- HITL work masquerading as AFK
|
|
25
|
+
- DESIGN work (semantics decisions, API shape, concurrency models) tagged or scheduled as AFK — semantics need an interactive session, not an overnight run
|
|
26
|
+
- Tickets tagged `complexity:xl` (epic-sized or semantics-heavy) presented as schedulable work instead of decomposition candidates
|
|
27
|
+
- AFK tickets with no objective gate and no `no-gate` tag
|
|
28
|
+
- Complexity grades that fail the falsifiable criteria — an S/M ticket touching a public API, an invariant, or concurrency code is mis-tagged and must be retagged L before scheduling
|
|
22
29
|
- Tickets that cannot be closed without information from another issue not listed as a blocker
|
|
23
30
|
|
|
24
31
|
Prefix findings with `EXEC-`.
|