@ikon85/agent-workflow-kit 0.44.1 → 0.45.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.
Files changed (67) hide show
  1. package/.agents/skills/audit-skills/SKILL.md +7 -4
  2. package/.agents/skills/code-review/SKILL.md +7 -4
  3. package/.agents/skills/codebase-design/DESIGN-IT-TWICE.md +7 -4
  4. package/.agents/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +7 -4
  5. package/.agents/skills/improve-codebase-architecture/SKILL.md +7 -4
  6. package/.agents/skills/orchestrate-wave/SKILL.md +1 -1
  7. package/.agents/skills/orchestrate-wave/references/dispatch-subagents.md +9 -0
  8. package/.agents/skills/orchestrate-wave/references/dispatch-workflow.md +9 -0
  9. package/.agents/skills/research/SKILL.md +7 -4
  10. package/.agents/skills/to-issues/SKILL.md +25 -4
  11. package/.claude/skills/audit-skills/SKILL.md +7 -4
  12. package/.claude/skills/code-review/SKILL.md +7 -4
  13. package/.claude/skills/codebase-design/DESIGN-IT-TWICE.md +7 -4
  14. package/.claude/skills/codex-build/SKILL.md +13 -0
  15. package/.claude/skills/codex-review/SKILL.md +13 -0
  16. package/.claude/skills/grill-me-codex/SKILL.md +14 -0
  17. package/.claude/skills/grill-with-docs-codex/SKILL.md +14 -0
  18. package/.claude/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +7 -4
  19. package/.claude/skills/improve-codebase-architecture/SKILL.md +7 -4
  20. package/.claude/skills/orchestrate-wave/SKILL.md +1 -1
  21. package/.claude/skills/orchestrate-wave/references/dispatch-subagents.md +9 -0
  22. package/.claude/skills/orchestrate-wave/references/dispatch-workflow.md +9 -0
  23. package/.claude/skills/research/SKILL.md +7 -4
  24. package/.claude/skills/skill-manifest.json +34 -23
  25. package/.claude/skills/to-issues/SKILL.md +25 -4
  26. package/README.md +71 -0
  27. package/agent-workflow-kit.package.json +149 -45
  28. package/package.json +1 -1
  29. package/scripts/doctrine-migration/index.mjs +296 -0
  30. package/scripts/kit-release.mjs +41 -9
  31. package/src/cli.mjs +521 -80
  32. package/src/commands/routing-status.mjs +288 -0
  33. package/src/commands/update.mjs +9 -1
  34. package/src/consumer-migrations.json +23 -1
  35. package/src/lib/bundle.mjs +158 -2
  36. package/src/lib/consumerMigrations.mjs +55 -0
  37. package/src/lib/dispatchJournal.mjs +300 -0
  38. package/src/lib/dispatchPlan.mjs +286 -0
  39. package/src/lib/dispatchReceipt.mjs +226 -89
  40. package/src/lib/frontendWorkloads.mjs +35 -33
  41. package/src/lib/routeDispatcher.mjs +367 -70
  42. package/src/lib/routingAccessGraph.mjs +265 -20
  43. package/src/lib/routingAccessGraphStore.mjs +300 -0
  44. package/src/lib/routingAdapters/claude.mjs +104 -4
  45. package/src/lib/routingAdapters/codex.mjs +132 -7
  46. package/src/lib/routingAdapters/hostBridge.mjs +291 -0
  47. package/src/lib/routingCatalog.mjs +201 -24
  48. package/src/lib/routingDispatchLease.mjs +253 -0
  49. package/src/lib/routingEvidenceCache.mjs +78 -0
  50. package/src/lib/routingIntent.mjs +176 -10
  51. package/src/lib/routingIntentClassifier.mjs +137 -0
  52. package/src/lib/routingInventory/snapshots/claude.json +49 -0
  53. package/src/lib/routingInventory/snapshots/codex.json +109 -0
  54. package/src/lib/routingInventory.mjs +182 -0
  55. package/src/lib/routingPolicy.mjs +193 -6
  56. package/src/lib/routingProfile.mjs +1251 -123
  57. package/src/lib/routingProfilePolicy.mjs +156 -0
  58. package/src/lib/routingProfileStorage.mjs +299 -0
  59. package/src/lib/routingResolver.mjs +369 -86
  60. package/src/lib/routingSources/artificialAnalysis.mjs +19 -7
  61. package/src/lib/routingSources/benchlm.mjs +5 -0
  62. package/src/lib/routingSources/codeArena.mjs +13 -3
  63. package/src/lib/routingSources/deepswe.mjs +19 -5
  64. package/src/lib/routingSources/openhands.mjs +17 -4
  65. package/src/lib/routingSources/openhandsFrontend.mjs +13 -3
  66. package/src/lib/safeText.mjs +26 -0
  67. package/src/lib/updateCandidate.mjs +36 -3
@@ -4,29 +4,29 @@
4
4
  "readiness": {
5
5
  "contractVersion": 1,
6
6
  "capabilities": {
7
- "issueTracker": { "evidence": { "type": "sentinel", "paths": ["docs/agents/issue-tracker.md"], "allowLegacy": true } },
8
- "triageLabels": { "evidence": { "type": "sentinel", "paths": ["docs/agents/triage-labels.md"], "allowLegacy": true } },
9
- "managedBoard": { "allowNotApplicable": true, "evidence": { "type": "board-profile", "paths": ["docs/agents/board-sync.md"] } },
10
- "specCompleteness": { "evidence": { "type": "sentinel", "paths": ["docs/conventions/spec-completeness.md"], "allowLegacy": true } },
11
- "localCiRecipe": { "evidence": { "type": "sentinel", "paths": ["docs/agents/skills/local-ci.md"], "allowLegacy": true } },
12
- "projectReleaseProfile": { "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "validator": "project-release" } },
13
- "securityAuditRunbook": { "evidence": { "type": "runbook-reference", "paths": ["docs/agents/skills/security-audit.md"], "allowLegacy": true } },
14
- "prodTarget": { "evidence": { "type": "prod-section", "paths": ["CLAUDE.md", "AGENTS.md"] } },
15
- "orchestrateWaveRecipe": { "evidence": { "type": "project-extension", "skill": "orchestrate-wave", "paths": ["docs/agents/skills/orchestrate-wave.md"], "activation": { "mode": "all-sections-filled", "sections": ["§Setup", "§Builder Commands", "§Builder Hard Rules", "§Integration Suites", "§Verify Recipe", "§Headless Login", "§Landing"] } } },
16
- "specCritiqueLayer": { "evidence": { "type": "sentinel", "paths": ["docs/agents/skills/spec-self-critique.md"], "allowLegacy": true } },
17
- "codeReviewLayer": { "evidence": { "type": "sentinel", "paths": ["docs/agents/code-review.md"], "allowLegacy": true } },
18
- "verifySpikeLayer": { "evidence": { "type": "sentinel", "paths": ["docs/agents/skills/verify-spike.md"], "allowLegacy": true } },
19
- "auditSkillsLayer": { "evidence": { "type": "sentinel", "paths": ["docs/agents/skills/audit-skills.md"], "allowLegacy": true } },
20
- "worktreeRecoveryLayer": { "evidence": { "type": "sentinel", "paths": ["docs/agents/skills/git-worktree-recover.md"], "allowLegacy": true } },
21
- "domainDocs": { "evidence": { "type": "sentinel", "paths": ["docs/agents/domain.md"], "allowLegacy": true } },
22
- "censusChoice": { "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["census"] } },
23
- "memoryLifecycle": { "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["memoryLifecycle"] } },
24
- "worktreeLifecycle": { "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["worktreeLifecycle"] } },
25
- "workflowAdvisories": { "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["workflowAdvisories"] } },
26
- "safetyGuardrails": { "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["safetyGuardrails"] } },
27
- "workflowSummary": { "evidence": { "type": "nonempty", "paths": ["CLAUDE.md", "AGENTS.md"] } },
28
- "locProfile": { "evidence": { "type": "json", "paths": ["max-lines-allowlist.json"] } },
29
- "kitOriginHint": { "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["kitOriginHint"] } }
7
+ "issueTracker": { "title": "Issue tracker layer", "remedy": "Run `/setup-workflow` and record where issues live plus how to read and write them.", "evidence": { "type": "sentinel", "paths": ["docs/agents/issue-tracker.md"], "allowLegacy": true } },
8
+ "triageLabels": { "title": "Triage vocabulary", "remedy": "Run `/setup-workflow` and record the label or state vocabulary triage may set.", "evidence": { "type": "sentinel", "paths": ["docs/agents/triage-labels.md"], "allowLegacy": true } },
9
+ "managedBoard": { "title": "Managed board profile", "remedy": "Run `/setup-workflow` to fill the board profile block, or record the capability as not applicable when the project runs no managed board.", "allowNotApplicable": true, "evidence": { "type": "board-profile", "paths": ["docs/agents/board-sync.md"] } },
10
+ "specCompleteness": { "title": "Spec completeness convention", "remedy": "Run `/setup-workflow` and record what makes a spec complete in this project.", "evidence": { "type": "sentinel", "paths": ["docs/conventions/spec-completeness.md"], "allowLegacy": true } },
11
+ "localCiRecipe": { "title": "Local CI recipe", "remedy": "Fill the project layer with the exact commands that must pass before a pull request.", "evidence": { "type": "sentinel", "paths": ["docs/agents/skills/local-ci.md"], "allowLegacy": true } },
12
+ "projectReleaseProfile": { "title": "Project release profile", "remedy": "Record a `projectRelease` section naming the files that carry the version and the release tag prefix.", "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "validator": "project-release" } },
13
+ "securityAuditRunbook": { "title": "Security audit runbook", "remedy": "Point the security-audit layer at a real project runbook instead of the placeholder.", "evidence": { "type": "runbook-reference", "paths": ["docs/agents/skills/security-audit.md"], "allowLegacy": true } },
14
+ "prodTarget": { "title": "Deploy target", "remedy": "Add a `## Prod` section describing where this project deploys; `/setup-workflow` seeds it on both agent surfaces.", "evidence": { "type": "prod-section", "paths": ["CLAUDE.md", "AGENTS.md"] } },
15
+ "orchestrateWaveRecipe": { "title": "Wave orchestration recipe", "remedy": "Fill every section of the orchestrate-wave project extension \u2014 one empty section keeps the recipe inactive.", "evidence": { "type": "project-extension", "skill": "orchestrate-wave", "paths": ["docs/agents/skills/orchestrate-wave.md"], "activation": { "mode": "all-sections-filled", "sections": ["§Setup", "§Builder Commands", "§Builder Hard Rules", "§Integration Suites", "§Verify Recipe", "§Headless Login", "§Landing"] } } },
16
+ "specCritiqueLayer": { "title": "Spec critique layer", "remedy": "Run `/setup-workflow` and record the project-specific checks a spec critique must apply.", "evidence": { "type": "sentinel", "paths": ["docs/agents/skills/spec-self-critique.md"], "allowLegacy": true } },
17
+ "codeReviewLayer": { "title": "Code review layer", "remedy": "Run `/setup-workflow` and record this project's standards sources and review tooling.", "evidence": { "type": "sentinel", "paths": ["docs/agents/code-review.md"], "allowLegacy": true } },
18
+ "verifySpikeLayer": { "title": "Verify-spike layer", "remedy": "Fill the project layer with where throwaway verification harnesses may live and how they are removed.", "evidence": { "type": "sentinel", "paths": ["docs/agents/skills/verify-spike.md"], "allowLegacy": true } },
19
+ "auditSkillsLayer": { "title": "Skill audit layer", "remedy": "Fill the project layer with the skill trees and extra checks an audit must cover.", "evidence": { "type": "sentinel", "paths": ["docs/agents/skills/audit-skills.md"], "allowLegacy": true } },
20
+ "worktreeRecoveryLayer": { "title": "Worktree recovery layer", "remedy": "Fill the project layer with this project's branch and worktree recovery rules.", "evidence": { "type": "sentinel", "paths": ["docs/agents/skills/git-worktree-recover.md"], "allowLegacy": true } },
21
+ "domainDocs": { "title": "Domain documentation layout", "remedy": "Run `/setup-workflow` and record where domain context and decision records live.", "evidence": { "type": "sentinel", "paths": ["docs/agents/domain.md"], "allowLegacy": true } },
22
+ "censusChoice": { "title": "Project census choice", "remedy": "Run `/setup-workflow` and answer whether the optional project census is prepared now, deferred, or disabled.", "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["census"] } },
23
+ "memoryLifecycle": { "title": "Memory lifecycle choice", "remedy": "Run `/setup-workflow` and record the memory roots plus the archive and recovery rules.", "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["memoryLifecycle"] } },
24
+ "worktreeLifecycle": { "title": "Worktree lifecycle choice", "remedy": "Run `/setup-workflow` and record where worktrees are created and how they are cleaned up.", "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["worktreeLifecycle"] } },
25
+ "workflowAdvisories": { "title": "Workflow advisories choice", "remedy": "Run `/setup-workflow` and record which workflow advisories this project activates.", "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["workflowAdvisories"] } },
26
+ "safetyGuardrails": { "title": "Safety guardrails choice", "remedy": "Run `/setup-workflow` and record which guardrail commands agent hooks may run here.", "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["safetyGuardrails"] } },
27
+ "workflowSummary": { "title": "Workflow overview", "remedy": "Run `/setup-workflow` to write the workflow entry-point map into the agent instruction files.", "evidence": { "type": "nonempty", "paths": ["CLAUDE.md", "AGENTS.md"] } },
28
+ "locProfile": { "title": "File-size profile", "remedy": "Record the maximum file length plus the curated list of existing offenders.", "evidence": { "type": "json", "paths": ["max-lines-allowlist.json"] } },
29
+ "kitOriginHint": { "title": "Kit-origin edit hint", "remedy": "Run `/setup-workflow` and decide whether the advisory kit-origin edit hint is activated.", "evidence": { "type": "json", "paths": ["docs/agents/workflow-capabilities.json"], "required": ["kitOriginHint"] } }
30
30
  }
31
31
  },
32
32
  "skills": {
@@ -50,6 +50,7 @@
50
50
  "claude",
51
51
  "codex"
52
52
  ],
53
+ "routing": { "writesIntent": ["SKILL.md"] },
53
54
  "provenance": "matt-pocock"
54
55
  },
55
56
  "grill-with-docs": {
@@ -130,6 +131,7 @@
130
131
  "claude",
131
132
  "codex"
132
133
  ],
134
+ "routing": { "dispatch": ["SKILL.md"] },
133
135
  "provenance": "own"
134
136
  },
135
137
  "setup-workflow": {
@@ -210,6 +212,7 @@
210
212
  "claude",
211
213
  "codex"
212
214
  ],
215
+ "routing": { "dispatch": ["INTERFACE-DESIGN.md", "SKILL.md"] },
213
216
  "provenance": "matt-pocock"
214
217
  },
215
218
  "prototype": {
@@ -240,6 +243,7 @@
240
243
  "claude",
241
244
  "codex"
242
245
  ],
246
+ "routing": { "dispatch": ["DESIGN-IT-TWICE.md"] },
243
247
  "provenance": "matt-pocock"
244
248
  },
245
249
  "domain-modeling": {
@@ -305,6 +309,7 @@
305
309
  "claude",
306
310
  "codex"
307
311
  ],
312
+ "routing": { "dispatch": ["SKILL.md"] },
308
313
  "provenance": "matt-pocock"
309
314
  },
310
315
  "git-guardrails-claude-code": {
@@ -329,6 +334,7 @@
329
334
  "surfaces": [
330
335
  "claude"
331
336
  ],
337
+ "routing": { "dispatch": ["SKILL.md"] },
332
338
  "provenance": "chase"
333
339
  },
334
340
  "grill-with-docs-codex": {
@@ -337,6 +343,7 @@
337
343
  "surfaces": [
338
344
  "claude"
339
345
  ],
346
+ "routing": { "dispatch": ["SKILL.md"] },
340
347
  "provenance": "chase"
341
348
  },
342
349
  "codex-review": {
@@ -345,6 +352,7 @@
345
352
  "surfaces": [
346
353
  "claude"
347
354
  ],
355
+ "routing": { "dispatch": ["SKILL.md"] },
348
356
  "provenance": "chase"
349
357
  },
350
358
  "codex-build": {
@@ -353,6 +361,7 @@
353
361
  "surfaces": [
354
362
  "claude"
355
363
  ],
364
+ "routing": { "dispatch": ["SKILL.md"] },
356
365
  "provenance": "chase"
357
366
  },
358
367
  "codex-adapter-sync": {
@@ -372,6 +381,7 @@
372
381
  "claude",
373
382
  "codex"
374
383
  ],
384
+ "routing": { "dispatch": ["SKILL.md"] },
375
385
  "provenance": "own"
376
386
  },
377
387
  "local-ci": {
@@ -397,6 +407,7 @@
397
407
  "claude",
398
408
  "codex"
399
409
  ],
410
+ "routing": { "dispatch": ["SKILL.md", "references/dispatch-subagents.md", "references/dispatch-workflow.md"] },
400
411
  "provenance": "own"
401
412
  },
402
413
  "git-worktree-recover": {
@@ -436,6 +436,20 @@ Reference the blocking ticket(s), or "None - can start immediately".
436
436
  **Decision:** <chosen option + why it wins on the criteria that matter + what was consciously traded off>
437
437
  **Verdict sink:** <ADR / this body / follow-up slice #N>
438
438
 
439
+ ## Routing intent
440
+ <!-- Provider-neutral and durable: the dimensions of the WORK, never a model,
441
+ effort, or provider name. Written as ONE blank-line-delimited block so the
442
+ dispatching surface can read it as the explicit intent instead of guessing
443
+ from workflow signals; a second such block in the body makes it ambiguous
444
+ and unreadable. Keys and vocabularies are owned by the intent schema. -->
445
+ intent-version: 2
446
+ routing-intent: <judgment | development | mechanical>
447
+ reasoning-intent: <deep | balanced | light>
448
+ task-shape: <single-step | multi-step | long-horizon>
449
+ risk: <low | moderate | high>
450
+ autonomy-requirement: <supervised | afk>
451
+ context-need: <focused | repository | long-context>
452
+
439
453
  ## Handoff Start Command
440
454
  <!-- SELF-CONTAINED: scope + live-verify live HERE, never as a "see anchor
441
455
  handoff" pointer — the anchor carries no per-slice handoff blocks anymore, and a
@@ -444,7 +458,7 @@ Reference the blocking ticket(s), or "None - can start immediately".
444
458
  ```
445
459
  Welle <N> · Slice <X> (<closes #x | refs #<prd#>, Parent #<prd#>>). Read #<prd#> for decisions.
446
460
  Start skill: 🧭 Design Grill → /grill-with-docs-codex · 🔬 Verify Spike → /verify-spike · 📐 Trade-off/Research → /decision-gate · AFK → /implement · HITL → /grill-me → /implement.
447
- Routing intent: `routing-intent: <judgment | development | mechanical>` · `reasoning-intent: <deep | balanced | light>`. The dispatching surface resolves the current executable route; never persist that provider route here.
461
+ Routing intent: the body's `## Routing intent` block read it as the explicit intent. The dispatching surface resolves the current executable route from it; never persist that provider route here.
448
462
  Worktree: your project's worktree helper, or `git worktree add`
449
463
  Scope (<N> files) — REQUIRED FIELD, blast-radius estimate at cut time; the build session checks it against its own recon findings, >2x deviation → STOP:
450
464
  - <concrete file + change>
@@ -453,10 +467,17 @@ PR: <closes #x | Part of #<prd#> — NEVER closes on the anchor>.
453
467
  ```
454
468
  <!-- mirror-xform:end -->
455
469
 
470
+ Every published issue carries that block, gate slices included — an unstated
471
+ intent forces the dispatching surface to classify from workflow signals, and a
472
+ guess is what the block exists to replace. Fill each dimension from the slice
473
+ itself: `autonomy-requirement: afk` only for the AFK bucket (§5c), `supervised`
474
+ for every HITL slice.
475
+
456
476
  At execution time, consume that provider-neutral intent only through
457
- `src/lib/routeDispatcher.mjs` and its shared spawn guard. The active Claude or
458
- Codex adapter must produce Dispatch receipt v2 with requested/applied route,
459
- model/effort enforcement, precedence, and catalog/access/policy revisions
477
+ `src/lib/routeDispatcher.mjs` and its shared spawn guard, under the Dispatch
478
+ plan that authorized the run. The active Claude or Codex adapter must produce
479
+ Dispatch receipt v2 with requested/applied route, model/effort enforcement,
480
+ precedence, the plan's authorization id, and catalog/access/policy revisions
460
481
  before an AFK subagent starts; the durable issue never claims that proof.
461
482
  </issue-template>
462
483
 
package/README.md CHANGED
@@ -579,6 +579,77 @@ the old way. Decision record:
579
579
 
580
580
  ## Release notes
581
581
 
582
+ ### 0.45.0
583
+
584
+ - added: `scripts/doctrine-migration/index.mjs`
585
+ - added: `src/commands/routing-status.mjs`
586
+ - added: `src/lib/dispatchJournal.mjs`
587
+ - added: `src/lib/dispatchPlan.mjs`
588
+ - added: `src/lib/routingAccessGraphStore.mjs`
589
+ - added: `src/lib/routingAdapters/hostBridge.mjs`
590
+ - added: `src/lib/routingDispatchLease.mjs`
591
+ - added: `src/lib/routingIntentClassifier.mjs`
592
+ - added: `src/lib/routingInventory.mjs`
593
+ - added: `src/lib/routingInventory/snapshots/claude.json`
594
+ - added: `src/lib/routingInventory/snapshots/codex.json`
595
+ - added: `src/lib/routingProfilePolicy.mjs`
596
+ - added: `src/lib/routingProfileStorage.mjs`
597
+ - changed: `.agents/skills/audit-skills/SKILL.md`
598
+ - changed: `.agents/skills/code-review/SKILL.md`
599
+ - changed: `.agents/skills/codebase-design/DESIGN-IT-TWICE.md`
600
+ - changed: `.agents/skills/improve-codebase-architecture/INTERFACE-DESIGN.md`
601
+ - changed: `.agents/skills/improve-codebase-architecture/SKILL.md`
602
+ - changed: `.agents/skills/orchestrate-wave/SKILL.md`
603
+ - changed: `.agents/skills/orchestrate-wave/references/dispatch-subagents.md`
604
+ - changed: `.agents/skills/orchestrate-wave/references/dispatch-workflow.md`
605
+ - changed: `.agents/skills/research/SKILL.md`
606
+ - changed: `.agents/skills/to-issues/SKILL.md`
607
+ - changed: `.claude/skills/audit-skills/SKILL.md`
608
+ - changed: `.claude/skills/code-review/SKILL.md`
609
+ - changed: `.claude/skills/codebase-design/DESIGN-IT-TWICE.md`
610
+ - changed: `.claude/skills/codex-build/SKILL.md`
611
+ - changed: `.claude/skills/codex-review/SKILL.md`
612
+ - changed: `.claude/skills/grill-me-codex/SKILL.md`
613
+ - changed: `.claude/skills/grill-with-docs-codex/SKILL.md`
614
+ - changed: `.claude/skills/improve-codebase-architecture/INTERFACE-DESIGN.md`
615
+ - changed: `.claude/skills/improve-codebase-architecture/SKILL.md`
616
+ - changed: `.claude/skills/orchestrate-wave/SKILL.md`
617
+ - changed: `.claude/skills/orchestrate-wave/references/dispatch-subagents.md`
618
+ - changed: `.claude/skills/orchestrate-wave/references/dispatch-workflow.md`
619
+ - changed: `.claude/skills/research/SKILL.md`
620
+ - changed: `.claude/skills/skill-manifest.json`
621
+ - changed: `.claude/skills/to-issues/SKILL.md`
622
+ - changed: `agent-workflow-kit.package.json`
623
+ - changed: `scripts/kit-release.mjs`
624
+ - changed: `src/cli.mjs`
625
+ - changed: `src/lib/bundle.mjs`
626
+ - changed: `src/lib/dispatchReceipt.mjs`
627
+ - changed: `src/lib/frontendWorkloads.mjs`
628
+ - changed: `src/lib/routeDispatcher.mjs`
629
+ - changed: `src/lib/routingAccessGraph.mjs`
630
+ - changed: `src/lib/routingAdapters/claude.mjs`
631
+ - changed: `src/lib/routingAdapters/codex.mjs`
632
+ - changed: `src/lib/routingCatalog.mjs`
633
+ - changed: `src/lib/routingEvidenceCache.mjs`
634
+ - changed: `src/lib/routingIntent.mjs`
635
+ - changed: `src/lib/routingPolicy.mjs`
636
+ - changed: `src/lib/routingProfile.mjs`
637
+ - changed: `src/lib/routingResolver.mjs`
638
+ - changed: `src/lib/routingSources/artificialAnalysis.mjs`
639
+ - changed: `src/lib/routingSources/benchlm.mjs`
640
+ - changed: `src/lib/routingSources/codeArena.mjs`
641
+ - changed: `src/lib/routingSources/deepswe.mjs`
642
+ - changed: `src/lib/routingSources/openhands.mjs`
643
+ - changed: `src/lib/routingSources/openhandsFrontend.mjs`
644
+ - changed: `src/lib/updateCandidate.mjs`
645
+
646
+ ### 0.44.2
647
+
648
+ - changed: `src/cli.mjs`
649
+ - changed: `src/commands/update.mjs`
650
+ - changed: `src/consumer-migrations.json`
651
+ - changed: `src/lib/consumerMigrations.mjs`
652
+
582
653
  ### 0.44.1
583
654
 
584
655
  - changed: `.claude/skills/skill-manifest.json`