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.
@@ -1,4 +1,4 @@
1
- <!-- skill: create-issues, version: 1.4.1, status: verified -->
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 as:
26
- - **AFK** — can be implemented and merged without human intervention.
27
- - **HITL** — requires a human decision, approval, design review, copy review, policy signoff, etc.
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
- - **Type:** AFK or HITL
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 AFK/HITL split look right.
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 HITL. |
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
- - **Type:** [AFK|HITL]
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 vs HITL work
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-`.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026-09-30",
2
+ "version": "2026-10-06",
3
3
  "schema_version": "1.1",
4
4
  "prompts": [
5
5
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "incitaciones",
3
- "version": "0.11.1",
3
+ "version": "0.12.0",
4
4
  "description": "Reusable prompts and skills for CLI LLM tools, with native pi package support.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -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.4.1, status: verified -->
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 as:
40
- - **AFK** — can be implemented and merged without human intervention.
41
- - **HITL** — requires a human decision, approval, design review, copy review, policy signoff, etc.
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
- - **Type:** AFK or HITL
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 AFK/HITL split look right.
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 HITL. |
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
- - **Type:** [AFK|HITL]
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 vs HITL work
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.4.1, status: verified -->
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 as:
26
- - **AFK** — can be implemented and merged without human intervention.
27
- - **HITL** — requires a human decision, approval, design review, copy review, policy signoff, etc.
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
- - **Type:** AFK or HITL
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 AFK/HITL split look right.
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 HITL. |
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
- - **Type:** [AFK|HITL]
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 vs HITL work
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-`.