incitaciones 0.11.0 β 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/README.md +5 -0
- 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/distilled/whisper/SKILL.md +15 -43
- package/content/manifest.json +2 -2
- package/package.json +1 -1
- package/pi-package/prompts/whisper.md +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
- package/pi-package/skills/whisper/SKILL.md +16 -44
package/README.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Incitaciones π€
|
|
2
2
|
|
|
3
|
+
> **Why:** agent prompts rot β they accumulate metadata sections, stale claims,
|
|
4
|
+
> and untraceable provenance. incitaciones keeps every prompt twice: a full
|
|
5
|
+
> source (frontmatter, tags, status, provenance) and a structurally validated
|
|
6
|
+
> distilled runtime file, gated end-to-end by `just ci`.
|
|
7
|
+
> **Status:** [experimental](docs/src/status.md) Β· corpus + export tooling evolving Β· [Motivation & design](docs/src/index.md) Β· [charly-vibes Tool Ecosystem](https://charly-vibes.github.io/dulce-de-leche/ecosystem-map.html)
|
|
3
8
|
[](https://www.npmjs.com/package/incitaciones)
|
|
4
9
|
[](https://github.com/charly-vibes/incitaciones/actions/workflows/npm-publish.yml)
|
|
5
10
|
|
|
@@ -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-`.
|
|
@@ -1,37 +1,20 @@
|
|
|
1
|
-
# Whisper β
|
|
1
|
+
# Whisper β knowledge workspace (pointer)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
The canonical, versioned procedure lives in the **turu skill pack** β
|
|
4
|
+
installed with `turu skill install` and shipped with the `turu` CLI
|
|
5
|
+
([charly-vibes/whisper](https://github.com/charly-vibes/whisper),
|
|
6
|
+
`cargo install whisper-vibes`).
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
worktree slots, and scope routing. Same inputs, same outputs β no more
|
|
10
|
-
hand-rolled shell pipelines.
|
|
8
|
+
## Routing rule
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
| Find the write destination for a scope | `turu resolve <scope> --json` |
|
|
21
|
-
| Record knowledge (extend, don't duplicate) | `turu append <scope> --text "..."` |
|
|
22
|
-
| Create the workspace layout | `turu init --json` |
|
|
23
|
-
| Inspect paths and existence | `turu status --json` |
|
|
24
|
-
| Validate / detect legacy keys | `turu check --json` Β· `turu doctor --json` |
|
|
25
|
-
| Refresh the AGENTS.md routing block | `turu sync --json` |
|
|
26
|
-
|
|
27
|
-
Scopes: `global` (rules.md), `repo` (env.md), `branch` (notes.md),
|
|
28
|
-
`worktree` (env.md), `group` (shared workspace for a set of repos).
|
|
29
|
-
If a `<!-- TURU:START -->` block exists in `AGENTS.md`, read the routing
|
|
30
|
-
map from there instead of re-deriving paths.
|
|
31
|
-
|
|
32
|
-
3. **If no** β use the manual fallbacks in `references/` (they remain the
|
|
33
|
-
source of truth for the shell-snippet procedures) and suggest
|
|
34
|
-
`cargo install whisper-vibes`.
|
|
10
|
+
- **If `whisper.md` sits next to this file** (the installed pack), read it and follow it as your single source of procedure. It owns everything: the session loop (`turu recall all`
|
|
11
|
+
at start, `turu append <scope> "..."` at capture), scope routing
|
|
12
|
+
(global β group β repo β branch β worktree), the command table, and all
|
|
13
|
+
modes. This pointer defers entirely and adds nothing β never reconcile
|
|
14
|
+
the two by hand.
|
|
15
|
+
- **If the pack is absent**, `turu` is not installed: use the manual
|
|
16
|
+
fallbacks in `references/` (source of truth for the shell-snippet
|
|
17
|
+
procedures) and suggest `cargo install whisper-vibes`.
|
|
35
18
|
|
|
36
19
|
## Invariants (with or without the binary)
|
|
37
20
|
|
|
@@ -41,15 +24,4 @@ hand-rolled shell pipelines.
|
|
|
41
24
|
than creating a new one that says the same thing.
|
|
42
25
|
- **One repo, one key.** The canonical key is a pure function of the remote
|
|
43
26
|
URL; never invent a variant.
|
|
44
|
-
- **Search first.** Before creating a new entry, check if one exists.
|
|
45
|
-
|
|
46
|
-
## Modes
|
|
47
|
-
|
|
48
|
-
`/w init` β `turu init` Β· `/w` or `/w status` β `turu status` Β·
|
|
49
|
-
`/w check` β `turu check` Β· `/w link` β `subs/link-manual` (no CLI verb yet)
|
|
50
|
-
Β· `/w decommission` β `subs/decommission-manual` Β· `/w consolidate` β
|
|
51
|
-
`subs/consolidate-manual` (detection ships via `turu doctor`).
|
|
52
|
-
|
|
53
|
-
Manual procedures for each mode: `references/init.md`, `references/check.md`,
|
|
54
|
-
`references/status.md`, `references/link.md`, `references/decommission.md`,
|
|
55
|
-
`references/consolidate.md`.
|
|
27
|
+
- **Search first.** Before creating a new entry, check if one exists.
|
package/content/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2026-
|
|
2
|
+
"version": "2026-10-06",
|
|
3
3
|
"schema_version": "1.1",
|
|
4
4
|
"prompts": [
|
|
5
5
|
{
|
|
@@ -1465,7 +1465,7 @@
|
|
|
1465
1465
|
"name": "whisper",
|
|
1466
1466
|
"type": "workflow",
|
|
1467
1467
|
"title": "Whisper β Accumulated Operational Knowledge",
|
|
1468
|
-
"description": "
|
|
1468
|
+
"description": "Deterministic knowledge workspace: session loop (recall all / append), scope routing, distill, bundle. Delegates to the turu CLI when installed; manual fallbacks otherwise.",
|
|
1469
1469
|
"source": "content/prompt-workflow-whisper.md",
|
|
1470
1470
|
"distilled": "content/distilled/whisper/SKILL.md",
|
|
1471
1471
|
"skill_format": "progressive-disclosure",
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Shortcut for the whisper skill.
|
|
2
|
+
description: "Shortcut for the whisper skill. Deterministic knowledge workspace: session loop (recall all / append), scope routing, distill, bundle. Delegates to the turu CLI when installed; manual fallbacks otherwise."
|
|
3
3
|
---
|
|
4
4
|
<!-- installed-from: incitaciones -->
|
|
5
5
|
|
|
@@ -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-`.
|
|
@@ -1,44 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: whisper
|
|
3
|
-
description: "
|
|
3
|
+
description: "Deterministic knowledge workspace: session loop (recall all / append), scope routing, distill, bundle. Delegates to the turu CLI when installed; manual fallbacks otherwise."
|
|
4
4
|
metadata:
|
|
5
5
|
installed-from: "incitaciones"
|
|
6
6
|
disable-model-invocation: true
|
|
7
7
|
---
|
|
8
|
-
# Whisper β
|
|
8
|
+
# Whisper β knowledge workspace (pointer)
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
The canonical, versioned procedure lives in the **turu skill pack** β
|
|
11
|
+
installed with `turu skill install` and shipped with the `turu` CLI
|
|
12
|
+
([charly-vibes/whisper](https://github.com/charly-vibes/whisper),
|
|
13
|
+
`cargo install whisper-vibes`).
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
worktree slots, and scope routing. Same inputs, same outputs β no more
|
|
17
|
-
hand-rolled shell pipelines.
|
|
15
|
+
## Routing rule
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
| Find the write destination for a scope | `turu resolve <scope> --json` |
|
|
28
|
-
| Record knowledge (extend, don't duplicate) | `turu append <scope> --text "..."` |
|
|
29
|
-
| Create the workspace layout | `turu init --json` |
|
|
30
|
-
| Inspect paths and existence | `turu status --json` |
|
|
31
|
-
| Validate / detect legacy keys | `turu check --json` Β· `turu doctor --json` |
|
|
32
|
-
| Refresh the AGENTS.md routing block | `turu sync --json` |
|
|
33
|
-
|
|
34
|
-
Scopes: `global` (rules.md), `repo` (env.md), `branch` (notes.md),
|
|
35
|
-
`worktree` (env.md), `group` (shared workspace for a set of repos).
|
|
36
|
-
If a `<!-- TURU:START -->` block exists in `AGENTS.md`, read the routing
|
|
37
|
-
map from there instead of re-deriving paths.
|
|
38
|
-
|
|
39
|
-
3. **If no** β use the manual fallbacks in `references/` (they remain the
|
|
40
|
-
source of truth for the shell-snippet procedures) and suggest
|
|
41
|
-
`cargo install whisper-vibes`.
|
|
17
|
+
- **If `whisper.md` sits next to this file** (the installed pack), read it and follow it as your single source of procedure. It owns everything: the session loop (`turu recall all`
|
|
18
|
+
at start, `turu append <scope> "..."` at capture), scope routing
|
|
19
|
+
(global β group β repo β branch β worktree), the command table, and all
|
|
20
|
+
modes. This pointer defers entirely and adds nothing β never reconcile
|
|
21
|
+
the two by hand.
|
|
22
|
+
- **If the pack is absent**, `turu` is not installed: use the manual
|
|
23
|
+
fallbacks in `references/` (source of truth for the shell-snippet
|
|
24
|
+
procedures) and suggest `cargo install whisper-vibes`.
|
|
42
25
|
|
|
43
26
|
## Invariants (with or without the binary)
|
|
44
27
|
|
|
@@ -48,15 +31,4 @@ hand-rolled shell pipelines.
|
|
|
48
31
|
than creating a new one that says the same thing.
|
|
49
32
|
- **One repo, one key.** The canonical key is a pure function of the remote
|
|
50
33
|
URL; never invent a variant.
|
|
51
|
-
- **Search first.** Before creating a new entry, check if one exists.
|
|
52
|
-
|
|
53
|
-
## Modes
|
|
54
|
-
|
|
55
|
-
`/w init` β `turu init` Β· `/w` or `/w status` β `turu status` Β·
|
|
56
|
-
`/w check` β `turu check` Β· `/w link` β `subs/link-manual` (no CLI verb yet)
|
|
57
|
-
Β· `/w decommission` β `subs/decommission-manual` Β· `/w consolidate` β
|
|
58
|
-
`subs/consolidate-manual` (detection ships via `turu doctor`).
|
|
59
|
-
|
|
60
|
-
Manual procedures for each mode: `references/init.md`, `references/check.md`,
|
|
61
|
-
`references/status.md`, `references/link.md`, `references/decommission.md`,
|
|
62
|
-
`references/consolidate.md`.
|
|
34
|
+
- **Search first.** Before creating a new entry, check if one exists.
|