@event4u/agent-config 7.0.1 → 7.1.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/.claude-plugin/marketplace.json +8 -1
- package/CHANGELOG.md +99 -0
- package/README.md +4 -2
- package/dist/agent-src/commands/council/default.md +28 -20
- package/dist/agent-src/commands/evals/fix.json +5 -1
- package/dist/agent-src/commands/fix/comments.md +101 -0
- package/dist/agent-src/commands/fix.md +5 -2
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +65 -0
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +68 -0
- package/dist/agent-src/contexts/execution/host-capability-manifest.md +68 -0
- package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +62 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +59 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +8 -3
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +56 -0
- package/dist/agent-src/contexts/execution/subagent-routing.md +57 -0
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +54 -0
- package/dist/agent-src/contexts/execution/subagent-steering.md +71 -0
- package/dist/agent-src/contexts/execution/verify-budget.md +50 -0
- package/dist/agent-src/rules/delegation-policy.md +84 -0
- package/dist/agent-src/rules/design-fidelity.md +98 -0
- package/dist/agent-src/rules/domain-safety-pii.md +22 -0
- package/dist/agent-src/rules/legal-safety-floor.md +144 -0
- package/dist/agent-src/rules/lethal-trifecta-guard.md +25 -22
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +102 -15
- package/dist/agent-src/scripts/update_roadmap_progress.ts +52 -7
- package/dist/agent-src/skills/ai-council/SKILL.md +28 -1
- package/dist/agent-src/skills/contract-review/SKILL.md +124 -0
- package/dist/agent-src/skills/contract-review/evals/triggers.json +17 -0
- package/dist/agent-src/skills/dpa-review/SKILL.md +129 -0
- package/dist/agent-src/skills/dpa-review/evals/triggers.json +17 -0
- package/dist/agent-src/skills/laravel/SKILL.md +1 -0
- package/dist/agent-src/skills/legal-intake-triage/SKILL.md +127 -0
- package/dist/agent-src/skills/legal-intake-triage/evals/triggers.json +17 -0
- package/dist/agent-src/skills/legal-practice-profile/SKILL.md +100 -0
- package/dist/agent-src/skills/legal-practice-profile/evals/triggers.json +17 -0
- package/dist/agent-src/skills/nda-triage/SKILL.md +113 -0
- package/dist/agent-src/skills/nda-triage/evals/triggers.json +17 -0
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +36 -9
- package/dist/agent-src/skills/recursive-verification/SKILL.md +186 -0
- package/dist/agent-src/skills/roadmap-management/SKILL.md +17 -0
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +14 -0
- package/dist/agent-src/templates/agent-settings.md +64 -19
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +278 -23
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +12 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +50 -8
- package/dist/discovery/trust-report.md +7 -5
- package/dist/discovery/workspaces.json +34 -6
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/router.json +1 -1
- package/dist/server/schemas/settings.js +14 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/architecture.md +4 -4
- package/docs/benchmark.md +46 -0
- package/docs/catalog.md +18 -6
- package/docs/command-flows.md +7 -1
- package/docs/contracts/ai-council-config.md +17 -10
- package/docs/contracts/audit-log-v1.md +7 -0
- package/docs/contracts/auto-orchestration-v1.md +70 -0
- package/docs/contracts/command-clusters.md +1 -1
- package/docs/contracts/discovery-manifest.schema.json +2 -2
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +19 -0
- package/docs/decisions/ADR-020-global-only-consumer-scope.md +13 -6
- package/docs/decisions/ADR-049-configuration-trust-boundary.md +11 -1
- package/docs/decisions/ADR-093-ai-council-config-user-global.md +10 -4
- package/docs/decisions/ADR-104-ai-council-config-global-only.md +119 -0
- package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +102 -0
- package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +126 -0
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +51 -0
- package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +46 -0
- package/docs/decisions/INDEX.md +5 -0
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/domain-eval-anti-pattern.md +53 -0
- package/docs/guidelines/agent-infra/domain-pack-architecture.md +55 -0
- package/package.json +1 -1
- package/src/config/agent-settings.template.yml +72 -3
- package/src/config/discovery/packs.yml +13 -0
- package/src/config/discovery/workspaces.yml +7 -0
- package/src/scripts/_lib/auto_dispatch.ts +95 -0
- package/src/scripts/_lib/host_capability.ts +59 -0
- package/src/scripts/_lib/orchestration_gate.ts +98 -0
- package/src/scripts/_lib/subagent_bundle.ts +154 -0
- package/src/scripts/_lib/subagent_response.ts +82 -0
- package/src/scripts/_lib/subagent_routing.ts +81 -0
- package/src/scripts/_lib/subagent_spawn.ts +97 -0
- package/src/scripts/_lib/subagent_steering.ts +64 -0
- package/src/scripts/_lib/verify_budget.ts +54 -0
- package/src/scripts/ai_council/advisors.ts +4 -2
- package/src/scripts/ai_council/clients.ts +7 -1
- package/src/scripts/ai_council/config.ts +22 -17
- package/src/scripts/bench_ab_v2_run.ts +127 -0
- package/src/scripts/bench_ab_v2_stats.ts +39 -0
- package/src/scripts/check_council_config_location.ts +6 -5
- package/src/scripts/lint_discovery_vocabulary.ts +6 -0
- package/src/scripts/lint_framework_leakage_allowlist.json +21 -0
- package/src/scripts/lint_legal_pack.ts +139 -0
- package/src/scripts/probe_projection_fidelity.ts +7 -1
- package/src/scripts/rdp_gate_classify.ts +131 -0
- package/src/scripts/rdp_quality_eval.ts +437 -0
- package/src/scripts/schemas/agent-settings.schema.json +11 -0
- package/src/scripts/skill_linter.ts +3 -0
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Shared agent configuration — skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
|
|
9
|
-
"version": "7.0
|
|
9
|
+
"version": "7.1.0",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"agent-config",
|
|
12
12
|
"skills",
|
|
@@ -96,6 +96,7 @@
|
|
|
96
96
|
"./.claude-plugin/skills/feature-roadmap",
|
|
97
97
|
"./.claude-plugin/skills/fix",
|
|
98
98
|
"./.claude-plugin/skills/fix-ci",
|
|
99
|
+
"./.claude-plugin/skills/fix-comments",
|
|
99
100
|
"./.claude-plugin/skills/fix-portability",
|
|
100
101
|
"./.claude-plugin/skills/fix-pr-comments",
|
|
101
102
|
"./.claude-plugin/skills/fix-refs",
|
|
@@ -235,6 +236,7 @@
|
|
|
235
236
|
"./dist/agent-src/skills/content-funnel-design",
|
|
236
237
|
"./dist/agent-src/skills/context-authoring",
|
|
237
238
|
"./dist/agent-src/skills/context-document",
|
|
239
|
+
"./dist/agent-src/skills/contract-review",
|
|
238
240
|
"./dist/agent-src/skills/contracts-cognition",
|
|
239
241
|
"./dist/agent-src/skills/conventional-commits-writing",
|
|
240
242
|
"./dist/agent-src/skills/copilot-agents-optimization",
|
|
@@ -261,6 +263,7 @@
|
|
|
261
263
|
"./dist/agent-src/skills/discovery-interview",
|
|
262
264
|
"./dist/agent-src/skills/doc-coauthoring",
|
|
263
265
|
"./dist/agent-src/skills/docker",
|
|
266
|
+
"./dist/agent-src/skills/dpa-review",
|
|
264
267
|
"./dist/agent-src/skills/editorial-calendar",
|
|
265
268
|
"./dist/agent-src/skills/eloquent",
|
|
266
269
|
"./dist/agent-src/skills/emit-tickets",
|
|
@@ -321,6 +324,8 @@
|
|
|
321
324
|
"./dist/agent-src/skills/laravel-websocket",
|
|
322
325
|
"./dist/agent-src/skills/launch-readiness",
|
|
323
326
|
"./dist/agent-src/skills/learning-to-rule-or-skill",
|
|
327
|
+
"./dist/agent-src/skills/legal-intake-triage",
|
|
328
|
+
"./dist/agent-src/skills/legal-practice-profile",
|
|
324
329
|
"./dist/agent-src/skills/lint-skills",
|
|
325
330
|
"./dist/agent-src/skills/livewire",
|
|
326
331
|
"./dist/agent-src/skills/livewire-architect",
|
|
@@ -339,6 +344,7 @@
|
|
|
339
344
|
"./dist/agent-src/skills/module-management",
|
|
340
345
|
"./dist/agent-src/skills/motion-choreographer",
|
|
341
346
|
"./dist/agent-src/skills/multi-tenancy",
|
|
347
|
+
"./dist/agent-src/skills/nda-triage",
|
|
342
348
|
"./dist/agent-src/skills/nextjs-patterns",
|
|
343
349
|
"./dist/agent-src/skills/okr-tree-modeling",
|
|
344
350
|
"./dist/agent-src/skills/onboarding-design",
|
|
@@ -386,6 +392,7 @@
|
|
|
386
392
|
"./dist/agent-src/skills/readme-writing-package",
|
|
387
393
|
"./dist/agent-src/skills/reasoning-orchestrator",
|
|
388
394
|
"./dist/agent-src/skills/receiving-code-review",
|
|
395
|
+
"./dist/agent-src/skills/recursive-verification",
|
|
389
396
|
"./dist/agent-src/skills/refine-prompt",
|
|
390
397
|
"./dist/agent-src/skills/refine-ticket",
|
|
391
398
|
"./dist/agent-src/skills/release-comms",
|
package/CHANGELOG.md
CHANGED
|
@@ -948,6 +948,105 @@ our recommendation order, not its support status.
|
|
|
948
948
|
> that forces a new era split (`# Era: 7.1.x`, etc.) — see
|
|
949
949
|
> [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
|
|
950
950
|
|
|
951
|
+
## [7.1.0](https://github.com/event4u-app/agent-config/compare/7.0.2...7.1.0) (2026-06-24)
|
|
952
|
+
|
|
953
|
+
### Features
|
|
954
|
+
|
|
955
|
+
* **legal:** RDG individual-case guardrail + LEGAL_NOTICE + no-definitive-language lint ([23e76df](https://github.com/event4u-app/agent-config/commit/23e76df34c612ed9bcdace069040defda80c1226))
|
|
956
|
+
* **legal:** lock open-source-forever stance + harden liability disclaimer (ADR-108); close 0.6 + 3.3 ([8d828a6](https://github.com/event4u-app/agent-config/commit/8d828a64de5d23fa1c298a78b3d67c6e70ffe4b7))
|
|
957
|
+
* **legal:** lock open-source-forever stance + harden liability disclaimer (ADR-108); close 0.6 + 3.3 ([f45e4e9](https://github.com/event4u-app/agent-config/commit/f45e4e99f7cccd77efb2d62fe06cb4436bc2df9e))
|
|
958
|
+
* **legal:** enforcement linter, privilege markers, eval harness, docs (Phases 1/1.5/3/5) ([cb06648](https://github.com/event4u-app/agent-config/commit/cb06648009dc12daab440a273eeb780d06f6e2fa))
|
|
959
|
+
* **legal:** add governed EU/DE legal pack — floor, 5 skills, vocab (ADR-107) ([b0d531f](https://github.com/event4u-app/agent-config/commit/b0d531f2701b600c93cb1ba52f3dce50e21a6d6d))
|
|
960
|
+
* **bench:** pair-capture seam for recursion arm (human-preference pretest) ([7211c04](https://github.com/event4u-app/agent-config/commit/7211c043bb712cea6c0a2e0de56ea5af79b70cce))
|
|
961
|
+
* **bench:** recursion gate logic + novel-lift scorer + package-recursive arm ([e33ff7d](https://github.com/event4u-app/agent-config/commit/e33ff7d52572ea35bcb8f5b190336e83e737ab1d))
|
|
962
|
+
* **recursive-verification:** add depth-bounded self-verification skill + gate ([4a0c519](https://github.com/event4u-app/agent-config/commit/4a0c519628a5244cc2859cdf484661c92be25783))
|
|
963
|
+
* **subagents:** A1 rule body + A2 bundle resolver + A3 response envelope ([4a9fc9b](https://github.com/event4u-app/agent-config/commit/4a9fc9b3c44c256426b0c33f4448010e890adf13))
|
|
964
|
+
* **subagents:** A1 — dedicated delegation-policy auto-trigger rule ([e60cb50](https://github.com/event4u-app/agent-config/commit/e60cb50fcfb55ccabdeab88b680ec707f8a4d122))
|
|
965
|
+
* **subagents:** automatic, settings-gated subagent orchestration ([dba922c](https://github.com/event4u-app/agent-config/commit/dba922c1da2177ad8103f06fd4dce49cff95977d))
|
|
966
|
+
* **py2ts:** purge dead python-parity test blocks + add permanent no-python-in-src guard ([e163468](https://github.com/event4u-app/agent-config/commit/e163468af8d2b70a7e4645db0dda719c3f761cb3))
|
|
967
|
+
* **roadmaps:** robust completion→archival independent of PR flow, tracking, and vendored scripts ([a879334](https://github.com/event4u-app/agent-config/commit/a87933447797c848e0e09e5d9d0ade6d280ae794))
|
|
968
|
+
* **rules:** add design-fidelity rule for provided-design adherence ([88bc654](https://github.com/event4u-app/agent-config/commit/88bc6541721a7d964d670fe80ac06385c4776762))
|
|
969
|
+
* add /fix:comments command to audit and trim branch code comments ([b3127b8](https://github.com/event4u-app/agent-config/commit/b3127b86733357d8fe2a32e4b3e5fe1c15447e41))
|
|
970
|
+
|
|
971
|
+
### Bug Fixes
|
|
972
|
+
|
|
973
|
+
* **legal:** add 'legal' to discovery-manifest schema workspace + pack enums ([f7cc834](https://github.com/event4u-app/agent-config/commit/f7cc83415d6c7ffa7600512fba059c2513c3d4df))
|
|
974
|
+
* **ai-council:** raise curl timeout to 300s + --max-time so long Anthropic generations don't ETIMEDOUT ([42048b9](https://github.com/event4u-app/agent-config/commit/42048b91a5361a9041deee172609a974d926d1da))
|
|
975
|
+
* **roadmap:** commit legal-pack + dashboard + archived-roadmap link fixes ([1a6910a](https://github.com/event4u-app/agent-config/commit/1a6910a39beea7e5bfc0ff21167be1463d7bfd96))
|
|
976
|
+
* **test:** satisfy noUncheckedIndexedAccess in recursion tests ([29d6d89](https://github.com/event4u-app/agent-config/commit/29d6d8920192b3ade000abf9e5c102871a3ba336))
|
|
977
|
+
* **py2ts:** inbox snapshot — strip macOS /private prefix so Linux CI matches ([f19436e](https://github.com/event4u-app/agent-config/commit/f19436e4a6e1cdc6dba452330e293b4414f82125))
|
|
978
|
+
* **py2ts:** typecheck — assert tuple element in workspace_secrets SCAN/OBJ_CASES ([aedf6ee](https://github.com/event4u-app/agent-config/commit/aedf6eeb98eb4e171544decf4bfc9511ad7868e2))
|
|
979
|
+
* **ci:** allowlist brand/iconography/premortem bare-noun skill names ([1522311](https://github.com/event4u-app/agent-config/commit/152231156b8379ded27652c28c089806a4f33d1c))
|
|
980
|
+
* **ci:** register new subagents.* keys in the settings schema ([2c817a6](https://github.com/event4u-app/agent-config/commit/2c817a631c6b2062d8e5e843c31513d932d27d6f))
|
|
981
|
+
* **ci:** resolve pre-existing trunk gate drift ([8515b97](https://github.com/event4u-app/agent-config/commit/8515b9793608c077f058ac42621bf6e03160e163))
|
|
982
|
+
* **schema:** default the design block so settings without it still validate ([86ee94e](https://github.com/event4u-app/agent-config/commit/86ee94e313f198fd109db7dfdd6bb93a7b6dc8c6))
|
|
983
|
+
* **schema:** register design.fidelity_mode in settings parity schemas ([af56652](https://github.com/event4u-app/agent-config/commit/af5665258c9b5c02bc016d2e12bfa76befbe5d5d))
|
|
984
|
+
* **council:** resolve config global-only — never search the project tree ([fcd81ff](https://github.com/event4u-app/agent-config/commit/fcd81ffe92e652db88c79ba29c05b2dc0e358850))
|
|
985
|
+
|
|
986
|
+
### Documentation
|
|
987
|
+
|
|
988
|
+
* **recursive-verification:** record council follow-up disposition — TERMINAL ([7d132be](https://github.com/event4u-app/agent-config/commit/7d132bec2b55c00359d1d906b7701de0317f28bf))
|
|
989
|
+
* **recursive-verification:** record honest-null in benchmark.md + ADR-106 ref ([87da20f](https://github.com/event4u-app/agent-config/commit/87da20ff8217e771427153eabaf7edaec4e97669))
|
|
990
|
+
* add subagent-orchestration onboarding map + sync roadmap dashboard ([01b798f](https://github.com/event4u-app/agent-config/commit/01b798f42b500b3c801292f65da90137304f9243))
|
|
991
|
+
* **roadmap:** add operator-runtime-harvest roadmap ([a2a92b1](https://github.com/event4u-app/agent-config/commit/a2a92b145f630e55b440b7b4214359618bf70ac9))
|
|
992
|
+
* **roadmap:** record measured remaining spawn-tail count (108) + next groups ([4426293](https://github.com/event4u-app/agent-config/commit/4426293da06dfc60ff914ab9a4bc9756675b96aa))
|
|
993
|
+
* **roadmap:** archive completed auto-subagent-orchestration v2 + regenerate derived ([e8af760](https://github.com/event4u-app/agent-config/commit/e8af760c792b4b7f2a7c3d61a551d84e43904df6))
|
|
994
|
+
* **roadmap:** mark work_engine cluster de-pythonized (21 files) ([0b36d5c](https://github.com/event4u-app/agent-config/commit/0b36d5c4999052f33cbc423296ecc9238a2b122c))
|
|
995
|
+
* **roadmap:** mark workspace_* cluster converted (12 files, +346 tests) ([154db54](https://github.com/event4u-app/agent-config/commit/154db548375a787f9c19ed38a464db8edfd4b9cb))
|
|
996
|
+
* **roadmap:** capture the py2ts conversion-tail determinism trap (per-file, not a codemod) ([439817c](https://github.com/event4u-app/agent-config/commit/439817c272216f81ed2e286990f27488f3321e64))
|
|
997
|
+
* **roadmap:** auto-subagent-orchestration roadmap + follow-up ([5cdbc84](https://github.com/event4u-app/agent-config/commit/5cdbc8438b0e097c99f16ee438494ae66e234c77))
|
|
998
|
+
* **roadmap:** refine py2ts tail triage (36 delete-candidates / 108 convert) ([985e3e3](https://github.com/event4u-app/agent-config/commit/985e3e35bdfb48309c2dc7259e0180a39fe71cd8))
|
|
999
|
+
* **roadmap:** record py2ts parity-block purge + categorize the remaining tail ([1ac823c](https://github.com/event4u-app/agent-config/commit/1ac823ce1e927a473e6c2c973cbe2e33dfb96ffb))
|
|
1000
|
+
* **roadmaps:** split token-saving human-measurement track off the autonomous parent ([ac188ef](https://github.com/event4u-app/agent-config/commit/ac188ef4e7044f75baf87e393f7084dae383abe3))
|
|
1001
|
+
* **roadmaps:** reconcile road-to-typescript-only-scripts against merged reality ([9adf45b](https://github.com/event4u-app/agent-config/commit/9adf45b3294f38f70100feaec44867074b512a2b))
|
|
1002
|
+
* **rdp:** restore frontier-polish closure dispositions in the archived file ([e712620](https://github.com/event4u-app/agent-config/commit/e712620f74a83f5faa50bb8885b6a1d17117adcf))
|
|
1003
|
+
* **rdp:** close + archive road-to-rdp-frontier-polish (L7 no-promotion, Phase 3 cancelled) ([8945d5a](https://github.com/event4u-app/agent-config/commit/8945d5ad35b15c4b177ae368f389fb0445f0c856))
|
|
1004
|
+
|
|
1005
|
+
### Tests
|
|
1006
|
+
|
|
1007
|
+
* **legal:** replace Gate-2 owner requirement with a test-enforced disclaimer guarantee ([60112ac](https://github.com/event4u-app/agent-config/commit/60112ac9af01cc9f85491a0b6ccaa6bd17b4caa8))
|
|
1008
|
+
* **legal:** add trigger-eval sets for the 5 legal skills (5 should + 5 should-not, DE+EN) ([f451af2](https://github.com/event4u-app/agent-config/commit/f451af2a4d6ee1cfd357f69fe120a905ae26e525))
|
|
1009
|
+
* **py2ts:** de-pythonize 21 work_engine test files (purge parity blocks / convert pure rigs) ([2221cc8](https://github.com/event4u-app/agent-config/commit/2221cc8c268bb4d7e8f7eba59d58990f31c82dfb))
|
|
1010
|
+
* **py2ts:** convert the workspace_* CLI parity cluster to python-free intent tests ([6697dea](https://github.com/event4u-app/agent-config/commit/6697dea75a24f363f2053c4700d8438ec2725742))
|
|
1011
|
+
* **py2ts:** convert workspace_hosts parity rig to python-free intent test ([6f79864](https://github.com/event4u-app/agent-config/commit/6f798649ae2f27ca1381622025102b678f283f6d))
|
|
1012
|
+
* **py2ts:** purge obsolete python3-vs-tsx parity blocks from 94 mixed test files ([5e07191](https://github.com/event4u-app/agent-config/commit/5e07191639e01f74f47699e62798ce6b298cbc1f))
|
|
1013
|
+
* **py2ts:** convert the 4 all-parity CLI rigs to python-free intent tests ([aff202c](https://github.com/event4u-app/agent-config/commit/aff202c5eb81d2a87e9147e812a2fd53635dcae2))
|
|
1014
|
+
* **ci-time-ratio:** drop leaked root artifact, write relative --out under ignored test-results/ ([5152942](https://github.com/event4u-app/agent-config/commit/5152942c67711f3dfdb4b35b60c696fd633a6aaf))
|
|
1015
|
+
|
|
1016
|
+
### Chores
|
|
1017
|
+
|
|
1018
|
+
* **legal:** regenerate agents/index.md + docs/catalog.md for legal pack artefacts ([484d5da](https://github.com/event4u-app/agent-config/commit/484d5da21ff67dd7013919b99a03fd0de3c66c72))
|
|
1019
|
+
* **roadmap:** archive completed recursive-verification + add legal-pack + sync dashboard ([887fbe7](https://github.com/event4u-app/agent-config/commit/887fbe7b83be52e21d751965f3dad2152d80f1ce))
|
|
1020
|
+
* **roadmaps:** archive py2ts teardown evidence + superseded predecessor ([d11f6cd](https://github.com/event4u-app/agent-config/commit/d11f6cd1646c43e6bd8f210b0ac703a7059236e5))
|
|
1021
|
+
* **condense:** re-mark stale command hashes (pre-existing drift) ([836d2c9](https://github.com/event4u-app/agent-config/commit/836d2c9ae1987d630fdce431b0ae5fed9aeb9aca))
|
|
1022
|
+
* register fix-comments skill in marketplace.json ([214c5d1](https://github.com/event4u-app/agent-config/commit/214c5d147b53b65c9eef56ea0e72a2d1a9224633))
|
|
1023
|
+
* **roadmaps:** regenerate dashboard (frontier-polish Phase 1 = done) ([9172c18](https://github.com/event4u-app/agent-config/commit/9172c18f5c6b6ad82ca6457ddbad10069a895d31))
|
|
1024
|
+
|
|
1025
|
+
### Other
|
|
1026
|
+
|
|
1027
|
+
* Revert "feat(legal): lock open-source-forever stance + harden liability disclaimer (ADR-108); close 0.6 + 3.3" ([1f10272](https://github.com/event4u-app/agent-config/commit/1f1027229c841cda6110b64c59747b3607b092f6))
|
|
1028
|
+
|
|
1029
|
+
## [7.0.2](https://github.com/event4u-app/agent-config/compare/7.0.1...7.0.2) (2026-06-22)
|
|
1030
|
+
|
|
1031
|
+
### Bug Fixes
|
|
1032
|
+
|
|
1033
|
+
* **roadmaps:** regen entry-guard fires under symlinked invocation ([244e4e4](https://github.com/event4u-app/agent-config/commit/244e4e45a42a6b3d4793ac192e0f912d71954ba4))
|
|
1034
|
+
* **rdp-eval:** harden index access for strict typecheck (noUncheckedIndexedAccess) ([041b21e](https://github.com/event4u-app/agent-config/commit/041b21e4877361b1499328216242fa6ec595ff99))
|
|
1035
|
+
* **rdp-eval:** satisfy eslint on the new runners ([3c418e1](https://github.com/event4u-app/agent-config/commit/3c418e16faf340b8367148f6788835e400241e4e))
|
|
1036
|
+
|
|
1037
|
+
### Documentation
|
|
1038
|
+
|
|
1039
|
+
* **rdp-eval:** keep-scoped L6 verdict — scope orchestrator to multi-step work ([61173ca](https://github.com/event4u-app/agent-config/commit/61173ca899442b81159e4f3efe586251dcea4459))
|
|
1040
|
+
|
|
1041
|
+
### Tests
|
|
1042
|
+
|
|
1043
|
+
* **rdp-eval:** capture larger-N L6 + gate-classification data ([f92aad3](https://github.com/event4u-app/agent-config/commit/f92aad32620af27c5cf4d000859adeeb9894a819))
|
|
1044
|
+
* **rdp-eval:** port quality+L6 eval runners to TypeScript (fetch-based) ([9c4ec60](https://github.com/event4u-app/agent-config/commit/9c4ec604ca6fbb82d796cf2d65626d381a854142))
|
|
1045
|
+
|
|
1046
|
+
### CI
|
|
1047
|
+
|
|
1048
|
+
* **consistency:** trigger on src/** and dist/agent-src/** paths ([6a5e5e7](https://github.com/event4u-app/agent-config/commit/6a5e5e76cea3d5f879f9fcda6e510cc73039826e))
|
|
1049
|
+
|
|
951
1050
|
## [7.0.1](https://github.com/event4u-app/agent-config/compare/7.0.0...7.0.1) (2026-06-22)
|
|
952
1051
|
|
|
953
1052
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -83,10 +83,12 @@ is platform operation, not a user-work flow.)
|
|
|
83
83
|
|
|
84
84
|
> **Creative Pack — cinematic AI video.** script → character-locked image → motion+audio prompt → provider render → stitched clip, with `AIV_DRYRUN=true` as the cost-safety default. A first-class capability inside the **content / creator** experience — no longer the package's headline. See [`/video:from-script`](.augment/commands/video/from-script.md).
|
|
85
85
|
|
|
86
|
+
> **Legal Pack — not legal advice.** The EU/DE legal pack (contract/NDA/DPA review, triage) is a **research-and-drafting aid only** — it does not provide legal advice, does not replace a qualified lawyer, and must not be relied on for any concrete matter. It produces general information and general templates, never individual-case examination. Read [`LEGAL_NOTICE.md`](LEGAL_NOTICE.md) before use.
|
|
87
|
+
|
|
86
88
|
<details>
|
|
87
89
|
<summary><b>Catalog at a glance</b> — raw artefact counts (maintainer reference)</summary>
|
|
88
90
|
|
|
89
|
-
[](dist/agent-src/skills/) [](dist/agent-src/rules/) [](dist/agent-src/commands/) [](docs/guidelines/) [](dist/agent-src/personas/) [](dist/agent-src/personas/advisors/)
|
|
90
92
|
|
|
91
93
|
The headline is the **experience** (profile + packs), not the raw counts. Full catalog: [`docs/catalog.md`](docs/catalog.md).
|
|
92
94
|
</details>
|
|
@@ -407,7 +409,7 @@ When a prompt matches a command's purpose ("setze ticket ABC-123 um" → `/imple
|
|
|
407
409
|
| [**Migration**](docs/MIGRATION.md) | Per-version upgrade steps |
|
|
408
410
|
| [**Showcase**](docs/showcase.md) | More examples & expected behavior |
|
|
409
411
|
|
|
410
|
-
Browse content: [all
|
|
412
|
+
Browse content: [all 162 commands](dist/agent-src/commands/) · [skills catalog](docs/skills-catalog.md) · [full catalog](docs/catalog.md) · [`llms.txt`](llms.txt).
|
|
411
413
|
|
|
412
414
|
---
|
|
413
415
|
|
|
@@ -88,30 +88,39 @@ Neutrality — context-handoff).
|
|
|
88
88
|
|
|
89
89
|
### 2. Check the council is configured + price table fresh
|
|
90
90
|
|
|
91
|
-
Council config lives in **`.ai-council.yml`**,
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
Council config is **ALWAYS user-global** and lives in **`.ai-council.yml`**,
|
|
92
|
+
NOT in `.agent-settings.yml`, NOT in the project tree. The CLI
|
|
93
|
+
(`scripts/ai_council/config.ts:resolve_config_path`, per
|
|
94
|
+
[ADR-104](../../../docs/decisions/ADR-104-ai-council-config-global-only.md),
|
|
95
|
+
superseding [ADR-093](../../../docs/decisions/ADR-093-ai-council-config-user-global.md))
|
|
94
96
|
resolves it — first hit wins:
|
|
95
97
|
|
|
96
|
-
1.
|
|
97
|
-
|
|
98
|
-
|
|
98
|
+
1. `$AI_COUNCIL_CONFIG` — explicit absolute path (tests / power users),
|
|
99
|
+
honoured even when absent. Explicit path, never a project search.
|
|
100
|
+
2. User-global `~/.event4u/agent-config/settings/.ai-council.yml` — the one
|
|
101
|
+
and only home; this single global config serves every project.
|
|
99
102
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
No project-local lookup. The council never reads
|
|
104
|
+
`<project_root>/agents/settings/.ai-council.yml`, `scripts/ai_council`, or any
|
|
105
|
+
project file. Keys are **top-level** (`enabled`, `defaults:`, `members:`). No
|
|
106
|
+
`ai_council:` parent block; the legacy `ai_council.*` block under
|
|
107
|
+
`.agent-settings.yml` was removed in ADR-093 — never read or recommend that
|
|
108
|
+
path for council config.
|
|
103
109
|
|
|
104
110
|
```
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
+
THE COUNCIL CONFIG IS ALWAYS GLOBAL. NEVER SEARCH THE PROJECT FOR IT.
|
|
112
|
+
NEVER claim the council "is not configured in this project". Never read
|
|
113
|
+
project files — not `.agent-settings.yml`, not `scripts/ai_council` — to
|
|
114
|
+
decide that. The ABSENCE OF ANY COUNCIL FILE IN THE PROJECT SAYS NOTHING
|
|
115
|
+
about whether the council is configured. The CLI's `resolve_config_path`
|
|
116
|
+
is authoritative: run `council:estimate` (Step 3) and read its exit code
|
|
117
|
+
+ message before making ANY "not configured" claim. A user-global
|
|
118
|
+
`.ai-council.yml` with `enabled: true` works from EVERY project —
|
|
119
|
+
consumer repos, fresh worktrees, any CWD — with zero per-project setup.
|
|
111
120
|
```
|
|
112
121
|
|
|
113
122
|
CLI is the single source of truth for the configured-check — do not hand-parse
|
|
114
|
-
the YAML to second-guess it. Map its outcomes (Step 4 exit codes + the
|
|
123
|
+
the YAML, and never eyeball the project tree, to second-guess it. Map its outcomes (Step 4 exit codes + the
|
|
115
124
|
**CLI exits 2** cases below):
|
|
116
125
|
|
|
117
126
|
- `enabled: false` (top-level in resolved `.ai-council.yml`) → CLI exits 2 with
|
|
@@ -278,10 +287,9 @@ council can act on the project directly.
|
|
|
278
287
|
## Failure modes
|
|
279
288
|
|
|
280
289
|
- **CLI exits 2, "ai_council.enabled is false"** → tell the user to set
|
|
281
|
-
top-level `enabled: true` in the
|
|
282
|
-
`~/.event4u/agent-config/settings/.ai-council.yml
|
|
283
|
-
|
|
284
|
-
`.agent-settings.yml`. Do not flip it autonomously.
|
|
290
|
+
top-level `enabled: true` in the user-global
|
|
291
|
+
`~/.event4u/agent-config/settings/.ai-council.yml` — never in a project
|
|
292
|
+
file, never in `.agent-settings.yml`. Do not flip it autonomously.
|
|
285
293
|
- **CLI exits 2, "no council member has `enabled: true`"** → list the
|
|
286
294
|
install commands (`./agent-config keys:install-anthropic`,
|
|
287
295
|
`./agent-config keys:install-openai`) and stop.
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"command": "fix",
|
|
3
|
-
"intent": "Fix-workflow dispatcher — ci, pr-comments, refs, seeder, portability",
|
|
3
|
+
"intent": "Fix-workflow dispatcher — ci, pr-comments, refs, seeder, portability, comments",
|
|
4
4
|
"cases": [
|
|
5
5
|
{
|
|
6
6
|
"prompt": "fix the failing CI",
|
|
7
7
|
"expected": "fix"
|
|
8
8
|
},
|
|
9
|
+
{
|
|
10
|
+
"prompt": "simplify the code comments in my branch",
|
|
11
|
+
"expected": "fix"
|
|
12
|
+
},
|
|
9
13
|
{
|
|
10
14
|
"prompt": "fix the broken cross-references",
|
|
11
15
|
"expected": "fix"
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: fix-comments
|
|
4
|
+
pack: engineering-base
|
|
5
|
+
tier: 2
|
|
6
|
+
visibility: internal
|
|
7
|
+
cluster: fix
|
|
8
|
+
sub: comments
|
|
9
|
+
skills: [code-refactoring, quality-tools, git-workflow]
|
|
10
|
+
description: Review the code comments touched by the current branch and simplify, shorten, or remove each one
|
|
11
|
+
suggestion:
|
|
12
|
+
eligible: true
|
|
13
|
+
trigger_description: "simplify the comments in my branch, clean up code comments, remove redundant comments from my changes, trim comment noise"
|
|
14
|
+
trigger_context: "a feature branch with code changes pending review"
|
|
15
|
+
workspaces:
|
|
16
|
+
- agent-config-maintainer
|
|
17
|
+
packs:
|
|
18
|
+
- meta
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# /fix comments
|
|
22
|
+
## Instructions
|
|
23
|
+
|
|
24
|
+
Audit every code comment that the current branch added or changed and
|
|
25
|
+
apply the smallest edit that makes each one earn its place — simplify,
|
|
26
|
+
shorten, or remove. **Comment text only — never touch executable code.**
|
|
27
|
+
|
|
28
|
+
### 1. Gather the changed comments
|
|
29
|
+
|
|
30
|
+
- Current branch: `git branch --show-current`. If it is the default
|
|
31
|
+
branch (`main` / `master`) → nothing to review, stop.
|
|
32
|
+
- Resolve the base and collect the diff (mirrors `/review-changes`):
|
|
33
|
+
- `git diff --merge-base origin/main..HEAD` — committed changes vs. base
|
|
34
|
+
- `git diff` — unstaged changes on top
|
|
35
|
+
- Scope the audit to **comments on lines the branch added or modified**
|
|
36
|
+
(inside the diff hunks). Do **not** audit comments in untouched files
|
|
37
|
+
or untouched regions — that is scope creep (`minimal-safe-diff`).
|
|
38
|
+
|
|
39
|
+
If both diffs are empty → stop, nothing to review.
|
|
40
|
+
|
|
41
|
+
### 2. Classify each comment
|
|
42
|
+
|
|
43
|
+
For every comment in the changed regions, assign one verdict:
|
|
44
|
+
|
|
45
|
+
| Verdict | When |
|
|
46
|
+
|---|---|
|
|
47
|
+
| **Remove** | Restates what the code already says (`// increment i`); commented-out code; obvious noise; stale comment that now contradicts the code; a TODO that is already done. |
|
|
48
|
+
| **Shorten** | Correct but verbose — multi-line where one line is enough, ceremony, filler. |
|
|
49
|
+
| **Simplify** | Right intent, unclear wording — tighten the phrasing without losing meaning. |
|
|
50
|
+
| **Keep** | Explains *why* (rationale, gotcha, non-obvious constraint, link to an issue), or is load-bearing per the guard list below. |
|
|
51
|
+
|
|
52
|
+
The bar: a comment earns its place only when it tells the reader
|
|
53
|
+
something the code cannot. Default to **Keep** whenever intent is unclear.
|
|
54
|
+
|
|
55
|
+
### 3. Never touch — guard list
|
|
56
|
+
|
|
57
|
+
These look like comments but are load-bearing. Leave them exactly as-is:
|
|
58
|
+
|
|
59
|
+
- **Tool directives** — PHPDoc that static analysis reads (`@var`,
|
|
60
|
+
`@param`, `@return`, `@template`, `@phpstan-*`, `@psalm-*`);
|
|
61
|
+
`// @ts-expect-error`, `// @ts-ignore`, `// eslint-disable*`;
|
|
62
|
+
`# type: ignore`, `# noqa`, `# pragma`, `# pylint:`; Rector / ECS /
|
|
63
|
+
Biome markers.
|
|
64
|
+
- **License / copyright headers** and SPDX identifiers.
|
|
65
|
+
- **Public-API doc blocks** that generate documentation, unless the
|
|
66
|
+
comment is plainly wrong.
|
|
67
|
+
- `@deprecated`, `@see`, security notes, and any "why" note.
|
|
68
|
+
- i18n / translation keys.
|
|
69
|
+
|
|
70
|
+
When unsure whether a comment is load-bearing → **keep it**.
|
|
71
|
+
|
|
72
|
+
### 4. Apply the edits
|
|
73
|
+
|
|
74
|
+
- Edit each comment per its verdict with the smallest possible change.
|
|
75
|
+
- Preserve indentation and the file's comment style; match the
|
|
76
|
+
comment's existing language.
|
|
77
|
+
- Do **not** reflow, reformat, or re-indent the surrounding code
|
|
78
|
+
(`minimal-safe-diff`).
|
|
79
|
+
|
|
80
|
+
### 5. Verify
|
|
81
|
+
|
|
82
|
+
- If any doc-comment or annotation was edited in a typed language, run
|
|
83
|
+
the project's type-checker / linter on the changed files (see
|
|
84
|
+
`quality-tools`) to confirm nothing removed was load-bearing.
|
|
85
|
+
- `git diff` — confirm the only changed lines are comment lines.
|
|
86
|
+
|
|
87
|
+
### Output
|
|
88
|
+
|
|
89
|
+
A summary table, then the totals:
|
|
90
|
+
|
|
91
|
+
| File:line | Verdict | Before → After |
|
|
92
|
+
|---|---|---|
|
|
93
|
+
|
|
94
|
+
`Reviewed N · removed X · shortened Y · simplified Z · kept K.`
|
|
95
|
+
|
|
96
|
+
### Rules
|
|
97
|
+
|
|
98
|
+
- **Do NOT commit or push.** Only apply local edits.
|
|
99
|
+
- **Comments only.** Never alter executable code — only comment text or
|
|
100
|
+
whole-comment removal.
|
|
101
|
+
- When a comment's intent is unclear, keep it and note it in the summary.
|
|
@@ -3,8 +3,8 @@ model_tier: medium
|
|
|
3
3
|
name: fix
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
pack: engineering-base
|
|
6
|
-
intent: "Fix-workflow dispatcher — ci, pr-comments, refs, seeder, portability"
|
|
7
|
-
routes_to: [fix-ci, fix-pr-comments, fix-refs, fix-seeder, fix-portability]
|
|
6
|
+
intent: "Fix-workflow dispatcher — ci, pr-comments, refs, seeder, portability, comments"
|
|
7
|
+
routes_to: [fix-ci, fix-pr-comments, fix-refs, fix-seeder, fix-portability, fix-comments]
|
|
8
8
|
replaces: []
|
|
9
9
|
tier: 1
|
|
10
10
|
visibility: advanced
|
|
@@ -36,6 +36,7 @@ with a single entry point + sub-command dispatch.
|
|
|
36
36
|
| `/fix portability` | `commands/fix/portability.md` | Find and fix project-specific references in shared `.augment/` files |
|
|
37
37
|
| `/fix seeder` | `commands/fix/seeder.md` | Scan seeder data files for broken FK references |
|
|
38
38
|
| `/fix pr-comments` | `commands/fix/pr-comments.md` | Fix and reply to all open review comments — **bot + human, classified per comment**; dedupes by comment id + reply marker |
|
|
39
|
+
| `/fix comments` | `commands/fix/comments.md` | Review the **code comments** in the current branch's diff and simplify, shorten, or remove each one (≠ `pr-comments`, which targets GitHub review threads) |
|
|
39
40
|
|
|
40
41
|
Sub-command names match the locked contract in
|
|
41
42
|
[`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
|
|
@@ -52,6 +53,7 @@ the `auto_detect` kill-switch, rollback). Detection table:
|
|
|
52
53
|
| CI run failing / "fix CI" / a CI log in context | `fix/ci` | HIGH |
|
|
53
54
|
| Broken cross-references named (`/fix refs`, ref-check output) | `fix/refs` | HIGH |
|
|
54
55
|
| PR review comments are the target (any "address review", PR # in context) | `fix/pr-comments` (it then resolves bot/human/both) | HIGH |
|
|
56
|
+
| Source-code comments are the target ("simplify/clean up the comments in my branch", "trim comment noise") | `fix/comments` | HIGH |
|
|
55
57
|
| Seeder / FK breakage named | `fix/seeder` | HIGH |
|
|
56
58
|
| Project-specific leakage in shared package named | `fix/portability` | MEDIUM |
|
|
57
59
|
| No clear signal, or ≥ 2 conflict | — | LOW → menu (interactive) / `ambiguous_routing` (CI) |
|
|
@@ -77,6 +79,7 @@ into it and removed.
|
|
|
77
79
|
> 3. portability — purge project-specific refs from shared package
|
|
78
80
|
> 4. seeder — scan seeders for broken FK references
|
|
79
81
|
> 5. pr-comments — address open review comments (bot / human / both)
|
|
82
|
+
> 6. comments — simplify / shorten / remove code comments in the branch diff
|
|
80
83
|
|
|
81
84
|
## Rules
|
|
82
85
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Auto-Dispatch Classification (v1 — deterministic)
|
|
2
|
+
|
|
3
|
+
Decides whether a task is **delegable** to subagents, and to which
|
|
4
|
+
`subagent-orchestration` mode. v1 is **rule-based and deterministic** — no
|
|
5
|
+
per-turn LLM meta-call. Classification is the control plane for auto-dispatch;
|
|
6
|
+
keeping it cheap and predictable is the point.
|
|
7
|
+
|
|
8
|
+
## The Iron Law — ambiguity never spawns
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
A TASK IS DELEGABLE ONLY ON AN ENUMERATED SIGNAL BELOW.
|
|
12
|
+
AMBIGUITY DEFAULTS TO ask / no-op — NEVER SPECULATIVE SPAWN.
|
|
13
|
+
NO PER-TURN LLM CLASSIFICATION CALL IN v1.
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Delegable signals (v1)
|
|
17
|
+
|
|
18
|
+
A task is classified **delegable** when **any** of these holds:
|
|
19
|
+
|
|
20
|
+
1. **Declared parallel** — the skill/command in play carries
|
|
21
|
+
`parallelizable: steps | files | independent` in its frontmatter.
|
|
22
|
+
- `steps` → ordered plan → `do-in-steps`.
|
|
23
|
+
- `files` / `independent` → independent slices → `do-in-parallel`.
|
|
24
|
+
2. **Ordered-plan structure** — the task is an explicit ordered plan (numbered
|
|
25
|
+
steps / a roadmap phase / a checklist) → `do-in-steps`.
|
|
26
|
+
3. **Independent-slices structure** — N independent targets of the same shape
|
|
27
|
+
(e.g. "review these 5 files", "convert each adapter") → `do-in-parallel`.
|
|
28
|
+
|
|
29
|
+
AND the **task-size floor** is cleared: the task's estimated size exceeds a
|
|
30
|
+
minimum (trivial one-line edits never delegate — the dispatch overhead
|
|
31
|
+
dwarfs the work). Below the floor → in-session.
|
|
32
|
+
|
|
33
|
+
## Not delegable (in-session)
|
|
34
|
+
|
|
35
|
+
- Trivial / single-step edits below the size floor.
|
|
36
|
+
- Tasks with cross-step shared mutable state that cannot be sliced.
|
|
37
|
+
- Anything that fails to match a signal above → **no-op** (in-session),
|
|
38
|
+
or **ask** when `subagents.auto == ask` and the shape is borderline.
|
|
39
|
+
|
|
40
|
+
## Mode selection summary
|
|
41
|
+
|
|
42
|
+
| Signal | Mode |
|
|
43
|
+
|---|---|
|
|
44
|
+
| `parallelizable: steps` / ordered plan | `do-in-steps` |
|
|
45
|
+
| `parallelizable: files\|independent` / independent slices | `do-in-parallel` |
|
|
46
|
+
| change needing verification (any of the above) | implementer + cross-model judge per the `subagent-orchestration` Iron Law |
|
|
47
|
+
|
|
48
|
+
## v2+ (deferred, gated on Phase 6 evidence)
|
|
49
|
+
|
|
50
|
+
LLM-based classification — only if the deterministic rules prove too coarse
|
|
51
|
+
**and** the Phase-6 benchmark justifies the meta-call cost. It must be
|
|
52
|
+
budgeted (consume part of the N=3 autonomous budget) and opt-in. Not in v1.
|
|
53
|
+
|
|
54
|
+
## Reference implementation
|
|
55
|
+
|
|
56
|
+
The deterministic rules are encoded in
|
|
57
|
+
[`src/scripts/_lib/auto_dispatch.ts`](../../../../src/scripts/_lib/auto_dispatch.ts)
|
|
58
|
+
(`classifyTask`), covered by
|
|
59
|
+
[`tests/scripts/_lib_auto_dispatch.test.ts`](../../../../tests/scripts/_lib_auto_dispatch.test.ts).
|
|
60
|
+
|
|
61
|
+
## Related
|
|
62
|
+
|
|
63
|
+
- [`auto-orchestration-activation`](auto-orchestration-activation.md) — the enable/auto/manifest gate that runs before classification.
|
|
64
|
+
- [`subagent-orchestration`](../../skills/subagent-orchestration/SKILL.md) — the modes this selects.
|
|
65
|
+
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the N=3 budget any LLM-classification v2 must respect.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Auto-Orchestration Activation
|
|
2
|
+
|
|
3
|
+
How the `subagents.*` keys in `.agent-settings.yml` resolve into automatic
|
|
4
|
+
subagent dispatch at runtime. Companion to
|
|
5
|
+
[`subagent-configuration`](../subagent-configuration.md) (which covers the
|
|
6
|
+
model / parallelism keys) and
|
|
7
|
+
[`host-capability-manifest`](host-capability-manifest.md) (which decides
|
|
8
|
+
whether dispatch is physically possible on the host).
|
|
9
|
+
|
|
10
|
+
## Settings
|
|
11
|
+
|
|
12
|
+
| Key | Default | Purpose |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| `subagents.enabled` | `true` | Global master switch. `false` = the whole layer is off — the canonical kill-switch. No auto-dispatch, no routing, everything runs in-session. |
|
|
15
|
+
| `subagents.auto` | `ask` | Auto-dispatch mode: `off` \| `ask` \| `on`. |
|
|
16
|
+
| `subagents.downshift` | `true` | Route delegable sub-tasks to the lowest-capable tier (Phase 2). |
|
|
17
|
+
| `subagents.quota_arbitrage` | `true` | Prefer a separate-quota-pool model where the host manifest allows it (Phase 2 bonus). |
|
|
18
|
+
| `subagents.model_map` | `{}` | Optional per-tier model override for downshift routing. |
|
|
19
|
+
| `subagents.host_capabilities` | `{}` | Optional override of the host-capability manifest. |
|
|
20
|
+
|
|
21
|
+
## Activation decision
|
|
22
|
+
|
|
23
|
+
For any task, auto-dispatch is attempted **only when all hold**:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
subagents.enabled == true
|
|
27
|
+
AND subagents.auto != off
|
|
28
|
+
AND host_manifest.subagent_spawn == true
|
|
29
|
+
AND the task is classified delegable (see auto-dispatch-classification.md)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
If any condition fails → **in-session execution**, no subagent. This is the
|
|
33
|
+
safe path: a missing/false manifest field, a disabled switch, or an
|
|
34
|
+
unclassifiable task all degrade silently to single-agent.
|
|
35
|
+
|
|
36
|
+
## `auto` mode behaviour
|
|
37
|
+
|
|
38
|
+
| Mode | When task is delegable | When not delegable |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| `off` | never dispatch (explicit command only) | in-session |
|
|
41
|
+
| `ask` | ask once, then dispatch on yes (per `user-interaction`) | in-session |
|
|
42
|
+
| `on` | dispatch; surface the chosen mode in one line | in-session |
|
|
43
|
+
|
|
44
|
+
Under `ask` and `on`, the chosen `subagent-orchestration` mode and the
|
|
45
|
+
per-subtask tiers are surfaced before/at dispatch — never silent.
|
|
46
|
+
|
|
47
|
+
## Resolution order
|
|
48
|
+
|
|
49
|
+
1. Read `subagents.*` once per run; cache for the run (no re-read mid-loop),
|
|
50
|
+
mirroring [`subagent-configuration § When settings change`](../subagent-configuration.md).
|
|
51
|
+
2. Resolve the host-capability manifest once (cached) per
|
|
52
|
+
[`host-capability-manifest`](host-capability-manifest.md).
|
|
53
|
+
3. Apply the activation decision above per task.
|
|
54
|
+
|
|
55
|
+
## Safety floors are never lifted
|
|
56
|
+
|
|
57
|
+
Auto-dispatch never bypasses a floor. The cross-model judge Iron Law
|
|
58
|
+
(`subagent-orchestration`), `verify-before-complete`, the N=3 autonomous
|
|
59
|
+
budget, `scope-control`, and `non-destructive-by-default` all apply to
|
|
60
|
+
auto-delegated work exactly as they do to in-session work. `enabled: false`
|
|
61
|
+
disables the layer; it never disables a floor.
|
|
62
|
+
|
|
63
|
+
## Related
|
|
64
|
+
|
|
65
|
+
- [`subagent-configuration`](../subagent-configuration.md) — model / parallelism keys.
|
|
66
|
+
- [`host-capability-manifest`](host-capability-manifest.md) — the per-host gate.
|
|
67
|
+
- [`auto-dispatch-classification`](auto-dispatch-classification.md) — what counts as delegable.
|
|
68
|
+
- [`orchestration-telemetry`](orchestration-telemetry.md) — what each dispatch records.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Host-Capability Manifest
|
|
2
|
+
|
|
3
|
+
Resolved once per session by the **agent** (not a long-running process) and
|
|
4
|
+
cached for the rest of the session. Tells the orchestration layer which
|
|
5
|
+
subagent primitives the current host actually exposes, so auto-dispatch never
|
|
6
|
+
attempts a primitive the host cannot run.
|
|
7
|
+
|
|
8
|
+
## Schema
|
|
9
|
+
|
|
10
|
+
A single JSON object, `schema_version: 1`:
|
|
11
|
+
|
|
12
|
+
```json
|
|
13
|
+
{
|
|
14
|
+
"schema_version": 1,
|
|
15
|
+
"subagent_spawn": false,
|
|
16
|
+
"parallel_spawn": false,
|
|
17
|
+
"status_polling": false,
|
|
18
|
+
"separate_quota_pool": false
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Resolution
|
|
23
|
+
|
|
24
|
+
The agent fills the manifest from two inputs, in order:
|
|
25
|
+
|
|
26
|
+
1. The agent's own knowledge of the **current host** and its documented
|
|
27
|
+
subagent primitives.
|
|
28
|
+
2. An **optional** settings override `subagents.host_capabilities` in
|
|
29
|
+
`.agent-settings.yml`. Any field present there wins for that field; any
|
|
30
|
+
field omitted falls back to the safe default below.
|
|
31
|
+
|
|
32
|
+
The manifest is resolved once and cached — the agent does not re-resolve it
|
|
33
|
+
mid-session.
|
|
34
|
+
|
|
35
|
+
## Safe default — unknown host assumes nothing
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
SAFE DEFAULT = ALL FIELDS false.
|
|
39
|
+
AN UNKNOWN HOST IS ASSUMED TO HAVE NO SUBAGENT PRIMITIVE.
|
|
40
|
+
A MISSING OR INVALID FIELD IS false, NEVER true.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
This is a hard rule. When the host is unrecognized, or a field is absent /
|
|
44
|
+
malformed in the override, the field resolves to `false`. The orchestration
|
|
45
|
+
layer then degrades to in-session execution rather than attempting an
|
|
46
|
+
unsupported primitive.
|
|
47
|
+
|
|
48
|
+
## Fields
|
|
49
|
+
|
|
50
|
+
| Field | Type | Gates downstream |
|
|
51
|
+
|---|---|---|
|
|
52
|
+
| `subagent_spawn` | bool | Any delegation at all. `false` → no subagent is ever spawned; everything runs in-session. |
|
|
53
|
+
| `parallel_spawn` | bool | Concurrent dispatch of multiple subagents. `false` → delegation is serial, one subagent at a time. |
|
|
54
|
+
| `status_polling` | bool | Monitoring running subagents (progress / completion checks). `false` → fire-and-collect only, no mid-run polling. |
|
|
55
|
+
| `separate_quota_pool` | bool | Quota-arbitrage bonus (Phase 2) — subagents draw from a distinct quota pool than the session. `false` → assume shared quota. |
|
|
56
|
+
|
|
57
|
+
A field being `true` is a **precondition**, not a mandate: `parallel_spawn:
|
|
58
|
+
true` permits concurrency but the dispatch cap still applies (see
|
|
59
|
+
`subagents.max_parallel` in subagent-configuration.md).
|
|
60
|
+
|
|
61
|
+
## Related
|
|
62
|
+
|
|
63
|
+
- [`subagent-configuration`](../subagent-configuration.md) — the `subagents.*`
|
|
64
|
+
settings keys and the model / parallelism resolution this manifest sits
|
|
65
|
+
alongside.
|
|
66
|
+
- [`orchestration-telemetry`](orchestration-telemetry.md) — records what the
|
|
67
|
+
resolved manifest actually enabled per dispatch.
|
|
68
|
+
Phase-0 substrate belongs to.
|