@event4u/agent-config 16.3.0 → 16.4.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 (486) hide show
  1. package/.augment-plugin/marketplace.json +3 -3
  2. package/.augment-plugin/plugin.json +1 -1
  3. package/.claude-plugin/marketplace.json +1 -1
  4. package/CHANGELOG.md +251 -0
  5. package/README.md +2 -2
  6. package/agents/templates/.ai-council.yml.example +26 -8
  7. package/dist/agent-src/commands/analyze/inbox.md +10 -7
  8. package/dist/agent-src/commands/bug/investigate.md +1 -1
  9. package/dist/agent-src/commands/commit/in-chunks.md +40 -31
  10. package/dist/agent-src/commands/commit.md +72 -33
  11. package/dist/agent-src/commands/condense.md +2 -8
  12. package/dist/agent-src/commands/council/debate.md +11 -7
  13. package/dist/agent-src/commands/council/default.md +10 -9
  14. package/dist/agent-src/commands/council.md +1 -1
  15. package/dist/agent-src/commands/estimate-ticket.md +1 -1
  16. package/dist/agent-src/commands/feature/explore.md +3 -3
  17. package/dist/agent-src/commands/feature/plan.md +1 -1
  18. package/dist/agent-src/commands/fix/ci.md +17 -3
  19. package/dist/agent-src/commands/fix/commit-messages.md +48 -23
  20. package/dist/agent-src/commands/fix/pr-comments.md +3 -6
  21. package/dist/agent-src/commands/implement-ticket.md +3 -3
  22. package/dist/agent-src/commands/memory/add.md +4 -16
  23. package/dist/agent-src/commands/memory/load.md +5 -6
  24. package/dist/agent-src/commands/memory/promote.md +3 -16
  25. package/dist/agent-src/commands/mission/upgrade.md +3 -2
  26. package/dist/agent-src/commands/optimize/agents-dir.md +2 -2
  27. package/dist/agent-src/commands/optimize/deep.md +4 -2
  28. package/dist/agent-src/commands/optimize/rtk.md +4 -26
  29. package/dist/agent-src/commands/pr/create/description-only.md +18 -15
  30. package/dist/agent-src/commands/pr/create.md +42 -34
  31. package/dist/agent-src/commands/pr/merge.md +136 -9
  32. package/dist/agent-src/commands/prepare-for-review.md +13 -11
  33. package/dist/agent-src/commands/project/analyze.md +7 -35
  34. package/dist/agent-src/commands/refine-ticket.md +1 -1
  35. package/dist/agent-src/commands/review/changes.md +14 -19
  36. package/dist/agent-src/commands/roadmap/next.md +10 -1
  37. package/dist/agent-src/commands/roadmap/process-full.md +52 -38
  38. package/dist/agent-src/commands/roadmap/resolve-blockers.md +64 -14
  39. package/dist/agent-src/commands/worktree/create.md +7 -3
  40. package/dist/agent-src/commands/worktree/verify.md +2 -1
  41. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +5 -3
  42. package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +7 -9
  43. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -6
  44. package/dist/agent-src/contexts/contracts/frugality-charter.md +8 -5
  45. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
  46. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +0 -1
  47. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  48. package/dist/agent-src/contexts/execution/non-interactive-contract.md +5 -8
  49. package/dist/agent-src/contexts/execution/rdp-gate.md +4 -4
  50. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +9 -8
  51. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +67 -52
  52. package/dist/agent-src/contexts/execution/subagent-routing.md +8 -8
  53. package/dist/agent-src/contexts/execution/subagent-steering.md +6 -4
  54. package/dist/agent-src/contexts/execution/terminal-states.md +2 -2
  55. package/dist/agent-src/contexts/execution/toolchain-resolver.md +4 -10
  56. package/dist/agent-src/contexts/subagent-configuration.md +1 -1
  57. package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  58. package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  59. package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  60. package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  61. package/dist/agent-src/guidelines/agent-infra/layered-settings.md +13 -1
  62. package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  63. package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  64. package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +36 -0
  65. package/dist/agent-src/guidelines/php/git.md +15 -2
  66. package/dist/agent-src/rules/active-remediation.md +0 -1
  67. package/dist/agent-src/rules/analysis-skill-routing.md +0 -1
  68. package/dist/agent-src/rules/architecture.md +0 -1
  69. package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -1
  70. package/dist/agent-src/rules/artifact-engagement-recording.md +0 -1
  71. package/dist/agent-src/rules/augment-edit-discipline.md +0 -1
  72. package/dist/agent-src/rules/autonomous-execution.md +0 -1
  73. package/dist/agent-src/rules/brand-consistency.md +0 -1
  74. package/dist/agent-src/rules/brand-source-of-truth.md +0 -1
  75. package/dist/agent-src/rules/broken-access-control.md +0 -1
  76. package/dist/agent-src/rules/cli-output-handling.md +0 -1
  77. package/dist/agent-src/rules/code-comment-discipline.md +0 -1
  78. package/dist/agent-src/rules/code-provenance.md +0 -1
  79. package/dist/agent-src/rules/command-suggestion-policy.md +0 -1
  80. package/dist/agent-src/rules/commit-conventions.md +1 -2
  81. package/dist/agent-src/rules/communication-through-line.md +1 -2
  82. package/dist/agent-src/rules/content-quoting-floor.md +1 -2
  83. package/dist/agent-src/rules/context-hygiene.md +5 -5
  84. package/dist/agent-src/rules/copilot-routing.md +1 -2
  85. package/dist/agent-src/rules/council-availability.md +4 -4
  86. package/dist/agent-src/rules/cross-source-consistency.md +4 -6
  87. package/dist/agent-src/rules/decision-revisit-gate.md +2 -3
  88. package/dist/agent-src/rules/delegation-policy.md +2 -3
  89. package/dist/agent-src/rules/design-fidelity.md +0 -1
  90. package/dist/agent-src/rules/design-review-after-ui-write.md +3 -3
  91. package/dist/agent-src/rules/devcontainer-routing.md +1 -2
  92. package/dist/agent-src/rules/doc-screenshot-hygiene.md +0 -1
  93. package/dist/agent-src/rules/docker-commands.md +0 -1
  94. package/dist/agent-src/rules/domain-adoption-policy.md +0 -1
  95. package/dist/agent-src/rules/domain-safety-disclaimer.md +0 -1
  96. package/dist/agent-src/rules/domain-safety-pii.md +0 -1
  97. package/dist/agent-src/rules/domain-safety-retention.md +0 -1
  98. package/dist/agent-src/rules/downstream-changes.md +0 -1
  99. package/dist/agent-src/rules/engineering-safety-floor.md +0 -1
  100. package/dist/agent-src/rules/external-code-graph-interop.md +0 -1
  101. package/dist/agent-src/rules/external-reference-deep-dive.md +0 -1
  102. package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -2
  103. package/dist/agent-src/rules/finance-safety-floor.md +0 -1
  104. package/dist/agent-src/rules/fix-what-you-see.md +6 -32
  105. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +0 -1
  106. package/dist/agent-src/rules/git-history-discipline.md +1 -2
  107. package/dist/agent-src/rules/guidelines.md +0 -1
  108. package/dist/agent-src/rules/history-discipline.md +0 -1
  109. package/dist/agent-src/rules/icon-consistency.md +0 -1
  110. package/dist/agent-src/rules/image-likeness-and-rights.md +0 -1
  111. package/dist/agent-src/rules/improve-before-implement.md +0 -1
  112. package/dist/agent-src/rules/invite-challenge.md +0 -1
  113. package/dist/agent-src/rules/laravel-routing.md +1 -2
  114. package/dist/agent-src/rules/laravel-translations.md +0 -1
  115. package/dist/agent-src/rules/legal-safety-floor.md +0 -1
  116. package/dist/agent-src/rules/lethal-trifecta-guard.md +0 -1
  117. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
  118. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +0 -1
  119. package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
  120. package/dist/agent-src/rules/media-governance-routing.md +1 -2
  121. package/dist/agent-src/rules/media-sync-ground-truth.md +0 -1
  122. package/dist/agent-src/rules/minimal-safe-diff.md +0 -1
  123. package/dist/agent-src/rules/missing-skill-recovery.md +0 -1
  124. package/dist/agent-src/rules/missing-tool-handling.md +0 -1
  125. package/dist/agent-src/rules/model-recommendation.md +0 -1
  126. package/dist/agent-src/rules/neighbour-precedence.md +64 -0
  127. package/dist/agent-src/rules/no-attribution-footers.md +0 -1
  128. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +0 -1
  129. package/dist/agent-src/rules/no-pr-progress-comments.md +0 -1
  130. package/dist/agent-src/rules/no-roadmap-references.md +0 -1
  131. package/dist/agent-src/rules/notes-first-reasoning.md +0 -1
  132. package/dist/agent-src/rules/onboarding-gate.md +0 -1
  133. package/dist/agent-src/rules/output-discipline.md +0 -1
  134. package/dist/agent-src/rules/package-ci-checks.md +0 -1
  135. package/dist/agent-src/rules/persona-governance.md +2 -3
  136. package/dist/agent-src/rules/php-coding.md +0 -1
  137. package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -1
  138. package/dist/agent-src/rules/preservation-guard.md +0 -1
  139. package/dist/agent-src/rules/provider-lifecycle-discipline.md +2 -3
  140. package/dist/agent-src/rules/question-not-instruction.md +0 -1
  141. package/dist/agent-src/rules/reviewer-awareness.md +0 -1
  142. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -1
  143. package/dist/agent-src/rules/roadmap-progress-sync.md +3 -6
  144. package/dist/agent-src/rules/role-mode-adherence.md +0 -1
  145. package/dist/agent-src/rules/rule-type-governance.md +0 -1
  146. package/dist/agent-src/rules/runtime-safety.md +0 -1
  147. package/dist/agent-src/rules/scale-discipline.md +0 -1
  148. package/dist/agent-src/rules/secret-vcs-guard.md +0 -1
  149. package/dist/agent-src/rules/security-sensitive-stop.md +0 -1
  150. package/dist/agent-src/rules/self-repair-loop.md +0 -1
  151. package/dist/agent-src/rules/senior-engineering-discipline.md +0 -1
  152. package/dist/agent-src/rules/session-canary.md +0 -1
  153. package/dist/agent-src/rules/settings-ask-protocol.md +5 -6
  154. package/dist/agent-src/rules/size-enforcement.md +0 -1
  155. package/dist/agent-src/rules/skill-improvement-trigger.md +2 -3
  156. package/dist/agent-src/rules/skill-quality.md +0 -1
  157. package/dist/agent-src/rules/slash-command-routing-policy.md +0 -1
  158. package/dist/agent-src/rules/source-confidentiality.md +0 -1
  159. package/dist/agent-src/rules/source-discovery-gate.md +0 -1
  160. package/dist/agent-src/rules/source-of-truth.md +0 -1
  161. package/dist/agent-src/rules/spreadsheet-source-quality.md +1 -2
  162. package/dist/agent-src/rules/strategy-safety-floor.md +0 -1
  163. package/dist/agent-src/rules/symfony-routing.md +1 -2
  164. package/dist/agent-src/rules/think-before-action.md +0 -1
  165. package/dist/agent-src/rules/token-budget-discipline.md +12 -46
  166. package/dist/agent-src/rules/token-efficiency.md +0 -1
  167. package/dist/agent-src/rules/token-optimizer-maintenance.md +0 -1
  168. package/dist/agent-src/rules/tool-safety.md +0 -1
  169. package/dist/agent-src/rules/ui-audit-gate.md +1 -2
  170. package/dist/agent-src/rules/untrusted-input-defense.md +0 -1
  171. package/dist/agent-src/rules/upstream-proposal.md +0 -1
  172. package/dist/agent-src/rules/user-interaction.md +0 -1
  173. package/dist/agent-src/rules/user-interrupt-priority.md +0 -1
  174. package/dist/agent-src/scripts/gate_budget.ts +47 -23
  175. package/dist/agent-src/scripts/gate_execute.ts +12 -4
  176. package/dist/agent-src/skills/ai-council/SKILL.md +7 -4
  177. package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +21 -11
  178. package/dist/agent-src/skills/ai-council/references/procedure.md +12 -6
  179. package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
  180. package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
  181. package/dist/agent-src/skills/command-routing/SKILL.md +3 -4
  182. package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +127 -139
  183. package/dist/agent-src/skills/corpus-grounding/ATTRIBUTION.md +39 -0
  184. package/dist/agent-src/skills/corpus-grounding/SKILL.md +8 -2
  185. package/dist/agent-src/skills/database/data/manifest.json +2 -2
  186. package/dist/agent-src/skills/database/data/query-tuning.csv +13 -13
  187. package/dist/agent-src/skills/design-system-capture/SKILL.md +0 -3
  188. package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
  189. package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
  190. package/dist/agent-src/skills/git-workflow/SKILL.md +44 -44
  191. package/dist/agent-src/skills/git-workflow/references/branch-update.md +312 -0
  192. package/dist/agent-src/skills/git-workflow/references/commit-subject.md +205 -0
  193. package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
  194. package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
  195. package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
  196. package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
  197. package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
  198. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -2
  199. package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
  200. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +3 -1
  201. package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
  202. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
  203. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  204. package/dist/agent-src/templates/AGENTS.md +1 -1
  205. package/dist/agent-src/templates/agent-settings.md +46 -129
  206. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  207. package/dist/agent-src/templates/command.md +2 -2
  208. package/dist/agent-src/templates/roadmaps.md +6 -1
  209. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  210. package/dist/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  211. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  212. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  213. package/dist/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  214. package/dist/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  215. package/dist/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  216. package/dist/agent-src/templates/skill.md +1 -1
  217. package/dist/cli/registry.js +1 -0
  218. package/dist/cli-delegate/check_update_banner.js +195 -119
  219. package/dist/cli-delegate/{chunk-TRI6DQZ6.js → chunk-5GPULQBE.js} +60 -42
  220. package/dist/cli-delegate/{chunk-JQVYKIZA.js → chunk-6SRJTYJS.js} +33 -177
  221. package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
  222. package/dist/cli-delegate/chunk-6YQC2HLF.js +415 -0
  223. package/dist/cli-delegate/{chunk-E4XIZDIB.js → chunk-7HKRE54K.js} +1 -64
  224. package/dist/cli-delegate/{chunk-NQ7WT43P.js → chunk-AED2VQGM.js} +65 -11
  225. package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
  226. package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
  227. package/dist/cli-delegate/{chunk-NXEILF2K.js → chunk-F3QDG2GT.js} +481 -72
  228. package/dist/cli-delegate/{chunk-CQWX336L.js → chunk-G5VVIZRC.js} +3 -3
  229. package/dist/cli-delegate/{chunk-JY2I2DXV.js → chunk-H76PHZBI.js} +137 -60
  230. package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
  231. package/dist/cli-delegate/{chunk-LIYTLH6O.js → chunk-KXXWJTDO.js} +5 -10
  232. package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
  233. package/dist/cli-delegate/{chunk-S4YWNRKO.js → chunk-MDPPKQCQ.js} +34 -1
  234. package/dist/cli-delegate/{chunk-S4UMZNES.js → chunk-MSUL5NYP.js} +5 -5
  235. package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
  236. package/dist/cli-delegate/{chunk-GKE7ZVFA.js → chunk-PWX7CKMD.js} +1 -1
  237. package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
  238. package/dist/cli-delegate/{chunk-RQNNW7IF.js → chunk-T7XSJSUQ.js} +433 -632
  239. package/dist/cli-delegate/{chunk-EEHDXSYD.js → chunk-WQWXGIWB.js} +12 -273
  240. package/dist/cli-delegate/{chunk-QLDHIPWR.js → chunk-XQTPXKFA.js} +1 -1
  241. package/dist/cli-delegate/cmd_analyze_session.js +223 -43
  242. package/dist/cli-delegate/cmd_brand_status.js +3 -2
  243. package/dist/cli-delegate/cmd_conformance.js +105 -35
  244. package/dist/cli-delegate/cmd_converge.js +3 -3
  245. package/dist/cli-delegate/cmd_doctor.js +15 -12
  246. package/dist/cli-delegate/cmd_doctor_neighbours.js +11 -4
  247. package/dist/cli-delegate/cmd_explain.js +43 -19
  248. package/dist/cli-delegate/cmd_export.js +10 -10
  249. package/dist/cli-delegate/cmd_git_convention.js +1851 -0
  250. package/dist/cli-delegate/cmd_handoff.js +40 -21
  251. package/dist/cli-delegate/cmd_mcp_available.js +3 -2
  252. package/dist/cli-delegate/cmd_migrate.js +3 -3
  253. package/dist/cli-delegate/cmd_packs_active.js +4 -3
  254. package/dist/cli-delegate/cmd_prune.js +10 -10
  255. package/dist/cli-delegate/cmd_route_audit.js +7 -7
  256. package/dist/cli-delegate/cmd_route_explain.js +5 -5
  257. package/dist/cli-delegate/cmd_session_recycle.js +9 -7
  258. package/dist/cli-delegate/cmd_settings_check.js +54 -7
  259. package/dist/cli-delegate/cmd_settings_get.js +18 -8
  260. package/dist/cli-delegate/cmd_settings_migrate.js +10 -10
  261. package/dist/cli-delegate/cmd_settings_set.js +1 -1
  262. package/dist/cli-delegate/cmd_sync.js +10 -10
  263. package/dist/cli-delegate/cmd_uninstall.js +10 -10
  264. package/dist/cli-delegate/cmd_update.js +7 -7
  265. package/dist/cli-delegate/cmd_upgrade.js +7 -7
  266. package/dist/cli-delegate/cmd_validate.js +10 -10
  267. package/dist/cli-delegate/cmd_versions.js +5 -5
  268. package/dist/cli-delegate/gate_budget.js +1 -1
  269. package/dist/cli-delegate/gate_execute.js +2 -2
  270. package/dist/cli-delegate/roadmap_gates.js +2 -2
  271. package/dist/discovery/deprecation-report.md +1 -1
  272. package/dist/discovery/discovery-manifest.json +129 -90
  273. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  274. package/dist/discovery/discovery-manifest.summary.md +3 -3
  275. package/dist/discovery/dormancy-report.md +1 -1
  276. package/dist/discovery/orphan-report.md +1 -1
  277. package/dist/discovery/packs.json +24 -9
  278. package/dist/discovery/trust-report.md +3 -3
  279. package/dist/discovery/workspaces.json +5 -4
  280. package/dist/hooks/dispatch.js +2151 -1820
  281. package/dist/hooks/dispatch.sha256 +1 -1
  282. package/dist/install/install.mjs +462 -431
  283. package/dist/install/installThinLayer.js +40 -12
  284. package/dist/install/installedRuleLinks.js +105 -19
  285. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  286. package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
  287. package/dist/mcp/registry-manifest.json +5 -5
  288. package/dist/mcp/server.json +2 -2
  289. package/dist/mcp/server.mjs +2702 -1995
  290. package/dist/router.json +1 -1
  291. package/dist/scripts/_lib/agent_settings.js +15 -120
  292. package/dist/scripts/_lib/compile_time_toggles.js +12 -21
  293. package/dist/scripts/_lib/git_convention.js +232 -0
  294. package/dist/scripts/_lib/global_deploy_inventory.js +730 -0
  295. package/dist/scripts/_lib/installed_layer.js +344 -18
  296. package/dist/scripts/_lib/package_root.js +68 -0
  297. package/dist/scripts/_lib/rule_law_section.js +1 -1
  298. package/dist/scripts/_lib/settings_removed_keys.js +168 -0
  299. package/dist/scripts/_lib/thin_rules.js +80 -3
  300. package/dist/server/app.js +2 -1
  301. package/dist/server/gitKeysGate.js +105 -0
  302. package/dist/server/routes/settings.js +67 -8
  303. package/dist/server/routes/wizard.js +4 -0
  304. package/dist/server/schemas/settings.js +23 -81
  305. package/dist/shared/skillRanking.js +30 -4
  306. package/dist/ui/assets/{index-Cwq4d0hX.js → index-C3djEJah.js} +2 -2
  307. package/dist/ui/index.html +1 -1
  308. package/docs/MIGRATION.md +72 -1
  309. package/docs/contracts/settings-classes.md +35 -65
  310. package/docs/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  311. package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  312. package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  313. package/docs/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  314. package/docs/guidelines/agent-infra/layered-settings.md +13 -1
  315. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  316. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  317. package/docs/guidelines/agent-infra/size-and-scope.md +36 -0
  318. package/docs/guidelines/php/git.md +15 -2
  319. package/package.json +1 -1
  320. package/src/agent-src/scripts/gate_budget.ts +47 -23
  321. package/src/agent-src/scripts/gate_execute.ts +12 -4
  322. package/src/agent-src/templates/AGENTS.md +1 -1
  323. package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  324. package/src/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  325. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  326. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  327. package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  328. package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  329. package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  330. package/src/config/agent-settings.template.yml +79 -312
  331. package/src/config/agents-paths.yml +16 -0
  332. package/src/config/assurance-capability-registry.json +7 -3
  333. package/src/config/ci-local-parity.yml +3 -0
  334. package/src/config/continuity-surface.json +3 -3
  335. package/src/config/discovery/packs.yml +17 -1
  336. package/src/config/evaluator-budgets.json +19 -6
  337. package/src/config/gate-coverage.yml +65 -23
  338. package/src/config/gate-violation-baselines.json +53 -13
  339. package/src/config/gitignore-block.txt +19 -0
  340. package/src/config/hook-bundle-budget.json +1 -1
  341. package/src/config/release-gate-locality.yml +2 -1
  342. package/src/config/routing-coverage-seed.json +48 -6
  343. package/src/config/rule-law-ceilings.json +12 -6
  344. package/src/config/rule-obligations.json +833 -0
  345. package/src/install/installThinLayer.ts +76 -10
  346. package/src/install/installedRuleLinks.ts +105 -17
  347. package/src/scripts/_cli/cmd_analyze_session.ts +9 -15
  348. package/src/scripts/_cli/cmd_conformance.ts +13 -2
  349. package/src/scripts/_cli/cmd_doctor.ts +10 -10
  350. package/src/scripts/_cli/cmd_doctor_neighbours.ts +133 -0
  351. package/src/scripts/_cli/cmd_explain.ts +72 -14
  352. package/src/scripts/_cli/cmd_git_convention.ts +637 -0
  353. package/src/scripts/_cli/cmd_settings_check.ts +66 -8
  354. package/src/scripts/_cli/cmd_settings_get.ts +18 -3
  355. package/src/scripts/_cli/doctor_execution.ts +72 -1
  356. package/src/scripts/_dispatch.bash +37 -2
  357. package/src/scripts/_lib/agent_settings.ts +15 -124
  358. package/src/scripts/_lib/blocked_by_marker.ts +1 -1
  359. package/src/scripts/_lib/compile_time_toggles.ts +12 -21
  360. package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
  361. package/src/scripts/_lib/git_base_ref.ts +92 -0
  362. package/src/scripts/_lib/git_convention.ts +291 -0
  363. package/src/scripts/_lib/git_convention_carrier.ts +389 -0
  364. package/src/scripts/_lib/git_convention_grammar.ts +246 -0
  365. package/src/scripts/_lib/git_convention_measure.ts +344 -0
  366. package/src/scripts/_lib/global_deploy_inventory.ts +74 -0
  367. package/src/scripts/_lib/graph_feeder_record.ts +236 -13
  368. package/src/scripts/_lib/installed_layer.ts +448 -23
  369. package/src/scripts/_lib/knowledge_global.ts +14 -1
  370. package/src/scripts/_lib/module_reach.ts +456 -0
  371. package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
  372. package/src/scripts/_lib/neighbour_tool_use.ts +8 -10
  373. package/src/scripts/_lib/ratification_artifact.ts +220 -1
  374. package/src/scripts/_lib/ratification_subject.ts +92 -0
  375. package/src/scripts/_lib/release_findings_ingest.ts +15 -7
  376. package/src/scripts/_lib/release_highlights.ts +5 -0
  377. package/src/scripts/_lib/rule_law_section.ts +1 -1
  378. package/src/scripts/_lib/rule_obligations.ts +205 -0
  379. package/src/scripts/_lib/self_repair.ts +1 -1
  380. package/src/scripts/_lib/settings_removed_keys.ts +173 -0
  381. package/src/scripts/_lib/test_red_state.ts +5 -0
  382. package/src/scripts/_lib/thin_rules.ts +83 -3
  383. package/src/scripts/_lib/touched_file_quality.ts +142 -6
  384. package/src/scripts/_lib/worker_budget.ts +1 -1
  385. package/src/scripts/adr/regenerate_index.ts +16 -1
  386. package/src/scripts/ai_council/config.ts +7 -7
  387. package/src/scripts/ai_council/modification_review.ts +100 -0
  388. package/src/scripts/ai_council/modification_review_questions.ts +90 -0
  389. package/src/scripts/ai_council/orchestrator.ts +5 -5
  390. package/src/scripts/ai_council/spend_gate.ts +18 -7
  391. package/src/scripts/ai_team/config.ts +11 -16
  392. package/src/scripts/audit_user_type_axis.ts +20 -8
  393. package/src/scripts/bench_ab_clone.ts +1 -2
  394. package/src/scripts/bench_concern_spawn_path.ts +129 -0
  395. package/src/scripts/bench_graph_feeder_latency.ts +584 -0
  396. package/src/scripts/check_agent_artifact_location.ts +36 -0
  397. package/src/scripts/check_branch_freshness.ts +147 -24
  398. package/src/scripts/check_enforcement_coverage.ts +130 -0
  399. package/src/scripts/check_evaluator_budgets.ts +4 -0
  400. package/src/scripts/check_finding_dispositions.ts +88 -25
  401. package/src/scripts/check_gate_coverage.ts +4 -3
  402. package/src/scripts/check_gate_reachability.ts +48 -1
  403. package/src/scripts/check_generator_sync.ts +48 -0
  404. package/src/scripts/check_hook_bundle_composition.ts +107 -0
  405. package/src/scripts/check_kernel_edit_ratified.ts +86 -6
  406. package/src/scripts/check_pack_size.ts +1 -1
  407. package/src/scripts/check_release_manifest_content.ts +189 -0
  408. package/src/scripts/check_standing_rule_delivery.ts +96 -0
  409. package/src/scripts/check_suppression_hygiene.ts +2 -5
  410. package/src/scripts/ci_settle.ts +42 -5
  411. package/src/scripts/classify_merge_risk.ts +320 -0
  412. package/src/scripts/closure_scan.ts +91 -1
  413. package/src/scripts/command_suggester/settings.ts +8 -108
  414. package/src/scripts/command_suggester/types.ts +4 -5
  415. package/src/scripts/consumer_matrix.ts +102 -0
  416. package/src/scripts/context_hygiene_hook.ts +13 -23
  417. package/src/scripts/cost/preflight.mjs +12 -1
  418. package/src/scripts/council_cli.ts +7 -7
  419. package/src/scripts/dispatch_r2_reviewer.ts +24 -11
  420. package/src/scripts/explain_run.ts +8 -13
  421. package/src/scripts/generate_git_convention_grammar.ts +127 -0
  422. package/src/scripts/generate_host_cost_table.ts +20 -3
  423. package/src/scripts/handoff_context_hook.ts +86 -37
  424. package/src/scripts/hook_manifest.json +1 -1
  425. package/src/scripts/hook_manifest.yaml +25 -6
  426. package/src/scripts/hooks/block_config_weakening.ts +48 -5
  427. package/src/scripts/hooks/block_plumbing_writes.ts +8 -4
  428. package/src/scripts/hooks/concern_registry.ts +2 -0
  429. package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
  430. package/src/scripts/hooks/evidence_independence.ts +12 -4
  431. package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
  432. package/src/scripts/hooks/push_settle_hook.ts +4 -3
  433. package/src/scripts/hooks/rule_inject_hook.ts +44 -3
  434. package/src/scripts/hooks/state_io.ts +8 -4
  435. package/src/scripts/hooks/telemetry_usage_hook.ts +7 -46
  436. package/src/scripts/hooks/turn_end_gate_hook.ts +1 -0
  437. package/src/scripts/install-hooks.sh +42 -14
  438. package/src/scripts/install.ts +7 -31
  439. package/src/scripts/lint_blocker_citations.ts +198 -0
  440. package/src/scripts/lint_evidence_artifacts.ts +9 -0
  441. package/src/scripts/lint_hook_concern_budget.ts +10 -21
  442. package/src/scripts/lint_pack_boundaries.ts +406 -28
  443. package/src/scripts/lint_roadmap_blockers.ts +282 -29
  444. package/src/scripts/lint_roadmap_complexity.ts +4 -2
  445. package/src/scripts/lint_rule_law_section.ts +151 -21
  446. package/src/scripts/lint_rule_skill_pack_reach.ts +17 -0
  447. package/src/scripts/lint_settings_classes.ts +1 -1
  448. package/src/scripts/lint_ticked_unmet_criteria.ts +165 -0
  449. package/src/scripts/lint_workflow_security.ts +12 -1
  450. package/src/scripts/measure_skill_ranker_baseline.ts +5 -0
  451. package/src/scripts/model_rule_injection.ts +3 -3
  452. package/src/scripts/onboarding_gate_hook.ts +7 -6
  453. package/src/scripts/print_required_checks.ts +15 -3
  454. package/src/scripts/probe_host_compliance.ts +33 -5
  455. package/src/scripts/probe_turnaround.ts +183 -3
  456. package/src/scripts/ratification_header.ts +77 -0
  457. package/src/scripts/refusal_envelope.ts +138 -0
  458. package/src/scripts/release_publication.ts +29 -3
  459. package/src/scripts/report_dispatch_import_closure.ts +76 -0
  460. package/src/scripts/report_installed_rule_links.ts +118 -1
  461. package/src/scripts/report_module_reach.ts +212 -0
  462. package/src/scripts/report_obligation_mechanism.ts +16 -18
  463. package/src/scripts/report_parked_blockers.ts +222 -0
  464. package/src/scripts/report_required_checks_drift.ts +196 -0
  465. package/src/scripts/report_skill_ranker_confusion.ts +103 -2
  466. package/src/scripts/report_standing_payload_by_host.ts +1 -1
  467. package/src/scripts/routing_doctor.ts +2 -2
  468. package/src/scripts/schemas/agent-settings.schema.json +17 -31
  469. package/src/scripts/schemas/command.schema.json +1 -1
  470. package/src/scripts/schemas/skill.schema.json +1 -1
  471. package/src/scripts/self_review_gate.ts +39 -2
  472. package/src/scripts/skill_tools/score_skill_relevance.ts +28 -19
  473. package/src/scripts/sync_pr_branch.ts +403 -132
  474. package/src/scripts/trigger_eval_grandfather.json +0 -16
  475. package/src/server/schemas/settings.ts +33 -177
  476. package/src/shared/skillRanking.ts +53 -4
  477. package/dist/cli-delegate/chunk-NYX3L2PZ.js +0 -99
  478. package/src/scripts/_lib/config_chain.ts +0 -477
  479. package/src/scripts/_lib/conformance_report.ts +0 -403
  480. package/src/scripts/_lib/eval_discrimination.ts +0 -95
  481. package/src/scripts/_lib/evaluator_promotion.ts +0 -225
  482. package/src/scripts/_lib/file_slicer.ts +0 -117
  483. package/src/scripts/_lib/legacy_boundary_map.ts +0 -228
  484. package/src/scripts/_lib/minimality_tiebreak.ts +0 -168
  485. package/src/scripts/_lib/overbuild_lens_contract.ts +0 -196
  486. package/src/scripts/_lib/role_split.ts +0 -338
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
+ import {
3
+ resolve_project_root
4
+ } from "./chunk-H76PHZBI.js";
2
5
  import {
3
6
  resolvePackageRoot
4
7
  } from "./chunk-MCJYCQPF.js";
5
- import {
6
- resolve_project_root
7
- } from "./chunk-JY2I2DXV.js";
8
8
 
9
9
  // src/scripts/_cli/cmd_migrate.ts
10
10
  import { spawnSync } from "node:child_process";
@@ -2,7 +2,10 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
2
2
  import {
3
3
  resolve_with_fallback,
4
4
  write_target
5
- } from "./chunk-NDJLNC6Q.js";
5
+ } from "./chunk-T6BP34WI.js";
6
+ import {
7
+ resolvePackageRoot
8
+ } from "./chunk-MCJYCQPF.js";
6
9
 
7
10
  // src/shared/settingsCarveOut.ts
8
11
  var SETTINGS_CARVE_OUT = [
@@ -64,7 +67,6 @@ import { createRequire } from "node:module";
64
67
  import * as fs from "node:fs";
65
68
  import * as os from "node:os";
66
69
  import * as path from "node:path";
67
- import { fileURLToPath } from "node:url";
68
70
 
69
71
  // src/scripts/_lib/settings_renamed_keys.ts
70
72
  var RENAMED_KEYS = /* @__PURE__ */ new Map([
@@ -104,6 +106,102 @@ function applyRenamedKeys(layer) {
104
106
  return layer;
105
107
  }
106
108
 
109
+ // src/scripts/_lib/settings_removed_keys.ts
110
+ var REMOVED_KEYS = /* @__PURE__ */ new Map([
111
+ ["subagents.enabled", "always-on orchestration"],
112
+ ["subagents.auto", "always-on orchestration"],
113
+ ["subagents.host_capabilities", "always-on orchestration"],
114
+ ["subagents.budget_routing", "always-on orchestration"],
115
+ ["ai_team.enabled", "always-on orchestration"],
116
+ ["hooks.turn_end_gate.enabled", "the turn-end gate is always armed"],
117
+ ["hooks.turn_end_gate.promissory", "the turn-end gate is always armed"],
118
+ ["hooks.turn_end_gate.language", "the turn-end gate is always armed"],
119
+ ["hooks.turn_end_gate.verification", "the turn-end gate is always armed"],
120
+ ["telegraph.speak_scope", "the rule body states its own scope; compile_time_toggles decides whether the rule ships"],
121
+ ["chat_history.max_size_kb", "the rotate command takes --max-kb from argv; session-count pruning bounds the file"],
122
+ ["chat_history.on_overflow", "the overflow mode comes from the rotate command --mode argv"],
123
+ ["quality.wait_for_remote_ci", "whether to poll follows from the push plus a detectable remote pipeline"],
124
+ ["legal_review_prep.consented_at", "the provenance sidecar settings:set writes and consentVerdict reads"],
125
+ ["worktrees.mode", "the user asking for a worktree in the chat; creation is instruction-only and hardcoded"],
126
+ // 2026-10-09 — output and tone
127
+ ["personal.minimal_output", "direct-answers Iron Law 3 mandates terse replies; there is no verbose mode"],
128
+ ["personal.play_by_play", "direct-answers: no narration unless the user asks for it in the turn"],
129
+ ["personal.pr_comment_bot_icon", "no-decorative-emojis-in-git-surfaces forbids the \u{1F916} prefix"],
130
+ ["verbosity.intent_announcements", 'direct-answers: act and emit the result, no "Let me\u2026" openers'],
131
+ ["verbosity.preview_artifacts", "generated content is used directly; preview-on-error and the Iron-Law gates decide when a preview shows"],
132
+ ["verbosity.routine_confirmations", "the no-cheap-questions Pre-Send Self-Check; Iron-Law gates always ask"],
133
+ ["verbosity.post_action_reports", "direct-answers Iron Law 3: a one-line confirmation and one end-summary"],
134
+ ["telegraph.speak", "the telegraph-speak predicate in compile_time_toggles.ts; the bench verdict is package-level (ADR telegraph/0002)"],
135
+ ["tokens.rich_skills", "the skill's own token_budget_class: rich plus the lint_token_budget_discipline ceiling"],
136
+ // 2026-10-09 — reasoning protocol switches
137
+ ["reasoning.auto_gate", "the RDP gate task signal plus the host self-assessment in rdp-gate.md"],
138
+ ["reasoning.components.orchestrator", "the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off"],
139
+ ["reasoning.components.notes_first", "the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off"],
140
+ ["reasoning.components.grounding", "the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off"],
141
+ ["reasoning.components.intent", "the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off"],
142
+ ["reasoning.components.complexity_first", "the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off"],
143
+ ["reasoning.components.verifier_default", "the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off"],
144
+ ["reasoning.components.prediction_tracking", "the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off"],
145
+ ["reasoning.components.decision_ledger", "the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off"],
146
+ ["reasoning.components.uncertainty_budget", "the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off"],
147
+ // 2026-10-09 — roadmap cadence
148
+ ["roadmap.skip_pre_run_gate", "the command name names the scope; only an ambiguous roadmap or an unresolvable conflict shows the gate"],
149
+ ["roadmap.dashboard_regen_cadence", "a fixed cadence: every 5th closed step, every phase boundary, reply end and any file-shape touch"],
150
+ // 2026-10-09 — command suggestion and PR creation
151
+ ["commands.auto_detect", "an orchestrator's own auto_detect front-matter and the --no-auto-detect flag"],
152
+ ["commands.suggestion.enabled", "the suggester match-score floor and cooldown; /command-suggestion-off silences one conversation"],
153
+ ["commands.suggestion.confidence_floor", "the suggester's fixed 0.6 floor; a command's own suggestion frontmatter can tighten it"],
154
+ ["commands.suggestion.cooldown_seconds", "the suggester's fixed 600-second cooldown; a command's own suggestion frontmatter can lengthen it"],
155
+ ["commands.suggestion.max_options", "the fixed cap of 4 suggestions plus the always-present as-is option"],
156
+ ["commands.create_pr.api_examples", "/create-pr's grounding rule: an example only from a real source, otherwise a one-line pointer"],
157
+ ["commands.create_pr.ui_paths", "/create-pr's light frontend heuristic, which fails open"],
158
+ ["commands.create_pr.api_paths", "/create-pr's light API-endpoint heuristic, which fails open"],
159
+ // 2026-10-09 — memory and knowledge sharing
160
+ ["memory.cadence", "a fixed cadence: the memory line renders whenever a memory type was asked; memory.visibility: off still silences it"],
161
+ ["memory.review_threshold", "/memory load's fixed preview threshold of 10 unreviewed intake signals"],
162
+ ["knowledge.global_sharing.redaction.enabled", "the write-time redaction scan, which always runs before a card goes global"],
163
+ ["knowledge.global_sharing.redaction.halt_on_trigger", "the redaction gate, which always halts on a confidential-pattern hit"],
164
+ ["knowledge.global_sharing.auto_promote_threshold", "the fixed two-repo sighting count that triggers a promotion suggestion"],
165
+ ["knowledge.global_sharing.freshness.hypothesis_after_days", "the card's age over last_verified against the fixed 90-day lead-only window"],
166
+ ["knowledge.global_sharing.freshness.stale_after_days", "the card's age over last_verified against the fixed 180-day skip window"],
167
+ // 2026-10-09 — hooks and engine
168
+ ["hooks.concern_budget.max_per_event", "the concern-budget gate's own constant of 8 per (platform, event) cell"],
169
+ ["hooks.concern_budget.hard_fail", "the concern-budget gate's --strict argv; without it the gate warns"],
170
+ ["decision_engine.surface_traces", "nothing: the per-phase decision trace stays off, the old default"],
171
+ ["decision_engine.on_block_fallback", "the fail-safe: an on_block ask that times out always stops"],
172
+ ["explain.enable_last", "the presence of a work-state trace; explain last always renders it"],
173
+ // 2026-10-09 — remaining
174
+ ["project.pr_template", "/create-pr, which reads .github/pull_request_template.md"],
175
+ ["pipelines.skill_improvement", "the skill-improvement-trigger rule; the capture is a proposal the user confirms"],
176
+ ["consistency.cross_source", "the cross-source-consistency rule, always on; batching and the no-cheap-questions floor bound the noise"],
177
+ ["subagents.downshift", "the model_tier each sub-task declares; downshift is always on"],
178
+ ["ai_team.suppress_setup_hint", "nothing: the one-line team-mode setup hint is always shown"]
179
+ ]);
180
+ var _warnedRemovedKeys = /* @__PURE__ */ new Set();
181
+ function _readDotted(root, dotted) {
182
+ let node = root;
183
+ for (const part of dotted.split(".")) {
184
+ if (typeof node !== "object" || node === null || Array.isArray(node)) {
185
+ return void 0;
186
+ }
187
+ node = node[part];
188
+ }
189
+ return node;
190
+ }
191
+ function warnRemovedKeys(merged) {
192
+ for (const [key, reason] of REMOVED_KEYS) {
193
+ if (_warnedRemovedKeys.has(key)) {
194
+ continue;
195
+ }
196
+ if (_readDotted(merged, key) === void 0) {
197
+ continue;
198
+ }
199
+ _warnedRemovedKeys.add(key);
200
+ process.stderr.write(`${key} was removed (${reason}); ignored.
201
+ `);
202
+ }
203
+ }
204
+
107
205
  // src/scripts/_lib/agent_settings.ts
108
206
  var _require = createRequire(import.meta.url);
109
207
  var Logger = class {
@@ -181,13 +279,13 @@ function user_global_settings_paths() {
181
279
  return paths;
182
280
  }
183
281
  var MERGEABLE_KEYS = [
184
- // `name`, `ide` and `personal.bot_icon` are the PRE-MIGRATION spellings.
185
- // `install.ts` migrates `ide` → `personal.ide` and `pr_comment_bot_icon`
186
- // into its `personal.` home, and this list was never moved with them — so
187
- // the whitelist named keys the template does not have while the keys it
188
- // does have were filtered out silently. A user setting either preference
189
- // user-globally got no error, no warning, and no effect
190
- // (road-to-capability-answerability 4.3, ADR-219).
282
+ // `name` and `ide` are the PRE-MIGRATION spellings. `install.ts` migrates
283
+ // `ide` → `personal.ide`, and this list was never moved with it — so the
284
+ // whitelist named a key the template does not have while the key it does
285
+ // have was filtered out silently (road-to-capability-answerability 4.3,
286
+ // ADR-219). `personal.bot_icon` / `personal.pr_comment_bot_icon` left with
287
+ // the key itself (2026-10-09): a whitelisted key nothing reads would carry a
288
+ // user-global value into a tree that ignores it.
191
289
  //
192
290
  // Both spellings are listed rather than replaced: a legacy file that still
193
291
  // uses the old name keeps working, and nothing that resolved before
@@ -197,20 +295,12 @@ var MERGEABLE_KEYS = [
197
295
  "ide",
198
296
  "personal.ide",
199
297
  "rule_loading_tier",
200
- "memory.cadence",
201
- "personal.bot_icon",
202
- "personal.pr_comment_bot_icon",
203
298
  "personal.autonomy",
204
299
  // Knowledge-card global cross-project sharing is a USER-GLOBAL setting
205
300
  // (ADR-100 / road-to-structure-grounding-v2). Whitelisted so the
206
301
  // ~/.event4u/agent-config/agent-settings.yml values are honoured.
207
302
  "knowledge.global_sharing.enabled",
208
303
  "knowledge.global_sharing.allowed_tiers",
209
- "knowledge.global_sharing.redaction.enabled",
210
- "knowledge.global_sharing.redaction.halt_on_trigger",
211
- "knowledge.global_sharing.auto_promote_threshold",
212
- "knowledge.global_sharing.freshness.hypothesis_after_days",
213
- "knowledge.global_sharing.freshness.stale_after_days",
214
304
  // `design.fidelity_mode` is a per-DEVELOPER working preference, not a
215
305
  // per-project one: whether an agent may deviate from a handed-over design
216
306
  // is a property of how that person works, and a designer who sets it once
@@ -235,7 +325,7 @@ var MERGEABLE_KEYS = [
235
325
  "lean_projection.hosts"
236
326
  ];
237
327
  var TEMPLATE_RELATIVE = path.join("src", "config", "agent-settings.template.yml");
238
- var _PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..", "..");
328
+ var _PACKAGE_ROOT = resolvePackageRoot(import.meta.url);
239
329
  function default_template_path() {
240
330
  return path.join(_PACKAGE_ROOT, TEMPLATE_RELATIVE);
241
331
  }
@@ -536,6 +626,32 @@ function _resolve_cascade_paths(cwd, project_path) {
536
626
  _local_settings_path(root)
537
627
  ];
538
628
  }
629
+ function _probe_yaml(p) {
630
+ if (!_is_file(p)) return "absent";
631
+ let YAML;
632
+ try {
633
+ YAML = _require("yaml");
634
+ } catch {
635
+ return "malformed";
636
+ }
637
+ try {
638
+ YAML.parse(fs.readFileSync(p, "utf-8"), { version: "1.1" });
639
+ return "valid";
640
+ } catch (err) {
641
+ if (_is_yaml_error(err) || _is_os_error(err)) return "malformed";
642
+ throw err;
643
+ }
644
+ }
645
+ function settings_layer_states(options = {}) {
646
+ const project_path = options.project_path ?? null;
647
+ const cwd = options.cwd ?? null;
648
+ const user_global = options.user_global_path ? [options.user_global_path] : user_global_settings_paths();
649
+ const out = [];
650
+ for (const p of [...user_global, ..._resolve_cascade_paths(cwd, project_path)]) {
651
+ out.push({ path: p, state: _probe_yaml(p) });
652
+ }
653
+ return out;
654
+ }
539
655
  function load_agent_settings(options = {}) {
540
656
  const project_path = options.project_path ?? null;
541
657
  const user_global_path = options.user_global_path ?? null;
@@ -562,50 +678,9 @@ function load_agent_settings(options = {}) {
562
678
  _deep_merge(merged, layer);
563
679
  }
564
680
  }
565
- _warn_removed_always_on_keys(merged);
681
+ warnRemovedKeys(merged);
566
682
  return merged;
567
683
  }
568
- var REMOVED_KEYS = /* @__PURE__ */ new Map([
569
- ["subagents.enabled", "always-on orchestration"],
570
- ["subagents.auto", "always-on orchestration"],
571
- ["subagents.host_capabilities", "always-on orchestration"],
572
- ["subagents.budget_routing", "always-on orchestration"],
573
- ["ai_team.enabled", "always-on orchestration"],
574
- ["hooks.turn_end_gate.enabled", "the turn-end gate is always armed"],
575
- ["hooks.turn_end_gate.promissory", "the turn-end gate is always armed"],
576
- ["hooks.turn_end_gate.language", "the turn-end gate is always armed"],
577
- ["hooks.turn_end_gate.verification", "the turn-end gate is always armed"],
578
- ["telegraph.speak_scope", "the rule body states its own scope; compile_router gates on telegraph.speak alone"],
579
- ["chat_history.max_size_kb", "the rotate command takes --max-kb from argv; session-count pruning bounds the file"],
580
- ["chat_history.on_overflow", "the overflow mode comes from the rotate command --mode argv"],
581
- ["quality.wait_for_remote_ci", "whether to poll follows from the push plus a detectable remote pipeline"],
582
- ["legal_review_prep.consented_at", "the provenance sidecar settings:set writes and consentVerdict reads"],
583
- ["worktrees.mode", "the user asking for a worktree in the chat; creation is instruction-only and hardcoded"]
584
- ]);
585
- var _warnedRemovedKeys = /* @__PURE__ */ new Set();
586
- function _readDottedSettingsPath(root, dotted) {
587
- let node = root;
588
- for (const part of dotted.split(".")) {
589
- if (typeof node !== "object" || node === null || Array.isArray(node)) {
590
- return void 0;
591
- }
592
- node = node[part];
593
- }
594
- return node;
595
- }
596
- function _warn_removed_always_on_keys(merged) {
597
- for (const [key, reason] of REMOVED_KEYS) {
598
- if (_warnedRemovedKeys.has(key)) {
599
- continue;
600
- }
601
- if (_readDottedSettingsPath(merged, key) === void 0) {
602
- continue;
603
- }
604
- _warnedRemovedKeys.add(key);
605
- process.stderr.write(`${key} was removed (${reason}); ignored.
606
- `);
607
- }
608
- }
609
684
  function* iter_setting_overrides(options = {}) {
610
685
  const project_path = options.project_path ?? null;
611
686
  const user_global_path = options.user_global_path ?? null;
@@ -748,6 +823,7 @@ export {
748
823
  USER_GLOBAL_FILENAME,
749
824
  user_global_settings_paths,
750
825
  MERGEABLE_KEYS,
826
+ template_defaults,
751
827
  find_project_root_with_anchor,
752
828
  find_project_root,
753
829
  find_project_root_with_trace,
@@ -756,6 +832,7 @@ export {
756
832
  ROOT_OVERRIDE_ENV,
757
833
  ProjectRootError,
758
834
  resolve_project_root,
835
+ settings_layer_states,
759
836
  load_agent_settings,
760
837
  iter_setting_overrides
761
838
  };
@@ -0,0 +1,67 @@
1
+ import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
+
3
+ // src/scripts/_lib/git_common_dir.ts
4
+ import fs from "node:fs";
5
+ import path from "node:path";
6
+ function realpath_or_self(p) {
7
+ try {
8
+ return fs.realpathSync(p);
9
+ } catch {
10
+ return p;
11
+ }
12
+ }
13
+ function git_dir(project_root) {
14
+ const dot_git = path.join(project_root, ".git");
15
+ try {
16
+ const st = fs.statSync(dot_git);
17
+ if (st.isDirectory()) {
18
+ return realpath_or_self(dot_git);
19
+ }
20
+ const m = fs.readFileSync(dot_git, "utf-8").match(/^gitdir:\s*(.+)\s*$/m);
21
+ if (m === null) {
22
+ return null;
23
+ }
24
+ return realpath_or_self(path.resolve(project_root, m[1].trim()));
25
+ } catch {
26
+ return null;
27
+ }
28
+ }
29
+ function current_branch(project_root) {
30
+ const gd = git_dir(project_root);
31
+ if (gd === null) return null;
32
+ try {
33
+ const head = fs.readFileSync(path.join(gd, "HEAD"), "utf-8").trim();
34
+ const m = head.match(/^ref:\s*refs\/heads\/(.+)$/);
35
+ return m === null ? null : m[1].trim();
36
+ } catch {
37
+ return null;
38
+ }
39
+ }
40
+ function git_common_dir(project_root) {
41
+ const dot_git = path.join(project_root, ".git");
42
+ try {
43
+ const st = fs.statSync(dot_git);
44
+ if (st.isDirectory()) {
45
+ return realpath_or_self(dot_git);
46
+ }
47
+ const m = fs.readFileSync(dot_git, "utf-8").match(/^gitdir:\s*(.+)\s*$/m);
48
+ if (m === null) {
49
+ return null;
50
+ }
51
+ const gitdir = path.resolve(project_root, m[1].trim());
52
+ const commondir_file = path.join(gitdir, "commondir");
53
+ if (fs.existsSync(commondir_file)) {
54
+ const common = path.resolve(gitdir, fs.readFileSync(commondir_file, "utf-8").trim());
55
+ return realpath_or_self(common);
56
+ }
57
+ return realpath_or_self(gitdir);
58
+ } catch {
59
+ return null;
60
+ }
61
+ }
62
+
63
+ export {
64
+ git_dir,
65
+ current_branch,
66
+ git_common_dir
67
+ };
@@ -10,7 +10,7 @@ import {
10
10
  parseBudgetUsd,
11
11
  readGateBudgetCaps,
12
12
  readGateBudgetLedger
13
- } from "./chunk-DBH4AHDK.js";
13
+ } from "./chunk-ED7KCMLB.js";
14
14
  import {
15
15
  __commonJS,
16
16
  __require
@@ -7471,19 +7471,13 @@ var MERGEABLE_KEYS = [
7471
7471
  // weak-host-lift-tiering + token-program-integration verdicts; ADR
7472
7472
  // records the whitelist addition). Wins over rule_loading_tier.
7473
7473
  "discipline_profile",
7474
- "memory.cadence",
7475
7474
  "personal.bot_icon",
7476
7475
  "personal.autonomy",
7477
7476
  // Knowledge-card global cross-project sharing is a USER-GLOBAL setting
7478
7477
  // (ADR-100 / road-to-structure-grounding-v2). Whitelisted so the
7479
7478
  // ~/.event4u/agent-config/agent-settings.yml values are honoured.
7480
7479
  "knowledge.global_sharing.enabled",
7481
- "knowledge.global_sharing.allowed_tiers",
7482
- "knowledge.global_sharing.redaction.enabled",
7483
- "knowledge.global_sharing.redaction.halt_on_trigger",
7484
- "knowledge.global_sharing.auto_promote_threshold",
7485
- "knowledge.global_sharing.freshness.hypothesis_after_days",
7486
- "knowledge.global_sharing.freshness.stale_after_days"
7480
+ "knowledge.global_sharing.allowed_tiers"
7487
7481
  ];
7488
7482
  var _DEFAULTS = {};
7489
7483
  var ANCHOR_AGENT_SETTINGS = "agent-settings";
@@ -7919,7 +7913,7 @@ Nothing has been executed. Re-run with \`--confirm\` to execute it and record th
7919
7913
  code: 1
7920
7914
  };
7921
7915
  }
7922
- if (budgeted !== null) {
7916
+ if (budgeted !== null && budgeted.estimateUsd !== null) {
7923
7917
  appendGateBudgetReceipt(repoRoot, {
7924
7918
  kind: "consumption",
7925
7919
  blocker: id,
@@ -7942,7 +7936,8 @@ Nothing has been executed. Re-run with \`--confirm\` to execute it and record th
7942
7936
  return {
7943
7937
  outcome: "resolved",
7944
7938
  report: `${id} resolved. Ran \`${command}\` (exit 0); evidence appended in ${rel} and the status flipped to resolved ${when}.
7945
- ` + (budgeted === null ? "" : `Receipt appended to ${LEDGER_REL} ($${budgeted.estimateUsd.toFixed(2)} estimated).
7939
+ ` + (budgeted === null ? "" : budgeted.estimateUsd === null ? `No receipt appended to ${LEDGER_REL}: the entry states no USD estimate and no cap is configured, so there is no figure to record.
7940
+ ` : `Receipt appended to ${LEDGER_REL} ($${budgeted.estimateUsd.toFixed(2)} estimated).
7946
7941
  `) + // The dashboard is derived from the file this just rewrote, so it
7947
7942
  // is now stale. Saying so is the same follow-up `renderResumed`
7948
7943
  // already prints for its own file-move suggestion.
@@ -2,7 +2,7 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
2
2
  import {
3
3
  resolve_with_fallback,
4
4
  write_target
5
- } from "./chunk-NDJLNC6Q.js";
5
+ } from "./chunk-T6BP34WI.js";
6
6
 
7
7
  // src/scripts/_lib/installed_lock.ts
8
8
  import { randomBytes } from "node:crypto";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-OY53J6II.js";
5
5
  import {
6
6
  write_target
7
- } from "./chunk-NDJLNC6Q.js";
7
+ } from "./chunk-T6BP34WI.js";
8
8
  import {
9
9
  __export,
10
10
  __toESM
@@ -215,6 +215,7 @@ __export(global_deploy_inventory_exports, {
215
215
  reap_stale: () => reap_stale,
216
216
  reap_tagged_orphans: () => reap_tagged_orphans,
217
217
  record_deploy: () => record_deploy,
218
+ recorded_absolute_files: () => recorded_absolute_files,
218
219
  recorded_rel_files: () => recorded_rel_files,
219
220
  save_inventory: () => save_inventory
220
221
  });
@@ -234,6 +235,14 @@ function expanduser(p) {
234
235
  }
235
236
  return p;
236
237
  }
238
+ function expanduser_at(p, home) {
239
+ if (home === void 0 || home === null || home === "") return expanduser(p);
240
+ if (p === "~") return home;
241
+ if (p.startsWith("~/") || process.platform === "win32" && p.startsWith("~\\")) {
242
+ return path2.join(home, p.slice(2));
243
+ }
244
+ return p;
245
+ }
237
246
  function resolve_path(p) {
238
247
  try {
239
248
  return fs2.realpathSync(p);
@@ -648,6 +657,27 @@ function recorded_rel_files(tool_id, anchor, inventory) {
648
657
  }
649
658
  return new Set(files.filter((f) => typeof f === "string"));
650
659
  }
660
+ function recorded_absolute_files(inventory, home) {
661
+ const inv = inventory ?? load_inventory();
662
+ const tools = inv["tools"] ?? {};
663
+ const out = /* @__PURE__ */ new Set();
664
+ if (typeof tools !== "object" || tools === null || Array.isArray(tools)) return out;
665
+ for (const entry of Object.values(tools)) {
666
+ if (typeof entry !== "object" || entry === null || Array.isArray(entry)) continue;
667
+ const e = entry;
668
+ const anchor = e["anchor"];
669
+ const files = e["files"];
670
+ if (typeof anchor !== "string" || !Array.isArray(files)) continue;
671
+ const expanded = expanduser_at(anchor, home);
672
+ for (const rel of files) {
673
+ if (typeof rel !== "string") continue;
674
+ const lexical = path2.resolve(expanded, rel);
675
+ out.add(lexical);
676
+ out.add(resolve_path(lexical));
677
+ }
678
+ }
679
+ return out;
680
+ }
651
681
  function sorted_strings(items) {
652
682
  return items.filter((i) => typeof i === "string").sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
653
683
  }
@@ -827,6 +857,8 @@ export {
827
857
  build_claude_hook_matrix,
828
858
  ensure_managed_hooks,
829
859
  remove_managed_hooks,
860
+ INVENTORY_BASENAME,
861
+ inventory_path,
830
862
  load_inventory,
831
863
  save_inventory,
832
864
  expected_deploy_files,
@@ -835,6 +867,7 @@ export {
835
867
  record_deploy,
836
868
  is_ancestor,
837
869
  recorded_rel_files,
870
+ recorded_absolute_files,
838
871
  global_deploy_inventory_exports,
839
872
  TOOL_TO_HOST,
840
873
  residualReport,
@@ -3,18 +3,18 @@ import {
3
3
  pruneAgedRefusalState,
4
4
  readSessionCounts,
5
5
  statePathFor
6
- } from "./chunk-NQ7WT43P.js";
7
- import {
8
- readHookStdin
9
- } from "./chunk-F7DQWYR5.js";
6
+ } from "./chunk-AED2VQGM.js";
10
7
  import {
11
8
  current_branch,
12
9
  git_common_dir,
13
10
  git_dir
14
- } from "./chunk-E4XIZDIB.js";
11
+ } from "./chunk-IAYTIIQW.js";
15
12
  import {
16
13
  write_atomic
17
14
  } from "./chunk-MWRD5YOH.js";
15
+ import {
16
+ readHookStdin
17
+ } from "./chunk-F7DQWYR5.js";
18
18
 
19
19
  // src/scripts/_lib/envelope_grounding.ts
20
20
  import { execFileSync } from "node:child_process";