@ikon85/agent-workflow-kit 0.33.0 → 0.34.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/.agents/skills/ask-matt/SKILL.md +4 -3
- package/.agents/skills/audit-skills/SKILL.md +6 -0
- package/.agents/skills/board-to-waves/SKILL.md +6 -2
- package/.agents/skills/code-review/SKILL.md +6 -0
- package/.agents/skills/codebase-design/DESIGN-IT-TWICE.md +11 -1
- package/.agents/skills/codex-adapter-sync/SKILL.md +23 -19
- package/.agents/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +6 -0
- package/.agents/skills/improve-codebase-architecture/SKILL.md +10 -1
- package/.agents/skills/kit-update/SKILL.md +13 -0
- package/.agents/skills/orchestrate-wave/SKILL.md +1 -1
- package/.agents/skills/orchestrate-wave/references/dispatch-subagents.md +23 -11
- package/.agents/skills/orchestrate-wave/references/dispatch-workflow.md +8 -0
- package/.agents/skills/research/SKILL.md +6 -0
- package/.agents/skills/scale-check/SKILL.md +9 -7
- package/.agents/skills/setup-workflow/SKILL.md +47 -1
- package/.agents/skills/setup-workflow/board-sync.md +7 -2
- package/.agents/skills/setup-workflow/workflow-overview.md +1 -2
- package/.agents/skills/to-issues/SKILL.md +66 -8
- package/.agents/skills/to-waves/SKILL.md +24 -12
- package/.claude/skills/ask-matt/SKILL.md +4 -3
- package/.claude/skills/audit-skills/SKILL.md +6 -0
- package/.claude/skills/board-to-waves/SKILL.md +6 -2
- package/.claude/skills/code-review/SKILL.md +6 -0
- package/.claude/skills/codebase-design/DESIGN-IT-TWICE.md +8 -0
- package/.claude/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +6 -0
- package/.claude/skills/improve-codebase-architecture/SKILL.md +6 -0
- package/.claude/skills/kit-update/SKILL.md +13 -0
- package/.claude/skills/orchestrate-wave/SKILL.md +1 -1
- package/.claude/skills/orchestrate-wave/references/dispatch-subagents.md +23 -11
- package/.claude/skills/orchestrate-wave/references/dispatch-workflow.md +8 -0
- package/.claude/skills/research/SKILL.md +6 -0
- package/.claude/skills/scale-check/SKILL.md +9 -7
- package/.claude/skills/setup-workflow/SKILL.md +47 -1
- package/.claude/skills/setup-workflow/board-sync.md +7 -2
- package/.claude/skills/setup-workflow/workflow-overview.md +1 -2
- package/.claude/skills/to-issues/SKILL.md +66 -8
- package/.claude/skills/to-waves/SKILL.md +24 -12
- package/README.md +79 -11
- package/agent-workflow-kit.package.json +201 -41
- package/docs/adr/0005-to-issues-is-the-planning-facade.md +42 -0
- package/docs/adr/0006-routing-knowledge-access-and-policy-are-separate.md +91 -0
- package/docs/agents/skills/local-ci.md +89 -0
- package/docs/agents/wave-anchor-template.md +2 -2
- package/docs/methodology.html +1 -1
- package/docs/methodology.svg +1 -1
- package/docs/workflow.html +2 -2
- package/docs/workflow.png +0 -0
- package/package.json +1 -1
- package/scripts/codex-exec.sh +47 -8
- package/scripts/codex-exec.test.mjs +56 -0
- package/scripts/test_codex_adapter_sync_contract.py +30 -15
- package/scripts/test_orchestrate_wave_contract.py +73 -0
- package/scripts/test_program_planning_contract.py +70 -0
- package/scripts/test_skill_portability_lint.py +54 -0
- package/src/cli.mjs +109 -2
- package/src/commands/init.mjs +17 -1
- package/src/commands/routing-policy-update.mjs +204 -0
- package/src/commands/update.mjs +22 -0
- package/src/lib/agentSurfaceRegistry.mjs +60 -0
- package/src/lib/bundle.mjs +24 -0
- package/src/lib/capabilityMatrix.mjs +85 -0
- package/src/lib/dispatchReceipt.mjs +162 -0
- package/src/lib/frontendWorkloads.mjs +170 -0
- package/src/lib/routeDispatcher.mjs +158 -0
- package/src/lib/routingAccessGraph.mjs +105 -0
- package/src/lib/routingAdapters/claude.mjs +62 -0
- package/src/lib/routingAdapters/codex.mjs +136 -0
- package/src/lib/routingCatalog.mjs +123 -0
- package/src/lib/routingEvidenceCache.mjs +222 -0
- package/src/lib/routingIntent.mjs +93 -0
- package/src/lib/routingPolicy.mjs +67 -0
- package/src/lib/routingProfile.mjs +334 -0
- package/src/lib/routingResolver.mjs +176 -0
- package/src/lib/routingSources/artificialAnalysis.mjs +129 -0
- package/src/lib/routingSources/benchlm.mjs +151 -0
- package/src/lib/routingSources/codeArena.mjs +162 -0
- package/src/lib/routingSources/deepswe.mjs +106 -0
- package/src/lib/routingSources/openhands.mjs +102 -0
- package/src/lib/routingSources/openhandsFrontend.mjs +135 -0
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: to-waves
|
|
3
3
|
disable-model-invocation: true
|
|
4
|
-
description: "
|
|
4
|
+
description: "Internal Program graph engine behind the public to-issues Planning facade. Turns an explicitly identified Program-PRD into execute-ready wave anchors and slice leaves after one complete chat preview. Kept as a disabled compatibility entrypoint for existing explicit invocations; normal routing always selects to-issues."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# to-waves —
|
|
7
|
+
# to-waves — Internal Program graph engine
|
|
8
|
+
|
|
9
|
+
This skill is an **Internal Program graph engine**, selected by `to-issues` only
|
|
10
|
+
when the source carries explicit, coherent Program identity. It is not a second
|
|
11
|
+
public Planning route. The disabled `/to-waves` invocation remains only as a
|
|
12
|
+
compatibility entrypoint for existing callers and tests; it applies this same
|
|
13
|
+
contract and should direct future normal use to `/to-issues`.
|
|
8
14
|
|
|
9
15
|
Takes a **Program-PRD** — the native Sub-Issue anchor over a multi-wave program
|
|
10
16
|
(Programm → Phase → Welle → Slice) — and turns its `## Wellenplan` chapter into
|
|
11
17
|
**fully planned wave anchors + slice leaves** on the board. Pipeline position:
|
|
12
|
-
`scale-check → grill → to-prd (program mode) → to-
|
|
13
|
-
`to-prd → spec-self-critique → to-issues` maturity
|
|
14
|
-
|
|
18
|
+
`scale-check → grill → to-prd (program mode) → to-issues`, with this internal
|
|
19
|
+
engine owning the per-wave `to-prd → spec-self-critique → to-issues` maturity
|
|
20
|
+
pass inside this run.
|
|
21
|
+
The **grill and to-prd sit upstream**; the facade dispatches here once the
|
|
22
|
+
Program-PRD exists and its identity is coherent.
|
|
15
23
|
It **never invents structure** — it only unfolds what the plan already decided.
|
|
16
24
|
|
|
17
25
|
<!-- readiness:required-preflight:start -->
|
|
@@ -24,8 +32,8 @@ node scripts/readiness.mjs check --skill to-waves --json
|
|
|
24
32
|
```
|
|
25
33
|
|
|
26
34
|
- `verdict=ready`: continue with the existing workflow without announcing the check. **Ready is silent.**
|
|
27
|
-
- `verdict=blocked`: `STOP` before any mutation. Report every required capability as `<capability>=<state>` so `issueTracker`, `managedBoard`, and `specCompleteness` failures — including distinct `missing`, `pending`, and `invalid` states — stay visible, then give exactly one recovery path: **Run `/setup-workflow`, then rerun `/to-
|
|
28
|
-
- `managedBoard=not-applicable`: `STOP` and report that `/to-
|
|
35
|
+
- `verdict=blocked`: `STOP` before any mutation. Report every required capability as `<capability>=<state>` so `issueTracker`, `managedBoard`, and `specCompleteness` failures — including distinct `missing`, `pending`, and `invalid` states — stay visible, then give exactly one recovery path: **Run `/setup-workflow`, then rerun `/to-issues`.** Do not fall back to bare tracker or board commands.
|
|
36
|
+
- `managedBoard=not-applicable`: `STOP` and report that Program planning through `/to-issues` is **inapplicable** for a project that deliberately has no managed board. This is a terminal project decision, not invalid evidence and not a partially active mode.
|
|
29
37
|
<!-- readiness:required-preflight:end -->
|
|
30
38
|
|
|
31
39
|
Board constants (project node, field/status IDs) + helpers live **consumer-side**:
|
|
@@ -43,10 +51,14 @@ is the parser.
|
|
|
43
51
|
|
|
44
52
|
## 1. Input — a Program-PRD
|
|
45
53
|
|
|
46
|
-
The target is a Program-PRD issue: it carries the
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
54
|
+
The target is a Program-PRD issue: it carries both the
|
|
55
|
+
`<!-- prd: program -->` marker and the configured Program-type label, plus a
|
|
56
|
+
`## Wellenplan` table. Passed in from the facade or explicit compatibility
|
|
57
|
+
invocation. If either identity half is missing, they disagree, or Feature
|
|
58
|
+
identity is also present, stop before preview or write and return to
|
|
59
|
+
`to-issues`; never infer Program mode from the table, prose, size, or model
|
|
60
|
+
judgment. A plain Feature-PRD remains on the facade's Feature path; a
|
|
61
|
+
Wave-Anchor is already a single wave.
|
|
50
62
|
|
|
51
63
|
## 2. Parse + validate — the graph preflight
|
|
52
64
|
|
|
@@ -316,7 +328,7 @@ python3 scripts/board-sync.py program-sync <prd#>
|
|
|
316
328
|
## Audit block (visible output)
|
|
317
329
|
|
|
318
330
|
```
|
|
319
|
-
to-
|
|
331
|
+
to-issues: planning-mode=program engine=to-waves prd=#<n> preview=<approved|rejected>
|
|
320
332
|
created=<stubs X von Y, leaves X von Y> adopted=<#a #b … | none>
|
|
321
333
|
stamped=<N von M Wave/Phase> phase=<stamped | skipped (profile lacks fields.phase)>
|
|
322
334
|
matured=<X von Y> execute-ready=<X von Y Wellen ausführungsreif>
|
package/README.md
CHANGED
|
@@ -85,9 +85,11 @@ into the *same shaped artefact*: a Draft-PRD that, once sliced, becomes either o
|
|
|
85
85
|
atomic issue or a wave anchor with child slices. What counts downstream is the
|
|
86
86
|
**shape of the artefact, never where it came from** — so each step can be entered
|
|
87
87
|
cold and *extracts or synthesizes* what's missing instead of assuming an earlier
|
|
88
|
-
step ran. The
|
|
88
|
+
step ran. The entry key is just *"is there an issue yet?"*: a loose artefact
|
|
89
89
|
(no issue) enters at `to-prd`; an existing issue or file-bundle enters at
|
|
90
|
-
`to-issues` directly.
|
|
90
|
+
`to-issues` directly. Inside that facade, the explicit PRD identity — Feature or
|
|
91
|
+
Program — is the only mode selector; a cold source must establish one before a
|
|
92
|
+
remote write.
|
|
91
93
|
|
|
92
94
|
- **Grill as deep as the work deserves — it's optional.** `grill-me` /
|
|
93
95
|
`grill-with-docs` interrogate the intent (and your domain docs) until the real
|
|
@@ -98,13 +100,15 @@ step ran. The routing key is just *"is there an issue yet?"*: a loose artefact
|
|
|
98
100
|
Draft-PRD issue, *extracting* the template sections from what already exists. A
|
|
99
101
|
required section it genuinely can't derive becomes an honest **Open points**
|
|
100
102
|
block, never a silent "looks complete" placeholder.
|
|
101
|
-
- **`to-issues`**
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
- **`to-issues`** is the single public Planning facade. Explicit Feature
|
|
104
|
+
identity selects tracer-bullet decomposition and picks the shape: **1 slice →
|
|
105
|
+
one atomic issue** the PR closes; **≥2 slices → a wave anchor** with linked
|
|
106
|
+
child slices. Explicit Program identity selects the existing internal graph
|
|
107
|
+
engine and preserves its complete chat preview before any board write.
|
|
108
|
+
Missing or contradictory identity stops before a write; size, prose, and model
|
|
109
|
+
judgment never select the mode. Any unresolved *Open points* travel through as
|
|
110
|
+
a build-blocking gate (the profile's configurable `vorBau` heading, see
|
|
111
|
+
[Configuration](#configuration)) that never vanishes silently.
|
|
108
112
|
- **`board-to-waves`** clusters an existing backlog into themed campaigns when you
|
|
109
113
|
need to *find* the next wave rather than start fresh.
|
|
110
114
|
- **`triage`** keeps the inbox sane with a consistent label vocabulary.
|
|
@@ -211,7 +215,8 @@ hands a well-defined object to the level below:
|
|
|
211
215
|
|
|
212
216
|
Two roads lead to the same wave. **Top-down:** `scale-check` names the size in
|
|
213
217
|
a few plain questions; a big undertaking gets grilled once into a Program PRD
|
|
214
|
-
with a wave plan, and `to-
|
|
218
|
+
with a wave plan, and `to-issues` selects its internal Program graph path from
|
|
219
|
+
that explicit identity. It unfolds the plan into named waves after you approve
|
|
215
220
|
a full preview in chat — zero board writes until you say yes. **Bottom-up:**
|
|
216
221
|
`board-to-waves` clusters loose issues into a wave candidate, which earns a
|
|
217
222
|
real number only when you promote it. Either road lands in the *identical*
|
|
@@ -222,7 +227,7 @@ When the slices are file-disjoint and their specs are locked, **`orchestrate-wav
|
|
|
222
227
|
lands the whole anchor end-to-end — often AFK: it dispatches an implementer per
|
|
223
228
|
slice into its own worktree, integrates serially, verifies centrally, and lands
|
|
224
229
|
the wave. It's the execute-and-land node of the wave ladder (`scale-check` →
|
|
225
|
-
`to-
|
|
230
|
+
`to-issues` / `board-to-waves` → `orchestrate-wave`); a single slice still just
|
|
226
231
|
goes to `implement`.
|
|
227
232
|
|
|
228
233
|

|
|
@@ -380,6 +385,69 @@ the old way. Decision record:
|
|
|
380
385
|
|
|
381
386
|
## Release notes
|
|
382
387
|
|
|
388
|
+
### 0.34.0
|
|
389
|
+
|
|
390
|
+
- added: `src/commands/routing-policy-update.mjs`
|
|
391
|
+
- added: `src/lib/agentSurfaceRegistry.mjs`
|
|
392
|
+
- added: `src/lib/dispatchReceipt.mjs`
|
|
393
|
+
- added: `src/lib/frontendWorkloads.mjs`
|
|
394
|
+
- added: `src/lib/routeDispatcher.mjs`
|
|
395
|
+
- added: `src/lib/routingAccessGraph.mjs`
|
|
396
|
+
- added: `src/lib/routingAdapters/claude.mjs`
|
|
397
|
+
- added: `src/lib/routingAdapters/codex.mjs`
|
|
398
|
+
- added: `src/lib/routingCatalog.mjs`
|
|
399
|
+
- added: `src/lib/routingEvidenceCache.mjs`
|
|
400
|
+
- added: `src/lib/routingIntent.mjs`
|
|
401
|
+
- added: `src/lib/routingPolicy.mjs`
|
|
402
|
+
- added: `src/lib/routingProfile.mjs`
|
|
403
|
+
- added: `src/lib/routingResolver.mjs`
|
|
404
|
+
- added: `src/lib/routingSources/artificialAnalysis.mjs`
|
|
405
|
+
- added: `src/lib/routingSources/benchlm.mjs`
|
|
406
|
+
- added: `src/lib/routingSources/codeArena.mjs`
|
|
407
|
+
- added: `src/lib/routingSources/deepswe.mjs`
|
|
408
|
+
- added: `src/lib/routingSources/openhands.mjs`
|
|
409
|
+
- added: `src/lib/routingSources/openhandsFrontend.mjs`
|
|
410
|
+
- changed: `.agents/skills/ask-matt/SKILL.md`
|
|
411
|
+
- changed: `.agents/skills/audit-skills/SKILL.md`
|
|
412
|
+
- changed: `.agents/skills/board-to-waves/SKILL.md`
|
|
413
|
+
- changed: `.agents/skills/code-review/SKILL.md`
|
|
414
|
+
- changed: `.agents/skills/codebase-design/DESIGN-IT-TWICE.md`
|
|
415
|
+
- changed: `.agents/skills/codex-adapter-sync/SKILL.md`
|
|
416
|
+
- changed: `.agents/skills/improve-codebase-architecture/INTERFACE-DESIGN.md`
|
|
417
|
+
- changed: `.agents/skills/improve-codebase-architecture/SKILL.md`
|
|
418
|
+
- changed: `.agents/skills/kit-update/SKILL.md`
|
|
419
|
+
- changed: `.agents/skills/orchestrate-wave/SKILL.md`
|
|
420
|
+
- changed: `.agents/skills/orchestrate-wave/references/dispatch-subagents.md`
|
|
421
|
+
- changed: `.agents/skills/orchestrate-wave/references/dispatch-workflow.md`
|
|
422
|
+
- changed: `.agents/skills/research/SKILL.md`
|
|
423
|
+
- changed: `.agents/skills/scale-check/SKILL.md`
|
|
424
|
+
- changed: `.agents/skills/setup-workflow/SKILL.md`
|
|
425
|
+
- changed: `.agents/skills/setup-workflow/board-sync.md`
|
|
426
|
+
- changed: `.agents/skills/setup-workflow/workflow-overview.md`
|
|
427
|
+
- changed: `.agents/skills/to-issues/SKILL.md`
|
|
428
|
+
- changed: `.agents/skills/to-waves/SKILL.md`
|
|
429
|
+
- changed: `.claude/skills/ask-matt/SKILL.md`
|
|
430
|
+
- changed: `.claude/skills/audit-skills/SKILL.md`
|
|
431
|
+
- changed: `.claude/skills/board-to-waves/SKILL.md`
|
|
432
|
+
- changed: `.claude/skills/code-review/SKILL.md`
|
|
433
|
+
- changed: `.claude/skills/codebase-design/DESIGN-IT-TWICE.md`
|
|
434
|
+
- changed: `.claude/skills/improve-codebase-architecture/INTERFACE-DESIGN.md`
|
|
435
|
+
- changed: `.claude/skills/improve-codebase-architecture/SKILL.md`
|
|
436
|
+
- changed: `.claude/skills/kit-update/SKILL.md`
|
|
437
|
+
- changed: `.claude/skills/orchestrate-wave/SKILL.md`
|
|
438
|
+
- changed: `.claude/skills/orchestrate-wave/references/dispatch-subagents.md`
|
|
439
|
+
- changed: `.claude/skills/orchestrate-wave/references/dispatch-workflow.md`
|
|
440
|
+
- changed: `.claude/skills/research/SKILL.md`
|
|
441
|
+
- changed: `.claude/skills/scale-check/SKILL.md`
|
|
442
|
+
- changed: `.claude/skills/setup-workflow/SKILL.md`
|
|
443
|
+
- changed: `.claude/skills/setup-workflow/board-sync.md`
|
|
444
|
+
- changed: `.claude/skills/setup-workflow/workflow-overview.md`
|
|
445
|
+
- changed: `.claude/skills/to-issues/SKILL.md`
|
|
446
|
+
- changed: `.claude/skills/to-waves/SKILL.md`
|
|
447
|
+
- changed: `docs/agents/wave-anchor-template.md`
|
|
448
|
+
- changed: `scripts/codex-exec.sh`
|
|
449
|
+
- changed: `src/lib/capabilityMatrix.mjs`
|
|
450
|
+
|
|
383
451
|
### 0.33.0
|
|
384
452
|
|
|
385
453
|
- added: `.agents/skills/orchestrate-wave/references/dispatch-subagents.md`
|