@event4u/agent-config 9.11.0 → 9.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +80 -204
  3. package/README.md +8 -1
  4. package/dist/agent-src/commands/fix/ci.md +29 -0
  5. package/dist/agent-src/commands/pr/create.md +60 -0
  6. package/dist/agent-src/contexts/authority/kernel-rule-edits.md +18 -2
  7. package/dist/agent-src/rules/active-remediation.md +0 -2
  8. package/dist/agent-src/rules/architecture.md +0 -1
  9. package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -4
  10. package/dist/agent-src/rules/autonomous-execution.md +1 -2
  11. package/dist/agent-src/rules/broken-access-control.md +0 -2
  12. package/dist/agent-src/rules/code-comment-discipline.md +0 -3
  13. package/dist/agent-src/rules/code-provenance.md +0 -3
  14. package/dist/agent-src/rules/communication-through-line.md +2 -3
  15. package/dist/agent-src/rules/content-quoting-floor.md +0 -2
  16. package/dist/agent-src/rules/context-hygiene.md +1 -3
  17. package/dist/agent-src/rules/decision-revisit-gate.md +0 -2
  18. package/dist/agent-src/rules/design-fidelity.md +30 -1
  19. package/dist/agent-src/rules/domain-adoption-policy.md +0 -3
  20. package/dist/agent-src/rules/downstream-changes.md +10 -1
  21. package/dist/agent-src/rules/external-reference-deep-dive.md +0 -7
  22. package/dist/agent-src/rules/fast-path-marker-visibility.md +0 -1
  23. package/dist/agent-src/rules/git-history-discipline.md +0 -7
  24. package/dist/agent-src/rules/guidelines.md +0 -2
  25. package/dist/agent-src/rules/improve-before-implement.md +4 -2
  26. package/dist/agent-src/rules/invite-challenge.md +0 -4
  27. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -2
  28. package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
  29. package/dist/agent-src/rules/minimal-safe-diff.md +2 -2
  30. package/dist/agent-src/rules/missing-tool-handling.md +0 -1
  31. package/dist/agent-src/rules/no-attribution-footers.md +0 -3
  32. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +8 -5
  33. package/dist/agent-src/rules/no-pr-progress-comments.md +1 -3
  34. package/dist/agent-src/rules/no-roadmap-references.md +0 -2
  35. package/dist/agent-src/rules/output-discipline.md +0 -1
  36. package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -2
  37. package/dist/agent-src/rules/preservation-guard.md +0 -3
  38. package/dist/agent-src/rules/role-mode-adherence.md +0 -1
  39. package/dist/agent-src/rules/secret-vcs-guard.md +0 -2
  40. package/dist/agent-src/rules/senior-engineering-discipline.md +0 -2
  41. package/dist/agent-src/rules/session-canary.md +0 -2
  42. package/dist/agent-src/rules/size-enforcement.md +0 -5
  43. package/dist/agent-src/rules/source-confidentiality.md +0 -3
  44. package/dist/agent-src/rules/source-discovery-gate.md +0 -2
  45. package/dist/agent-src/rules/think-before-action.md +3 -3
  46. package/dist/agent-src/rules/token-budget-discipline.md +0 -1
  47. package/dist/agent-src/rules/token-efficiency.md +1 -2
  48. package/dist/agent-src/rules/tool-safety.md +0 -1
  49. package/dist/agent-src/rules/user-interaction.md +0 -3
  50. package/dist/agent-src/rules/user-interrupt-priority.md +0 -1
  51. package/dist/agent-src/skills/agent-docs-writing/SKILL.md +8 -0
  52. package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +1 -0
  53. package/dist/agent-src/skills/analysis-skill-router/SKILL.md +55 -86
  54. package/dist/agent-src/skills/character-consistency/SKILL.md +7 -4
  55. package/dist/agent-src/skills/decision-record/SKILL.md +8 -0
  56. package/dist/agent-src/skills/design-intelligence/SKILL.md +27 -1
  57. package/dist/agent-src/skills/design-intelligence/data/font-pairings-reference.csv +74 -74
  58. package/dist/agent-src/skills/design-intelligence/data/manifest.json +2 -0
  59. package/dist/agent-src/skills/design-review/SKILL.md +11 -0
  60. package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +8 -0
  61. package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +0 -7
  62. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +34 -3
  63. package/dist/agent-src/skills/fe-design/SKILL.md +10 -0
  64. package/dist/agent-src/skills/motion-choreographer/SKILL.md +7 -4
  65. package/dist/agent-src/skills/overbuild-review-lens/SKILL.md +201 -0
  66. package/dist/agent-src/skills/performance/SKILL.md +14 -0
  67. package/dist/agent-src/skills/pixar-storyteller/SKILL.md +8 -5
  68. package/dist/agent-src/skills/scene-expander/SKILL.md +9 -6
  69. package/dist/agent-src/skills/supply-chain-intake/SKILL.md +10 -0
  70. package/dist/agent-src/skills/typography-system/SKILL.md +55 -11
  71. package/dist/agent-src/skills/ui-apply-generic/SKILL.md +180 -0
  72. package/dist/agent-src/skills/universal-project-analysis/SKILL.md +14 -37
  73. package/dist/agent-src/skills/video-director/SKILL.md +9 -6
  74. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  75. package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +162 -17
  76. package/dist/agent-src/templates/scripts/work_engine/directives/ui/design.ts +118 -0
  77. package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +49 -6
  78. package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +9 -5
  79. package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +182 -29
  80. package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +311 -24
  81. package/dist/agent-src/templates/scripts/work_engine/state.ts +55 -0
  82. package/dist/cli-delegate/chunk-523HCFYO.js +90 -0
  83. package/dist/cli-delegate/{chunk-IR7P7JWA.js → chunk-A3HJ6NTI.js} +271 -59
  84. package/dist/cli-delegate/chunk-EJYIGZ3T.js +125 -0
  85. package/dist/cli-delegate/{chunk-RDGRHAAB.js → chunk-HYWSRNUX.js} +6 -86
  86. package/dist/cli-delegate/{chunk-YMFO6FDN.js → chunk-QFKQLQ7X.js} +313 -81
  87. package/dist/cli-delegate/{chunk-4SV3XGFA.js → chunk-TEGJU2JX.js} +7 -9
  88. package/dist/cli-delegate/chunk-TJIAM5FW.js +133 -0
  89. package/dist/cli-delegate/cmd_conformance.js +4 -7
  90. package/dist/cli-delegate/cmd_doctor.js +3 -5
  91. package/dist/cli-delegate/cmd_explain.js +153 -85
  92. package/dist/cli-delegate/cmd_export.js +5 -3
  93. package/dist/cli-delegate/cmd_fleet.js +2 -1
  94. package/dist/cli-delegate/cmd_preflight.js +6 -123
  95. package/dist/cli-delegate/cmd_prune.js +5 -3
  96. package/dist/cli-delegate/cmd_settings_migrate.js +5 -3
  97. package/dist/cli-delegate/cmd_sync.js +5 -3
  98. package/dist/cli-delegate/cmd_uninstall.js +6 -5
  99. package/dist/cli-delegate/cmd_validate.js +5 -3
  100. package/dist/discovery/deprecation-report.md +1 -1
  101. package/dist/discovery/discovery-manifest.json +116 -72
  102. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  103. package/dist/discovery/discovery-manifest.summary.md +3 -3
  104. package/dist/discovery/orphan-report.md +1 -1
  105. package/dist/discovery/packs.json +7 -5
  106. package/dist/discovery/trust-report.md +2 -2
  107. package/dist/discovery/workspaces.json +6 -4
  108. package/dist/hooks/dispatch.js +174 -13
  109. package/dist/install/install.mjs +605 -412
  110. package/dist/install/ruleInScope.js +123 -0
  111. package/dist/install/ruleInScope.js.map +1 -0
  112. package/dist/install/rule_scope.js +2 -2
  113. package/dist/install/rule_scope.js.map +1 -1
  114. package/dist/install/wizard-plan.js +10 -1
  115. package/dist/install/wizard-plan.js.map +1 -1
  116. package/dist/mcp/registry-manifest.json +3 -3
  117. package/dist/mcp/server.json +2 -2
  118. package/dist/mcp/server.mjs +710 -2491
  119. package/dist/router.json +1 -1
  120. package/dist/scripts/condense.js +8 -24
  121. package/dist/scripts/condense.js.map +1 -1
  122. package/docs/MIGRATION.md +1 -1
  123. package/docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md +71 -0
  124. package/docs/guidelines/agent-infra/minimal-safe-diff-mechanics.md +24 -1
  125. package/docs/guidelines/code-clarity.md +9 -2
  126. package/docs/guidelines/design-fidelity-mechanics.md +58 -0
  127. package/llms.txt +63 -27
  128. package/package.json +4 -4
  129. package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +162 -17
  130. package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +118 -0
  131. package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +49 -6
  132. package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +9 -5
  133. package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +182 -29
  134. package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +311 -24
  135. package/src/agent-src/templates/scripts/work_engine/state.ts +55 -0
  136. package/src/config/agent-settings.template.yml +8 -0
  137. package/src/install/ruleInScope.ts +133 -0
  138. package/src/install/rule_scope.ts +2 -2
  139. package/src/install/wizard-plan.ts +11 -1
  140. package/src/scripts/_lib/counted_probe.ts +142 -0
  141. package/src/scripts/_lib/global_deploy_inventory.ts +38 -2
  142. package/src/scripts/_lib/overbuild_lens_contract.ts +196 -0
  143. package/src/scripts/_lib/release_scope.ts +207 -0
  144. package/src/scripts/ai_council/stance_tally.ts +37 -2
  145. package/src/scripts/audit_auto_rules.ts +9 -9
  146. package/src/scripts/audit_likelihood.ts +3 -3
  147. package/src/scripts/audit_overlap.ts +2 -2
  148. package/src/scripts/audit_skill_overlap.ts +233 -95
  149. package/src/scripts/audit_skill_overlap_allowlist.json +4 -0
  150. package/src/scripts/build_proof.ts +15 -1
  151. package/src/scripts/check_dependency_floors.ts +16 -6
  152. package/src/scripts/check_gate_coverage.ts +6 -6
  153. package/src/scripts/check_installer_import_purity.ts +295 -0
  154. package/src/scripts/check_kernel_rule_bundle.ts +5 -4
  155. package/src/scripts/check_token_quality_golden.ts +0 -18
  156. package/src/scripts/code_graph/loader.ts +35 -6
  157. package/src/scripts/compile_router.ts +3 -8
  158. package/src/scripts/condense.ts +9 -30
  159. package/src/scripts/explain_run.ts +0 -1
  160. package/src/scripts/generate_pack_manifests.ts +3 -20
  161. package/src/scripts/hooks/block_kernel_rule_writes.ts +145 -10
  162. package/src/scripts/hooks/block_no_verify.ts +101 -0
  163. package/src/scripts/install-hooks.sh +36 -4
  164. package/src/scripts/install.ts +210 -5
  165. package/src/scripts/lint_agent_security.ts +5 -4
  166. package/src/scripts/lint_framework_leakage_allowlist.json +2 -2
  167. package/src/scripts/lint_regression.ts +92 -1
  168. package/src/scripts/lint_skill_descriptions.ts +93 -5
  169. package/src/scripts/lint_ui_stack_bundles.ts +31 -0
  170. package/src/scripts/project_thin_rules.ts +2 -2
  171. package/src/scripts/release.ts +107 -3
  172. package/src/scripts/resolve_lint_scope.ts +53 -0
  173. package/src/scripts/router_telemetry.ts +0 -5
  174. package/src/scripts/runtime_dispatcher.ts +40 -0
  175. package/src/scripts/schemas/pack.schema.json +1 -5
  176. package/src/scripts/schemas/rule.schema.json +1 -2
  177. package/src/scripts/self_review_gate.ts +15 -73
  178. package/src/scripts/skill_linter.ts +93 -11
  179. package/src/scripts/sweep_dead_scan_roots.ts +550 -0
  180. package/src/scripts/trigger_coverage.ts +11 -37
  181. package/dist/cli-delegate/chunk-7DSAMZFU.js +0 -356
  182. package/dist/cli-delegate/chunk-BJGXZNPM.js +0 -266
  183. package/dist/cli-delegate/chunk-TFG57JJM.js +0 -1969
@@ -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.11.0",
9
+ "version": "9.13.0",
10
10
  "keywords": [
11
11
  "agent-config",
12
12
  "skills",
package/CHANGELOG.md CHANGED
@@ -237,234 +237,110 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
237
237
  > keeps the active era under the 250-line drift cap enforced by
238
238
  > `tests/test_changelog_eras.py`.
239
239
 
240
- # Era: 9.10.x — current
240
+ # Era: pre-9.13.0 — archived
241
241
 
242
- > Started at `9.10.0`. Full entries live inline below.
243
- > The drift test caps this era at 250 lines of entry body; growth past
244
- > that forces a new era split (`# Era: 9.11.x`, etc.) — see
245
- > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
246
-
247
- ## [9.11.0](https://github.com/event4u-app/agent-config/compare/9.10.0...9.11.0) (2026-07-31)
248
-
249
- ### Features
250
-
251
- * **doctor:** report detected capability and spend permission as two facts ([9e49347](https://github.com/event4u-app/agent-config/commit/9e4934716bfea7d9c4dcf9c57c7d24c17c6bf980))
252
- * **detection:** add a read-only, spend-free environment detector ([dcf83cf](https://github.com/event4u-app/agent-config/commit/dcf83cfa589112f4c293ecd665fa9af57905b8d8))
253
- * **ci:** gate the UI verb→skill-bundle map ([6ed8e49](https://github.com/event4u-app/agent-config/commit/6ed8e4996307ebfb646f2eb1f2fcb3e533e84952))
254
- * **ci:** measure the install-to-doctor cold start as evidence ([67e258e](https://github.com/event4u-app/agent-config/commit/67e258ef3acb3ae53613a01df2adbba0946bde7e))
255
- * **ci:** gate the compressed payload and the per-skill share ([09754b2](https://github.com/event4u-app/agent-config/commit/09754b28adf8111ab751b8475a7461849663161b))
256
- * **cli:** implement the documented --gui opt-in flag ([0b28799](https://github.com/event4u-app/agent-config/commit/0b2879986ddfd6cee3ac8ab2ce367980ccddff12))
257
-
258
- ### Bug Fixes
259
-
260
- * **test:** stop the council CLI test writing an events log into the worktree ([09618d0](https://github.com/event4u-app/agent-config/commit/09618d02cf909b2bca1742b9e40a69ae585baa2a))
261
- * **doctor:** report the configured mode, not only what `auto` could reach ([bc9c800](https://github.com/event4u-app/agent-config/commit/bc9c800a80a4a8699b216e5e8d4cfe82e39eed86))
262
- * **work-engine:** distinguish "stack-neutral by definition" from "no executor" ([623c03e](https://github.com/event4u-app/agent-config/commit/623c03ec9ee654dabec9a304836bccfab8706e5d))
263
- * **test:** drop the removed `name` option from the CliClient construction ([5096049](https://github.com/event4u-app/agent-config/commit/5096049380444c0d4dec091faa84a112257b524b))
264
- * **install:** ship the council example npm never delivered; align the template ([8e5fe45](https://github.com/event4u-app/agent-config/commit/8e5fe4549cad3ce5689b4a2db0899d44575c6f83))
265
- * **council:** read the configured transport default on every path, add `auto` ([2b975ce](https://github.com/event4u-app/agent-config/commit/2b975ce2ab44d81e2240c5370af93df91bf27c0a))
266
- * **packs:** make the design layer reachable from a framework-only install ([2eb3bd6](https://github.com/event4u-app/agent-config/commit/2eb3bd6cc8be55633a6af790ba92c8ae5a238006))
267
- * **work-engine:** make the design brief's own gates enforce what they claim ([8eb5c2e](https://github.com/event4u-app/agent-config/commit/8eb5c2e34fdbd4cb4d9d671443cbccbfdb45917d))
268
- * **work-engine:** stop sending real stacks into the fallback lane ([a4cb008](https://github.com/event4u-app/agent-config/commit/a4cb008f8fbf8485896638cb24d3c52e6d218938))
269
- * **work-engine:** close the UI gate holes and make the verb→bundle map explicit ([95a2577](https://github.com/event4u-app/agent-config/commit/95a25778cb30d03fbae5176957fa4d2fbc3647b8))
270
- * **cli:** precompile the _cli delegate commands so the consumer CLI needs no tsx ([fa51c5a](https://github.com/event4u-app/agent-config/commit/fa51c5a54f250cc08269326b12519d9fdf817cc3))
271
- * **deps:** restore the @fastify/static security floor and teach the gate about CVE floors ([b8fb7d6](https://github.com/event4u-app/agent-config/commit/b8fb7d601b37162e0995a521d709a53987527ab2))
272
- * **ci:** silence the SC2046 the archive exclusion exposed ([047391e](https://github.com/event4u-app/agent-config/commit/047391e63a520aa6e8b965ba58a0f5e5f791dd8a))
273
- * **ci:** keep era-split archives out of the .md-English gate ([cefb5e2](https://github.com/event4u-app/agent-config/commit/cefb5e2c49c96459807cece92e6aa98ce309341a))
274
- * **changelog:** never archive the release the archive is named after ([d449f5f](https://github.com/event4u-app/agent-config/commit/d449f5fdec0387421a72bfd185aedc233c4f4b68))
275
- * **install:** make the ETARGET failure unreachable instead of documented ([41f6bd5](https://github.com/event4u-app/agent-config/commit/41f6bd56b5d20d7675ee4fc86a6540d390785851))
276
-
277
- ### Documentation
278
-
279
- * **roadmap:** close road-to-zero-ceremony-detection and its three blockers ([38fee07](https://github.com/event4u-app/agent-config/commit/38fee07b6121a97fe65f6c249a5c94f71923a8b8))
280
- * **security:** pin CLAUDE_CONFIG_DIR inheritance as accepted risk ([5a3b580](https://github.com/event4u-app/agent-config/commit/5a3b5804b0cdadb1ba3ccf36a3159bf42bddbd18))
281
- * **contracts:** make the design contracts describe the machine that exists ([11fe8d2](https://github.com/event4u-app/agent-config/commit/11fe8d237d72c98b9ff37fbc8022cea94efcb1bd))
282
- * **roadmap:** frontend-stack findings, the council cut, and three roadmaps ([73b8b83](https://github.com/event4u-app/agent-config/commit/73b8b83334289a1fe8dd2d57728ba31aa6c2d243))
283
- * **contracts:** resolve the UI dispatch contradiction between the two contracts ([a0ec1a3](https://github.com/event4u-app/agent-config/commit/a0ec1a3e29e9f3c4625b5a510ad32b4232373b2b))
284
- * **adr:** record ADR-204 and correct the falsified Phase 1 claim ([249a5d9](https://github.com/event4u-app/agent-config/commit/249a5d9e54e9d592491c5e922d95bea0b8efd7a2))
285
- * **roadmap:** close zero-ceremony-install, promote the one defect it found ([e35be42](https://github.com/event4u-app/agent-config/commit/e35be426afdeba04f4dbdeda968a12a78ba39681))
286
- * **architecture:** stop calling the consumer install "Pipeline B" ([d53ec83](https://github.com/event4u-app/agent-config/commit/d53ec8340468e5e5eb23a0f98d6d2a9ab6dffa90))
287
- * **install:** make every install statement true of the code that runs ([7ff4c76](https://github.com/event4u-app/agent-config/commit/7ff4c76858f093393e350a77561ab9798efc47a5))
288
-
289
- ### Tests
290
-
291
- * **work-engine:** pin the UI lane matrix as the dispatch baseline ([c9f4f4d](https://github.com/event4u-app/agent-config/commit/c9f4f4d59bca7ab1c848be72bcace44aecdbb1be))
292
- * **cli:** pin the tsx-free consumer command surface structurally ([fa99997](https://github.com/event4u-app/agent-config/commit/fa99997b53f4afb657fa37e70f559bbc02491c18))
293
-
294
- ### CI
242
+ > All entries before `9.13.0` live in
243
+ > [`docs/archive/CHANGELOG-pre-9.13.0.md`](docs/archive/CHANGELOG-pre-9.13.0.md).
244
+ > The archive is read-only; git tags remain the canonical
245
+ > source for what shipped. Splitting them out of the main file
246
+ > keeps the active era under the 250-line drift cap enforced by
247
+ > `tests/test_changelog_eras.py`.
295
248
 
296
- * register the dependency-floor and pack-size gates ([104b04f](https://github.com/event4u-app/agent-config/commit/104b04f9a80e13c9c37a24bfd1af73d21328ad92))
249
+ # Era: 9.13.x — current
297
250
 
298
- ### Chores
251
+ > Started at `9.13.0`. Full entries live inline below.
252
+ > The drift test caps this era at 250 lines of entry body; growth past
253
+ > that forces a new era split (`# Era: 9.14.x`, etc.) — see
254
+ > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
299
255
 
300
- * **test:** drop dead subprocess-era helpers from the doctor test ([5e1d569](https://github.com/event4u-app/agent-config/commit/5e1d56918c8afcc40839f4c20da128d12a5ea840))
301
- * **roadmaps:** archive the completed detection roadmap ([5c2ae87](https://github.com/event4u-app/agent-config/commit/5c2ae87eb624375a5dace26f6fae28251634ed42))
302
- * **dist:** rebuild dist/install after the pipeline-naming comment change ([993e511](https://github.com/event4u-app/agent-config/commit/993e5119660d1e91583407aeaa3ebde82f92f533))
256
+ ## [9.13.0](https://github.com/event4u-app/agent-config/compare/9.12.0...9.13.0) (2026-08-02)
303
257
 
304
- Tests: 9742 (+272 since 9.10.0)
258
+ ### Release highlights
305
259
 
306
- ## [9.10.0](https://github.com/event4u-app/agent-config/compare/9.9.0...9.10.0) (2026-07-31)
260
+ <!-- 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. -->
261
+ - **Behaviour changes:** _none_
262
+ - **Default changes + migration:** _none_
263
+ - **Security and correctness:** _none_
264
+ - **Honest nulls:** _none_
265
+ - **Known limitations:** _none_
307
266
 
308
267
  ### Features
309
268
 
310
- * **bench:** attempt 2 of the anchor instrument — structured verdicts + retry ([363b45f](https://github.com/event4u-app/agent-config/commit/363b45f8f73c157e1a239670fcabe2fcccc35ee0))
311
- * **bench:** build the anchor-evaluation instrument, and record it as a null ([3c83dfe](https://github.com/event4u-app/agent-config/commit/3c83dfe5054caed5c3dcb53069fdf91cdd2eccbb))
312
- * **rules:** land the P4 migration the narrowed lock now permits ([4e4a5f0](https://github.com/event4u-app/agent-config/commit/4e4a5f0c0a3b46db3025702ecf60d884ad568fcd))
313
- * **gates:** narrow the safety-floor lock to substantive changes ([dbf96a2](https://github.com/event4u-app/agent-config/commit/dbf96a2848689866896b1b3af9c1f19da79956a4))
314
- * **golden-set:** complete rule coverage — 20 tasks for the uncovered rules ([b77c0e3](https://github.com/event4u-app/agent-config/commit/b77c0e3b5d85339634fe8c2f63bd9213d3f81af1))
315
- * **memory:** wire the miner's last mile into the global observation buffer ([bee7de4](https://github.com/event4u-app/agent-config/commit/bee7de44c2e4cd287120eed727a87c2c0177f60f))
316
- * **cache-economy:** ratchet the per-spawn payload, document the dormancy route ([e0e3024](https://github.com/event4u-app/agent-config/commit/e0e30245d97bf16d9507baa44d6b4c900fc2ee1b))
317
- * **projection:** scope-dedup the rule projection — C-3 measured at 38.0% ([6428430](https://github.com/event4u-app/agent-config/commit/6428430d274f1f6576249617a3c7e848f4cf0874))
318
- * **user-memory:** global user layer — profile cascade, learning channel, delete path ([fa7b8e0](https://github.com/event4u-app/agent-config/commit/fa7b8e0381aee0e989212a2e77d029bb7b4879e1))
319
- * **cache-economy:** measure prompt-cache realization without a daemon ([3b8a54a](https://github.com/event4u-app/agent-config/commit/3b8a54a978f045e11724f329a3776be5bfeb956e))
320
- * **gates:** a parity gate for the CI-vs-local drift, and wire the 10 it found ([678ef79](https://github.com/event4u-app/agent-config/commit/678ef79435632372b80dd8ffd41a3614da33f7ab))
321
- * **condense:** read staleness off the projection, drop the hash cache ([23f189a](https://github.com/event4u-app/agent-config/commit/23f189a581de821fe7d4b043c53781bae42fc2d8))
322
- * **gates:** assert dist == rewrite(src) byte-for-byte ([fb4c9a5](https://github.com/event4u-app/agent-config/commit/fb4c9a591a7676b63976324fab9edb8e3678a08c))
323
- * **projection:** copy .md verbatim and honour compile-time toggles ([0464d4d](https://github.com/event4u-app/agent-config/commit/0464d4d043033f47040d00c6e65ebcac5b067f41))
324
- * **bench:** export blinded answer pairs for an external instrument ([c509f9f](https://github.com/event4u-app/agent-config/commit/c509f9fe467286b9df320dcd4606b0808843375b))
325
- * **telegraph:** make the rule dormant by default per ADR 0001 ([c41bb4e](https://github.com/event4u-app/agent-config/commit/c41bb4ee306e7fa7e1495a9deca6f8e82c84f09d))
326
- * **gates:** add a coverage guard that fails gates which scan nothing ([72a12c2](https://github.com/event4u-app/agent-config/commit/72a12c29566ea3c34cee74e3efa4e7a8dd30f081))
327
- * **encoding:** close the visible-layer gap, measured against the frozen corpus ([0ba6c16](https://github.com/event4u-app/agent-config/commit/0ba6c162c7c7e07aa096b6a3e38a43e6256d28dc))
328
- * **corpus:** freeze a labelled text-layer encoding corpus before any detector ([4aadfb1](https://github.com/event4u-app/agent-config/commit/4aadfb10d90de1b003dc33ae9cf157585ed5c31e))
329
- * **lint:** extend the hidden-unicode gate to raw control bytes in sources ([c38e9bd](https://github.com/event4u-app/agent-config/commit/c38e9bdc22893c4ab4e4aaab864fe0f17556ed0e))
330
- * **gates:** add scan-scope assertions so a gate that read nothing cannot pass ([2934905](https://github.com/event4u-app/agent-config/commit/2934905f6392dae47d7847358977235613223b91))
269
+ * **gates:** full-population dead-scan-root sweep with a dispositions ledger ([3711ff3](https://github.com/event4u-app/agent-config/commit/3711ff3e1f8727c31ceac3f5b56fefedf07d8df3))
270
+ * **skills:** add the over-build review lens with a golden-set gate ([071a44a](https://github.com/event4u-app/agent-config/commit/071a44aa573d5cfc89fcd254649e4e3a7c0e106e))
271
+ * **rules:** land the solution-size ladder as extensions, not a new rule ([42c4960](https://github.com/event4u-app/agent-config/commit/42c49604682d659312cb4f0cffe3a61f6b301a8c))
272
+ * **lint:** clustered-only positive description checks ([64d3ce4](https://github.com/event4u-app/agent-config/commit/64d3ce4784e4dcd7918d01e4a5e409784220c79f))
273
+ * **release:** put a curated head above the generated log ([47ad07d](https://github.com/event4u-app/agent-config/commit/47ad07d56c946dd18988be36fd23695493db0316))
274
+ * **bench:** bench:ui — score a port against its ground truth, no model in the path ([48202e3](https://github.com/event4u-app/agent-config/commit/48202e3e5364913c8a2a8462b0654d3ad6ca7f0a))
275
+ * **design:** a provided artifact outranks anti-slop, house taste last ([0014df8](https://github.com/event4u-app/agent-config/commit/0014df856aa17dbce1c8b37f31426efd4c2aaf5b))
276
+ * **ui-track:** honour a provided design contract, or state the loss first ([cd43b9b](https://github.com/event4u-app/agent-config/commit/cd43b9b50a31997297a6a9cb0717e858857c5b3d))
277
+ * **design-fidelity:** route the handover prompts people actually write ([e94688f](https://github.com/event4u-app/agent-config/commit/e94688ff6da463e500f2ad7076ca6c1ec2fbf64c))
331
278
 
332
279
  ### Bug Fixes
333
280
 
334
- * **lint:** drop the unused pathToFileURL import in the anchor runner ([bf7d9f3](https://github.com/event4u-app/agent-config/commit/bf7d9f3fe93abcf855ae8e80f66b65f0f42719a0))
335
- * **council:** gpt-5 was never unusable — it missed the reasoning branch ([af3ed6e](https://github.com/event4u-app/agent-config/commit/af3ed6e7ea611ac2e1bf7f1152c752974ca5c106))
336
- * **ci:** let a label actually override the kernel-rule bundle gate ([cd1537f](https://github.com/event4u-app/agent-config/commit/cd1537f5f5a75e245954b2dd6e364ce049f40656))
337
- * **ci:** scope actionlint to the workflow files the PR changes ([1ed8a40](https://github.com/event4u-app/agent-config/commit/1ed8a4054843831d2c022fee8de8c59646a41cbf))
338
- * **ci:** repair the Consistency workflow — a duplicate run: key broke it ([c78d26b](https://github.com/event4u-app/agent-config/commit/c78d26b833aa57fab6ea1138a164206978bc9301))
339
- * **review:** resolve the review-gate and council findings on #1055 ([1e7c3a0](https://github.com/event4u-app/agent-config/commit/1e7c3a00da5d7381da6706fb928ca035127e8dba))
340
- * **portability:** drop the vendor env-var name from a portable command body ([a56f059](https://github.com/event4u-app/agent-config/commit/a56f059f7ea3d87031a8023fa940128e5043e63a))
341
- * **portability:** drop the vendor env-var name from a portable command body ([95714c9](https://github.com/event4u-app/agent-config/commit/95714c93fdca37c566339024d2f930c32ae2be8d))
342
- * **ci:** regenerate the derived surfaces the count bump left stale ([b043d80](https://github.com/event4u-app/agent-config/commit/b043d803e90f5e23a892c791e9edfd2352480b09))
343
- * **ci:** regenerate the derived surfaces the count bump left stale ([171ff8c](https://github.com/event4u-app/agent-config/commit/171ff8c665e74b682e39bf4730a5552695945b21))
344
- * **rules:** bring no-cheap-questions back under its concentration ceiling ([1a450f6](https://github.com/event4u-app/agent-config/commit/1a450f6bc4d99fb70c8bf1be81044975ca136c0d))
345
- * **ci:** run the token-regression gate in CI and re-anchor its baseline ([dbcc3b4](https://github.com/event4u-app/agent-config/commit/dbcc3b4b33d474faddca72dc43e0fa28f299146e))
346
- * **ai-council:** thread daily_limit_usd from config so the spend ledger can exist ([3fd0da1](https://github.com/event4u-app/agent-config/commit/3fd0da1c8f1da4e470a36aee8b446e605c53868f))
347
- * **ai-council:** price the realized cost with cache multipliers, add a gated TTL key ([485d792](https://github.com/event4u-app/agent-config/commit/485d7928b9a75a3699e1ec3d1bb8bbb2915dc580))
348
- * **commands:** give /tdd the non-interactive contract section it declares ([224b3df](https://github.com/event4u-app/agent-config/commit/224b3dfb5e009f2b0460dbd57ef966cfde5fbe21))
349
- * **commands:** conform the team dispatcher's sub-command table header ([874004f](https://github.com/event4u-app/agent-config/commit/874004fade359aa129cfbbfa054d65809c9ce9ff))
350
- * **index:** point the shipped catalog's proof link at the published URL ([e375fe0](https://github.com/event4u-app/agent-config/commit/e375fe0eeb0e7bd14619984d76734fd42fe8a14e))
351
- * **index:** drop compile-disabled rules from the artefact index ([54f7a2b](https://github.com/event4u-app/agent-config/commit/54f7a2bf5152a376d5d93444987e5a52846bb9d3))
352
- * **skills:** cite humanizer's declared context-spine slots ([315138d](https://github.com/event4u-app/agent-config/commit/315138dcf04699be9afe815b647e4cfeb86bbbab))
353
- * **skills:** persona-governance is a rule, not a required skill ([8f26e7a](https://github.com/event4u-app/agent-config/commit/8f26e7ab4a8261da0e9028a3568111bf8b2df1c6))
354
- * **gates:** drop an unused constant in the parity checker ([c87024d](https://github.com/event4u-app/agent-config/commit/c87024de17b61a0830073a4f120d6acc4ebe7fe2))
355
- * **tests:** omit the optional key instead of setting it undefined ([62df5a9](https://github.com/event4u-app/agent-config/commit/62df5a9ca41c41e01f6a2487dd035adfff0ab99a))
356
- * **gates:** delete the vacuous per-pack matrix, close the second silent-green ([743eb52](https://github.com/event4u-app/agent-config/commit/743eb525d2f7e26db722ced633b93cdb14c2f074))
357
- * **gates:** ban the Python-twin claim shape, not the word twin ([c323a7b](https://github.com/event4u-app/agent-config/commit/c323a7baffc62122996fc98a4fad2dc0f4caaf88))
358
- * **projection:** keep a compile-disabled rule out of the per-tool symlinks ([09a6907](https://github.com/event4u-app/agent-config/commit/09a690728c0d1684d6da84f099705bf100d200db))
359
- * **gates:** stop the count checker judging a gitignored generated file ([d0e1d56](https://github.com/event4u-app/agent-config/commit/d0e1d56a8d2b9164f2220e9bf87ab12522418295))
360
- * **ci:** run check-index, the gate that only existed locally ([7d6a0f5](https://github.com/event4u-app/agent-config/commit/7d6a0f5e74c726b9be3edb394db260b87cb62268))
361
- * **generated:** regenerate the artefact index and catalog ([ac02e4a](https://github.com/event4u-app/agent-config/commit/ac02e4abad8072c6117bfd2cacb087a339ae55ca))
362
- * **rules:** clear the long_rule warning on the two rules that carried it ([d291e46](https://github.com/event4u-app/agent-config/commit/d291e469183056e9e7cd6d4a208a410e75e95cac))
363
- * **ci:** three reds the local gate sweep did not cover ([db671a6](https://github.com/event4u-app/agent-config/commit/db671a66c9d85b12045cd987c466cdae98386e35))
364
- * **tests:** close four reds this branch introduced ([a5d4ef7](https://github.com/event4u-app/agent-config/commit/a5d4ef779fe9b8475ad15a94978037ed0383f79a))
365
- * **gates:** import the real path rewriter instead of a copy of it ([9da906f](https://github.com/event4u-app/agent-config/commit/9da906f76086be7ba34ff849c05cf6b2291395b3))
366
- * **annotate-discovery:** stop writing the condensation-hash ledger ([f23260f](https://github.com/event4u-app/agent-config/commit/f23260f8235b41828059c057838f64a974c8a91c))
367
- * **sync:** teach the consistency gate the compile-time toggle ([712c9a4](https://github.com/event4u-app/agent-config/commit/712c9a4bb44940b42fc7b0c65f964c1aaf1ee907))
368
- * **load-context:** normalise a disallowed relative root ([ef503b5](https://github.com/event4u-app/agent-config/commit/ef503b533180219032cd7d2e845c8bdd8cf4747b))
369
- * **rules:** bring sixteen auto-rule descriptions under the 150-char cap ([5629855](https://github.com/event4u-app/agent-config/commit/5629855c915c72765050053d1c2e29429b4c023f))
370
- * **dist:** restore nine defects the blind checker had hidden ([8dc351b](https://github.com/event4u-app/agent-config/commit/8dc351bc1e207023fea87c87c29b35c1fc904a0b))
371
- * **rules:** repoint eight dead path_prefix triggers at the real source tree ([ea868e8](https://github.com/event4u-app/agent-config/commit/ea868e897233e61bf86d0a504c9dc986d7a95e0a))
372
- * **gates:** widen the legacy-path guard to tests/ ([ffc813b](https://github.com/event4u-app/agent-config/commit/ffc813b0ada1efe943590d0857ea9f3bb25e99ac))
373
- * **gates:** retarget five gates off the tree emptied by ADR-051 ([fa07047](https://github.com/event4u-app/agent-config/commit/fa07047b89505dadfaf2dd817e627ad797559dc8))
374
- * **lint:** widen the source pass to DEL and C1, which bytes alone missed ([3e83b5d](https://github.com/event4u-app/agent-config/commit/3e83b5dfa9cf4cb64460eab9a08a1800f85510da))
375
- * **corpus:** stop the freeze test from mutating the committed corpus ([1621031](https://github.com/event4u-app/agent-config/commit/16210316b4ea291d1e9bc7700f424c9c5b8f75aa))
376
- * **retrieval:** run the sanitize floor on every read surface, not just v1 ([62c2a8c](https://github.com/event4u-app/agent-config/commit/62c2a8c242b6e38f407f8546470a99725526dc5b))
377
- * **encoding:** escape raw control bytes so text sources stay tool-readable ([6f5db06](https://github.com/event4u-app/agent-config/commit/6f5db06f5dca4818d2f0c2c8137ad60db7eea998))
378
- * **gates:** drop the legacy-path retention the ADR-051 guard rejects ([941bff8](https://github.com/event4u-app/agent-config/commit/941bff82a3f07b74bf523e7d438452a0b4d03f84))
379
- * **gates:** repoint the iron-law and new-skill gates at the real source roots ([5eb3256](https://github.com/event4u-app/agent-config/commit/5eb3256bc38fc8ea9b41d22d41e09b5334b58669))
380
- * **gates:** make the safety-floor guard capable of failing ([0912323](https://github.com/event4u-app/agent-config/commit/0912323012409082f0587d06a186fdb0cebd2f6b))
381
-
382
- ### Reverts
383
-
384
- * **rules:** take the guarded safety-floor rules back out of this PR ([f50f946](https://github.com/event4u-app/agent-config/commit/f50f946f53f433ca9aabfab479bd4004d516bfdc))
281
+ * **gates:** drop retired-container literals from the sweep test ([38e5694](https://github.com/event4u-app/agent-config/commit/38e5694d4e0ce8b22b31b03e32d14ecf4bfcf366))
282
+ * **tests:** keep the lean-crud fixture out of vitest's collection glob ([7736f2f](https://github.com/event4u-app/agent-config/commit/7736f2f7f5c710901b0cf801300618bb09e6fc65))
283
+ * **gates:** make the lint-regression baseline actually collect and compare ([cea1b6d](https://github.com/event4u-app/agent-config/commit/cea1b6dc5cb978846ad28c6b7b5762d943f1b781))
284
+ * **lint:** re-anchor the drifted supply-chain-intake leakage exemption ([f4aca87](https://github.com/event4u-app/agent-config/commit/f4aca87449abb6d45d54617790f26aa24257ed3c))
285
+ * **runtime:** resolve an automated tool grant against the trusted registry ([f4470e1](https://github.com/event4u-app/agent-config/commit/f4470e1f4c6fe4784d8fa01e5729edc911ad6f0e))
286
+ * **hooks:** gate the effect, not the shape of one action ([3e0dab1](https://github.com/event4u-app/agent-config/commit/3e0dab1a3e4b35c776fdc618c5af432cf1badf85))
287
+ * **deps:** keep the parser pair as a devDependency, not a bare removal ([d934461](https://github.com/event4u-app/agent-config/commit/d934461b223d1e61b0e0f8cc337d7ef0b99e2e99))
288
+ * **build:** rebuild the installer bundle against a real node_modules ([02deabf](https://github.com/event4u-app/agent-config/commit/02deabfcfa982574639e305b08730a3d99f780e9))
289
+ * **council:** a member who responded counts toward the quorum ([a4f4eb8](https://github.com/event4u-app/agent-config/commit/a4f4eb8e669251bf526c8cd59a2a5eff5104e45f))
290
+ * **overlap:** repair the skill-overlap instrument and make it blocking ([30a16f5](https://github.com/event4u-app/agent-config/commit/30a16f575055473b9b2eb1cf4239138903030353))
291
+ * **ci:** attach the SC2016 directive to the command it covers ([4309f5d](https://github.com/event4u-app/agent-config/commit/4309f5d4fcf156c0feed4833522f81bc9e09629b))
292
+ * **release:** escape the dedup key separator instead of embedding it raw ([4ad743e](https://github.com/event4u-app/agent-config/commit/4ad743ee32b2111ece5511378b0b3b0ffbd056f4))
293
+ * **release:** make the release-PR content checks see the release ([5dc9491](https://github.com/event4u-app/agent-config/commit/5dc9491de0df996c4b8dcbc25c6df1b67226056e))
294
+ * **docs:** stop the reference checker reading a JSON key as a rule name ([3b627c3](https://github.com/event4u-app/agent-config/commit/3b627c3b340b3550261284c8054e1c4b639a6aa0))
295
+ * **roadmap:** correct the per-pack version count from 12 to 28 ([76e70ea](https://github.com/event4u-app/agent-config/commit/76e70ea9af29ef714de6bf6d497dc02a254ef4ae))
296
+ * **roadmap:** replace the illegal `contained` complexity value with `lightweight` ([3a2aa50](https://github.com/event4u-app/agent-config/commit/3a2aa50945b60571300d6d285e1686403d873034))
385
297
 
386
298
  ### Documentation
387
299
 
388
- * **dedup:** close the reachability strand with a maintainer refusal (#1066) ([1bb6c98](https://github.com/event4u-app/agent-config/commit/1bb6c985812ab01ab64863429ff2965004c5bda5))
389
- * close ADR-202 — instrument not achievable with available evaluators ([5d08b15](https://github.com/event4u-app/agent-config/commit/5d08b1598990ce575be3b7367d7d35536b06fcf5))
390
- * **roadmaps:** park the gate-blocked zero-ceremony work in later/ ([a5c87e9](https://github.com/event4u-app/agent-config/commit/a5c87e94eb5501b28cccaa4f2e6f6283113382ac))
391
- * **roadmaps:** add the two active zero-ceremony roadmaps ([f03d6fd](https://github.com/event4u-app/agent-config/commit/f03d6fda92efc8bd656901c79d2ad397c6e7db43))
392
- * **decisions:** record the zero-ceremony inbox cut ([c8b3f30](https://github.com/event4u-app/agent-config/commit/c8b3f30d664efa964d020f6e2b8da062bc915125))
393
- * **dedup:** close scope de-duplication as an honest null and draft its reachability strand ([3eb6136](https://github.com/event4u-app/agent-config/commit/3eb61364741ba802d484a16d95094fa3b4354bd6))
394
- * **adr:** record the operator tie-break on the split safety-floor council ([a14a8ac](https://github.com/event4u-app/agent-config/commit/a14a8ac393cd0910786b985abdc6b2fb4620258c))
395
- * **roadmap:** sequence the thin flip under anchor-scoring ([0245572](https://github.com/event4u-app/agent-config/commit/02455721c91aa036ac5c80490e31f9e0e40c70e9))
396
- * **adr:** register the hybrid threshold and transcript freezing ([41582b7](https://github.com/event4u-app/agent-config/commit/41582b7a81e81a921122827cf77ea4b5dab70a9f))
397
- * **golden-set:** spell out that a path in the prompt is not a path_prefix match ([442fb08](https://github.com/event4u-app/agent-config/commit/442fb08fb99f2217bcf04dd4e9f3789248b8b507))
398
- * **roadmaps:** archive both roadmaps — all 8 deferrals resolved ([06137ee](https://github.com/event4u-app/agent-config/commit/06137ee6e698bdbd8694d133119c11eb789418e5))
399
- * **cost:** cancel the two breadth counters, mark stale cost claims ([39658d4](https://github.com/event4u-app/agent-config/commit/39658d493f43554c655473e9bc8249041e147991))
400
- * **adr:** record anchor-scoring as the thin-projection quality instrument ([785829a](https://github.com/event4u-app/agent-config/commit/785829ae3fc5689c9a4d0c5bd8320b2d029fbd54))
401
- * **cache-economy:** pre-register the C-3 reduction, metric and threshold ([e62183f](https://github.com/event4u-app/agent-config/commit/e62183ff0cb15f318dc2631fa490a936735c7f2c))
402
- * **roadmaps:** execute both roadmaps — measured verdicts and honest deferrals ([955ce26](https://github.com/event4u-app/agent-config/commit/955ce26c5445a7809e981c33996b41861fa2ff9b))
403
- * **cache-economy:** correct the Claude Code cache guidance, record the refusals ([a43b260](https://github.com/event4u-app/agent-config/commit/a43b260a542853ca287f700940f3e1f0a3e11f79))
404
- * **roadmaps:** record where local-CI trust stops and why ([275cb18](https://github.com/event4u-app/agent-config/commit/275cb18da9fd99c737da7451a8a98931b0e844c0))
405
- * correct the command count in the README badge and getting-started ([5da637e](https://github.com/event4u-app/agent-config/commit/5da637e7f1f0ab3f009f46a9fd41aec12f272a63))
406
- * **contracts:** add the beta review marker to the five newly tagged contracts ([edb88c5](https://github.com/event4u-app/agent-config/commit/edb88c520513c8140a0f5d629c1fb429ef11f8d9))
407
- * **contracts:** tag five contracts with their stability level ([b3dd89a](https://github.com/event4u-app/agent-config/commit/b3dd89af01972e6ef1bee88cd9429746b5265655))
408
- * **roadmaps:** add the global user-memory layer roadmap ([2d8b104](https://github.com/event4u-app/agent-config/commit/2d8b1043197cda85e344bf4b6b57f0a3d97459f2))
409
- * **contexts:** record the global user-memory council cut ([216b033](https://github.com/event4u-app/agent-config/commit/216b03396ce4ae2afe90a5210aff3377c9d6a783))
410
- * **adr:** raise ADR-201 step 4 from deferred to executed ([8e1eaf6](https://github.com/event4u-app/agent-config/commit/8e1eaf607564be51adaaec60e95b2b2f898e5388))
411
- * **maintainers:** state byte-exactness where hash tracking was documented ([864e479](https://github.com/event4u-app/agent-config/commit/864e479a2f140230df438c534d54080e24cd1fb4))
412
- * **agents:** remove the mark-as-condensed step from every agent surface ([2aef848](https://github.com/event4u-app/agent-config/commit/2aef84899a029a934d507e5dec6e67fe2c6eb332))
413
- * **adr:** record why ADR-201 step 4 was not executed ([15d747b](https://github.com/event4u-app/agent-config/commit/15d747b67e16bcef2ec7dcbb70895cff67a7c86e))
414
- * **condense:** retire the prose-rewrite step and its preservation clause ([debf2b5](https://github.com/event4u-app/agent-config/commit/debf2b5425c72f31d029107c66376b8a9e5181fb))
415
- * **roadmaps:** record the H2/H3 measurements and the council verdicts ([8c8328f](https://github.com/event4u-app/agent-config/commit/8c8328f1f7c0291120c3478a279ba2dd9f19271b))
416
- * **council:** mechanism claims need a probe, not a second opinion ([cc60b13](https://github.com/event4u-app/agent-config/commit/cc60b13bdf146dd5f24d8092039aa8eeaaba5693))
417
- * **adr:** record ADR-201, remove the LLM .md condensation ([04e1168](https://github.com/event4u-app/agent-config/commit/04e116876316165c3103d3befcdf179ba2a48583))
418
- * **contracts:** mark the locked condensation rate as contradicted ([42c4b1e](https://github.com/event4u-app/agent-config/commit/42c4b1e24987cb004df5c69183a6d723ce9b6d20))
419
- * **claims:** bind the encoding floor's coverage boundary to the ledger ([31c699b](https://github.com/event4u-app/agent-config/commit/31c699bb4d6d0691321a3cc32f6a03d085a34e5c))
420
- * **roadmaps:** close and archive runtime encoding hardening ([976f32e](https://github.com/event4u-app/agent-config/commit/976f32eba06c6fe0fe11e459f5bcbea5eacbd128))
421
- * **evidence:** measure text-layer channel coverage and fix the disposition ([8a35666](https://github.com/event4u-app/agent-config/commit/8a35666d18e3e999450fed8ea9a0ee2def210d5b))
422
- * **roadmaps:** close Phase 0 of runtime encoding hardening ([6ed2ee7](https://github.com/event4u-app/agent-config/commit/6ed2ee75366e386cb03685cede3e385ba0baa1c6))
423
- * **roadmaps:** land the minimalism borrow on two axes, park the obsolescence lifecycle ([c025072](https://github.com/event4u-app/agent-config/commit/c025072b65ab2a0792c80ed9a20dc133e3ad84ea))
424
- * **roadmaps:** open the two adversarial-hardening roadmaps, and correct a claim I read as fact ([73d9247](https://github.com/event4u-app/agent-config/commit/73d92473d3d40c59e55889d64cd9ab2f0056465e))
425
- * **contexts:** record the elder/ponytail harvest cut and its verified findings ([ea3fac7](https://github.com/event4u-app/agent-config/commit/ea3fac77b6d9f861112d90d375a848840a39e3e6))
426
- * **roadmap:** open road-to-gates-that-can-fail and record Phase 1/2 progress ([2a6a723](https://github.com/event4u-app/agent-config/commit/2a6a723205c2a86e248dad6c0d33c3e4eafeac15))
427
- * **contexts:** record the two post-mortems behind the gate work ([086b641](https://github.com/event4u-app/agent-config/commit/086b641ea92baefcee77ee998f8542ad75bd419b))
300
+ * **gates:** publish the full-population sweep findings and advance the census step ([85fc5f8](https://github.com/event4u-app/agent-config/commit/85fc5f86e276734026c4397471f7f8730880573e))
301
+ * **context:** correct the subagent-event finding in the harvest-cut record ([2f3c2d7](https://github.com/event4u-app/agent-config/commit/2f3c2d7d3563e026814bc970f93971a6c631a1df))
302
+ * **roadmap:** close solution-minimalism Phases 0-2, halt Phase 3 ([e784d93](https://github.com/event4u-app/agent-config/commit/e784d93e0be3ec78eda2fcc4399a921312f54431))
303
+ * **evidence:** record the solution-minimalism Phase-0 spikes ([5ae52d4](https://github.com/event4u-app/agent-config/commit/5ae52d4480fc164e2ddb38f937f791de2f0a3925))
304
+ * **activation:** close the not-projected confound and scope the refusal ([8b79b18](https://github.com/event4u-app/agent-config/commit/8b79b18cef9eba7a06d9a7caf283ea5a43de1732))
305
+ * **activation:** reject ADR-054 and refuse the runtime resolver permanently ([ce204ab](https://github.com/event4u-app/agent-config/commit/ce204aba6ffdd9c3a06af95cc4482ea7722ecc50))
306
+ * **activation:** the corpus produced no red baseline — 0 of 5 required ([216c16d](https://github.com/event4u-app/agent-config/commit/216c16d44618e50e88da70a3f742a9a7660c3f7c))
307
+ * **activation:** pre-register the red-baseline search before looking ([21007b2](https://github.com/event4u-app/agent-config/commit/21007b2703a6bad085195eb12f79400c76d1ec60))
308
+ * **governance:** publish the three spike verdicts from a pinned report ([e6aa2e0](https://github.com/event4u-app/agent-config/commit/e6aa2e0d96b66c285be04d10cdb0029e33152ac8))
309
+ * **roadmap:** record the Phase-0 run — one null, one finding, one not run ([c2fe0b7](https://github.com/event4u-app/agent-config/commit/c2fe0b7b123b7ae14149a5afc6731e4775baef51))
310
+ * **overlap:** publish the canonical re-measurement and archive the roadmap ([174726d](https://github.com/event4u-app/agent-config/commit/174726d489732990b72a44d2b5328e75f37e1ba0))
311
+ * **claims:** condition the 38% and close two nulls that were filed as debt ([48a3509](https://github.com/event4u-app/agent-config/commit/48a350917581e82aa8c5ca4a7c2c0fc824a7083e))
312
+ * **roadmap:** add four roadmaps from the 9.x feedback disposition ([198ac26](https://github.com/event4u-app/agent-config/commit/198ac26d2df7c3c22038f0267f88c753a2d29d25))
313
+ * **council:** record the feedback-9x disposition and its verified state ([76cb2e4](https://github.com/event4u-app/agent-config/commit/76cb2e463650e27bc6710e9511446f06bf9a41fc))
428
314
 
429
315
  ### Refactoring
430
316
 
431
- * **rules:** bring the kernel bucket back under its cap ([3f34dbd](https://github.com/event4u-app/agent-config/commit/3f34dbd669e66a247411b1cc4f5ab65b91788d5e))
432
- * **confusables:** extract the TR39 signature to one shared definition ([1a62a9b](https://github.com/event4u-app/agent-config/commit/1a62a9b9158803527abd30739c6c3275700ad072))
317
+ * **router:** remove the intent trigger type ([b6fc9b5](https://github.com/event4u-app/agent-config/commit/b6fc9b5631305a681bc4e7708827e724e2b22f1b))
318
+ * **deps:** stop shipping the disabled engine's parser pair ([c859822](https://github.com/event4u-app/agent-config/commit/c85982266ea055e255766380967cdd43389d7714))
319
+ * **packs:** drop the duplicated per-pack version field ([e2cfd42](https://github.com/event4u-app/agent-config/commit/e2cfd42ea57101abc6a6261e2e48c2bba2211027))
320
+ * **skills:** one policy-preamble pointer + sibling routing for the ai-video cluster ([c5199a7](https://github.com/event4u-app/agent-config/commit/c5199a7f0f239da66242bf3143f794b73b238ee9))
321
+ * **skills:** stop the analysis router describing the work it routes to ([f41fe72](https://github.com/event4u-app/agent-config/commit/f41fe721ba3c2230f96741714ba9b83cda29be23))
433
322
 
434
323
  ### Tests
435
324
 
436
- * **rig:** isolate the spawn rig's HOME before wiring any global write ([3b5cb08](https://github.com/event4u-app/agent-config/commit/3b5cb087ba1c7e26bc5de96e59bd4a8287f84558))
437
- * **condense:** pin the staleness basis, including what the cache could not see ([b983fe2](https://github.com/event4u-app/agent-config/commit/b983fe29c615a87fd6b1f93588a6e64d13615e75))
438
-
439
- ### Build
440
-
441
- * **install:** resync rule_scope output with its source ([f6940f2](https://github.com/event4u-app/agent-config/commit/f6940f2021cd7d7727a8ee4d729a74ae314431d5))
442
- * **install:** ship the missing compiled output for three tracked sources ([8757544](https://github.com/event4u-app/agent-config/commit/87575449056a0ecce152bc6d823059faabfac8fd))
443
-
444
- ### CI
445
-
446
- * **gates:** add actionlint and run the kernel budget on every PR ([7100628](https://github.com/event4u-app/agent-config/commit/710062886d55e1e3fba70f6f092e88c451803492))
447
- * **gates:** run the kernel-rule budget in CI, not only on a laptop ([f2cc8a9](https://github.com/event4u-app/agent-config/commit/f2cc8a9c33a0278c0e31cffee9e1a3ff8f9174e1))
448
- * **static-checks:** fail the build when dist/install drifts from its source ([06360e1](https://github.com/event4u-app/agent-config/commit/06360e180d8bfab2b19b0a5e551b0c4c4ed83694))
325
+ * **rules:** gate rule trigger-set collisions ([9fec17e](https://github.com/event4u-app/agent-config/commit/9fec17ee1f0e8feb9b9a5344695cb8d2b564b0d3))
326
+ * **activation:** the sweep and adjudication-bundle instruments ([613bf41](https://github.com/event4u-app/agent-config/commit/613bf417601ffa230fc79c46b734f2332f05d2a2))
327
+ * **governance:** the S0.2 spike and the four adjacent properties ([5eb2874](https://github.com/event4u-app/agent-config/commit/5eb2874cee18fdf6785ef3c9182eed23a59501c2))
328
+ * **governance:** two Phase-0 falsification spikes — one null, one finding ([49cb95d](https://github.com/event4u-app/agent-config/commit/49cb95debef4c642274b58168d5992f35f92b86d))
329
+ * **design-artifacts:** measure the provided-artifact port failure ([414de6b](https://github.com/event4u-app/agent-config/commit/414de6b7e2bcde43b02a10f3aaaa09fc5bfed155))
449
330
 
450
331
  ### Chores
451
332
 
452
- * **lint:** clear the two standing lint-report entries ([d437ca8](https://github.com/event4u-app/agent-config/commit/d437ca84e265e85a8f8077072006a06dc7cc179d))
453
- * **generated:** regenerate the roadmap dashboard after merging main ([ee0823e](https://github.com/event4u-app/agent-config/commit/ee0823e73317d45331d9f6a32fe4577dac17e72c))
454
- * **generated:** resync the meta pack README after the main merge ([c3b25ef](https://github.com/event4u-app/agent-config/commit/c3b25ef2c8c4caaf9bdeeb5ac7772123bf1cbc1c))
455
- * **generated:** regenerate counts for the new /agents user delete leaf ([bd3e7a4](https://github.com/event4u-app/agent-config/commit/bd3e7a43d7d38664269fd51713cb06503e1d5453))
456
- * **generated:** regenerate the file-ownership matrix ([b55e5b0](https://github.com/event4u-app/agent-config/commit/b55e5b059d19c5dd5003b5e3fde08e3697898066))
457
- * **scripts:** classify ai_team and code_graph as lab ([2a2d938](https://github.com/event4u-app/agent-config/commit/2a2d938c9ebf8c46482bd8eda9f5aa519350fc5a))
458
- * **skills:** omit the defaulted source field on three skills ([4ef14f8](https://github.com/event4u-app/agent-config/commit/4ef14f83f98fb5f4420bae1e4a65555d2434e95c))
459
- * **dist:** project the seven new trigger-eval sets ([a9b03b4](https://github.com/event4u-app/agent-config/commit/a9b03b4e107d620a568b72e02e9f09b702c74b92))
460
- * **ci:** replace the hash gate with the byte-exactness gate ([656f04a](https://github.com/event4u-app/agent-config/commit/656f04af0e4913bb4b9c529698b80e3eaa74c5e8))
461
- * **generated:** regenerate counts and pack READMEs ([480508e](https://github.com/event4u-app/agent-config/commit/480508ed636bfd9453a62cb5c83e8cc5cf4a7d0b))
462
- * **dist:** drop six build artefacts this branch did not author ([6369f8f](https://github.com/event4u-app/agent-config/commit/6369f8f930ea8af8f31e11b9f1d0ab8407b0fc8d))
463
- * **dist:** collapse the projection to a deterministic derivation ([9caa43f](https://github.com/event4u-app/agent-config/commit/9caa43f2e0b4ac378294e1c54a1cac3a1e55baf3))
464
- * **reports:** refresh the derived outputs the consistency gate regenerates ([2e49aa3](https://github.com/event4u-app/agent-config/commit/2e49aa397270b3812d1e92cd594c8af3b8ad6c6f))
465
- * **lint:** clear the ESLint errors the pre-push gate surfaced ([19ba531](https://github.com/event4u-app/agent-config/commit/19ba5311e3689d9db34d8bbb024a730e02ea6898))
466
-
467
- Tests: 9470 (+390 since 9.9.0)
333
+ * **gates:** merge main and reconcile the sweep report with the merged tree ([9e04c0c](https://github.com/event4u-app/agent-config/commit/9e04c0c5aaf56fa81827227663853d40453851f9))
334
+ * **sync:** regenerate counts, index, router and proof for 288 skills ([d7e66a5](https://github.com/event4u-app/agent-config/commit/d7e66a54cca675afa0d4d2841f2c85967a5fe30d))
335
+ * **roadmap:** archive road-to-governance-invariants — all phases closed ([ec01798](https://github.com/event4u-app/agent-config/commit/ec017980e824ad9d4d97784389363bb85a91bcba))
336
+ * **tests:** drop the probe scaffolding audit_auto_rules.test.ts orphaned ([4ac5516](https://github.com/event4u-app/agent-config/commit/4ac55160046dc2ae912db42e10c578eeb78ee933))
337
+ * **sync:** regenerate projections and archive the completed roadmap ([e2d01b8](https://github.com/event4u-app/agent-config/commit/e2d01b89a7304da544722ae4cb179baa98b57e1a))
338
+ * **ci:** clear the two shellcheck findings skill-lint.yml already carried ([03cc57c](https://github.com/event4u-app/agent-config/commit/03cc57c8d762c4c622173a3a5296be34848565fb))
339
+ * drop the spawnSync imports the probe conversion orphaned ([bde29ca](https://github.com/event4u-app/agent-config/commit/bde29cab31ddd1b44ff10b8cae5472582e418576))
340
+ * **tests:** drop the dead py2ts twin scaffolding from two UI directive tests ([e64db74](https://github.com/event4u-app/agent-config/commit/e64db74ea33deea9cecc07002b69f5b24ec6ee67))
341
+ * **router:** recompile the router projection for the new fidelity triggers ([d2eb947](https://github.com/event4u-app/agent-config/commit/d2eb9478ef673d8a4dabb7d7b418dce7e9f97ac2))
342
+
343
+ Tests: 10042 (+223 since 9.12.0)
468
344
 
469
345
  # Era: pre-4.0.0 — archived
470
346
 
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [![Smoke](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml) [![Public install smoke (3 OS × 2 Node)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml) [![npm](https://img.shields.io/npm/v/@event4u/agent-config?style=flat-square&label=npm&color=orange)](https://www.npmjs.com/package/@event4u/agent-config) [![agent-config MCP server](https://glama.ai/mcp/servers/event4u-app/agent-config/badges/score.svg)](https://glama.ai/mcp/servers/event4u-app/agent-config) [![MCP Toplist](https://mcptoplist.com/badge/glama%2Fevent4u-app%2Fagent-config.svg)](https://mcptoplist.com/server/glama%2Fevent4u-app%2Fagent-config)
6
6
 
7
- [![Skills](https://img.shields.io/badge/Skills-286-orange?style=flat-square)](dist/agent-src/skills/) [![Rules](https://img.shields.io/badge/Rules-111-orange?style=flat-square)](dist/agent-src/rules/) [![Commands](https://img.shields.io/badge/Commands-191-orange?style=flat-square)](dist/agent-src/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-101-orange?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-29-orange?style=flat-square)](dist/agent-src/personas/) [![Advisors](https://img.shields.io/badge/Advisors-5-orange?style=flat-square)](dist/agent-src/personas/advisors/)
7
+ [![Skills](https://img.shields.io/badge/Skills-288-orange?style=flat-square)](dist/agent-src/skills/) [![Rules](https://img.shields.io/badge/Rules-111-orange?style=flat-square)](dist/agent-src/rules/) [![Commands](https://img.shields.io/badge/Commands-191-orange?style=flat-square)](dist/agent-src/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-101-orange?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-29-orange?style=flat-square)](dist/agent-src/personas/) [![Advisors](https://img.shields.io/badge/Advisors-5-orange?style=flat-square)](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
 
@@ -612,6 +612,13 @@ the file install. Porting the bash dispatcher to native Windows is
612
612
  **demand-gated**: a named Windows adopter who cannot use WSL2 or the MCP
613
613
  path reopens it (see `agents/roadmaps/` — road-to-credible-install Phase 3).
614
614
 
615
+ ## Funding
616
+
617
+ The package is free, MIT, and stays that way — no paid tier, no dual
618
+ licensing. If it saves you time and you want to chip in, the GitHub Sponsor
619
+ button at the top of the repo is the whole mechanism. If you would rather not,
620
+ use it anyway; nothing here is gated on it.
621
+
615
622
  ## License
616
623
 
617
624
  [MIT](LICENSE).
@@ -20,12 +20,41 @@ packs:
20
20
  # /fix ci
21
21
  ## Instructions
22
22
 
23
+ ### 0. Wait for the run to settle first
24
+
25
+ A run still in progress has no verdict to fix. Do NOT read a partial run and
26
+ start guessing — and do NOT end the turn reporting "CI is running".
27
+
28
+ ```bash
29
+ until [ "$(gh pr checks <n> --json state \
30
+ --jq '[.[] | select(.state=="IN_PROGRESS" or .state=="QUEUED" or .state=="PENDING")] | length')" = "0" ]
31
+ do sleep 45; done
32
+ ```
33
+
34
+ Run that in the BACKGROUND so the turn resumes when the verdict lands; a
35
+ foreground sleep-poll chain is blocked and per-minute re-polling is the tool
36
+ loop `token-efficiency` forbids. If the waiter exits because `gh` itself failed
37
+ (network down), it has observed nothing — say so rather than treating it as a
38
+ pass.
39
+
40
+ Note `gh run view --log-failed` returns *"run is still in progress; logs will be
41
+ available when it is complete"* until the WHOLE run finishes, which is the other
42
+ reason to settle first.
43
+
23
44
  ### 1. Identify the failing CI run
24
45
 
25
46
  - Get the current branch name from `git branch --show-current`.
26
47
  - Fetch the latest CI run for this branch via GitHub API:
27
48
  - `GET /repos/{owner}/{repo}/actions/runs?branch={branch}&per_page=5`
28
49
  - Find the most recent failed run.
50
+ - **Before fixing, establish whose failure it is.** Re-run the same gate against
51
+ `origin/main`, and check whether any of your changed files appear in its
52
+ inputs (`git diff origin/main --stat -- <path>`). A pre-existing trunk failure
53
+ is reported, not adopted — and not ignored.
54
+ - **A local repro can differ from CI.** A developer checkout carries settings and
55
+ generated trees a clean runner never has, so a gate can fail locally for an
56
+ unrelated reason (or pass locally while CI fails). When they disagree, CI is
57
+ authoritative; name the difference instead of assuming one cause.
29
58
 
30
59
  ### 2. Get the failure details
31
60
 
@@ -318,6 +318,66 @@ This is the [`direct-answers` Iron Law 2](../rules/direct-answers.md)
318
318
  live-state clause applied to the PR surface: git/PR/CI state decays
319
319
  silently and is NEVER reported from memory or inference.
320
320
 
321
+ #### 4d. Settle CI before the turn ends (MANDATORY)
322
+
323
+ ```
324
+ A PUSH TO AN OPEN PR IS NOT DONE UNTIL CI IS SETTLED.
325
+ NEVER END THE TURN ON "CI IS RUNNING" — WAIT FOR THE VERDICT.
326
+ RED → DIAGNOSE AND FIX IN THE WORKING TREE. NEVER LEAVE A KNOWN FAILURE UNREAD.
327
+ ```
328
+
329
+ §4c makes the REPORT honest. This makes the turn honest: a truthful
330
+ "checks are pending" is still an unfinished job, and reporting it as the
331
+ closing line hands the user a PR whose outcome nobody has looked at.
332
+ Pending is a reason to wait, never a reason to stop.
333
+
334
+ **Settled** means every check has reached a terminal state:
335
+
336
+ ```bash
337
+ until [ "$(gh pr checks <n> --json state \
338
+ --jq '[.[] | select(.state=="IN_PROGRESS" or .state=="QUEUED" or .state=="PENDING")] | length')" = "0" ]
339
+ do sleep 45; done
340
+ gh pr checks <n> --json name,state,link \
341
+ --jq '.[] | select(.state!="SUCCESS" and .state!="SKIPPED") | "\(.state) \(.name) \(.link)"'
342
+ ```
343
+
344
+ Run the wait as a BACKGROUND command so the turn resumes on its own when
345
+ the verdict lands. A foreground sleep-poll chain is blocked, and burning
346
+ turns on `gh pr checks` every minute is the tool-loop
347
+ [`token-efficiency`](../rules/token-efficiency.md) forbids.
348
+
349
+ **On red:**
350
+
351
+ 1. **Verify it is yours before fixing it.** Check `origin/main` for the same
352
+ failure and whether any of your files appear in the failing gate's inputs
353
+ (`git diff origin/main --stat -- <path>`). A pre-existing trunk failure is
354
+ reported, not silently adopted — and not silently ignored either.
355
+ 2. **Get the real log, do not infer.** `gh run view --job <id> --log-failed`.
356
+ Logs are unavailable until the whole run completes; a local repro is often
357
+ faster but can differ from CI (a developer checkout carries settings and
358
+ generated trees a clean runner does not — see the `SCOPE_GUARD_BYPASS` and
359
+ untracked-`dist/` cases). When local and CI disagree, CI is authoritative.
360
+ 3. **Fix, then re-verify locally** with the narrowest command that proves the
361
+ target green.
362
+ 4. **Bounded at N=3 per failing target** ([`autonomous-execution`](../rules/autonomous-execution.md)).
363
+ Same failure signature twice → the hypothesis is wrong; change approach
364
+ rather than spending the third attempt on a near-identical retry.
365
+ 5. **The push stays gated.** `git push` is a Hard Floor
366
+ ([`non-destructive-by-default`](../rules/non-destructive-by-default.md)) and a
367
+ one-off authorization is spent on the push it was given for
368
+ ([`commit-policy`](../rules/commit-policy.md)). Fix in the working tree and
369
+ push only under a fresh or still-standing instruction. A CI-fix loop that
370
+ re-pushes on its own authority is not on the table.
371
+
372
+ **When the verdict cannot be reached** — network down, `gh` failing, the run
373
+ never registering — say so plainly and name what is unverified. A background
374
+ waiter that exits because `gh` errored has NOT observed a green run; treat its
375
+ output as absent, not as a pass.
376
+
377
+ **Not gated by this:** posting the status anywhere. Progress narration belongs
378
+ in the chat reply, never as a PR comment
379
+ ([`no-pr-progress-comments`](../rules/no-pr-progress-comments.md)).
380
+
321
381
  #### 4d. Jira transition (only when transitioned)
322
382
 
323
383
  Linked ticket + `routine_confirmations: true` → ask `1. Yes / 2. No`.
@@ -21,15 +21,31 @@ diagnosis.
21
21
 
22
22
  ## Trigger
23
23
 
24
- A PR is a "kernel-rule edit" iff it modifies any file in
25
- `.agent-src.uncondensed/rules/` that is in the locked kernel set
24
+ A PR is a "kernel-rule edit" iff it modifies any file in `src/rules/`
25
+ that is in the locked kernel set
26
26
  (see [`docs/contracts/kernel-membership.md`](../../../docs/contracts/kernel-membership.md)).
27
+ (Until 2026-07-31 this named the pre-ADR-051 authoring tree, which no
28
+ longer exists — so the trigger could not match a live file.)
27
29
 
28
30
  The CI guard (Phase 4.2 of the always-budget-relief roadmap) fails
29
31
  any PR that touches **> 1** kernel rule in the same diff. Override is
30
32
  a single PR label: `bundled-always-rules-acknowledged` — the maintainer
31
33
  records why the bundle is necessary in the PR body.
32
34
 
35
+ ## Re-anchor the cache prefix in the same PR
36
+
37
+ The kernel bodies are the KV-cache prefix of every request, so editing
38
+ one invalidates that cache for every consumer. `check_kernel_prefix_stability`
39
+ (Rule Backstops workflow) fails until the edit is recorded:
40
+
41
+ ```bash
42
+ ./scripts-run src/scripts/check_kernel_prefix_stability --update-baseline
43
+ ```
44
+
45
+ Commit the resulting `internal/bench/reports/kernel-prefix.json` **in the
46
+ same PR** — that is what makes a cache-invalidating change explicit in the
47
+ diff instead of a silent 10× cost event.
48
+
33
49
  ## Out of scope
34
50
 
35
51
  - Auto-tier rules. Auto rules load on demand; the soak rationale does
@@ -4,8 +4,6 @@ tier: "2b"
4
4
  alwaysApply: false
5
5
  description: "Spotted an issue (security gap, missing test, bad code, duplication, stale idiom) — never ignore: small→fix inline, bigger→ask, many→follow-up PR"
6
6
  triggers:
7
- - intent: "spotted an unrelated issue while working"
8
- - intent: "found legacy or duplicated code"
9
7
  - keyword: "refactor"
10
8
  - keyword: "duplicate"
11
9
  - keyword: "legacy"
@@ -7,7 +7,6 @@ triggers:
7
7
  - keyword: "controller"
8
8
  - keyword: "service"
9
9
  - keyword: "module"
10
- - intent: "structural decision"
11
10
  routes_to:
12
11
  - "skill:module-detect-on-the-fly"
13
12
  workspaces: [agent-config-maintainer, engineering]
@@ -4,10 +4,6 @@ tier: "2a"
4
4
  alwaysApply: false
5
5
  description: "New or significantly rewritten skill/rule/command/guideline — mandatory Understand → Research → Draft first"
6
6
  triggers:
7
- - intent: "create new skill"
8
- - intent: "create new rule"
9
- - intent: "create new command"
10
- - intent: "create new guideline"
11
7
  - phrase: "new skill"
12
8
  - phrase: "new rule"
13
9
  - phrase: "new command"
@@ -8,9 +8,8 @@ load_context:
8
8
  - ../contexts/execution/autonomy-mechanics.md
9
9
  - ../contexts/execution/autonomy-examples.md
10
10
  triggers:
11
- - intent: "trivial workflow question"
12
- - intent: "autonomy mode"
13
11
  - keyword: "personal.autonomy"
12
+ - phrase: "autonomy mode"
14
13
  workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
15
14
  packs: [meta]
16
15
  ---