@event4u/agent-config 9.25.0 → 9.27.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 +1 -1
- package/CHANGELOG.md +58 -143
- package/README.md +1 -1
- package/dist/agent-src/commands/analyze/conformance.md +21 -2
- package/dist/agent-src/commands/review/changes.md +6 -5
- package/dist/agent-src/commands/roadmap/next.md +256 -0
- package/dist/agent-src/commands/roadmap.md +12 -4
- package/dist/agent-src/contexts/execution/subagent-routing.md +4 -1
- package/dist/agent-src/rules/active-remediation.md +2 -0
- package/dist/agent-src/rules/analysis-skill-routing.md +2 -0
- package/dist/agent-src/rules/architecture.md +2 -0
- package/dist/agent-src/rules/artifact-drafting-protocol.md +2 -0
- package/dist/agent-src/rules/artifact-engagement-recording.md +2 -0
- package/dist/agent-src/rules/augment-edit-discipline.md +2 -0
- package/dist/agent-src/rules/autonomous-execution.md +2 -0
- package/dist/agent-src/rules/brand-consistency.md +2 -0
- package/dist/agent-src/rules/brand-source-of-truth.md +2 -0
- package/dist/agent-src/rules/broken-access-control.md +2 -0
- package/dist/agent-src/rules/cli-output-handling.md +2 -0
- package/dist/agent-src/rules/code-comment-discipline.md +2 -0
- package/dist/agent-src/rules/code-provenance.md +2 -0
- package/dist/agent-src/rules/command-suggestion-policy.md +2 -0
- package/dist/agent-src/rules/commit-conventions.md +2 -0
- package/dist/agent-src/rules/communication-through-line.md +2 -0
- package/dist/agent-src/rules/content-quoting-floor.md +2 -0
- package/dist/agent-src/rules/context-hygiene.md +10 -0
- package/dist/agent-src/rules/copilot-routing.md +2 -0
- package/dist/agent-src/rules/cross-source-consistency.md +2 -0
- package/dist/agent-src/rules/decision-revisit-gate.md +2 -0
- package/dist/agent-src/rules/delegation-policy.md +5 -2
- package/dist/agent-src/rules/design-fidelity.md +19 -1
- package/dist/agent-src/rules/design-review-after-ui-write.md +120 -0
- package/dist/agent-src/rules/devcontainer-routing.md +2 -0
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +2 -0
- package/dist/agent-src/rules/docker-commands.md +2 -0
- package/dist/agent-src/rules/domain-adoption-policy.md +2 -0
- package/dist/agent-src/rules/domain-safety-disclaimer.md +2 -0
- package/dist/agent-src/rules/domain-safety-pii.md +2 -0
- package/dist/agent-src/rules/domain-safety-retention.md +2 -0
- package/dist/agent-src/rules/downstream-changes.md +2 -0
- package/dist/agent-src/rules/engineering-safety-floor.md +2 -0
- package/dist/agent-src/rules/evaluator-independence.md +19 -3
- package/dist/agent-src/rules/external-code-graph-interop.md +2 -0
- package/dist/agent-src/rules/external-reference-deep-dive.md +2 -0
- package/dist/agent-src/rules/fast-path-marker-visibility.md +2 -0
- package/dist/agent-src/rules/finance-safety-floor.md +2 -0
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +2 -0
- package/dist/agent-src/rules/git-history-discipline.md +3 -1
- package/dist/agent-src/rules/guidelines.md +2 -0
- package/dist/agent-src/rules/history-discipline.md +2 -0
- package/dist/agent-src/rules/icon-consistency.md +2 -0
- package/dist/agent-src/rules/image-likeness-and-rights.md +2 -0
- package/dist/agent-src/rules/improve-before-implement.md +2 -0
- package/dist/agent-src/rules/invite-challenge.md +2 -0
- package/dist/agent-src/rules/laravel-routing.md +2 -0
- package/dist/agent-src/rules/laravel-translations.md +2 -0
- package/dist/agent-src/rules/legal-safety-floor.md +2 -0
- package/dist/agent-src/rules/lethal-trifecta-guard.md +2 -0
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +2 -0
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +2 -0
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +2 -0
- package/dist/agent-src/rules/media-governance-routing.md +2 -0
- package/dist/agent-src/rules/media-sync-ground-truth.md +2 -0
- package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
- package/dist/agent-src/rules/missing-tool-handling.md +2 -0
- package/dist/agent-src/rules/model-recommendation.md +2 -0
- package/dist/agent-src/rules/no-attribution-footers.md +2 -0
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +2 -0
- package/dist/agent-src/rules/no-pr-progress-comments.md +2 -0
- package/dist/agent-src/rules/no-roadmap-references.md +2 -0
- package/dist/agent-src/rules/notes-first-reasoning.md +2 -0
- package/dist/agent-src/rules/onboarding-gate.md +2 -0
- package/dist/agent-src/rules/output-discipline.md +2 -0
- package/dist/agent-src/rules/package-ci-checks.md +2 -0
- package/dist/agent-src/rules/persona-governance.md +2 -0
- package/dist/agent-src/rules/php-coding.md +2 -0
- package/dist/agent-src/rules/prefer-enums-over-literals.md +2 -0
- package/dist/agent-src/rules/preservation-guard.md +2 -0
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +2 -0
- package/dist/agent-src/rules/question-not-instruction.md +2 -0
- package/dist/agent-src/rules/reviewer-awareness.md +2 -0
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +2 -0
- package/dist/agent-src/rules/roadmap-progress-sync.md +2 -0
- package/dist/agent-src/rules/role-mode-adherence.md +2 -0
- package/dist/agent-src/rules/rule-type-governance.md +2 -0
- package/dist/agent-src/rules/runtime-safety.md +2 -0
- package/dist/agent-src/rules/scale-discipline.md +2 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +2 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +2 -0
- package/dist/agent-src/rules/senior-engineering-discipline.md +2 -0
- package/dist/agent-src/rules/session-canary.md +63 -19
- package/dist/agent-src/rules/settings-ask-protocol.md +180 -0
- package/dist/agent-src/rules/size-enforcement.md +2 -0
- package/dist/agent-src/rules/skill-improvement-trigger.md +2 -0
- package/dist/agent-src/rules/skill-quality.md +2 -0
- package/dist/agent-src/rules/slash-command-routing-policy.md +2 -0
- package/dist/agent-src/rules/source-confidentiality.md +2 -0
- package/dist/agent-src/rules/source-discovery-gate.md +2 -0
- package/dist/agent-src/rules/source-of-truth.md +2 -0
- package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -0
- package/dist/agent-src/rules/strategy-safety-floor.md +2 -0
- package/dist/agent-src/rules/symfony-routing.md +2 -0
- package/dist/agent-src/rules/think-before-action.md +2 -0
- package/dist/agent-src/rules/token-budget-discipline.md +8 -3
- package/dist/agent-src/rules/token-efficiency.md +2 -0
- package/dist/agent-src/rules/token-optimizer-maintenance.md +2 -0
- package/dist/agent-src/rules/tool-safety.md +2 -0
- package/dist/agent-src/rules/ui-audit-gate.md +7 -0
- package/dist/agent-src/rules/untrusted-input-defense.md +2 -0
- package/dist/agent-src/rules/upstream-proposal.md +2 -0
- package/dist/agent-src/rules/user-interaction.md +5 -2
- package/dist/agent-src/rules/user-interrupt-priority.md +2 -0
- package/dist/agent-src/skills/recursive-verification/SKILL.md +13 -0
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/cli/registry.js +2 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli-delegate/{chunk-SJQMJI7M.js → chunk-3KJIMFTB.js} +1 -1
- package/dist/cli-delegate/{chunk-BSLUHV2F.js → chunk-BCPIOAGV.js} +148 -133
- package/dist/cli-delegate/cmd_conformance.js +1 -1
- package/dist/cli-delegate/cmd_doctor.js +1 -1
- package/dist/cli-delegate/cmd_export.js +1 -1
- package/dist/cli-delegate/cmd_prune.js +1 -1
- package/dist/cli-delegate/cmd_route_audit.js +4 -1
- package/dist/cli-delegate/cmd_route_explain.js +4 -1
- package/dist/cli-delegate/cmd_settings_migrate.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +1 -1
- package/dist/cli-delegate/cmd_uninstall.js +1 -1
- package/dist/cli-delegate/cmd_validate.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +191 -120
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +4 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +11 -8
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +9 -6
- package/dist/hooks/dispatch.js +1148 -349
- package/dist/install/install.mjs +1 -1
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +571 -417
- package/dist/router.json +1 -1
- package/dist/scripts/condense.js +33 -2
- package/dist/scripts/condense.js.map +1 -1
- package/dist/server/io/yamlIO.js +85 -0
- package/dist/server/io/yamlIO.js.map +1 -1
- package/dist/server/nicknameResolver.js +116 -0
- package/dist/server/nicknameResolver.js.map +1 -0
- package/dist/server/routes/ping.js +29 -11
- package/dist/server/routes/ping.js.map +1 -1
- package/dist/server/routes/settings.js +1 -12
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/routes/wizard.js +52 -2
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/shared/interactiveContext.js +73 -0
- package/dist/shared/interactiveContext.js.map +1 -0
- package/dist/shared/nicknamePrefill.js +59 -0
- package/dist/shared/nicknamePrefill.js.map +1 -0
- package/dist/shared/settingsAsks.js +128 -0
- package/dist/shared/settingsAsks.js.map +1 -0
- package/dist/shared/settingsCarveOut.js +118 -0
- package/dist/shared/settingsCarveOut.js.map +1 -0
- package/dist/shared/settingsConsent.js +93 -0
- package/dist/shared/settingsConsent.js.map +1 -0
- package/dist/shared/settingsSurface.js +7 -1
- package/dist/shared/settingsSurface.js.map +1 -1
- package/dist/ui/assets/index-DmR0mbk4.js.map +1 -1
- package/package.json +1 -1
- package/src/config/agents-paths.yml +15 -0
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/gate-coverage.yml +29 -1
- package/src/config/gate-violation-baselines.json +13 -7
- package/src/scripts/_cli/cmd_doctor.ts +6 -21
- package/src/scripts/_cli/cmd_route_audit.ts +4 -1
- package/src/scripts/_cli/cmd_route_explain.ts +9 -1
- package/src/scripts/_dispatch.bash +18 -0
- package/src/scripts/_lib/git_common_dir.ts +128 -0
- package/src/scripts/_lib/obligation_frequency.ts +391 -0
- package/src/scripts/_lib/session_register.ts +361 -0
- package/src/scripts/ai-video/stitch.sh +27 -9
- package/src/scripts/before_complete_hook.ts +23 -4
- package/src/scripts/bench_ab_v2_run.ts +272 -16
- package/src/scripts/bench_ab_v2_stats.ts +156 -3
- package/src/scripts/check_completion_review.ts +80 -3
- package/src/scripts/check_corpus_staleness.ts +692 -0
- package/src/scripts/check_enforcement_coverage.ts +192 -7
- package/src/scripts/check_gate_coverage.ts +67 -0
- package/src/scripts/check_hook_bundle_freshness.ts +183 -0
- package/src/scripts/check_rule_projection_integrity.ts +364 -0
- package/src/scripts/condense.ts +36 -2
- package/src/scripts/conformance_scan.ts +82 -17
- package/src/scripts/dispatch_r2_reviewer.ts +31 -2
- package/src/scripts/generate_settings_reference.ts +232 -0
- package/src/scripts/git_authorization_hook.ts +75 -10
- package/src/scripts/hook_manifest.yaml +87 -27
- package/src/scripts/hooks/block_no_verify.ts +59 -2
- package/src/scripts/hooks/block_unauthorized_git.ts +199 -16
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/design_slop_hook.ts +13 -1
- package/src/scripts/hooks/dispatch_hook.ts +97 -2
- package/src/scripts/hooks/evidence_independence.ts +40 -6
- package/src/scripts/language_mirror_hook.ts +256 -17
- package/src/scripts/lint_abstraction_thresholds.ts +41 -8
- package/src/scripts/lint_agents_layout.ts +2 -0
- package/src/scripts/lint_hook_manifest.ts +29 -0
- package/src/scripts/memory_learn_hook.ts +109 -6
- package/src/scripts/orchestration_backfill.ts +354 -0
- package/src/scripts/pr_url_reminder_hook.ts +17 -2
- package/src/scripts/release.ts +180 -37
- package/src/scripts/schemas/review-findings.schema.json +99 -0
- package/src/scripts/schemas/rule.schema.json +5 -0
- package/src/scripts/session_canary_hook.ts +35 -3
- package/src/scripts/session_register_hook.ts +288 -0
- package/src/scripts/sessions_cli.ts +140 -0
- package/src/scripts/validate_frontmatter.ts +68 -0
- package/src/server/io/yamlIO.ts +87 -0
- package/src/shared/interactiveContext.ts +98 -0
- package/src/shared/nicknamePrefill.ts +96 -0
- package/src/shared/settingsAsks.ts +176 -0
- package/src/shared/settingsCarveOut.ts +143 -0
- package/src/shared/settingsConsent.ts +136 -0
- package/src/shared/settingsSurface.ts +7 -1
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Bootstrap shim for the event4u agent-config suite. This plugin ships ONLY the dispatcher hooks plus one install-pointer skill — ALL content (skills, rules, commands) is installed via `npx -y @event4u/agent-config init`, which writes the file projection AND registers the same hooks in ~/.claude/settings.json. DEPRECATED as a content channel; kept so the marketplace listing stays discoverable and existing installs keep working hooks.",
|
|
9
|
-
"version": "9.
|
|
9
|
+
"version": "9.27.0",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"agent-config",
|
|
12
12
|
"skills",
|
package/CHANGELOG.md
CHANGED
|
@@ -296,176 +296,91 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
|
|
|
296
296
|
> keeps the active era under the 250-line drift cap enforced by
|
|
297
297
|
> `tests/test_changelog_eras.py`.
|
|
298
298
|
|
|
299
|
-
# Era: 9.
|
|
299
|
+
# Era: pre-9.27.0 — archived
|
|
300
300
|
|
|
301
|
-
>
|
|
302
|
-
>
|
|
303
|
-
>
|
|
304
|
-
>
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
### Release highlights
|
|
309
|
-
|
|
310
|
-
<!-- Curated head: fill before merge, keep it under 10 lines, and leave `_none_` where it is genuinely the answer. The generated log below is unchanged. -->
|
|
311
|
-
- **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 5d653e2, 00018c4, 20bb411, cb0917d, 7641291.
|
|
312
|
-
- **Default changes + migration:** _auto-derived, rewrite before merge:_ commits naming a default, migration or migrate in bd45f62, 11a699c.
|
|
313
|
-
- **Security and correctness:** _none_
|
|
314
|
-
- **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in 5d653e2, 20bb411.
|
|
315
|
-
- **Known limitations:** _none_
|
|
316
|
-
|
|
317
|
-
### Features
|
|
318
|
-
|
|
319
|
-
* **commands:** add /analyze:conformance, and clear the six red CI checks ([5d653e2](https://github.com/event4u-app/agent-config/commit/5d653e2ecfa1b697c7c44a94087d0248debea3d9))
|
|
320
|
-
* **cli:** add conformance:behavior — replay transcripts through the shipped gates ([7c7a9dc](https://github.com/event4u-app/agent-config/commit/7c7a9dc10d83245b7507cbcef348e52901968c45))
|
|
321
|
-
* **hooks:** gate the language pin, git authorization and evaluator independence ([582a9f3](https://github.com/event4u-app/agent-config/commit/582a9f37b97d3cb1f6474963fea576349f6b0b5d))
|
|
322
|
-
* **authoring:** a decision-impact class, and four conventions Phase 2 owed ([7641291](https://github.com/event4u-app/agent-config/commit/7641291866dac3c24deaf4cea1827a6c24d63edb))
|
|
323
|
-
* **ledger:** record what the rule-body migration kept, folded, and lost ([11a699c](https://github.com/event4u-app/agent-config/commit/11a699cda54c2eca55899af25435aee80a6b7f75))
|
|
324
|
-
* **skill-writing:** two conventions that travel with the artifact ([9120d0f](https://github.com/event4u-app/agent-config/commit/9120d0ffd1d8ea7140f9cc393e34c595dba29085))
|
|
325
|
-
* **interactions:** close the register over the set it claims to cover ([654837b](https://github.com/event4u-app/agent-config/commit/654837b1b8c3e33a43539d256bcd18592ade6621))
|
|
326
|
-
* **descriptions:** reject a description that argues against its siblings ([9889529](https://github.com/event4u-app/agent-config/commit/9889529bcb34e604fd2bedde3ab2abf98e3f6a40))
|
|
327
|
-
* **gates:** lint authored examples, and cap the on-demand depth layer ([c2c2d91](https://github.com/event4u-app/agent-config/commit/c2c2d917cede10eab64144ac9302857f6edd80b5))
|
|
328
|
-
|
|
329
|
-
### Bug Fixes
|
|
330
|
-
|
|
331
|
-
* **rules:** clear a lint regression and register the new rule in the router ([00018c4](https://github.com/event4u-app/agent-config/commit/00018c4315269467b856713ec056f2c61982ca33))
|
|
332
|
-
* **roadmap:** drop the duplicate un-archived copy ([532200a](https://github.com/event4u-app/agent-config/commit/532200ac94966a83df0a97e0c48e02e240d72c3f))
|
|
333
|
-
* **hooks:** stop counting vacuous verification as evidence ([7696e54](https://github.com/event4u-app/agent-config/commit/7696e5453b770d200e2925204cba4e08f323ca7b))
|
|
334
|
-
* **ci:** bump the gate-script population and regenerate the artefact index ([21a16f1](https://github.com/event4u-app/agent-config/commit/21a16f15a04c1c6b515832ddf56a951fce6b16d1))
|
|
335
|
-
* **schema:** insert decision_impact surgically instead of reserialising the file ([cb0917d](https://github.com/event4u-app/agent-config/commit/cb0917daca7080b2e5446473b6e420b854554d5e))
|
|
336
|
-
|
|
337
|
-
### Documentation
|
|
338
|
-
|
|
339
|
-
* **analyze-conformance:** adopt the checked-out-branch default from its sibling ([bd45f62](https://github.com/event4u-app/agent-config/commit/bd45f62e52edb86fd4e22cc8828a819a60788ae7))
|
|
340
|
-
* **analyze-inbox:** run in the checked-out branch; worktree only on request ([aaf29b4](https://github.com/event4u-app/agent-config/commit/aaf29b466e4df37236e32fd588077c83f51f5483))
|
|
341
|
-
* **roadmap:** record the conformance audit and close its roadmap ([1616c23](https://github.com/event4u-app/agent-config/commit/1616c236d4e47b0bc77af6521a2db23419760f75))
|
|
342
|
-
* **rules:** add evaluator-independence, and downgrade two enforcement claims ([20bb411](https://github.com/event4u-app/agent-config/commit/20bb4116d7d0a2dec198d4e08ade4371ff802b8a))
|
|
343
|
-
* **roadmap:** close and archive the authoring-discipline roadmap ([977ebd9](https://github.com/event4u-app/agent-config/commit/977ebd9a3771eaeb42b631cd9660bf4b16d0d1ae))
|
|
344
|
-
* **roadmap:** record the second execution pass and its three measured departures ([ec1acfb](https://github.com/event4u-app/agent-config/commit/ec1acfbfc5718a2197bdc9ca5cdcc091ba3a410c))
|
|
345
|
-
* **roadmap:** close Phase 4 steps 1-3 and 5, with what changed from the plan ([87d4bd2](https://github.com/event4u-app/agent-config/commit/87d4bd24e5f2b7f1e7429ba016e7d473aec00fa7))
|
|
346
|
-
|
|
347
|
-
### Chores
|
|
301
|
+
> All entries before `9.27.0` live in
|
|
302
|
+
> [`docs/archive/CHANGELOG-pre-9.27.0.md`](docs/archive/CHANGELOG-pre-9.27.0.md).
|
|
303
|
+
> The archive is read-only; git tags remain the canonical
|
|
304
|
+
> source for what shipped. Splitting them out of the main file
|
|
305
|
+
> keeps the active era under the 250-line drift cap enforced by
|
|
306
|
+
> `tests/test_changelog_eras.py`.
|
|
348
307
|
|
|
349
|
-
|
|
350
|
-
* **docs:** regenerate the artefact index for the new rule ([910555a](https://github.com/event4u-app/agent-config/commit/910555a46f5345352e8dd6a950a370ac53019fa1))
|
|
351
|
-
* **sync:** regenerate the projections for the two authoring skills ([44f037e](https://github.com/event4u-app/agent-config/commit/44f037efc1d92d07f6efed30ecb4cb612b2bb55a))
|
|
308
|
+
# Era: 9.27.x — current
|
|
352
309
|
|
|
353
|
-
|
|
310
|
+
> Started at `9.27.0`. Full entries live inline below.
|
|
311
|
+
> The drift test caps this era at 250 lines of entry body; growth past
|
|
312
|
+
> that forces a new era split (`# Era: 9.28.x`, etc.) — see
|
|
313
|
+
> [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
|
|
354
314
|
|
|
355
|
-
## [9.
|
|
315
|
+
## [9.27.0](https://github.com/event4u-app/agent-config/compare/9.26.0...9.27.0) (2026-08-07)
|
|
356
316
|
|
|
357
317
|
### Release highlights
|
|
358
318
|
|
|
359
319
|
<!-- Curated head: fill before merge, keep it under 10 lines, and leave `_none_` where it is genuinely the answer. The generated log below is unchanged. -->
|
|
360
|
-
- **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in
|
|
361
|
-
- **Default changes + migration:**
|
|
320
|
+
- **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 6b06006, e82cc1f, b3b5ee7, dd89970.
|
|
321
|
+
- **Default changes + migration:** _auto-derived, rewrite before merge:_ commits naming a default, migration or migrate in 6d1af3a.
|
|
362
322
|
- **Security and correctness:** _none_
|
|
363
|
-
- **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in
|
|
323
|
+
- **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in 8e6765b, 6208186, f60bd6a.
|
|
364
324
|
- **Known limitations:** _none_
|
|
365
325
|
|
|
366
326
|
### Features
|
|
367
327
|
|
|
368
|
-
* **
|
|
369
|
-
* **
|
|
328
|
+
* **orchestration:** backfill telemetry from the host transcript corpus ([ed28a6d](https://github.com/event4u-app/agent-config/commit/ed28a6d8aa62b3c5fc30525e5bd356c6e3c83945))
|
|
329
|
+
* **conformance:** record pin distance and compaction per language violation ([b103537](https://github.com/event4u-app/agent-config/commit/b103537c69020d1bb81698a389d1dc9d97e0a145))
|
|
330
|
+
* **gates:** assert rule-projection completeness and freshness ([e42ea1d](https://github.com/event4u-app/agent-config/commit/e42ea1d7fdbbaf0d87ff37d4efd40ff3d96d97f8))
|
|
331
|
+
* **roadmap-next:** close the claim window, and say who carries the check ([9617664](https://github.com/event4u-app/agent-config/commit/9617664291d51176dceafbdf0ac68608dcffd0d7))
|
|
332
|
+
* **cli:** sessions:list and sessions:claim ([44d5eba](https://github.com/event4u-app/agent-config/commit/44d5eba9f88e2f52c534aa1f8f350ba1a89c4eeb))
|
|
333
|
+
* **hooks:** bind the register, and keep stop out of deregistration ([736f4e1](https://github.com/event4u-app/agent-config/commit/736f4e1255641a8997b2bd8f9753ac4232ccbcda))
|
|
334
|
+
* **sessions:** the shared per-session register, with its measured TTL ([6ab61fd](https://github.com/event4u-app/agent-config/commit/6ab61fda9d7e7faa22fc4d33325c02c05363b6ef))
|
|
335
|
+
* **rules:** declare how often each obligation comes due, and join it ([dd89970](https://github.com/event4u-app/agent-config/commit/dd89970afb7cc82846caf9c6e0029ddc73176874))
|
|
336
|
+
* **coverage:** the lattice that says whether a carrier fires often enough ([53d501e](https://github.com/event4u-app/agent-config/commit/53d501e9860b0f72d3d78df8f6a7cfc0eff16245))
|
|
337
|
+
* **settings:** a fresh install writes 35 lines, not 1,360 ([8504ca8](https://github.com/event4u-app/agent-config/commit/8504ca880d8c5bc5c921add50f7a7fc0b39ee03d))
|
|
338
|
+
* **settings:** audit absent-vs-default, and carve out the nine keys that diverge ([6d1af3a](https://github.com/event4u-app/agent-config/commit/6d1af3aba30d5378510fc2659532f9ad16be7b37))
|
|
370
339
|
|
|
371
340
|
### Bug Fixes
|
|
372
341
|
|
|
373
|
-
* **
|
|
374
|
-
* **
|
|
375
|
-
* **
|
|
376
|
-
* **
|
|
377
|
-
* **
|
|
342
|
+
* **orchestration:** drop the pairing key from the emitted line ([d10004a](https://github.com/event4u-app/agent-config/commit/d10004a9e7d2efd1dab9597c1cd364f4d176d38c))
|
|
343
|
+
* **orchestration:** drop free-text fields from backfilled lines ([bdf976f](https://github.com/event4u-app/agent-config/commit/bdf976f1223a2e601a3eb613d9c94f933a56837e))
|
|
344
|
+
* **hooks:** the language pin no longer treats a synthetic turn as a prompt ([439c20e](https://github.com/event4u-app/agent-config/commit/439c20e00721ed9a238f69478fbd807a58d5fe23))
|
|
345
|
+
* **hooks:** two git guards stop refusing read-only commands ([17c5fa5](https://github.com/event4u-app/agent-config/commit/17c5fa57441a095276bfe8e8b46a57152f1a1353))
|
|
346
|
+
* **cli:** list the sessions verbs in usage() too ([d4f4429](https://github.com/event4u-app/agent-config/commit/d4f44290f2c8f18b27cfbfac35a5002b88a9e8e2))
|
|
347
|
+
* **release:** stop treating "no checks reported" as a pass when checks ARE required ([1af0f03](https://github.com/event4u-app/agent-config/commit/1af0f0316f39191603d5031145153e209e1778ad))
|
|
348
|
+
* **rules:** pay for the citation with a line number, not a quoted sentence ([e82cc1f](https://github.com/event4u-app/agent-config/commit/e82cc1f4d032578b1e5749ceb6756d6a82beeaf7))
|
|
349
|
+
* **canary:** bind the carrier to a slot that reaches a task boundary ([b3b5ee7](https://github.com/event4u-app/agent-config/commit/b3b5ee75e95ac7be3908529f3d52c5d47432d6bb))
|
|
350
|
+
* **settings-surface:** treat a free-form map as a leaf, not an empty group ([7a68cb7](https://github.com/event4u-app/agent-config/commit/7a68cb785ccff4bf190c01b5c52927f1fd94fbeb))
|
|
351
|
+
* **gates:** a zero-tool checkout is an absent surface, not a dead scan scope ([2828561](https://github.com/event4u-app/agent-config/commit/28285610d22c340460b02be675047efdbe24c8ac))
|
|
378
352
|
|
|
379
353
|
### Documentation
|
|
380
354
|
|
|
381
|
-
* **
|
|
382
|
-
* **
|
|
383
|
-
* **
|
|
384
|
-
* **
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
- **Security and correctness:** _none_
|
|
396
|
-
- **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in c4a4920, 9242d41, 927ff8a.
|
|
397
|
-
- **Known limitations:** _none_
|
|
398
|
-
|
|
399
|
-
### Features
|
|
355
|
+
* **roadmap:** conformance round 6, starting with the regress round 5 shipped ([353cac1](https://github.com/event4u-app/agent-config/commit/353cac1d9e71d38eaa97a891fb037f47e7299e1a))
|
|
356
|
+
* **proof:** regenerate the derived page after the CLAIMS entry ([6660a23](https://github.com/event4u-app/agent-config/commit/6660a231e08d41aea39e597a85843d0d0cda1e9d))
|
|
357
|
+
* **roadmap:** archive road-to-orchestrator-first-execution, stopped at Phase 2 ([b24a991](https://github.com/event4u-app/agent-config/commit/b24a991d603fc9beea0e26a1252ef766059298c8))
|
|
358
|
+
* **orchestration:** record the observed-dispatch measurement and its verdict ([8e6765b](https://github.com/event4u-app/agent-config/commit/8e6765bc7fb05f6602abc998d231b270721accdf))
|
|
359
|
+
* **claims:** pre-register and resolve orchestration-observed-dispatch-cost ([6208186](https://github.com/event4u-app/agent-config/commit/6208186fe6393f5a98c6b9d90ae2138959724590))
|
|
360
|
+
* **proof:** re-render after the two enforced_by declarations ([7e36dbb](https://github.com/event4u-app/agent-config/commit/7e36dbb009a06d51cbcbb0d92167954e9adb64d3))
|
|
361
|
+
* **roadmap:** give conformance round 5 its Risk Register ([7e837bb](https://github.com/event4u-app/agent-config/commit/7e837bb8c85d78631effdf8e18f96762e779dab3))
|
|
362
|
+
* **roadmap:** conformance round 5, the first post-fix measurement ([95d4db9](https://github.com/event4u-app/agent-config/commit/95d4db9d9c971778f583c7081c7277d1f4ba661e))
|
|
363
|
+
* **rules:** replace two unmeasured enforcement claims with the measurement ([6b06006](https://github.com/event4u-app/agent-config/commit/6b0600608a33a56f35e7ec76ab6c5ba60711249f))
|
|
364
|
+
* **roadmap:** archive parallel-session-coordination with its measurements ([f60bd6a](https://github.com/event4u-app/agent-config/commit/f60bd6a3fba74e669a6361724070ce9d6d037b7b))
|
|
365
|
+
* **roadmap:** give the parallel-session plan its Risk Register ([f13ebba](https://github.com/event4u-app/agent-config/commit/f13ebba5a4f7856b5be0acdd19244e86adaca126))
|
|
366
|
+
* **roadmap:** add the obligation-carrier audit and the parallel-session register ([20391f6](https://github.com/event4u-app/agent-config/commit/20391f62f2c6c3f294467481956b1b2d2b0f9255))
|
|
367
|
+
* **roadmap:** close Phase 3, resolve the blocker, and say why 4.2 stays open ([2ba1e78](https://github.com/event4u-app/agent-config/commit/2ba1e7894ded9571f38dbe12de1680b4f1db57fd))
|
|
368
|
+
* **settings:** generate the settings reference the shrinking file no longer carries ([9e34b23](https://github.com/event4u-app/agent-config/commit/9e34b238523187f4ae7c9826c8bef6e4b89efe8d))
|
|
400
369
|
|
|
401
|
-
|
|
402
|
-
* **rules:** land the conflict audit, close its findings, archive the roadmap ([a7ecd7b](https://github.com/event4u-app/agent-config/commit/a7ecd7b73b99166baaee3838c4e8a5f7668bf580))
|
|
403
|
-
* **authoring:** require the primary bias, and lead rich artifacts with their obligation ([ff146a0](https://github.com/event4u-app/agent-config/commit/ff146a0f11f89c4f093d80aaf705915eb918c7bb))
|
|
404
|
-
* **rules:** a removal disposition, and the classification that stops "another rule" ([484596e](https://github.com/event4u-app/agent-config/commit/484596e1dc41e003c70678ec301ef4f801939736))
|
|
405
|
-
* **rules:** mandated lines at the decision point, and the two rules they need ([927ff8a](https://github.com/event4u-app/agent-config/commit/927ff8a83eb17a8d41f234dbfabe3d9caedcf066))
|
|
406
|
-
* **budget:** measure the rich-class band, lower it to what the corpus uses, gate it ([420e833](https://github.com/event4u-app/agent-config/commit/420e83368298029b4e01a412897ec1f0cec4286e))
|
|
407
|
-
* **settings:** add settings:set and fence the GUI write route ([3ffb705](https://github.com/event4u-app/agent-config/commit/3ffb7057d3ab4e963f3b09d49fbb8de57c6956ae))
|
|
408
|
-
* **settings:** fence every settings key behind an A/B/C class ([b09e84e](https://github.com/event4u-app/agent-config/commit/b09e84e9ce540ac6e4215538bef731c87ad7c91b))
|
|
409
|
-
* **gates:** self-test mode, estate-level result handling, and one equality-without-validity fix ([f7a022a](https://github.com/event4u-app/agent-config/commit/f7a022a7d039e03c5240eca94f7f9306ef5ed456))
|
|
410
|
-
* **gates:** make shrink-only mechanical against the base ref ([3e7eb9d](https://github.com/event4u-app/agent-config/commit/3e7eb9d9d35fe79d0655c51ef86ffabbe1f0a1b8))
|
|
411
|
-
* **gates:** ratchet ledger adoption, and stop rendering unmeasured categories ([678ba92](https://github.com/event4u-app/agent-config/commit/678ba92b862d6041c1e2af8d91a85252d53d687b))
|
|
412
|
-
* **gates:** adopt the ledger in three gates whose scan roots have failed before ([c04b9a5](https://github.com/event4u-app/agent-config/commit/c04b9a5785d4d5a02da317b44cdebc02bc83e3b4))
|
|
413
|
-
* **gates:** add a per-target completeness ledger ([fea6d7b](https://github.com/event4u-app/agent-config/commit/fea6d7b5181ba7815931cf83833946f1c405979f))
|
|
414
|
-
* **gate:** enforce the roadmap concurrency cap mechanically ([8add433](https://github.com/event4u-app/agent-config/commit/8add433b93d68191ffd44dab5c8f4f68102f1c17))
|
|
370
|
+
### Refactoring
|
|
415
371
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
* **authoring:** revert the two kernel-rule routing edges, state the gap instead ([3d1ed67](https://github.com/event4u-app/agent-config/commit/3d1ed67c3fd6ac8277f32d4c4d6bac1b274427e8))
|
|
419
|
-
* **authoring:** close all fourteen R2 findings ([e5e4c48](https://github.com/event4u-app/agent-config/commit/e5e4c48d6b993854fc41b681ea4c585e6b265f40))
|
|
420
|
-
* **review:** six real pre-filter instances — the keyword grep had missed all of them ([c4a4920](https://github.com/event4u-app/agent-config/commit/c4a49204dfefae74e518f284ee11f04fff511e63))
|
|
421
|
-
* **rules:** declare the 3 authority collisions, decline the gate ([943ad06](https://github.com/event4u-app/agent-config/commit/943ad067d68b3dfa31d15865d2c936cad2281767))
|
|
422
|
-
* **rules:** declare the two kernel-vs-kernel conflicts and fix the halt list ([c4ab544](https://github.com/event4u-app/agent-config/commit/c4ab5449b0c50c691e47793d247b980feec1b21b))
|
|
423
|
-
* **rules:** make ui-audit-gate satisfiable, invert the read cap, exempt file sets ([b47752d](https://github.com/event4u-app/agent-config/commit/b47752de370607ed1d691fdbc22ff10af3dd806d))
|
|
424
|
-
* **projection:** stop injecting ADR-004 manual rules into per-tool trees ([5d40a6c](https://github.com/event4u-app/agent-config/commit/5d40a6c184883844dff2a23154959accfef1022e))
|
|
425
|
-
* **cli:** route and document settings:set in the dispatcher ([0d2c6c5](https://github.com/event4u-app/agent-config/commit/0d2c6c58cbc9769e34e2c0c5d289c6de7c690501))
|
|
426
|
-
* **pack:** ship yamlIO with the writer, re-baseline the packed-size budget ([87b6fc1](https://github.com/event4u-app/agent-config/commit/87b6fc1328d90d140ffbbf31afc9ebb5452e00e2))
|
|
427
|
-
* **settings:** close all ten R2 findings ([84e4596](https://github.com/event4u-app/agent-config/commit/84e4596c7d42afbe3d26ee2e2b2e36836b754c97))
|
|
428
|
-
* **settings:** satisfy exactOptionalPropertyTypes in the settings:set argv parser ([a03d21b](https://github.com/event4u-app/agent-config/commit/a03d21b5960c0e13b910c01d86cb5c4f99a4ad77))
|
|
429
|
-
* **hooks:** forward the concern's own reason on a block; fix stale exit assertion ([b64cd4b](https://github.com/event4u-app/agent-config/commit/b64cd4bf2a4569c3fd3ea5fae85d9095bbf0d33f))
|
|
430
|
-
* **hooks:** translate verdicts to per-host native semantics ([f39698c](https://github.com/event4u-app/agent-config/commit/f39698cd8e626756c8add6a045e4e66b9b00751d))
|
|
372
|
+
* **git:** extract the common-dir resolution so it has one answer ([1f04331](https://github.com/event4u-app/agent-config/commit/1f04331dd2f81c64a5217f843ddbcf49f2d9be9b))
|
|
431
373
|
|
|
432
|
-
###
|
|
374
|
+
### Build
|
|
433
375
|
|
|
434
|
-
* **
|
|
435
|
-
* **roadmap:** close both blockers and Phase 1, record the migration inventory ([9da7146](https://github.com/event4u-app/agent-config/commit/9da7146dbaea153bb4e2eae31069066663378dcb))
|
|
436
|
-
* **roadmap:** close P0.3-P1.6, record the two round-2 reversals ([cc67d73](https://github.com/event4u-app/agent-config/commit/cc67d73b287f0ce91f4c0690df824b670c4c604e))
|
|
437
|
-
* **roadmap:** file the absent-is-not-default blocker, close Phase 2 ([c1d9093](https://github.com/event4u-app/agent-config/commit/c1d90934b05168cba6ac3667d92d7a20602735b2))
|
|
438
|
-
* **roadmap:** record what the prerequisite re-read caught, close Phase 1 ([ba9b0f0](https://github.com/event4u-app/agent-config/commit/ba9b0f0f0e148857a8574faa2e512b64c099d2e4))
|
|
439
|
-
* **roadmap:** record the remote-CI verdict on the gate-integrity roadmap ([4e52e53](https://github.com/event4u-app/agent-config/commit/4e52e530e1c5adeab421af6f351d4d0f86bbcc55))
|
|
440
|
-
* regenerate the artefact index and catalog for the two new guidelines ([619d283](https://github.com/event4u-app/agent-config/commit/619d28377bc6180948336e98ad4eec58efd41659))
|
|
441
|
-
* bump the guideline count for the two new gate guidelines ([e5b3331](https://github.com/event4u-app/agent-config/commit/e5b333174587acf3218811e7f049b401a2436e1d))
|
|
442
|
-
* **roadmap:** close 33 of 35 gate-integrity steps, file the kernel blocker ([818b637](https://github.com/event4u-app/agent-config/commit/818b6379ab91a4f739cb1fe7a11d499582f3039b))
|
|
443
|
-
* **gates:** the authoring path, the false-green catalogue, and the CI delta ([554b9a9](https://github.com/event4u-app/agent-config/commit/554b9a992fb77e532344aadd298234cd63804278))
|
|
444
|
-
* **roadmap:** add Risk Register to road-to-rule-coherence ([4641101](https://github.com/event4u-app/agent-config/commit/4641101a9f234fd32beacecce01426b4f77a8d73))
|
|
445
|
-
* **roadmap:** add road-to-rule-coherence with measured scope cuts ([55a3957](https://github.com/event4u-app/agent-config/commit/55a395783dbbcfdba6346be9312fd04dec285f5c))
|
|
446
|
-
* **roadmap:** unblock everything the adoption gate was holding ([8878a88](https://github.com/event4u-app/agent-config/commit/8878a88b02422d5b93d820968a53c161a795ca64))
|
|
447
|
-
* **adr:** strike external adoption as a gate, re-anchor restraint to capacity ([e98221e](https://github.com/event4u-app/agent-config/commit/e98221e7de7b7bddf0655823ebcc5994bb9c4da6))
|
|
448
|
-
* **roadmap:** open two verification roadmaps, park the rest by arm ([d415dad](https://github.com/event4u-app/agent-config/commit/d415dada95c2ad7a89327831462870cc1fed8fd8))
|
|
449
|
-
* **adr:** lift the harvest freeze for verification infrastructure only ([11df060](https://github.com/event4u-app/agent-config/commit/11df0606810508f4fcfec404dc67cd975a92ef91))
|
|
450
|
-
* **sweep:** record the 40-source skill-ecosystem deep-dive ([45c55a2](https://github.com/event4u-app/agent-config/commit/45c55a222b61430ed39a572a4ff083cd383b81c7))
|
|
451
|
-
|
|
452
|
-
### CI
|
|
453
|
-
|
|
454
|
-
* register the three new gates, and close the CI-local parity delta ([2c709c3](https://github.com/event4u-app/agent-config/commit/2c709c3f1069a29c7a5f8a1cd1829b1377a40c34))
|
|
376
|
+
* **install:** refresh the installer bundle for the surface-flattener fix ([cc4ae5e](https://github.com/event4u-app/agent-config/commit/cc4ae5e5e20b51d681686258b0cc6411d0218c05))
|
|
455
377
|
|
|
456
378
|
### Chores
|
|
457
379
|
|
|
458
|
-
* **
|
|
459
|
-
* **
|
|
460
|
-
|
|
461
|
-
### Other
|
|
462
|
-
|
|
463
|
-
* **authoring:** mark all fourteen findings fixed, drop the regenerable input ([f3d6e2a](https://github.com/event4u-app/agent-config/commit/f3d6e2a03eeca77adaac9b62f12d277d7d47b3a0))
|
|
464
|
-
* **authoring:** R2 completion review — 14 findings, all open ([703b8eb](https://github.com/event4u-app/agent-config/commit/703b8ebc5a5c55facfdc6cf468642eb0f03b2a71))
|
|
465
|
-
* **settings:** mark all ten findings fixed, drop the regenerable input ([0a96cca](https://github.com/event4u-app/agent-config/commit/0a96cca52a0116a4330ad51dbfe96b6269721d1b))
|
|
466
|
-
* **settings:** R2 completion review — 10 findings, all open ([36139ac](https://github.com/event4u-app/agent-config/commit/36139ac2f4d83b296222fd8f89db4c75d73c4f20))
|
|
380
|
+
* **budgets:** move cli_help_command_count 86 to 88 for the sessions verbs ([c8ba2c3](https://github.com/event4u-app/agent-config/commit/c8ba2c34edd5bcda97d2c5cab85a3dcf2055f8de))
|
|
381
|
+
* **sync:** re-project session-canary after the frequency-override note ([d68c02f](https://github.com/event4u-app/agent-config/commit/d68c02f4e18233cf1c51146cc56dcc01f8d9cc53))
|
|
467
382
|
|
|
468
|
-
Tests:
|
|
383
|
+
Tests: 11750 (+107 since 9.26.0)
|
|
469
384
|
|
|
470
385
|
# Era: pre-4.0.0 — archived
|
|
471
386
|
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml) [](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml) [](https://www.npmjs.com/package/@event4u/agent-config) [](https://glama.ai/mcp/servers/event4u-app/agent-config) [](https://mcptoplist.com/server/glama%2Fevent4u-app%2Fagent-config)
|
|
6
6
|
|
|
7
|
-
[](dist/agent-src/skills/) [](dist/agent-src/skills/) [](dist/agent-src/rules/) [](dist/agent-src/commands/) [](docs/guidelines/) [](dist/agent-src/personas/) [](dist/agent-src/personas/advisors/)
|
|
8
8
|
|
|
9
9
|
**Try it in 30 seconds** — drop one read-only subagent into any repo and watch it gate "done": `@production-validator check this branch is actually done`. No wizard, no lock-in, nothing else installed — the [30-second wedge ↓](#quickstart) is the whole first step. Start at the proof, not the catalog: **[event4u-app.github.io/agent-config/proof/](https://event4u-app.github.io/agent-config/proof/)**.
|
|
10
10
|
|
|
@@ -8,7 +8,7 @@ sub: conformance
|
|
|
8
8
|
cluster: analyze
|
|
9
9
|
skills: [roadmap-writing, decision-review, ai-council, subagent-orchestration]
|
|
10
10
|
description: Audit recent local sessions for rule violations — deterministic scan plus subagent passes over the transcripts, root-cause each class, and emit a roadmap that mechanises what is mechanisable.
|
|
11
|
-
argument-hint: "[--
|
|
11
|
+
argument-hint: "[--limit N] [--scan-only] [--no-council] [--no-roadmap] [--worktree]"
|
|
12
12
|
suggestion:
|
|
13
13
|
eligible: false
|
|
14
14
|
rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /analyze:conformance name; not independently suggested (surface-consolidation)."
|
|
@@ -122,6 +122,25 @@ Reach for a mechanism only where the failure mode was measured. A gate for a
|
|
|
122
122
|
class nobody was harmed by is the mechanism-without-a-failure-mode this repo
|
|
123
123
|
forbids.
|
|
124
124
|
|
|
125
|
+
**What round 5 measured about the choice itself** — the first post-fix reading,
|
|
126
|
+
2026-08-07, 27 sessions:
|
|
127
|
+
|
|
128
|
+
| carrier class | bound at | before | after |
|
|
129
|
+
|---|---|---:|---:|
|
|
130
|
+
| BLOCKING (unauthorized irreversible git op) | `pre_tool_use` | 8 | **0** |
|
|
131
|
+
| BLOCKING (evaluator prompt pre-loading its verdict) | `pre_tool_use` | 1 | **0** |
|
|
132
|
+
| advisory state injection (language mirror) | `user_prompt_submit` | 555 | **19** |
|
|
133
|
+
| advisory (verification claimed on empty output) | `post_tool_use` | 4 | **1** |
|
|
134
|
+
|
|
135
|
+
Both blocking carriers reached zero. Neither advisory carrier did. This is a
|
|
136
|
+
prior on the table above, not a law: the post-fix corpus is one session and
|
|
137
|
+
roughly 600 assistant turns, and the two classes also differ in what they are
|
|
138
|
+
asked to catch. But where a class has already failed with its fact **verifiably
|
|
139
|
+
in context** — round 5 confirmed the language pin present on the turns that
|
|
140
|
+
violated it — raising the injection frequency is the same mechanism, not a new
|
|
141
|
+
one. Two council members called that theatre independently. Prefer the refusal,
|
|
142
|
+
or take the honest downgrade.
|
|
143
|
+
|
|
125
144
|
### 4 — Council (unless `--no-council`)
|
|
126
145
|
|
|
127
146
|
Route the class list and the proposed mechanisms to the AI council. Ask it
|
|
@@ -155,7 +174,7 @@ Before the roadmap is believed, run every new detector and gate against:
|
|
|
155
174
|
|
|
156
175
|
| Flag | Effect |
|
|
157
176
|
|---|---|
|
|
158
|
-
| `--
|
|
177
|
+
| `--limit N` | How many recent sessions to read (default 30). |
|
|
159
178
|
| `--scan-only` | Step 1 only — the deterministic report, no subagents, no spend. |
|
|
160
179
|
| `--no-council` | Skip step 4. Record that it was skipped. |
|
|
161
180
|
| `--no-roadmap` | Findings only; no artefact authored. |
|
|
@@ -136,11 +136,12 @@ Read `subagents.adversarial_council` from `.agent-settings.yml` (default
|
|
|
136
136
|
|
|
137
137
|
- `off` (default): skip silently.
|
|
138
138
|
- `ask`: when the diff is explicitly high-risk (security, tenant, migration,
|
|
139
|
-
public API), offer it
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
139
|
+
public API), offer it — in the shape
|
|
140
|
+
[`settings-ask-protocol`](../../../../rules/settings-ask-protocol.md) fixes,
|
|
141
|
+
which supplies the four slots, the one-question budget, and the storage line
|
|
142
|
+
(not persisted: `subagents.adversarial_council` is class C). What only this
|
|
143
|
+
command knows is *why now*: the diff is high-risk, and the offer is a paid
|
|
144
|
+
distinct-model red-team for finding coverage against the five internal judges.
|
|
144
145
|
- `on`: run it automatically on a high-risk diff.
|
|
145
146
|
|
|
146
147
|
When run, dispatch the
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: roadmap-next
|
|
4
|
+
pack: product-basic
|
|
5
|
+
tier: 2
|
|
6
|
+
visibility: internal
|
|
7
|
+
cluster: roadmap
|
|
8
|
+
sub: next
|
|
9
|
+
skills: [roadmap-management, agent-docs-writing, ai-council, subagent-orchestration, worktree-lifecycle, git-workflow]
|
|
10
|
+
description: Pick the next executable roadmap and carry it to a reviewable PR — live remote screen, five-disqualifier feasibility pass, council on the pick, process-full, chunked commits, PR, CI fix.
|
|
11
|
+
argument-hint: "[--worktree] [roadmap]"
|
|
12
|
+
suggestion:
|
|
13
|
+
eligible: false
|
|
14
|
+
rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /cluster:sub name; not independently suggested (surface-consolidation)."
|
|
15
|
+
workspaces:
|
|
16
|
+
- agent-config-maintainer
|
|
17
|
+
packs:
|
|
18
|
+
- meta
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# /roadmap:next
|
|
22
|
+
|
|
23
|
+
Selection + delivery scope of the [`/roadmap`](../roadmap.md) cluster.
|
|
24
|
+
The three `process-*` subs take a roadmap **as given** and vary the
|
|
25
|
+
scope inside it. `/roadmap:next` varies the **selection**: it screens
|
|
26
|
+
what is actually executable right now, picks one, pins the scope to
|
|
27
|
+
`full`, and carries the run to a PR that is ready for review.
|
|
28
|
+
|
|
29
|
+
One invocation = one roadmap = one branch = one PR.
|
|
30
|
+
|
|
31
|
+
## Instructions
|
|
32
|
+
|
|
33
|
+
### 1. Live remote screen — before any selection reasoning
|
|
34
|
+
|
|
35
|
+
Selection reads live state, never memory, a dashboard count, or an
|
|
36
|
+
earlier fetch (per [`direct-answers`](../../rules/direct-answers.md)
|
|
37
|
+
Iron Law 2 and [`roadmap-process-loop § 1`](../../contexts/execution/roadmap-process-loop.md#1-resolve-roadmap)).
|
|
38
|
+
Run as ONE block:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
git fetch origin --prune
|
|
42
|
+
git ls-tree --name-only origin/main agents/roadmaps/ # still active?
|
|
43
|
+
git ls-tree --name-only origin/main agents/roadmaps/archive/ # already closed?
|
|
44
|
+
gh pr list --state open --json number,title,headRefName # in flight?
|
|
45
|
+
agent-config sessions:list --json # claimed right now?
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Excluded from the candidate set: `template.md`, `archive/`,
|
|
49
|
+
`skipped/`, `later/`, anything with `status: draft` whose promotion
|
|
50
|
+
trigger has not fired, and:
|
|
51
|
+
|
|
52
|
+
| Exclusion | Source | What it means | Recovery |
|
|
53
|
+
|---|---|---|---|
|
|
54
|
+
| **taken by an open PR** | `gh pr list` — a roadmap slug matching an open PR's branch | The work is done or nearly done and is waiting on review | Review or merge that PR; the roadmap archives inside it |
|
|
55
|
+
| **claimed by a live session** | `sessions:list` — a live record whose `roadmap_slug` matches | Another session is working on it *right now*, before any PR exists | Nothing to do — it releases on that session's end, or by TTL |
|
|
56
|
+
|
|
57
|
+
Keep the two distinguishable in the reported screen. They are different
|
|
58
|
+
states with different recovery, and collapsing them into "unavailable"
|
|
59
|
+
loses the only information that tells the user whether to wait for a
|
|
60
|
+
review or simply pick something else.
|
|
61
|
+
|
|
62
|
+
A roadmap completes by an archive move **inside its merging PR**, so a
|
|
63
|
+
local checkout can show a closed roadmap as open. That is why this step
|
|
64
|
+
precedes the screen instead of following it.
|
|
65
|
+
|
|
66
|
+
The session read closes a window the PR check cannot. Measured over the 14
|
|
67
|
+
most recent merged feature PRs, the gap between a branch's first commit and
|
|
68
|
+
its PR is a median of **18.5 minutes** and a maximum of **67** — and that is a
|
|
69
|
+
*lower bound*, since the clock starts at roadmap selection, strictly earlier
|
|
70
|
+
than the first commit. For that whole interval the PR check reports the
|
|
71
|
+
roadmap as free. Measurement:
|
|
72
|
+
`agents/evidence/analysis/parallel-session-register-phase1.md`.
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
THE REGISTER *WRITE* IS HOOK-CARRIED AND DETERMINISTIC.
|
|
76
|
+
THIS *READ* IS NOT. THE TWO MUST NOT LOOK ALIKE.
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
This screen runs because the model read this instruction — there is no gate
|
|
80
|
+
that fires it, and none that notices when it is skipped. It is a
|
|
81
|
+
model-carried obligation in exactly the shape the `enforced_by: none` rules
|
|
82
|
+
declare, and it is stated here rather than left as prose that reads like a
|
|
83
|
+
guarantee. What IS deterministic: the heartbeat that writes the register, the
|
|
84
|
+
TTL expiry, and `sessions:list` itself once invoked.
|
|
85
|
+
|
|
86
|
+
### 2. Screen the survivors — five disqualifiers
|
|
87
|
+
|
|
88
|
+
For each candidate read its frontmatter, its open-step count, and every
|
|
89
|
+
`### blocker:` section. Disqualify on:
|
|
90
|
+
|
|
91
|
+
1. **A blocker whose resolution is a human ACTION** — install a secret,
|
|
92
|
+
click a repo setting, recruit a participant, approve spend, let a
|
|
93
|
+
date pass. Apply the action-vs-judgement split: a blocker that is a
|
|
94
|
+
**judgement call** (which option, whether to reopen a recorded
|
|
95
|
+
decision, is the evidence sufficient) is **not** a disqualifier — it
|
|
96
|
+
is council-resolvable in step 3.
|
|
97
|
+
2. **Spend** — paid bench or API runs, an npm publish, a public release.
|
|
98
|
+
3. **A date that must pass.**
|
|
99
|
+
4. **A kernel-rule edit** — [`scope-control`](../../rules/scope-control.md)
|
|
100
|
+
demands its own PR plus a ≥24 h soak, so it cannot close in this run
|
|
101
|
+
(kernel list: [`kernel-membership`](../../../docs/contracts/kernel-membership.md)).
|
|
102
|
+
5. **Phases gated on a spike verdict** that may return FINDING.
|
|
103
|
+
|
|
104
|
+
Also check the **family concurrency cap** (`lint_roadmap_family_cap`) —
|
|
105
|
+
adding a third `road-to-<family>-*` roadmap without archiving one reds
|
|
106
|
+
CI.
|
|
107
|
+
|
|
108
|
+
Partial disqualification is normal and does **not** drop a candidate:
|
|
109
|
+
record which phases the blocker actually blocks. A roadmap whose blocker
|
|
110
|
+
touches one deferred step still has a full working set.
|
|
111
|
+
|
|
112
|
+
Delegate the per-candidate reads to parallel subagents when more than
|
|
113
|
+
three candidates survive step 1 (per
|
|
114
|
+
[`delegation-policy`](../../rules/delegation-policy.md)); each returns
|
|
115
|
+
`{slug, open_steps, blockers[], disqualifiers[], blocked_phases[]}` and
|
|
116
|
+
nothing else.
|
|
117
|
+
|
|
118
|
+
### 3. Rank, then let the council settle a genuine tie
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
RANK BY DEFECT SEVERITY, NEVER BY PERCENT-DONE OR STEP COUNT.
|
|
122
|
+
A ROADMAP THAT REPAIRS A LIVE, USER-VISIBLE WRONGNESS OUTRANKS
|
|
123
|
+
ONE THAT MOVES MORE CHECKBOXES. PICKING BY CHECKBOX COUNT IS THE
|
|
124
|
+
GOODHART MOVE THIS PACKAGE'S OWN DISCIPLINE FORBIDS.
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
- **Exactly one survivor, or one that dominates** → take it, state the
|
|
128
|
+
one-line reason inline, proceed. Do not ask
|
|
129
|
+
([`no-cheap-questions`](../../rules/no-cheap-questions.md)).
|
|
130
|
+
- **Two or more with a real trade-off** → put the pick to the AI
|
|
131
|
+
council with the constraint set stated (survivors, open-step counts,
|
|
132
|
+
blocked phases, severity read) per
|
|
133
|
+
[`ai-council`](../../skills/ai-council/SKILL.md). Check the council's
|
|
134
|
+
decisive premise against the tree before adopting it — twice recorded,
|
|
135
|
+
the load-bearing claim was falsifiable in-repo.
|
|
136
|
+
- **Zero survivors** → emit the screen table (candidate · open steps ·
|
|
137
|
+
disqualifier) and stop. Suggest
|
|
138
|
+
[`/roadmap:create`](create.md) or a blocker the user can clear. Do
|
|
139
|
+
not manufacture a pick.
|
|
140
|
+
|
|
141
|
+
### 3b. Claim the pick, so the next session's screen sees it
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
agent-config sessions:claim <roadmap-slug>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Immediately after the pick, before any branch or commit. This writes the slug
|
|
148
|
+
into `agents/runtime/state/roadmap-claim.json`; the next heartbeat lifts it into
|
|
149
|
+
this session's register record, so another session's step 1 excludes it **within
|
|
150
|
+
one turn** and long before a PR exists.
|
|
151
|
+
|
|
152
|
+
Routing the claim through a state file rather than having this command write the
|
|
153
|
+
register directly is deliberate: the roadmap is picked mid-session by the model,
|
|
154
|
+
a hook is a script and cannot know what was picked, and this way the model never
|
|
155
|
+
needs to know the register's path or format. The cost is that the claim lands at
|
|
156
|
+
most one turn late.
|
|
157
|
+
|
|
158
|
+
Same honesty boundary as the screen above: **this write is model-carried.** The
|
|
159
|
+
verb is deterministic once invoked, and nothing forces the invocation. A skipped
|
|
160
|
+
claim degrades to today's behaviour — the PR check still catches the roadmap once
|
|
161
|
+
a PR exists — so the failure mode is a re-opened window, not a wrong result.
|
|
162
|
+
|
|
163
|
+
`agent-config sessions:claim --release` drops the claim if the run is abandoned
|
|
164
|
+
before the session ends; otherwise `session_end` clears the whole record.
|
|
165
|
+
|
|
166
|
+
### 4. Workspace — branch by default, worktree on request
|
|
167
|
+
|
|
168
|
+
Default: a feature branch in the current checkout, named
|
|
169
|
+
`feat/<roadmap-slug>` per [`commit-conventions`](../../rules/commit-conventions.md).
|
|
170
|
+
Propose the name once and proceed; no naming menu.
|
|
171
|
+
|
|
172
|
+
`--worktree` — or the user saying "in a worktree" — routes through
|
|
173
|
+
[`/worktree:create`](../../worktree/create.md) in full, including its
|
|
174
|
+
[seeding allow/deny list](../../../skills/using-git-worktrees/SKILL.md#4b-seed-the-worktree--allow--deny-list).
|
|
175
|
+
Two entries decide whether the run's gate results mean anything:
|
|
176
|
+
dependencies are symlinked or installed **fully**, and
|
|
177
|
+
`.agent-settings.yml` is **never** copied — absent IS the CI shape.
|
|
178
|
+
|
|
179
|
+
### 5. Run it
|
|
180
|
+
|
|
181
|
+
Hand off to [`/roadmap:process-full`](process-full.md) and follow it
|
|
182
|
+
verbatim, including its Iron Law — full is full, and its five halt
|
|
183
|
+
conditions are the only stops. The execution contract from
|
|
184
|
+
[`roadmap-execution-contract`](../../contexts/execution/roadmap-execution-contract.md)
|
|
185
|
+
is derived once; the user's single Accept covers branch, chunked
|
|
186
|
+
commits, push to that branch, and the PR.
|
|
187
|
+
|
|
188
|
+
### 6. Deliver
|
|
189
|
+
|
|
190
|
+
Chunked commits (the agent picks the split — never ask how, per
|
|
191
|
+
[`commit-policy`](../../rules/commit-policy.md)), then
|
|
192
|
+
[`/create-pr`](../../git/pr/create.md): archival sweep, preflight,
|
|
193
|
+
push, PR opened **ready for review** (not draft).
|
|
194
|
+
|
|
195
|
+
### 7. CI — fix locally, honour the push gate
|
|
196
|
+
|
|
197
|
+
Follow [`/create-pr` § 4d](../../git/pr/create.md): wait for the
|
|
198
|
+
verdict in the background, never end the turn on "CI is running",
|
|
199
|
+
diagnose and fix in the working tree on red, within the N=3 budget per
|
|
200
|
+
[`autonomous-execution`](../../rules/autonomous-execution.md).
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
THE LOCAL FIX IS AUTONOMOUS. THE RE-PUSH IS NOT.
|
|
204
|
+
git push IS A HARD-FLOOR TRIGGER AND THE FLOOR REFUSES A STANDING
|
|
205
|
+
DIRECTIVE BY CONSTRUCTION. FIX, VERIFY, THEN SAY WHAT IS READY.
|
|
206
|
+
NEVER INVENT A PER-PR "STANDING MANDATE" WORKAROUND.
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
The cheapest CI-fix loop is the one that never fires: run `task
|
|
210
|
+
preflight` before the first push, which runs the same
|
|
211
|
+
`skill_linter --changed` gate CI does.
|
|
212
|
+
|
|
213
|
+
### 8. Report
|
|
214
|
+
|
|
215
|
+
Roadmap picked + the screen result that picked it · steps closed /
|
|
216
|
+
total · commits · PR URL as the literal last line (per
|
|
217
|
+
[`direct-answers`](../../rules/direct-answers.md) reply-close) · CI
|
|
218
|
+
verdict · anything left open with its reason.
|
|
219
|
+
|
|
220
|
+
## Iron Law — screened, never guessed
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
NEVER PICK A ROADMAP FROM MEMORY, A DASHBOARD COUNT, OR AN EARLIER SESSION.
|
|
224
|
+
THE THREE LIVE CHECKS RUN FIRST, EVERY INVOCATION.
|
|
225
|
+
A ROADMAP CLAIMED "IN FLIGHT", "MERGED", OR "DONE" WITHOUT A LIVE CHECK
|
|
226
|
+
AT THE MOMENT OF THE CLAIM IS AN UNVERIFIED CLAIM.
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Rules
|
|
230
|
+
|
|
231
|
+
- **One roadmap per invocation.** Never chain a second pick after the
|
|
232
|
+
first closes — the user re-invokes.
|
|
233
|
+
- **The screen is reported, not just used.** State which candidates were
|
|
234
|
+
disqualified and on what, so the pick is auditable — and keep
|
|
235
|
+
"taken by open PR" and "claimed by a live session" distinguishable.
|
|
236
|
+
- **A live foreign claim is not a merge conflict to resolve.** It excludes the
|
|
237
|
+
roadmap from *this* pick and nothing more. Never override it, and never treat
|
|
238
|
+
the register as a lock: it is advisory, two sessions can claim in the same
|
|
239
|
+
millisecond, and an idle session disappears from it although its user returns
|
|
240
|
+
([`parallel-sessions`](../../../../docs/guides/parallel-sessions.md)).
|
|
241
|
+
- **A judgement-call blocker goes to the council, not to the user.**
|
|
242
|
+
A human-ACTION blocker goes to neither — it disqualifies.
|
|
243
|
+
- **No merge, ever.** The PR is opened for review; merging is
|
|
244
|
+
conversational ([`non-destructive-by-default`](../../rules/non-destructive-by-default.md)).
|
|
245
|
+
- All rules from [`/roadmap:process-full`](process-full.md#rules) apply
|
|
246
|
+
unchanged to the execution half.
|
|
247
|
+
|
|
248
|
+
## See also
|
|
249
|
+
|
|
250
|
+
- [`/roadmap`](../roadmap.md) — cluster orchestrator
|
|
251
|
+
- [`/roadmap:process-full`](process-full.md) — the execution half this wraps
|
|
252
|
+
- [`/roadmap:ai-council`](ai-council.md) — challenge a roadmap before running it
|
|
253
|
+
- [`/worktree:create`](../../worktree/create.md) — the `--worktree` path
|
|
254
|
+
- [`/create-pr`](../../git/pr/create.md) — delivery + the CI wait contract
|
|
255
|
+
- [`roadmap-process-loop`](../../contexts/execution/roadmap-process-loop.md) — canonical mechanics
|
|
256
|
+
- [`parallel-sessions`](../../../../docs/guides/parallel-sessions.md) — what the session register does, its TTLs, and the two limits it does not hide
|