@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,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"kitVersion": "0.
|
|
2
|
+
"kitVersion": "0.34.0",
|
|
3
3
|
"files": [
|
|
4
4
|
{
|
|
5
5
|
"path": ".agents/skills/ask-matt/SKILL.md",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"ownerSkill": "ask-matt",
|
|
8
8
|
"surface": "codex",
|
|
9
9
|
"installRole": "consumer",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "0581a5d3a784b33108ab159fc1732b11aa3a5ac145791a8551c93dd6bc83007c",
|
|
11
11
|
"mode": 420,
|
|
12
12
|
"origin": "kit"
|
|
13
13
|
},
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"ownerSkill": "audit-skills",
|
|
28
28
|
"surface": "codex",
|
|
29
29
|
"installRole": "consumer",
|
|
30
|
-
"sha256": "
|
|
30
|
+
"sha256": "99884fdb3370c5ba82167633c8cbdcf60b980a5f23e196d05695c6c416fe6ab9",
|
|
31
31
|
"mode": 420,
|
|
32
32
|
"origin": "kit"
|
|
33
33
|
},
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"ownerSkill": "board-to-waves",
|
|
38
38
|
"surface": "codex",
|
|
39
39
|
"installRole": "consumer",
|
|
40
|
-
"sha256": "
|
|
40
|
+
"sha256": "f51112a6eccb40b7029d5a94bfa0d1406e94abe51017f7a8b50d3b2bb74cf376",
|
|
41
41
|
"mode": 420,
|
|
42
42
|
"origin": "kit"
|
|
43
43
|
},
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"ownerSkill": "code-review",
|
|
58
58
|
"surface": "codex",
|
|
59
59
|
"installRole": "consumer",
|
|
60
|
-
"sha256": "
|
|
60
|
+
"sha256": "ca372c944ff134e2dc280b9841da29ba2a51cbfe6ef664fbf28258bdc110a774",
|
|
61
61
|
"mode": 420,
|
|
62
62
|
"origin": "kit"
|
|
63
63
|
},
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"ownerSkill": "codebase-design",
|
|
78
78
|
"surface": "codex",
|
|
79
79
|
"installRole": "consumer",
|
|
80
|
-
"sha256": "
|
|
80
|
+
"sha256": "c3ede6a6dddc2e3913a824e77b4e26bd11608c904702f4991ce8cc9cae30da1c",
|
|
81
81
|
"mode": 420,
|
|
82
82
|
"origin": "kit"
|
|
83
83
|
},
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
"ownerSkill": "codex-adapter-sync",
|
|
108
108
|
"surface": "codex",
|
|
109
109
|
"installRole": "consumer",
|
|
110
|
-
"sha256": "
|
|
110
|
+
"sha256": "5c1822faf8f9c043d37e2f879c5c824ca9c421bb4c7be2cbdb627a33b3ac7b65",
|
|
111
111
|
"mode": 420,
|
|
112
112
|
"origin": "kit"
|
|
113
113
|
},
|
|
@@ -327,7 +327,7 @@
|
|
|
327
327
|
"ownerSkill": "improve-codebase-architecture",
|
|
328
328
|
"surface": "codex",
|
|
329
329
|
"installRole": "consumer",
|
|
330
|
-
"sha256": "
|
|
330
|
+
"sha256": "a61a0b4b3bfd78826b87a75bcf73783f8e496e5625f18e8ed59bddb24e2cce40",
|
|
331
331
|
"mode": 420,
|
|
332
332
|
"origin": "kit"
|
|
333
333
|
},
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"ownerSkill": "improve-codebase-architecture",
|
|
348
348
|
"surface": "codex",
|
|
349
349
|
"installRole": "consumer",
|
|
350
|
-
"sha256": "
|
|
350
|
+
"sha256": "dbe584d6afcae38072ecd8b86ff427f3d0cb5b90e7c8dcec55eef871e15b5f68",
|
|
351
351
|
"mode": 420,
|
|
352
352
|
"origin": "kit"
|
|
353
353
|
},
|
|
@@ -377,7 +377,7 @@
|
|
|
377
377
|
"ownerSkill": "kit-update",
|
|
378
378
|
"surface": "codex",
|
|
379
379
|
"installRole": "consumer",
|
|
380
|
-
"sha256": "
|
|
380
|
+
"sha256": "c3487295864d1d8d765e1c453c80daf77d3f08a2b0017f614e44e85170913624",
|
|
381
381
|
"mode": 420,
|
|
382
382
|
"origin": "kit"
|
|
383
383
|
},
|
|
@@ -417,7 +417,7 @@
|
|
|
417
417
|
"ownerSkill": "orchestrate-wave",
|
|
418
418
|
"surface": "codex",
|
|
419
419
|
"installRole": "consumer",
|
|
420
|
-
"sha256": "
|
|
420
|
+
"sha256": "849454b9e0af6df72bf611d1c3f00c475f132c728be22654a9794c8622fbce52",
|
|
421
421
|
"mode": 420,
|
|
422
422
|
"origin": "kit"
|
|
423
423
|
},
|
|
@@ -427,7 +427,7 @@
|
|
|
427
427
|
"ownerSkill": "orchestrate-wave",
|
|
428
428
|
"surface": "codex",
|
|
429
429
|
"installRole": "consumer",
|
|
430
|
-
"sha256": "
|
|
430
|
+
"sha256": "ba8d7a3064f8241ae7be03259e219ba751c28dfa325d3e48a9344fdf2d589c1e",
|
|
431
431
|
"mode": 420,
|
|
432
432
|
"origin": "kit"
|
|
433
433
|
},
|
|
@@ -447,7 +447,7 @@
|
|
|
447
447
|
"ownerSkill": "orchestrate-wave",
|
|
448
448
|
"surface": "codex",
|
|
449
449
|
"installRole": "consumer",
|
|
450
|
-
"sha256": "
|
|
450
|
+
"sha256": "3a281805aee83a771675f8f80b9bd9dee3c1b2f2b2ca58001b37d8565a7d9d7d",
|
|
451
451
|
"mode": 420,
|
|
452
452
|
"origin": "kit"
|
|
453
453
|
},
|
|
@@ -507,7 +507,7 @@
|
|
|
507
507
|
"ownerSkill": "research",
|
|
508
508
|
"surface": "codex",
|
|
509
509
|
"installRole": "consumer",
|
|
510
|
-
"sha256": "
|
|
510
|
+
"sha256": "cc5bade9d420c572a00d19c6a26ca4f40cc01d16a5d17b4d698f10bbc25f2680",
|
|
511
511
|
"mode": 420,
|
|
512
512
|
"origin": "kit"
|
|
513
513
|
},
|
|
@@ -557,7 +557,7 @@
|
|
|
557
557
|
"ownerSkill": "scale-check",
|
|
558
558
|
"surface": "codex",
|
|
559
559
|
"installRole": "consumer",
|
|
560
|
-
"sha256": "
|
|
560
|
+
"sha256": "c0055c9d1f7e48d712d85f587a60b9a7d69ee6ae3084a2af3e906c508aa77231",
|
|
561
561
|
"mode": 420,
|
|
562
562
|
"origin": "kit"
|
|
563
563
|
},
|
|
@@ -587,7 +587,7 @@
|
|
|
587
587
|
"ownerSkill": "setup-workflow",
|
|
588
588
|
"surface": "codex",
|
|
589
589
|
"installRole": "consumer",
|
|
590
|
-
"sha256": "
|
|
590
|
+
"sha256": "928a771ecadd4b199169f20deb79647894fe3c0675973b0b97050cad0b675cc4",
|
|
591
591
|
"mode": 420,
|
|
592
592
|
"origin": "kit"
|
|
593
593
|
},
|
|
@@ -677,7 +677,7 @@
|
|
|
677
677
|
"ownerSkill": "setup-workflow",
|
|
678
678
|
"surface": "codex",
|
|
679
679
|
"installRole": "consumer",
|
|
680
|
-
"sha256": "
|
|
680
|
+
"sha256": "7281bb67588328aa4a788cbefe69f396c4617569335ce47cfb45bb5607d3205e",
|
|
681
681
|
"mode": 420,
|
|
682
682
|
"origin": "kit"
|
|
683
683
|
},
|
|
@@ -737,7 +737,7 @@
|
|
|
737
737
|
"ownerSkill": "setup-workflow",
|
|
738
738
|
"surface": "codex",
|
|
739
739
|
"installRole": "consumer",
|
|
740
|
-
"sha256": "
|
|
740
|
+
"sha256": "80f686464ed1faf663acb5bb0b40a8847f4e22d806be04368354e60701cc356d",
|
|
741
741
|
"mode": 420,
|
|
742
742
|
"origin": "kit"
|
|
743
743
|
},
|
|
@@ -847,7 +847,7 @@
|
|
|
847
847
|
"ownerSkill": "to-issues",
|
|
848
848
|
"surface": "codex",
|
|
849
849
|
"installRole": "consumer",
|
|
850
|
-
"sha256": "
|
|
850
|
+
"sha256": "13fe336c736adc290a4f3a2cd8a796336e402d3622fa0f03480d59480295fbc8",
|
|
851
851
|
"mode": 420,
|
|
852
852
|
"origin": "kit"
|
|
853
853
|
},
|
|
@@ -897,7 +897,7 @@
|
|
|
897
897
|
"ownerSkill": "to-waves",
|
|
898
898
|
"surface": "codex",
|
|
899
899
|
"installRole": "consumer",
|
|
900
|
-
"sha256": "
|
|
900
|
+
"sha256": "fedf58030c901568dc64801d273f73b5adbb400feb6b624e648dd21ab31ff23e",
|
|
901
901
|
"mode": 420,
|
|
902
902
|
"origin": "kit"
|
|
903
903
|
},
|
|
@@ -1199,7 +1199,7 @@
|
|
|
1199
1199
|
"ownerSkill": "ask-matt",
|
|
1200
1200
|
"surface": "claude",
|
|
1201
1201
|
"installRole": "consumer",
|
|
1202
|
-
"sha256": "
|
|
1202
|
+
"sha256": "94507e052d8fcb2f0a3beb355ff930aa34863d84b3ebc827bfc61a4a582ba597",
|
|
1203
1203
|
"mode": 420,
|
|
1204
1204
|
"origin": "kit"
|
|
1205
1205
|
},
|
|
@@ -1219,7 +1219,7 @@
|
|
|
1219
1219
|
"ownerSkill": "audit-skills",
|
|
1220
1220
|
"surface": "claude",
|
|
1221
1221
|
"installRole": "consumer",
|
|
1222
|
-
"sha256": "
|
|
1222
|
+
"sha256": "e56c26c4595bf0ba0f9788917c696e626bfe66896547ff4b6ff282f1c247476e",
|
|
1223
1223
|
"mode": 420,
|
|
1224
1224
|
"origin": "kit"
|
|
1225
1225
|
},
|
|
@@ -1229,7 +1229,7 @@
|
|
|
1229
1229
|
"ownerSkill": "board-to-waves",
|
|
1230
1230
|
"surface": "claude",
|
|
1231
1231
|
"installRole": "consumer",
|
|
1232
|
-
"sha256": "
|
|
1232
|
+
"sha256": "efcee45fb2979da7c992e280ba72df9330a6cffdb848bf5f26b4a49b3e2f24cc",
|
|
1233
1233
|
"mode": 420,
|
|
1234
1234
|
"origin": "kit"
|
|
1235
1235
|
},
|
|
@@ -1249,7 +1249,7 @@
|
|
|
1249
1249
|
"ownerSkill": "code-review",
|
|
1250
1250
|
"surface": "claude",
|
|
1251
1251
|
"installRole": "consumer",
|
|
1252
|
-
"sha256": "
|
|
1252
|
+
"sha256": "ca372c944ff134e2dc280b9841da29ba2a51cbfe6ef664fbf28258bdc110a774",
|
|
1253
1253
|
"mode": 420,
|
|
1254
1254
|
"origin": "kit"
|
|
1255
1255
|
},
|
|
@@ -1269,7 +1269,7 @@
|
|
|
1269
1269
|
"ownerSkill": "codebase-design",
|
|
1270
1270
|
"surface": "claude",
|
|
1271
1271
|
"installRole": "consumer",
|
|
1272
|
-
"sha256": "
|
|
1272
|
+
"sha256": "ea8b97f3609d581ba6980a9bc0b9724081d879487652342fbb2dc2af3c74d937",
|
|
1273
1273
|
"mode": 420,
|
|
1274
1274
|
"origin": "kit"
|
|
1275
1275
|
},
|
|
@@ -1639,7 +1639,7 @@
|
|
|
1639
1639
|
"ownerSkill": "improve-codebase-architecture",
|
|
1640
1640
|
"surface": "claude",
|
|
1641
1641
|
"installRole": "consumer",
|
|
1642
|
-
"sha256": "
|
|
1642
|
+
"sha256": "0ddd7ba6f6ab014518c519d6767d0141ebc3ee0d09d3931dceedcab6948e6191",
|
|
1643
1643
|
"mode": 420,
|
|
1644
1644
|
"origin": "kit"
|
|
1645
1645
|
},
|
|
@@ -1659,7 +1659,7 @@
|
|
|
1659
1659
|
"ownerSkill": "improve-codebase-architecture",
|
|
1660
1660
|
"surface": "claude",
|
|
1661
1661
|
"installRole": "consumer",
|
|
1662
|
-
"sha256": "
|
|
1662
|
+
"sha256": "d2077e2e539bad27e3118b17810a97da35841a530e5f7b8dfc1ff88ab49f9d50",
|
|
1663
1663
|
"mode": 420,
|
|
1664
1664
|
"origin": "kit"
|
|
1665
1665
|
},
|
|
@@ -1689,7 +1689,7 @@
|
|
|
1689
1689
|
"ownerSkill": "kit-update",
|
|
1690
1690
|
"surface": "claude",
|
|
1691
1691
|
"installRole": "consumer",
|
|
1692
|
-
"sha256": "
|
|
1692
|
+
"sha256": "c3487295864d1d8d765e1c453c80daf77d3f08a2b0017f614e44e85170913624",
|
|
1693
1693
|
"mode": 420,
|
|
1694
1694
|
"origin": "kit"
|
|
1695
1695
|
},
|
|
@@ -1729,7 +1729,7 @@
|
|
|
1729
1729
|
"ownerSkill": "orchestrate-wave",
|
|
1730
1730
|
"surface": "claude",
|
|
1731
1731
|
"installRole": "consumer",
|
|
1732
|
-
"sha256": "
|
|
1732
|
+
"sha256": "849454b9e0af6df72bf611d1c3f00c475f132c728be22654a9794c8622fbce52",
|
|
1733
1733
|
"mode": 420,
|
|
1734
1734
|
"origin": "kit"
|
|
1735
1735
|
},
|
|
@@ -1739,7 +1739,7 @@
|
|
|
1739
1739
|
"ownerSkill": "orchestrate-wave",
|
|
1740
1740
|
"surface": "claude",
|
|
1741
1741
|
"installRole": "consumer",
|
|
1742
|
-
"sha256": "
|
|
1742
|
+
"sha256": "ba8d7a3064f8241ae7be03259e219ba751c28dfa325d3e48a9344fdf2d589c1e",
|
|
1743
1743
|
"mode": 420,
|
|
1744
1744
|
"origin": "kit"
|
|
1745
1745
|
},
|
|
@@ -1759,7 +1759,7 @@
|
|
|
1759
1759
|
"ownerSkill": "orchestrate-wave",
|
|
1760
1760
|
"surface": "claude",
|
|
1761
1761
|
"installRole": "consumer",
|
|
1762
|
-
"sha256": "
|
|
1762
|
+
"sha256": "fb244997866b4ad01db7c7de8a22467d4c8399f030d236a517b6b9cc958d9177",
|
|
1763
1763
|
"mode": 420,
|
|
1764
1764
|
"origin": "kit"
|
|
1765
1765
|
},
|
|
@@ -1819,7 +1819,7 @@
|
|
|
1819
1819
|
"ownerSkill": "research",
|
|
1820
1820
|
"surface": "claude",
|
|
1821
1821
|
"installRole": "consumer",
|
|
1822
|
-
"sha256": "
|
|
1822
|
+
"sha256": "8c8230cdabb1355d9fd1feeefc1ae14707f8b42aab999fb2577126310f4a5fa4",
|
|
1823
1823
|
"mode": 420,
|
|
1824
1824
|
"origin": "kit"
|
|
1825
1825
|
},
|
|
@@ -1869,7 +1869,7 @@
|
|
|
1869
1869
|
"ownerSkill": "scale-check",
|
|
1870
1870
|
"surface": "claude",
|
|
1871
1871
|
"installRole": "consumer",
|
|
1872
|
-
"sha256": "
|
|
1872
|
+
"sha256": "c0055c9d1f7e48d712d85f587a60b9a7d69ee6ae3084a2af3e906c508aa77231",
|
|
1873
1873
|
"mode": 420,
|
|
1874
1874
|
"origin": "kit"
|
|
1875
1875
|
},
|
|
@@ -1919,7 +1919,7 @@
|
|
|
1919
1919
|
"ownerSkill": "setup-workflow",
|
|
1920
1920
|
"surface": "claude",
|
|
1921
1921
|
"installRole": "consumer",
|
|
1922
|
-
"sha256": "
|
|
1922
|
+
"sha256": "928a771ecadd4b199169f20deb79647894fe3c0675973b0b97050cad0b675cc4",
|
|
1923
1923
|
"mode": 420,
|
|
1924
1924
|
"origin": "kit"
|
|
1925
1925
|
},
|
|
@@ -2009,7 +2009,7 @@
|
|
|
2009
2009
|
"ownerSkill": "setup-workflow",
|
|
2010
2010
|
"surface": "claude",
|
|
2011
2011
|
"installRole": "consumer",
|
|
2012
|
-
"sha256": "
|
|
2012
|
+
"sha256": "7281bb67588328aa4a788cbefe69f396c4617569335ce47cfb45bb5607d3205e",
|
|
2013
2013
|
"mode": 420,
|
|
2014
2014
|
"origin": "kit"
|
|
2015
2015
|
},
|
|
@@ -2069,7 +2069,7 @@
|
|
|
2069
2069
|
"ownerSkill": "setup-workflow",
|
|
2070
2070
|
"surface": "claude",
|
|
2071
2071
|
"installRole": "consumer",
|
|
2072
|
-
"sha256": "
|
|
2072
|
+
"sha256": "80f686464ed1faf663acb5bb0b40a8847f4e22d806be04368354e60701cc356d",
|
|
2073
2073
|
"mode": 420,
|
|
2074
2074
|
"origin": "kit"
|
|
2075
2075
|
},
|
|
@@ -2187,7 +2187,7 @@
|
|
|
2187
2187
|
"ownerSkill": "to-issues",
|
|
2188
2188
|
"surface": "claude",
|
|
2189
2189
|
"installRole": "consumer",
|
|
2190
|
-
"sha256": "
|
|
2190
|
+
"sha256": "60a41f58bbf0d1507c3116aeef7b8bb6ba62747866fd3bf8dff298c899341d93",
|
|
2191
2191
|
"mode": 420,
|
|
2192
2192
|
"origin": "kit"
|
|
2193
2193
|
},
|
|
@@ -2237,7 +2237,7 @@
|
|
|
2237
2237
|
"ownerSkill": "to-waves",
|
|
2238
2238
|
"surface": "claude",
|
|
2239
2239
|
"installRole": "consumer",
|
|
2240
|
-
"sha256": "
|
|
2240
|
+
"sha256": "fedf58030c901568dc64801d273f73b5adbb400feb6b624e648dd21ab31ff23e",
|
|
2241
2241
|
"mode": 420,
|
|
2242
2242
|
"origin": "kit"
|
|
2243
2243
|
},
|
|
@@ -2399,7 +2399,7 @@
|
|
|
2399
2399
|
"path": "docs/agents/wave-anchor-template.md",
|
|
2400
2400
|
"kind": "template",
|
|
2401
2401
|
"installRole": "consumer",
|
|
2402
|
-
"sha256": "
|
|
2402
|
+
"sha256": "92e52c6d1db28f37c012646de6d0b073bcdffde30d84f84499b55a7fd1240ab1",
|
|
2403
2403
|
"mode": 420,
|
|
2404
2404
|
"origin": "kit"
|
|
2405
2405
|
},
|
|
@@ -2495,7 +2495,7 @@
|
|
|
2495
2495
|
"path": "scripts/codex-exec.sh",
|
|
2496
2496
|
"kind": "script",
|
|
2497
2497
|
"installRole": "consumer",
|
|
2498
|
-
"sha256": "
|
|
2498
|
+
"sha256": "a9a971a5a07f455739d2d8a7de3620fc601126af7e5a6eb83e8277a06b69aae6",
|
|
2499
2499
|
"mode": 493,
|
|
2500
2500
|
"origin": "kit"
|
|
2501
2501
|
},
|
|
@@ -2803,6 +2803,22 @@
|
|
|
2803
2803
|
"mode": 493,
|
|
2804
2804
|
"origin": "kit"
|
|
2805
2805
|
},
|
|
2806
|
+
{
|
|
2807
|
+
"path": "src/commands/routing-policy-update.mjs",
|
|
2808
|
+
"kind": "script",
|
|
2809
|
+
"installRole": "consumer",
|
|
2810
|
+
"sha256": "1dfb532c26cea8ad4adefc3f0beb6a47774bb34f120e611d5a0dbab12b1d53bd",
|
|
2811
|
+
"mode": 420,
|
|
2812
|
+
"origin": "kit"
|
|
2813
|
+
},
|
|
2814
|
+
{
|
|
2815
|
+
"path": "src/lib/agentSurfaceRegistry.mjs",
|
|
2816
|
+
"kind": "script",
|
|
2817
|
+
"installRole": "consumer",
|
|
2818
|
+
"sha256": "655f276b41f7cb2a7a8c4404c1bca11e36964c1137507755f5d3ea1f71c5e5a1",
|
|
2819
|
+
"mode": 420,
|
|
2820
|
+
"origin": "kit"
|
|
2821
|
+
},
|
|
2806
2822
|
{
|
|
2807
2823
|
"path": "src/lib/atomicWrite.mjs",
|
|
2808
2824
|
"kind": "script",
|
|
@@ -2815,7 +2831,23 @@
|
|
|
2815
2831
|
"path": "src/lib/capabilityMatrix.mjs",
|
|
2816
2832
|
"kind": "script",
|
|
2817
2833
|
"installRole": "consumer",
|
|
2818
|
-
"sha256": "
|
|
2834
|
+
"sha256": "183938e9580c6f17f52a2188e113eab615384291ff59b8ead7427ee751b88833",
|
|
2835
|
+
"mode": 420,
|
|
2836
|
+
"origin": "kit"
|
|
2837
|
+
},
|
|
2838
|
+
{
|
|
2839
|
+
"path": "src/lib/dispatchReceipt.mjs",
|
|
2840
|
+
"kind": "script",
|
|
2841
|
+
"installRole": "consumer",
|
|
2842
|
+
"sha256": "fa995be02e1325c9e98f0ab0677ee5cb82b15cf4b696f44d056407cb72906081",
|
|
2843
|
+
"mode": 420,
|
|
2844
|
+
"origin": "kit"
|
|
2845
|
+
},
|
|
2846
|
+
{
|
|
2847
|
+
"path": "src/lib/frontendWorkloads.mjs",
|
|
2848
|
+
"kind": "script",
|
|
2849
|
+
"installRole": "consumer",
|
|
2850
|
+
"sha256": "695cb784564ddfe24f42cd92463ad7fbc4baeb555a6a36a7e180830a5a917146",
|
|
2819
2851
|
"mode": 420,
|
|
2820
2852
|
"origin": "kit"
|
|
2821
2853
|
},
|
|
@@ -2859,6 +2891,134 @@
|
|
|
2859
2891
|
"mode": 420,
|
|
2860
2892
|
"origin": "kit"
|
|
2861
2893
|
},
|
|
2894
|
+
{
|
|
2895
|
+
"path": "src/lib/routeDispatcher.mjs",
|
|
2896
|
+
"kind": "script",
|
|
2897
|
+
"installRole": "consumer",
|
|
2898
|
+
"sha256": "937274005959b1d96ef08a69af2fc4632571376787fa79a25b2109ab762a585c",
|
|
2899
|
+
"mode": 420,
|
|
2900
|
+
"origin": "kit"
|
|
2901
|
+
},
|
|
2902
|
+
{
|
|
2903
|
+
"path": "src/lib/routingAccessGraph.mjs",
|
|
2904
|
+
"kind": "script",
|
|
2905
|
+
"installRole": "consumer",
|
|
2906
|
+
"sha256": "21fd08ddb8715a7fbb8bdf09307c9cb6fe9c9dd032732e56ed681780cc9b49ae",
|
|
2907
|
+
"mode": 420,
|
|
2908
|
+
"origin": "kit"
|
|
2909
|
+
},
|
|
2910
|
+
{
|
|
2911
|
+
"path": "src/lib/routingAdapters/claude.mjs",
|
|
2912
|
+
"kind": "script",
|
|
2913
|
+
"installRole": "consumer",
|
|
2914
|
+
"sha256": "ad7a0670c697ceb3d8a845c24ae456296b46f17325d62b9c53f1128aaa48a26d",
|
|
2915
|
+
"mode": 420,
|
|
2916
|
+
"origin": "kit"
|
|
2917
|
+
},
|
|
2918
|
+
{
|
|
2919
|
+
"path": "src/lib/routingAdapters/codex.mjs",
|
|
2920
|
+
"kind": "script",
|
|
2921
|
+
"installRole": "consumer",
|
|
2922
|
+
"sha256": "70c0843505cdf69318d45c58d21c8eb81bfd74910bd8544e4194fba736e0e1ca",
|
|
2923
|
+
"mode": 420,
|
|
2924
|
+
"origin": "kit"
|
|
2925
|
+
},
|
|
2926
|
+
{
|
|
2927
|
+
"path": "src/lib/routingCatalog.mjs",
|
|
2928
|
+
"kind": "script",
|
|
2929
|
+
"installRole": "consumer",
|
|
2930
|
+
"sha256": "3d683dfdf31496503b40746645629c116111cda8be1dcb87575afaf8ac8aca28",
|
|
2931
|
+
"mode": 420,
|
|
2932
|
+
"origin": "kit"
|
|
2933
|
+
},
|
|
2934
|
+
{
|
|
2935
|
+
"path": "src/lib/routingEvidenceCache.mjs",
|
|
2936
|
+
"kind": "script",
|
|
2937
|
+
"installRole": "consumer",
|
|
2938
|
+
"sha256": "3515f35815be245959f509c4c8defdf640b58a854d7f450c74b17fd14819ee04",
|
|
2939
|
+
"mode": 420,
|
|
2940
|
+
"origin": "kit"
|
|
2941
|
+
},
|
|
2942
|
+
{
|
|
2943
|
+
"path": "src/lib/routingIntent.mjs",
|
|
2944
|
+
"kind": "script",
|
|
2945
|
+
"installRole": "consumer",
|
|
2946
|
+
"sha256": "1b6f599dc5f9fa3a5af41c48d7993cc05f2c2dd26ab60a23fc4a3026d0cc341a",
|
|
2947
|
+
"mode": 420,
|
|
2948
|
+
"origin": "kit"
|
|
2949
|
+
},
|
|
2950
|
+
{
|
|
2951
|
+
"path": "src/lib/routingPolicy.mjs",
|
|
2952
|
+
"kind": "script",
|
|
2953
|
+
"installRole": "consumer",
|
|
2954
|
+
"sha256": "e5e23ff59ffa2147ed8c799f925c8b8f3f480ab7d370e52663fea005623861c1",
|
|
2955
|
+
"mode": 420,
|
|
2956
|
+
"origin": "kit"
|
|
2957
|
+
},
|
|
2958
|
+
{
|
|
2959
|
+
"path": "src/lib/routingProfile.mjs",
|
|
2960
|
+
"kind": "script",
|
|
2961
|
+
"installRole": "consumer",
|
|
2962
|
+
"sha256": "3f28b39352fe517ab44dd7e896505ac0047a3a2f4f63ce7a55ce47feac7351a7",
|
|
2963
|
+
"mode": 420,
|
|
2964
|
+
"origin": "kit"
|
|
2965
|
+
},
|
|
2966
|
+
{
|
|
2967
|
+
"path": "src/lib/routingResolver.mjs",
|
|
2968
|
+
"kind": "script",
|
|
2969
|
+
"installRole": "consumer",
|
|
2970
|
+
"sha256": "da8bbdc924a172ca9cfb3e24b35efd9cbf2d3157e2d29e65032600b840ad01d3",
|
|
2971
|
+
"mode": 420,
|
|
2972
|
+
"origin": "kit"
|
|
2973
|
+
},
|
|
2974
|
+
{
|
|
2975
|
+
"path": "src/lib/routingSources/artificialAnalysis.mjs",
|
|
2976
|
+
"kind": "script",
|
|
2977
|
+
"installRole": "consumer",
|
|
2978
|
+
"sha256": "1b02382957e68e6dc46b58fbff0d69a5a28088be27d42daeb5b426d20eb29baf",
|
|
2979
|
+
"mode": 420,
|
|
2980
|
+
"origin": "kit"
|
|
2981
|
+
},
|
|
2982
|
+
{
|
|
2983
|
+
"path": "src/lib/routingSources/benchlm.mjs",
|
|
2984
|
+
"kind": "script",
|
|
2985
|
+
"installRole": "consumer",
|
|
2986
|
+
"sha256": "f3a08be4fa870137b41c630400fb939491e9c7c29881d384e6d5df6fe7dff231",
|
|
2987
|
+
"mode": 420,
|
|
2988
|
+
"origin": "kit"
|
|
2989
|
+
},
|
|
2990
|
+
{
|
|
2991
|
+
"path": "src/lib/routingSources/codeArena.mjs",
|
|
2992
|
+
"kind": "script",
|
|
2993
|
+
"installRole": "consumer",
|
|
2994
|
+
"sha256": "c90b1c7894704ace96e85f5c430cd61077e802dc21d591d51da84d027159b491",
|
|
2995
|
+
"mode": 420,
|
|
2996
|
+
"origin": "kit"
|
|
2997
|
+
},
|
|
2998
|
+
{
|
|
2999
|
+
"path": "src/lib/routingSources/deepswe.mjs",
|
|
3000
|
+
"kind": "script",
|
|
3001
|
+
"installRole": "consumer",
|
|
3002
|
+
"sha256": "e5e4e69ca3aaec207e1b351003f67b4541543baf4b7be321a7659f9a9f57752b",
|
|
3003
|
+
"mode": 420,
|
|
3004
|
+
"origin": "kit"
|
|
3005
|
+
},
|
|
3006
|
+
{
|
|
3007
|
+
"path": "src/lib/routingSources/openhands.mjs",
|
|
3008
|
+
"kind": "script",
|
|
3009
|
+
"installRole": "consumer",
|
|
3010
|
+
"sha256": "fc347c17277dc601f5206d47269268839a7ade5eba6a7a538521213f996ac89b",
|
|
3011
|
+
"mode": 420,
|
|
3012
|
+
"origin": "kit"
|
|
3013
|
+
},
|
|
3014
|
+
{
|
|
3015
|
+
"path": "src/lib/routingSources/openhandsFrontend.mjs",
|
|
3016
|
+
"kind": "script",
|
|
3017
|
+
"installRole": "consumer",
|
|
3018
|
+
"sha256": "698b7f265ce95dfe000233dbb6ed0eb3bb655bb9581f64264e4f5d8a2d75e169",
|
|
3019
|
+
"mode": 420,
|
|
3020
|
+
"origin": "kit"
|
|
3021
|
+
},
|
|
2862
3022
|
{
|
|
2863
3023
|
"path": "src/lib/semver.mjs",
|
|
2864
3024
|
"kind": "script",
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# to-issues is the single planning facade
|
|
2
|
+
|
|
3
|
+
Status: accepted (2026-07-22, issue #197)
|
|
4
|
+
|
|
5
|
+
The planning workflow exposes two mechanisms after `to-prd`: Feature PRDs are
|
|
6
|
+
decomposed by `to-issues`, while Program PRDs are unfolded by a separately
|
|
7
|
+
invoked `to-waves` skill which later calls `to-issues` for each wave. This makes
|
|
8
|
+
the user identify an internal planning altitude even though the PRD already
|
|
9
|
+
carries an explicit, durable identity that can select the correct mechanism.
|
|
10
|
+
|
|
11
|
+
We decided that `to-issues` is the single user-facing Planning facade:
|
|
12
|
+
|
|
13
|
+
1. A Feature PRD selects the existing atomic/promote mechanism.
|
|
14
|
+
2. A Program PRD selects the existing program-graph engine currently owned by
|
|
15
|
+
`to-waves`, including its complete preview, validation, publication,
|
|
16
|
+
per-wave maturation, and execute-ready audits.
|
|
17
|
+
3. Dispatch uses only explicit PRD identity (`prd: program` or its canonical
|
|
18
|
+
program type), never size heuristics or model judgment.
|
|
19
|
+
4. The selected mode is reported visibly before mutation. Program mode retains
|
|
20
|
+
its full preview approval gate.
|
|
21
|
+
5. `to-waves` remains an independently testable internal mechanism and may keep
|
|
22
|
+
a compatibility entrypoint, but routers and normal documentation always send
|
|
23
|
+
the user from `to-prd` to `to-issues`.
|
|
24
|
+
|
|
25
|
+
## Considered options
|
|
26
|
+
|
|
27
|
+
- **Keep two public next commands:** rejected because it leaks internal
|
|
28
|
+
decomposition mechanics and makes users repeat an altitude decision already
|
|
29
|
+
encoded in the PRD.
|
|
30
|
+
- **Infer the mode from plan size or prose:** rejected because hidden heuristics
|
|
31
|
+
make the same command unpredictable and can publish the wrong board shape.
|
|
32
|
+
- **Merge all program code physically into `to-issues`:** rejected because the
|
|
33
|
+
program graph is a coherent deep module with valuable separate tests; only
|
|
34
|
+
its public routing belongs behind the facade.
|
|
35
|
+
|
|
36
|
+
## Consequences
|
|
37
|
+
|
|
38
|
+
- The normal user path is always `grill → to-prd → to-issues`.
|
|
39
|
+
- Feature and Program behavior remain distinguishable in audit output without
|
|
40
|
+
requiring the user to select their implementation skill.
|
|
41
|
+
- Router, overview, skill prose, mirrors, and contract tests must agree on the
|
|
42
|
+
one-entry contract.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Routing knowledge, access, and policy are separate
|
|
2
|
+
|
|
3
|
+
Status: accepted (2026-07-22, Program #197)
|
|
4
|
+
|
|
5
|
+
Planning cannot safely persist a concrete recommended model. Provider catalogs
|
|
6
|
+
change, model names age, effort behavior differs by model, agent surfaces expose
|
|
7
|
+
different controls, and a surface may reach another provider through a plugin
|
|
8
|
+
or CLI transport. A recommendation that is correct in one session can therefore
|
|
9
|
+
be nonexistent, unreachable, or unenforceable in the session that implements
|
|
10
|
+
the work.
|
|
11
|
+
|
|
12
|
+
We decided to keep three identities separate:
|
|
13
|
+
|
|
14
|
+
1. The Kit-maintained **Evidence catalog** contains all known provider models
|
|
15
|
+
and observations, whether or not the active surface can use them. Each
|
|
16
|
+
decision-grade observation retains the complete configuration identity:
|
|
17
|
+
model, effort, harness, workload, source, benchmark version, uncertainty,
|
|
18
|
+
freshness, and cost.
|
|
19
|
+
2. The user-local **Access graph** records the native and cross-provider paths
|
|
20
|
+
available from each agent surface. Claude Code and Codex attest only their
|
|
21
|
+
own runtime capabilities. A detected transport is not automatically approved,
|
|
22
|
+
and neither surface claims another surface's unverified capabilities.
|
|
23
|
+
3. The user-local **Routing policy** records allowed surfaces and transports,
|
|
24
|
+
switching autonomy, optimization goals, and optional advanced overrides.
|
|
25
|
+
Personal choices do not alter catalog facts.
|
|
26
|
+
|
|
27
|
+
Durable plans and issues contain only a provider-neutral **Routing intent**.
|
|
28
|
+
At execution time a resolver compares all evidence-backed candidates, filters
|
|
29
|
+
them through the Access graph and Routing policy, and produces a one-execution
|
|
30
|
+
**Route decision**. It reports the best overall route separately from the best
|
|
31
|
+
currently executable route. An unreachable preference follows the user's
|
|
32
|
+
explicit handoff, fallback, or block policy.
|
|
33
|
+
|
|
34
|
+
Every surface adapter declares how independently it can control model and
|
|
35
|
+
effort: per spawn, through a named agent definition, through a session default,
|
|
36
|
+
or not at all. Environment precedence is part of the capability proof. An AFK
|
|
37
|
+
subagent requires enforced model and effort selection and emits a **Dispatch
|
|
38
|
+
receipt** containing the requested and applied route, enforcement method, and
|
|
39
|
+
policy/evidence revisions. Silent inheritance and unverified degradation are
|
|
40
|
+
not valid AFK routes.
|
|
41
|
+
|
|
42
|
+
Setup keeps the technical model behind a simple user decision. It presents a
|
|
43
|
+
registry-driven list of familiar agent surfaces, preselects detected entries,
|
|
44
|
+
and asks whether the Kit may switch automatically, ask before switching, or use
|
|
45
|
+
only the current surface. Adapters establish providers, transports, model
|
|
46
|
+
selectors, and effort controls. Model preferences and optimization overrides
|
|
47
|
+
remain optional advanced settings.
|
|
48
|
+
|
|
49
|
+
An existing installation without a routing profile receives this choice once
|
|
50
|
+
through setup or the first compatible Kit update. Later updates perform a
|
|
51
|
+
read-only preflight and ask again only when the profile is missing, invalid,
|
|
52
|
+
materially stale, references a removed route, or a newly detected surface makes
|
|
53
|
+
a meaningful choice available. Installing Kit mechanics and changing personal
|
|
54
|
+
policy are separate transactions; unattended update never invents a decision.
|
|
55
|
+
|
|
56
|
+
BenchLM may populate discovery, catalog, pricing, freshness, coverage, and
|
|
57
|
+
corroboration signals. Its aggregate scores are not decision-grade routing
|
|
58
|
+
observations because effort and harness identity may be collapsed and missing
|
|
59
|
+
evidence may be estimated. DeepSWE, Artificial Analysis, OpenHands, Arena, and
|
|
60
|
+
other benchmark-owner artifacts remain authoritative for the claims they
|
|
61
|
+
actually measure. Local experience may calibrate policy but does not rewrite
|
|
62
|
+
public evidence.
|
|
63
|
+
|
|
64
|
+
## Considered options
|
|
65
|
+
|
|
66
|
+
- **Persist a concrete model and effort in every issue:** rejected because the
|
|
67
|
+
recommendation ages and may not be executable on the implementing surface.
|
|
68
|
+
- **Maintain separate Claude and Codex routing tables:** rejected because it
|
|
69
|
+
duplicates evidence, hides cross-provider routes, and lets the two surfaces
|
|
70
|
+
drift.
|
|
71
|
+
- **Filter the shared table during setup:** rejected because current access is
|
|
72
|
+
a user/runtime fact, not a limit on routing knowledge.
|
|
73
|
+
- **Ask users to describe transports and enforcement capabilities:** rejected
|
|
74
|
+
because these are adapter facts most users cannot answer reliably.
|
|
75
|
+
- **Route directly from a composite leaderboard:** rejected because benchmark,
|
|
76
|
+
harness, effort, uncertainty, and workload boundaries would be lost.
|
|
77
|
+
- **Re-run the routing interview on every Kit update:** rejected because a valid
|
|
78
|
+
user-owned profile should remain stable until a material choice changes.
|
|
79
|
+
|
|
80
|
+
## Consequences
|
|
81
|
+
|
|
82
|
+
- Model/provider churn updates the catalog and resolver without rewriting
|
|
83
|
+
durable issues.
|
|
84
|
+
- Both Claude Code and Codex read one local policy while proving their own
|
|
85
|
+
execution capabilities independently.
|
|
86
|
+
- Cross-provider dispatch is expressible without pretending that every surface
|
|
87
|
+
can reach every model.
|
|
88
|
+
- The Kit must maintain source adapters, schema migration, capability probes,
|
|
89
|
+
last-known-good evidence, and dispatch receipts.
|
|
90
|
+
- Different machines do not share personal routing state unless the user later
|
|
91
|
+
chooses an explicit export or private synchronization mechanism.
|