@boopkit/cap-workflows 0.1.1 → 0.2.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/capability.json CHANGED
@@ -15,6 +15,7 @@
15
15
  "boop-issue-sweep-workflow",
16
16
  "boop-website-dev-workflow",
17
17
  "boop-design-handoff-workflow",
18
- "boop-knowledge-backfill"
18
+ "boop-knowledge-backfill",
19
+ "boop-stray-disposition"
19
20
  ]
20
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boopkit/cap-workflows",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Reusable end-to-end development and writing workflows for AI agents",
5
5
  "files": [
6
6
  "skills/",
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: boop-stray-disposition
3
+ description: "When an autonomous run (a loop, a sweep, a sub-agent session) has finished and filed follow-up issues along the way, settle each one before you write the closing summary. Every stray gets a recorded disposition — re-parented and reachable from the roadmap, folded into a spec and closed, or triaged away. Use this whenever a run ends with issues in the queue that nobody has decided to do."
4
+ metadata:
5
+ category: workflow
6
+ ---
7
+
8
+ # Stray disposition — settle what a run filed before you call it done
9
+
10
+ Agents working through an autonomous run routinely file follow-up issues during review and
11
+ punch-list work without parenting them to the epic they arose from. Those issues land in the
12
+ ready queue disconnected from the context that produced them. After every run, before the
13
+ closing summary, audit for these strays and give each one a **disposition** — the deliberate
14
+ settling of what becomes of it — so nothing is left in limbo.
15
+
16
+ Find them by running `bd ready` and `bd list --status=open` and identifying the issues this run
17
+ filed: they cite the run's findings or the files it touched.
18
+
19
+ ## The three dispositions
20
+
21
+ 1. **Re-parent** — the stray belongs to the work that just ran. Move it under the run's epic, or
22
+ group several strays under a new discovered-from epic (`Group: <work> hardening`) for a
23
+ follow-on run scoped to that prefix on the same branch, so the operator still reviews and
24
+ merges once.
25
+
26
+ 2. **Fold** — the stray is requirements or evidence for a spec that is already planned. Move the
27
+ substance into that spec's text and close the issue with a reason pointing at the spec. A
28
+ future run plans from the spec, never from the closed queue, so content left behind in the
29
+ issue would never reach it.
30
+
31
+ 3. **Triage** — a true orphan. Close it with a reason if it does not survive scrutiny, or surface
32
+ it to the operator in the closing summary for a decision. Never leave it silently in the queue.
33
+
34
+ ## Re-parenting alone is not a disposition
35
+
36
+ Nothing polls or sweeps the issue queue. Work reaches an agent only through the plan spec and the
37
+ runs it launches. A stray moved under an epic that no planned run will execute is still stranded —
38
+ just tidier.
39
+
40
+ A disposition is complete only when the stray is **reachable from the roadmap**: the plan spec
41
+ names the issue and the trigger for picking it up, or the substance is folded into a spec, or the
42
+ issue is closed.
43
+
44
+ If the stray must wait on an event, encode the sequencing as a dependency (`bd dep`) on the issue
45
+ that produces that event. A dependency is visible and self-releasing. Deferring an issue only
46
+ hides it from the ready queue until a date, which helps nobody who is not already polling.
47
+
48
+ ## Fold versus reference is a judgement call
49
+
50
+ **Fold** — extract the substance into the spec so it reads complete cold, close the issue, and
51
+ leave pointers at both ends — when the next reader is a planner working from the spec.
52
+
53
+ **Keep the issue open and give the spec a one-line reference instead** when the finding is
54
+ operational rather than design-shaped (a bug with reproduction steps that will be worked *as* an
55
+ issue), when the issue is a living artifact with discussion or an owner, or when the content is
56
+ too bulky to fold without bloating the spec.
57
+
58
+ The test under both: put the substance where its next reader will actually look, and leave a
59
+ pointer at the other end.
60
+
61
+ ## Archiving a spec orphans the issues it rooted
62
+
63
+ When closeout moves a spec to a history location, any open issue whose only roadmap reference
64
+ lived in that spec is stranded again. Migrate those references to the successor document — the
65
+ remainder spec, or the plan — as part of the same sweep.
66
+
67
+ ## The test at the end
68
+
69
+ Every stray filed during the run has a recorded disposition, each disposition ends at the roadmap
70
+ or at a closed issue, and the ready queue contains only work someone has actually decided to do.
71
+
72
+ A queue that accumulates undispositioned findings makes every future `bd ready` call more
73
+ expensive to read. That noise is what this practice exists to prevent.
74
+
75
+ ## Related
76
+
77
+ - `boop-project-mgmt-beads-planning` — how to write and parent the issues a disposition re-parents
78
+ or folds, so the next agent can pick one up cold.
79
+ - `boop-issue-sweep-workflow` — when the strays have already accumulated into a backlog and want
80
+ clearing as a batch rather than settling one run's output.