@event4u/agent-config 16.3.0 → 16.5.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 (532) 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 +178 -78
  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/design.md +1 -1
  16. package/dist/agent-src/commands/estimate-ticket.md +1 -1
  17. package/dist/agent-src/commands/feature/explore.md +3 -3
  18. package/dist/agent-src/commands/feature/plan.md +1 -1
  19. package/dist/agent-src/commands/fix/ci.md +17 -3
  20. package/dist/agent-src/commands/fix/commit-messages.md +48 -23
  21. package/dist/agent-src/commands/fix/pr-comments.md +3 -6
  22. package/dist/agent-src/commands/implement-ticket.md +3 -3
  23. package/dist/agent-src/commands/memory/add.md +4 -16
  24. package/dist/agent-src/commands/memory/load.md +5 -6
  25. package/dist/agent-src/commands/memory/promote.md +3 -16
  26. package/dist/agent-src/commands/mission/upgrade.md +3 -2
  27. package/dist/agent-src/commands/optimize/agents-dir.md +2 -2
  28. package/dist/agent-src/commands/optimize/deep.md +4 -2
  29. package/dist/agent-src/commands/optimize/rtk.md +4 -26
  30. package/dist/agent-src/commands/pr/create/description-only.md +18 -15
  31. package/dist/agent-src/commands/pr/create.md +42 -34
  32. package/dist/agent-src/commands/pr/merge.md +136 -9
  33. package/dist/agent-src/commands/prepare-for-review.md +13 -11
  34. package/dist/agent-src/commands/project/analyze.md +7 -35
  35. package/dist/agent-src/commands/refine-ticket.md +1 -1
  36. package/dist/agent-src/commands/review/changes.md +14 -19
  37. package/dist/agent-src/commands/roadmap/next.md +10 -1
  38. package/dist/agent-src/commands/roadmap/process-full.md +52 -38
  39. package/dist/agent-src/commands/roadmap/resolve-blockers.md +64 -14
  40. package/dist/agent-src/commands/worktree/create.md +7 -3
  41. package/dist/agent-src/commands/worktree/verify.md +2 -1
  42. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +5 -3
  43. package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +7 -9
  44. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -6
  45. package/dist/agent-src/contexts/contracts/frugality-charter.md +8 -5
  46. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
  47. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +0 -1
  48. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  49. package/dist/agent-src/contexts/execution/non-interactive-contract.md +5 -8
  50. package/dist/agent-src/contexts/execution/rdp-gate.md +4 -4
  51. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +9 -8
  52. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +67 -52
  53. package/dist/agent-src/contexts/execution/subagent-routing.md +8 -8
  54. package/dist/agent-src/contexts/execution/subagent-steering.md +6 -4
  55. package/dist/agent-src/contexts/execution/terminal-states.md +2 -2
  56. package/dist/agent-src/contexts/execution/toolchain-resolver.md +4 -10
  57. package/dist/agent-src/contexts/subagent-configuration.md +1 -1
  58. package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  59. package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  60. package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  61. package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  62. package/dist/agent-src/guidelines/agent-infra/layered-settings.md +13 -1
  63. package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  64. package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  65. package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +36 -0
  66. package/dist/agent-src/guidelines/design-antipatterns.md +1 -1
  67. package/dist/agent-src/guidelines/php/git.md +15 -2
  68. package/dist/agent-src/rules/active-remediation.md +0 -1
  69. package/dist/agent-src/rules/analysis-skill-routing.md +0 -1
  70. package/dist/agent-src/rules/architecture.md +0 -1
  71. package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -1
  72. package/dist/agent-src/rules/artifact-engagement-recording.md +0 -1
  73. package/dist/agent-src/rules/augment-edit-discipline.md +0 -1
  74. package/dist/agent-src/rules/autonomous-execution.md +0 -1
  75. package/dist/agent-src/rules/brand-consistency.md +0 -1
  76. package/dist/agent-src/rules/brand-source-of-truth.md +0 -1
  77. package/dist/agent-src/rules/broken-access-control.md +0 -1
  78. package/dist/agent-src/rules/cli-output-handling.md +0 -1
  79. package/dist/agent-src/rules/code-comment-discipline.md +0 -1
  80. package/dist/agent-src/rules/code-provenance.md +0 -1
  81. package/dist/agent-src/rules/command-suggestion-policy.md +0 -1
  82. package/dist/agent-src/rules/commit-conventions.md +1 -2
  83. package/dist/agent-src/rules/communication-through-line.md +1 -2
  84. package/dist/agent-src/rules/content-quoting-floor.md +1 -2
  85. package/dist/agent-src/rules/context-hygiene.md +5 -5
  86. package/dist/agent-src/rules/copilot-routing.md +1 -2
  87. package/dist/agent-src/rules/council-availability.md +4 -4
  88. package/dist/agent-src/rules/cross-source-consistency.md +4 -6
  89. package/dist/agent-src/rules/decision-revisit-gate.md +2 -3
  90. package/dist/agent-src/rules/delegation-policy.md +2 -3
  91. package/dist/agent-src/rules/design-fidelity.md +0 -1
  92. package/dist/agent-src/rules/design-review-after-ui-write.md +3 -3
  93. package/dist/agent-src/rules/devcontainer-routing.md +1 -2
  94. package/dist/agent-src/rules/doc-screenshot-hygiene.md +0 -1
  95. package/dist/agent-src/rules/docker-commands.md +0 -1
  96. package/dist/agent-src/rules/domain-adoption-policy.md +0 -1
  97. package/dist/agent-src/rules/domain-safety-disclaimer.md +0 -1
  98. package/dist/agent-src/rules/domain-safety-pii.md +0 -1
  99. package/dist/agent-src/rules/domain-safety-retention.md +0 -1
  100. package/dist/agent-src/rules/downstream-changes.md +0 -1
  101. package/dist/agent-src/rules/engineering-safety-floor.md +0 -1
  102. package/dist/agent-src/rules/external-code-graph-interop.md +0 -1
  103. package/dist/agent-src/rules/external-reference-deep-dive.md +0 -1
  104. package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -2
  105. package/dist/agent-src/rules/finance-safety-floor.md +0 -1
  106. package/dist/agent-src/rules/fix-what-you-see.md +6 -32
  107. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +0 -1
  108. package/dist/agent-src/rules/git-history-discipline.md +1 -2
  109. package/dist/agent-src/rules/guidelines.md +0 -1
  110. package/dist/agent-src/rules/history-discipline.md +0 -1
  111. package/dist/agent-src/rules/icon-consistency.md +0 -1
  112. package/dist/agent-src/rules/image-likeness-and-rights.md +0 -1
  113. package/dist/agent-src/rules/improve-before-implement.md +0 -1
  114. package/dist/agent-src/rules/invite-challenge.md +0 -1
  115. package/dist/agent-src/rules/laravel-routing.md +1 -2
  116. package/dist/agent-src/rules/laravel-translations.md +0 -1
  117. package/dist/agent-src/rules/legal-safety-floor.md +0 -1
  118. package/dist/agent-src/rules/lethal-trifecta-guard.md +0 -1
  119. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
  120. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +0 -1
  121. package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
  122. package/dist/agent-src/rules/media-governance-routing.md +1 -2
  123. package/dist/agent-src/rules/media-sync-ground-truth.md +0 -1
  124. package/dist/agent-src/rules/minimal-safe-diff.md +0 -1
  125. package/dist/agent-src/rules/missing-skill-recovery.md +0 -1
  126. package/dist/agent-src/rules/missing-tool-handling.md +0 -1
  127. package/dist/agent-src/rules/model-recommendation.md +0 -1
  128. package/dist/agent-src/rules/neighbour-precedence.md +64 -0
  129. package/dist/agent-src/rules/no-attribution-footers.md +0 -1
  130. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +0 -1
  131. package/dist/agent-src/rules/no-pr-progress-comments.md +0 -1
  132. package/dist/agent-src/rules/no-roadmap-references.md +0 -1
  133. package/dist/agent-src/rules/notes-first-reasoning.md +0 -1
  134. package/dist/agent-src/rules/onboarding-gate.md +0 -1
  135. package/dist/agent-src/rules/output-discipline.md +0 -1
  136. package/dist/agent-src/rules/package-ci-checks.md +0 -1
  137. package/dist/agent-src/rules/persona-governance.md +2 -3
  138. package/dist/agent-src/rules/php-coding.md +0 -1
  139. package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -1
  140. package/dist/agent-src/rules/preservation-guard.md +0 -1
  141. package/dist/agent-src/rules/provider-lifecycle-discipline.md +2 -3
  142. package/dist/agent-src/rules/question-not-instruction.md +0 -1
  143. package/dist/agent-src/rules/reviewer-awareness.md +0 -1
  144. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -1
  145. package/dist/agent-src/rules/roadmap-progress-sync.md +3 -6
  146. package/dist/agent-src/rules/role-mode-adherence.md +0 -1
  147. package/dist/agent-src/rules/rule-type-governance.md +0 -1
  148. package/dist/agent-src/rules/runtime-safety.md +0 -1
  149. package/dist/agent-src/rules/scale-discipline.md +0 -1
  150. package/dist/agent-src/rules/secret-vcs-guard.md +0 -1
  151. package/dist/agent-src/rules/security-sensitive-stop.md +0 -1
  152. package/dist/agent-src/rules/self-repair-loop.md +0 -1
  153. package/dist/agent-src/rules/senior-engineering-discipline.md +0 -1
  154. package/dist/agent-src/rules/session-canary.md +0 -1
  155. package/dist/agent-src/rules/settings-ask-protocol.md +5 -6
  156. package/dist/agent-src/rules/size-enforcement.md +0 -1
  157. package/dist/agent-src/rules/skill-improvement-trigger.md +2 -3
  158. package/dist/agent-src/rules/skill-quality.md +0 -1
  159. package/dist/agent-src/rules/slash-command-routing-policy.md +0 -1
  160. package/dist/agent-src/rules/source-confidentiality.md +0 -1
  161. package/dist/agent-src/rules/source-discovery-gate.md +0 -1
  162. package/dist/agent-src/rules/source-of-truth.md +0 -1
  163. package/dist/agent-src/rules/spreadsheet-source-quality.md +1 -2
  164. package/dist/agent-src/rules/strategy-safety-floor.md +0 -1
  165. package/dist/agent-src/rules/symfony-routing.md +1 -2
  166. package/dist/agent-src/rules/think-before-action.md +0 -1
  167. package/dist/agent-src/rules/token-budget-discipline.md +14 -48
  168. package/dist/agent-src/rules/token-efficiency.md +0 -1
  169. package/dist/agent-src/rules/token-optimizer-maintenance.md +0 -1
  170. package/dist/agent-src/rules/tool-safety.md +0 -1
  171. package/dist/agent-src/rules/ui-audit-gate.md +1 -2
  172. package/dist/agent-src/rules/untrusted-input-defense.md +0 -1
  173. package/dist/agent-src/rules/upstream-proposal.md +0 -1
  174. package/dist/agent-src/rules/user-interaction.md +0 -1
  175. package/dist/agent-src/rules/user-interrupt-priority.md +0 -1
  176. package/dist/agent-src/scripts/gate_budget.ts +47 -23
  177. package/dist/agent-src/scripts/gate_execute.ts +12 -4
  178. package/dist/agent-src/skills/accessibility-auditor/data/aria-patterns.csv +2 -0
  179. package/dist/agent-src/skills/accessibility-auditor/data/manifest.json +3 -3
  180. package/dist/agent-src/skills/ai-council/SKILL.md +7 -4
  181. package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +21 -11
  182. package/dist/agent-src/skills/ai-council/references/procedure.md +12 -6
  183. package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
  184. package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
  185. package/dist/agent-src/skills/canvas-design/SKILL.md +4 -2
  186. package/dist/agent-src/skills/command-routing/SKILL.md +3 -4
  187. package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +127 -139
  188. package/dist/agent-src/skills/corpus-grounding/ATTRIBUTION.md +39 -0
  189. package/dist/agent-src/skills/corpus-grounding/SKILL.md +8 -2
  190. package/dist/agent-src/skills/database/data/manifest.json +2 -2
  191. package/dist/agent-src/skills/database/data/query-tuning.csv +13 -13
  192. package/dist/agent-src/skills/design-intelligence/references/integration-mapping.md +13 -10
  193. package/dist/agent-src/skills/design-system-capture/SKILL.md +0 -3
  194. package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
  195. package/dist/agent-src/skills/fe-design/references/design-patterns.md +49 -2
  196. package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
  197. package/dist/agent-src/skills/frontend-render-security/SKILL.md +9 -0
  198. package/dist/agent-src/skills/git-workflow/SKILL.md +44 -44
  199. package/dist/agent-src/skills/git-workflow/references/branch-update.md +312 -0
  200. package/dist/agent-src/skills/git-workflow/references/commit-subject.md +205 -0
  201. package/dist/agent-src/skills/iconography/SKILL.md +4 -2
  202. package/dist/agent-src/skills/image-provider-routing/SKILL.md +16 -5
  203. package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
  204. package/dist/agent-src/skills/logo-generation/SKILL.md +12 -8
  205. package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
  206. package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
  207. package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
  208. package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
  209. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -2
  210. package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
  211. package/dist/agent-src/skills/svg-authoring/SKILL.md +318 -0
  212. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +3 -1
  213. package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
  214. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
  215. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  216. package/dist/agent-src/skills/wireframe/SKILL.md +5 -2
  217. package/dist/agent-src/templates/AGENTS.md +1 -1
  218. package/dist/agent-src/templates/agent-settings.md +46 -129
  219. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  220. package/dist/agent-src/templates/command.md +2 -2
  221. package/dist/agent-src/templates/roadmaps.md +6 -1
  222. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  223. package/dist/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  224. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  225. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  226. package/dist/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  227. package/dist/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  228. package/dist/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  229. package/dist/agent-src/templates/skill.md +1 -1
  230. package/dist/cli/commands/uiRender.js +201 -4
  231. package/dist/cli/commands/uiRenderAsset.js +1308 -0
  232. package/dist/cli/commands/uiRenderAssetCompare.js +752 -0
  233. package/dist/cli/commands/uiRenderAssetGrid.js +265 -0
  234. package/dist/cli/commands/uiRenderAssetGrounds.js +323 -0
  235. package/dist/cli/commands/uiRenderAssetIsolation.js +85 -0
  236. package/dist/cli/commands/uiRenderAssetTypes.js +145 -0
  237. package/dist/cli/main.js +47 -1
  238. package/dist/cli/registry.js +2 -1
  239. package/dist/cli-delegate/check_update_banner.js +195 -119
  240. package/dist/cli-delegate/{chunk-S4UMZNES.js → chunk-4DBG5K7M.js} +5 -5
  241. package/dist/cli-delegate/{chunk-TRI6DQZ6.js → chunk-5GPULQBE.js} +60 -42
  242. package/dist/cli-delegate/{chunk-JQVYKIZA.js → chunk-6SRJTYJS.js} +33 -177
  243. package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
  244. package/dist/cli-delegate/chunk-6YQC2HLF.js +415 -0
  245. package/dist/cli-delegate/{chunk-E4XIZDIB.js → chunk-7HKRE54K.js} +1 -64
  246. package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
  247. package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
  248. package/dist/cli-delegate/{chunk-NXEILF2K.js → chunk-F3QDG2GT.js} +481 -72
  249. package/dist/cli-delegate/{chunk-CQWX336L.js → chunk-G5VVIZRC.js} +3 -3
  250. package/dist/cli-delegate/{chunk-JY2I2DXV.js → chunk-H76PHZBI.js} +137 -60
  251. package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
  252. package/dist/cli-delegate/{chunk-LIYTLH6O.js → chunk-KXXWJTDO.js} +5 -10
  253. package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
  254. package/dist/cli-delegate/{chunk-S4YWNRKO.js → chunk-MDPPKQCQ.js} +34 -1
  255. package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
  256. package/dist/cli-delegate/{chunk-GKE7ZVFA.js → chunk-PWX7CKMD.js} +1 -1
  257. package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
  258. package/dist/cli-delegate/{chunk-RQNNW7IF.js → chunk-T7XSJSUQ.js} +433 -632
  259. package/dist/cli-delegate/{chunk-NQ7WT43P.js → chunk-TMWYUOK4.js} +75 -12
  260. package/dist/cli-delegate/{chunk-EEHDXSYD.js → chunk-WQWXGIWB.js} +12 -273
  261. package/dist/cli-delegate/{chunk-QLDHIPWR.js → chunk-XQTPXKFA.js} +1 -1
  262. package/dist/cli-delegate/cmd_analyze_session.js +223 -43
  263. package/dist/cli-delegate/cmd_brand_status.js +3 -2
  264. package/dist/cli-delegate/cmd_conformance.js +489 -238
  265. package/dist/cli-delegate/cmd_converge.js +3 -3
  266. package/dist/cli-delegate/cmd_doctor.js +15 -12
  267. package/dist/cli-delegate/cmd_doctor_neighbours.js +11 -4
  268. package/dist/cli-delegate/cmd_explain.js +43 -19
  269. package/dist/cli-delegate/cmd_export.js +10 -10
  270. package/dist/cli-delegate/cmd_git_convention.js +1851 -0
  271. package/dist/cli-delegate/cmd_handoff.js +40 -21
  272. package/dist/cli-delegate/cmd_mcp_available.js +3 -2
  273. package/dist/cli-delegate/cmd_migrate.js +3 -3
  274. package/dist/cli-delegate/cmd_packs_active.js +4 -3
  275. package/dist/cli-delegate/cmd_prune.js +10 -10
  276. package/dist/cli-delegate/cmd_route_audit.js +7 -7
  277. package/dist/cli-delegate/cmd_route_explain.js +5 -5
  278. package/dist/cli-delegate/cmd_session_recycle.js +9 -7
  279. package/dist/cli-delegate/cmd_settings_check.js +54 -7
  280. package/dist/cli-delegate/cmd_settings_get.js +18 -8
  281. package/dist/cli-delegate/cmd_settings_migrate.js +10 -10
  282. package/dist/cli-delegate/cmd_settings_set.js +1 -1
  283. package/dist/cli-delegate/cmd_sync.js +10 -10
  284. package/dist/cli-delegate/cmd_uninstall.js +10 -10
  285. package/dist/cli-delegate/cmd_update.js +7 -7
  286. package/dist/cli-delegate/cmd_upgrade.js +7 -7
  287. package/dist/cli-delegate/cmd_validate.js +10 -10
  288. package/dist/cli-delegate/cmd_versions.js +5 -5
  289. package/dist/cli-delegate/gate_budget.js +1 -1
  290. package/dist/cli-delegate/gate_execute.js +2 -2
  291. package/dist/cli-delegate/roadmap_gates.js +2 -2
  292. package/dist/discovery/deprecation-report.md +1 -1
  293. package/dist/discovery/discovery-manifest.json +171 -107
  294. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  295. package/dist/discovery/discovery-manifest.summary.md +7 -7
  296. package/dist/discovery/dormancy-report.md +1 -1
  297. package/dist/discovery/orphan-report.md +1 -1
  298. package/dist/discovery/packs.json +41 -22
  299. package/dist/discovery/trust-report.md +3 -3
  300. package/dist/discovery/workspaces.json +16 -11
  301. package/dist/hooks/dispatch.js +2520 -1924
  302. package/dist/hooks/dispatch.sha256 +1 -1
  303. package/dist/hooks/svg_rules.chunk.cjs +1626 -0
  304. package/dist/hooks/svg_rules.chunk.cjs.sha256 +1 -0
  305. package/dist/install/install.mjs +462 -431
  306. package/dist/install/installThinLayer.js +40 -12
  307. package/dist/install/installedRuleLinks.js +105 -19
  308. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  309. package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
  310. package/dist/mcp/registry-manifest.json +5 -5
  311. package/dist/mcp/server.json +2 -2
  312. package/dist/mcp/server.mjs +3063 -2160
  313. package/dist/router.json +1 -1
  314. package/dist/scripts/_lib/agent_settings.js +15 -120
  315. package/dist/scripts/_lib/compile_time_toggles.js +12 -21
  316. package/dist/scripts/_lib/git_convention.js +232 -0
  317. package/dist/scripts/_lib/global_deploy_inventory.js +730 -0
  318. package/dist/scripts/_lib/installed_layer.js +344 -18
  319. package/dist/scripts/_lib/package_root.js +68 -0
  320. package/dist/scripts/_lib/rule_law_section.js +1 -1
  321. package/dist/scripts/_lib/scan_scope.js +105 -0
  322. package/dist/scripts/_lib/settings_removed_keys.js +168 -0
  323. package/dist/scripts/_lib/svg_dom.js +284 -0
  324. package/dist/scripts/_lib/svg_geometry.js +477 -0
  325. package/dist/scripts/_lib/svg_motion.js +179 -0
  326. package/dist/scripts/_lib/svg_rules.js +1337 -0
  327. package/dist/scripts/_lib/svg_urls.js +67 -0
  328. package/dist/scripts/_lib/thin_rules.js +80 -3
  329. package/dist/scripts/lint_svg_asset.js +324 -0
  330. package/dist/server/app.js +2 -1
  331. package/dist/server/gitKeysGate.js +105 -0
  332. package/dist/server/routes/settings.js +67 -8
  333. package/dist/server/routes/wizard.js +4 -0
  334. package/dist/server/schemas/settings.js +23 -81
  335. package/dist/shared/skillRanking.js +30 -4
  336. package/dist/ui/assets/{index-Cwq4d0hX.js → index-C3djEJah.js} +2 -2
  337. package/dist/ui/index.html +1 -1
  338. package/docs/MIGRATION.md +72 -1
  339. package/docs/contracts/settings-classes.md +35 -65
  340. package/docs/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  341. package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  342. package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  343. package/docs/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  344. package/docs/guidelines/agent-infra/layered-settings.md +13 -1
  345. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  346. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  347. package/docs/guidelines/agent-infra/size-and-scope.md +36 -0
  348. package/docs/guidelines/design-antipatterns.md +1 -1
  349. package/docs/guidelines/php/git.md +15 -2
  350. package/package.json +4 -3
  351. package/src/agent-src/scripts/gate_budget.ts +47 -23
  352. package/src/agent-src/scripts/gate_execute.ts +12 -4
  353. package/src/agent-src/templates/AGENTS.md +1 -1
  354. package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  355. package/src/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  356. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  357. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  358. package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  359. package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  360. package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  361. package/src/config/agent-settings.template.yml +79 -312
  362. package/src/config/agents-paths.yml +16 -0
  363. package/src/config/assurance-capability-registry.json +7 -3
  364. package/src/config/ci-local-parity.yml +3 -0
  365. package/src/config/continuity-surface.json +3 -3
  366. package/src/config/discovery/packs.yml +17 -1
  367. package/src/config/evaluator-budgets.json +19 -6
  368. package/src/config/gate-coverage.yml +65 -23
  369. package/src/config/gate-violation-baselines.json +56 -16
  370. package/src/config/gitignore-block.txt +19 -0
  371. package/src/config/hook-bundle-budget.json +1 -1
  372. package/src/config/release-gate-locality.yml +2 -1
  373. package/src/config/routing-coverage-seed.json +55 -6
  374. package/src/config/rule-law-ceilings.json +12 -6
  375. package/src/config/rule-obligations.json +833 -0
  376. package/src/install/installThinLayer.ts +76 -10
  377. package/src/install/installedRuleLinks.ts +105 -17
  378. package/src/scripts/_cli/cmd_analyze_session.ts +9 -15
  379. package/src/scripts/_cli/cmd_conformance.ts +13 -2
  380. package/src/scripts/_cli/cmd_doctor.ts +10 -10
  381. package/src/scripts/_cli/cmd_doctor_neighbours.ts +133 -0
  382. package/src/scripts/_cli/cmd_explain.ts +72 -14
  383. package/src/scripts/_cli/cmd_git_convention.ts +637 -0
  384. package/src/scripts/_cli/cmd_settings_check.ts +66 -8
  385. package/src/scripts/_cli/cmd_settings_get.ts +18 -3
  386. package/src/scripts/_cli/doctor_execution.ts +72 -1
  387. package/src/scripts/_dispatch.bash +37 -2
  388. package/src/scripts/_lib/agent_settings.ts +15 -124
  389. package/src/scripts/_lib/blocked_by_marker.ts +1 -1
  390. package/src/scripts/_lib/compile_time_toggles.ts +12 -21
  391. package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
  392. package/src/scripts/_lib/git_base_ref.ts +92 -0
  393. package/src/scripts/_lib/git_convention.ts +291 -0
  394. package/src/scripts/_lib/git_convention_carrier.ts +389 -0
  395. package/src/scripts/_lib/git_convention_grammar.ts +246 -0
  396. package/src/scripts/_lib/git_convention_measure.ts +344 -0
  397. package/src/scripts/_lib/global_deploy_inventory.ts +74 -0
  398. package/src/scripts/_lib/graph_feeder_record.ts +236 -13
  399. package/src/scripts/_lib/installed_layer.ts +448 -23
  400. package/src/scripts/_lib/knowledge_global.ts +14 -1
  401. package/src/scripts/_lib/module_reach.ts +456 -0
  402. package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
  403. package/src/scripts/_lib/neighbour_tool_use.ts +8 -10
  404. package/src/scripts/_lib/ratification_artifact.ts +220 -1
  405. package/src/scripts/_lib/ratification_subject.ts +92 -0
  406. package/src/scripts/_lib/release_findings_ingest.ts +15 -7
  407. package/src/scripts/_lib/release_highlights.ts +5 -0
  408. package/src/scripts/_lib/rule_law_section.ts +1 -1
  409. package/src/scripts/_lib/rule_obligations.ts +205 -0
  410. package/src/scripts/_lib/self_repair.ts +1 -1
  411. package/src/scripts/_lib/settings_removed_keys.ts +173 -0
  412. package/src/scripts/_lib/svg_dom.ts +318 -0
  413. package/src/scripts/_lib/svg_geometry.ts +480 -0
  414. package/src/scripts/_lib/svg_motion.ts +208 -0
  415. package/src/scripts/_lib/svg_rules.ts +1453 -0
  416. package/src/scripts/_lib/svg_urls.ts +72 -0
  417. package/src/scripts/_lib/test_red_state.ts +5 -0
  418. package/src/scripts/_lib/thin_rules.ts +83 -3
  419. package/src/scripts/_lib/touched_file_quality.ts +142 -6
  420. package/src/scripts/_lib/verification_command.ts +59 -0
  421. package/src/scripts/_lib/verify_clause.ts +27 -17
  422. package/src/scripts/_lib/worker_budget.ts +1 -1
  423. package/src/scripts/adr/regenerate_index.ts +16 -1
  424. package/src/scripts/ai_council/config.ts +7 -7
  425. package/src/scripts/ai_council/modification_review.ts +100 -0
  426. package/src/scripts/ai_council/modification_review_questions.ts +90 -0
  427. package/src/scripts/ai_council/orchestrator.ts +5 -5
  428. package/src/scripts/ai_council/spend_gate.ts +18 -7
  429. package/src/scripts/ai_team/config.ts +11 -16
  430. package/src/scripts/audit_user_type_axis.ts +20 -8
  431. package/src/scripts/bench_ab_clone.ts +1 -2
  432. package/src/scripts/bench_concern_spawn_path.ts +129 -0
  433. package/src/scripts/bench_graph_feeder_latency.ts +584 -0
  434. package/src/scripts/check_agent_artifact_location.ts +36 -0
  435. package/src/scripts/check_branch_freshness.ts +147 -24
  436. package/src/scripts/check_enforcement_coverage.ts +130 -0
  437. package/src/scripts/check_evaluator_budgets.ts +4 -0
  438. package/src/scripts/check_finding_dispositions.ts +88 -25
  439. package/src/scripts/check_gate_coverage.ts +4 -3
  440. package/src/scripts/check_gate_reachability.ts +48 -1
  441. package/src/scripts/check_generator_sync.ts +48 -0
  442. package/src/scripts/check_hook_bundle_composition.ts +107 -0
  443. package/src/scripts/check_kernel_edit_ratified.ts +86 -6
  444. package/src/scripts/check_pack_size.ts +1 -1
  445. package/src/scripts/check_release_manifest_content.ts +189 -0
  446. package/src/scripts/check_standing_rule_delivery.ts +96 -0
  447. package/src/scripts/check_suppression_hygiene.ts +2 -5
  448. package/src/scripts/ci_settle.ts +42 -5
  449. package/src/scripts/classify_merge_risk.ts +320 -0
  450. package/src/scripts/closure_scan.ts +91 -1
  451. package/src/scripts/command_suggester/settings.ts +8 -108
  452. package/src/scripts/command_suggester/types.ts +4 -5
  453. package/src/scripts/consumer_matrix.ts +102 -0
  454. package/src/scripts/context_hygiene_hook.ts +13 -23
  455. package/src/scripts/cost/preflight.mjs +12 -1
  456. package/src/scripts/council_cli.ts +7 -7
  457. package/src/scripts/dispatch_r2_reviewer.ts +24 -11
  458. package/src/scripts/explain_run.ts +8 -13
  459. package/src/scripts/generate_git_convention_grammar.ts +127 -0
  460. package/src/scripts/generate_host_cost_table.ts +20 -3
  461. package/src/scripts/handoff_context_hook.ts +86 -37
  462. package/src/scripts/hook_manifest.json +1 -1
  463. package/src/scripts/hook_manifest.yaml +25 -6
  464. package/src/scripts/hooks/block_config_weakening.ts +48 -5
  465. package/src/scripts/hooks/block_plumbing_writes.ts +8 -4
  466. package/src/scripts/hooks/block_speaking_inbox_dir.ts +16 -1
  467. package/src/scripts/hooks/concern_registry.ts +2 -0
  468. package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
  469. package/src/scripts/hooks/design_pass_hook.ts +157 -3
  470. package/src/scripts/hooks/evidence_independence.ts +12 -4
  471. package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
  472. package/src/scripts/hooks/push_settle_hook.ts +4 -3
  473. package/src/scripts/hooks/rule_inject_hook.ts +44 -3
  474. package/src/scripts/hooks/state_io.ts +8 -4
  475. package/src/scripts/hooks/svg_obligation.ts +497 -0
  476. package/src/scripts/hooks/svg_rules_loader.ts +133 -0
  477. package/src/scripts/hooks/telemetry_usage_hook.ts +7 -46
  478. package/src/scripts/hooks/turn_end_gate_hook.ts +6 -3
  479. package/src/scripts/install-hooks.sh +42 -14
  480. package/src/scripts/install.ts +7 -31
  481. package/src/scripts/lint_blocker_citations.ts +198 -0
  482. package/src/scripts/lint_consolidation_lineage.ts +6 -3
  483. package/src/scripts/lint_design_quality.ts +60 -12
  484. package/src/scripts/lint_evidence_artifacts.ts +9 -0
  485. package/src/scripts/lint_hook_concern_budget.ts +10 -21
  486. package/src/scripts/lint_motion_authority_drift.ts +27 -0
  487. package/src/scripts/lint_pack_boundaries.ts +406 -28
  488. package/src/scripts/lint_roadmap_blockers.ts +282 -29
  489. package/src/scripts/lint_roadmap_complexity.ts +4 -2
  490. package/src/scripts/lint_rule_law_section.ts +151 -21
  491. package/src/scripts/lint_rule_skill_pack_reach.ts +17 -0
  492. package/src/scripts/lint_settings_classes.ts +1 -1
  493. package/src/scripts/lint_svg_asset.ts +365 -0
  494. package/src/scripts/lint_ticked_unmet_criteria.ts +165 -0
  495. package/src/scripts/lint_workflow_security.ts +12 -1
  496. package/src/scripts/measure_skill_ranker_baseline.ts +5 -0
  497. package/src/scripts/model_rule_injection.ts +3 -3
  498. package/src/scripts/onboarding_gate_hook.ts +7 -6
  499. package/src/scripts/print_required_checks.ts +15 -3
  500. package/src/scripts/probe_host_compliance.ts +33 -5
  501. package/src/scripts/probe_turnaround.ts +183 -3
  502. package/src/scripts/ratification_header.ts +77 -0
  503. package/src/scripts/refusal_envelope.ts +138 -0
  504. package/src/scripts/release_publication.ts +29 -3
  505. package/src/scripts/report_dispatch_import_closure.ts +76 -0
  506. package/src/scripts/report_installed_rule_links.ts +118 -1
  507. package/src/scripts/report_module_reach.ts +212 -0
  508. package/src/scripts/report_obligation_mechanism.ts +16 -18
  509. package/src/scripts/report_parked_blockers.ts +222 -0
  510. package/src/scripts/report_required_checks_drift.ts +196 -0
  511. package/src/scripts/report_skill_ranker_confusion.ts +103 -2
  512. package/src/scripts/report_standing_payload_by_host.ts +1 -1
  513. package/src/scripts/routing_doctor.ts +2 -2
  514. package/src/scripts/schemas/agent-settings.schema.json +17 -31
  515. package/src/scripts/schemas/command.schema.json +1 -1
  516. package/src/scripts/schemas/skill.schema.json +1 -1
  517. package/src/scripts/self_review_gate.ts +39 -2
  518. package/src/scripts/skill_tools/score_skill_relevance.ts +28 -19
  519. package/src/scripts/sync_pr_branch.ts +403 -132
  520. package/src/scripts/trigger_eval_grandfather.json +0 -16
  521. package/src/server/schemas/settings.ts +33 -177
  522. package/src/shared/skillRanking.ts +53 -4
  523. package/dist/cli-delegate/chunk-NYX3L2PZ.js +0 -99
  524. package/src/scripts/_lib/config_chain.ts +0 -477
  525. package/src/scripts/_lib/conformance_report.ts +0 -403
  526. package/src/scripts/_lib/eval_discrimination.ts +0 -95
  527. package/src/scripts/_lib/evaluator_promotion.ts +0 -225
  528. package/src/scripts/_lib/file_slicer.ts +0 -117
  529. package/src/scripts/_lib/legacy_boundary_map.ts +0 -228
  530. package/src/scripts/_lib/minimality_tiebreak.ts +0 -168
  531. package/src/scripts/_lib/overbuild_lens_contract.ts +0 -196
  532. package/src/scripts/_lib/role_split.ts +0 -338
@@ -0,0 +1,168 @@
1
+ /**
2
+ * The registry of DELETED settings keys, and the once-per-run notice a leftover
3
+ * value gets. Extracted from `agent_settings.ts`, which sits at the 1500-line
4
+ * source ceiling — every retirement batch adds entries here, and here they cost
5
+ * no ratchet. `agent_settings.ts` re-exports `REMOVED_KEYS` so existing
6
+ * importers (the loader, `lint_settings_classes`) are unchanged.
7
+ */
8
+ /**
9
+ * Settings keys this package has DELETED. A leftover value from an older
10
+ * install is ignored — never applied by any reader — and surfaced with ONE
11
+ * deprecation line per key per process run (stderr; the exit code never
12
+ * changes).
13
+ *
14
+ * The map carries a per-key REASON rather than one shared sentence, because
15
+ * the list now spans more than one deletion doctrine and a single blanket
16
+ * phrase would mis-attribute every future entry. A reader who hits the line
17
+ * should learn why the key went, not just that it did.
18
+ *
19
+ * `subagents.*` — the always-on-orchestration doctrine
20
+ * (road-to-always-on-orchestration Phase 1): the layer has no per-layer
21
+ * on/off setting any more. `ai_team.enabled` joined in Step 1.3 — the
22
+ * `/team` family's availability is a codex-CLI/auth FACT
23
+ * (`src/scripts/ai_team/availability.ts`), not a flag; the `ai_team` config
24
+ * loader (`src/scripts/ai_team/config.ts`) separately accepts a leftover
25
+ * `enabled` key without failing closed, so this warning is the only surfaced
26
+ * signal of that deletion.
27
+ *
28
+ * `hooks.turn_end_gate.*` — the turn-end gate is always armed (2026-08-12).
29
+ * A default-off safety gate cannot soak, so the switch protecting the soak
30
+ * made the soak impossible; whether the gate fires is now decided by each
31
+ * detector's own trigger conditions. See `turn_end_gate_hook.ts` § "Always
32
+ * armed".
33
+ *
34
+ * The five `derivable` leaves below (2026-08-12, road-to-zero-settings Phase
35
+ * 2.1) are a different case from every entry above them, and the difference is
36
+ * the whole safety argument: no code path ever *consulted* them. Each appeared
37
+ * in the template, the schema and the reference page, and several in the setup
38
+ * wizard, while the decision they looked like they governed was taken
39
+ * elsewhere. A key nothing reads cannot change a default by leaving — so this
40
+ * is the one deletion batch that needs no replacement mechanism, only the
41
+ * per-key statement of what already decides.
42
+ *
43
+ * A sixth unread key, `screenshots.data_bearing_gate`, was found in the same
44
+ * pass and deliberately NOT deleted — it is `consent`, and the open question is
45
+ * whether the repair is to build its missing reader or to delete a promise a
46
+ * Hard Floor can never honour. See `settings-classes.md` § The six unread keys.
47
+ *
48
+ * `worktrees.mode` (2026-08-13, ADR-229) is a third doctrine again: not
49
+ * always-on, not unread. It WAS read, and the reader honoured all three values —
50
+ * the deletion says the decision was never the agent's to make. `ask` bought a
51
+ * round trip per spawn, `on` let the agent start parallel work unprompted, and
52
+ * `off` described the wanted behavior, so `off` became the hardcoded rule and
53
+ * the switch went. What decides instead is the user's own sentence in the chat.
54
+ *
55
+ * The 2026-10-09 batch (road-to-settings-classes-derivable-surface-stagnation
56
+ * Phase 2) is a fourth doctrine: `derivable` keys whose shipped default is the
57
+ * only behavior the package supports. Each WAS read — by code or by rule and
58
+ * command prose — and every reader was rewritten to state the old default as
59
+ * fixed behavior in the same change, so retiring the key changes no effective
60
+ * default; what a consumer who had set a non-default value loses is named by
61
+ * the reason.
62
+ *
63
+ * Every reason string must name what decides INSTEAD, never just "removed".
64
+ * Exported so `lint_settings_classes` can check the deletion side of the
65
+ * surface: a reason that names no replacement, or an entry whose key is live in
66
+ * the template again, is a contradiction the loader itself cannot notice.
67
+ */
68
+ export const REMOVED_KEYS = new Map([
69
+ ['subagents.enabled', 'always-on orchestration'],
70
+ ['subagents.auto', 'always-on orchestration'],
71
+ ['subagents.host_capabilities', 'always-on orchestration'],
72
+ ['subagents.budget_routing', 'always-on orchestration'],
73
+ ['ai_team.enabled', 'always-on orchestration'],
74
+ ['hooks.turn_end_gate.enabled', 'the turn-end gate is always armed'],
75
+ ['hooks.turn_end_gate.promissory', 'the turn-end gate is always armed'],
76
+ ['hooks.turn_end_gate.language', 'the turn-end gate is always armed'],
77
+ ['hooks.turn_end_gate.verification', 'the turn-end gate is always armed'],
78
+ ['telegraph.speak_scope', 'the rule body states its own scope; compile_time_toggles decides whether the rule ships'],
79
+ ['chat_history.max_size_kb', 'the rotate command takes --max-kb from argv; session-count pruning bounds the file'],
80
+ ['chat_history.on_overflow', 'the overflow mode comes from the rotate command --mode argv'],
81
+ ['quality.wait_for_remote_ci', 'whether to poll follows from the push plus a detectable remote pipeline'],
82
+ ['legal_review_prep.consented_at', 'the provenance sidecar settings:set writes and consentVerdict reads'],
83
+ ['worktrees.mode', 'the user asking for a worktree in the chat; creation is instruction-only and hardcoded'],
84
+ // 2026-10-09 — output and tone
85
+ ['personal.minimal_output', 'direct-answers Iron Law 3 mandates terse replies; there is no verbose mode'],
86
+ ['personal.play_by_play', 'direct-answers: no narration unless the user asks for it in the turn'],
87
+ ['personal.pr_comment_bot_icon', 'no-decorative-emojis-in-git-surfaces forbids the 🤖 prefix'],
88
+ ['verbosity.intent_announcements', 'direct-answers: act and emit the result, no "Let me…" openers'],
89
+ ['verbosity.preview_artifacts', 'generated content is used directly; preview-on-error and the Iron-Law gates decide when a preview shows'],
90
+ ['verbosity.routine_confirmations', 'the no-cheap-questions Pre-Send Self-Check; Iron-Law gates always ask'],
91
+ ['verbosity.post_action_reports', 'direct-answers Iron Law 3: a one-line confirmation and one end-summary'],
92
+ ['telegraph.speak', 'the telegraph-speak predicate in compile_time_toggles.ts; the bench verdict is package-level (ADR telegraph/0002)'],
93
+ ['tokens.rich_skills', "the skill's own token_budget_class: rich plus the lint_token_budget_discipline ceiling"],
94
+ // 2026-10-09 — reasoning protocol switches
95
+ ['reasoning.auto_gate', 'the RDP gate task signal plus the host self-assessment in rdp-gate.md'],
96
+ ['reasoning.components.orchestrator', 'the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off'],
97
+ ['reasoning.components.notes_first', 'the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off'],
98
+ ['reasoning.components.grounding', 'the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off'],
99
+ ['reasoning.components.intent', 'the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off'],
100
+ ['reasoning.components.complexity_first', 'the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off'],
101
+ ['reasoning.components.verifier_default', 'the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off'],
102
+ ['reasoning.components.prediction_tracking', 'the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off'],
103
+ ['reasoning.components.decision_ledger', 'the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off'],
104
+ ['reasoning.components.uncertainty_budget', 'the RDP gate task and host signals decide per component; reasoning.enabled stays the hard off'],
105
+ // 2026-10-09 — roadmap cadence
106
+ ['roadmap.skip_pre_run_gate', 'the command name names the scope; only an ambiguous roadmap or an unresolvable conflict shows the gate'],
107
+ ['roadmap.dashboard_regen_cadence', 'a fixed cadence: every 5th closed step, every phase boundary, reply end and any file-shape touch'],
108
+ // 2026-10-09 — command suggestion and PR creation
109
+ ['commands.auto_detect', "an orchestrator's own auto_detect front-matter and the --no-auto-detect flag"],
110
+ ['commands.suggestion.enabled', 'the suggester match-score floor and cooldown; /command-suggestion-off silences one conversation'],
111
+ ['commands.suggestion.confidence_floor', "the suggester's fixed 0.6 floor; a command's own suggestion frontmatter can tighten it"],
112
+ ['commands.suggestion.cooldown_seconds', "the suggester's fixed 600-second cooldown; a command's own suggestion frontmatter can lengthen it"],
113
+ ['commands.suggestion.max_options', 'the fixed cap of 4 suggestions plus the always-present as-is option'],
114
+ ['commands.create_pr.api_examples', "/create-pr's grounding rule: an example only from a real source, otherwise a one-line pointer"],
115
+ ['commands.create_pr.ui_paths', "/create-pr's light frontend heuristic, which fails open"],
116
+ ['commands.create_pr.api_paths', "/create-pr's light API-endpoint heuristic, which fails open"],
117
+ // 2026-10-09 — memory and knowledge sharing
118
+ ['memory.cadence', 'a fixed cadence: the memory line renders whenever a memory type was asked; memory.visibility: off still silences it'],
119
+ ['memory.review_threshold', "/memory load's fixed preview threshold of 10 unreviewed intake signals"],
120
+ ['knowledge.global_sharing.redaction.enabled', 'the write-time redaction scan, which always runs before a card goes global'],
121
+ ['knowledge.global_sharing.redaction.halt_on_trigger', 'the redaction gate, which always halts on a confidential-pattern hit'],
122
+ ['knowledge.global_sharing.auto_promote_threshold', 'the fixed two-repo sighting count that triggers a promotion suggestion'],
123
+ ['knowledge.global_sharing.freshness.hypothesis_after_days', "the card's age over last_verified against the fixed 90-day lead-only window"],
124
+ ['knowledge.global_sharing.freshness.stale_after_days', "the card's age over last_verified against the fixed 180-day skip window"],
125
+ // 2026-10-09 — hooks and engine
126
+ ['hooks.concern_budget.max_per_event', "the concern-budget gate's own constant of 8 per (platform, event) cell"],
127
+ ['hooks.concern_budget.hard_fail', "the concern-budget gate's --strict argv; without it the gate warns"],
128
+ ['decision_engine.surface_traces', 'nothing: the per-phase decision trace stays off, the old default'],
129
+ ['decision_engine.on_block_fallback', 'the fail-safe: an on_block ask that times out always stops'],
130
+ ['explain.enable_last', 'the presence of a work-state trace; explain last always renders it'],
131
+ // 2026-10-09 — remaining
132
+ ['project.pr_template', '/create-pr, which reads .github/pull_request_template.md'],
133
+ ['pipelines.skill_improvement', 'the skill-improvement-trigger rule; the capture is a proposal the user confirms'],
134
+ ['consistency.cross_source', 'the cross-source-consistency rule, always on; batching and the no-cheap-questions floor bound the noise'],
135
+ ['subagents.downshift', 'the model_tier each sub-task declares; downshift is always on'],
136
+ ['ai_team.suppress_setup_hint', 'nothing: the one-line team-mode setup hint is always shown'],
137
+ ]);
138
+ /** Keys already warned about in THIS process — the "once per run" dedupe. */
139
+ const _warnedRemovedKeys = new Set();
140
+ /** Read one dotted path out of a merged settings tree; `undefined` when absent. */
141
+ function _readDotted(root, dotted) {
142
+ let node = root;
143
+ for (const part of dotted.split('.')) {
144
+ if (typeof node !== 'object' || node === null || Array.isArray(node)) {
145
+ return undefined;
146
+ }
147
+ node = node[part];
148
+ }
149
+ return node;
150
+ }
151
+ /**
152
+ * Warn once per process, on stderr, for every {@link REMOVED_KEYS} entry still
153
+ * present in a resolved settings tree. Never throws, never changes what the
154
+ * caller does with `merged` — a pure notification side effect.
155
+ */
156
+ export function warnRemovedKeys(merged) {
157
+ for (const [key, reason] of REMOVED_KEYS) {
158
+ if (_warnedRemovedKeys.has(key)) {
159
+ continue;
160
+ }
161
+ if (_readDotted(merged, key) === undefined) {
162
+ continue;
163
+ }
164
+ _warnedRemovedKeys.add(key);
165
+ process.stderr.write(`${key} was removed (${reason}); ignored.\n`);
166
+ }
167
+ }
168
+ //# sourceMappingURL=settings_removed_keys.js.map
@@ -0,0 +1,284 @@
1
+ /**
2
+ * svg_dom — a dependency-free XML well-formedness parser, and the tree it
3
+ * builds.
4
+ *
5
+ * Step 3.1 of `road-to-svg-review-followups`, amending step 1.1 of
6
+ * `road-to-svg-with-a-witness`. Review claim C11: a regex cannot prove nesting
7
+ * or resolve a reference, and the alternatives were all refused for reasons
8
+ * that still hold — `package.json`'s runtime dependencies carry no XML parser,
9
+ * `happy-dom` is dev-only, the three vendored tree-sitter grammars are php,
10
+ * typescript and javascript, and Playwright is absent in a consumer, so the
11
+ * browser cannot carry a static layer. The remaining option is to write one,
12
+ * which is what `lint_design_quality` already does for its own surface.
13
+ *
14
+ * WHAT IT IS. One scanner over the bytes, producing every node kind an SVG
15
+ * carries — elements with their attributes, comments, CDATA sections,
16
+ * processing instructions, DOCTYPEs and text — each with a line and a column,
17
+ * assembled into a tree with parent links, plus a list of well-formedness
18
+ * errors.
19
+ *
20
+ * TWO SCANNERS, NOT ONE, and this header used to claim otherwise.
21
+ * `parseElements` in `svg_rules.ts` is an independent scanner over the same
22
+ * bytes, so the two CAN disagree about what a file contains — finding 3 of the
23
+ * third completion review of this change found a case where they did, and the
24
+ * disagreement produced an error-severity false positive. That one is fixed
25
+ * where it was (the prolog), but the general claim was false and is not
26
+ * restored: a reader deciding whether a fix here also lands there must check,
27
+ * not assume. Merging them is a larger change than the finding asked for and
28
+ * is not attempted under a remediation.
29
+ *
30
+ * WHAT IT IS NOT. Not a validating parser, not namespace-aware beyond keeping
31
+ * the prefix in the name, and it does not expand entities. It reports that a
32
+ * file is not well-formed; it does not report which schema it violates.
33
+ *
34
+ * WHY A FILE THAT IS NOT WELL-FORMED IS A FINDING RATHER THAN A SKIPPED FILE.
35
+ * A skipped file reads as a clean one in every count that matters, and the
36
+ * shape this exists to catch — `<g><path></g></path>` — is exactly the shape a
37
+ * flat element list cannot see: both tags are present, both are spelled
38
+ * correctly, and the document is nonetheless not a tree.
39
+ */
40
+ /** 1-based line and column of an offset. Built once per parse. */
41
+ function positions(content) {
42
+ const starts = [0];
43
+ for (let i = 0; i < content.length; i += 1) {
44
+ if (content[i] === '\n')
45
+ starts.push(i + 1);
46
+ }
47
+ return (offset) => {
48
+ // Binary search for the last line start at or before `offset`.
49
+ let lo = 0;
50
+ let hi = starts.length - 1;
51
+ while (lo < hi) {
52
+ const mid = (lo + hi + 1) >> 1;
53
+ if (starts[mid] <= offset)
54
+ lo = mid;
55
+ else
56
+ hi = mid - 1;
57
+ }
58
+ return { line: lo + 1, column: offset - starts[lo] + 1 };
59
+ };
60
+ }
61
+ /**
62
+ * End of the tag, honouring quoted attribute values that may contain `>`.
63
+ *
64
+ * Exported because `svg_rules.parseElements` scans the same bytes and had its
65
+ * own byte-identical copy — finding 9 of the third completion review, which
66
+ * also noted that BOTH copies ship in the per-`.svg`-write hook chunk. Two
67
+ * scanners is a fact this file's header now states plainly; two copies of
68
+ * their shared primitives is not a consequence of it.
69
+ */
70
+ export function tagEnd(content, from) {
71
+ let quote = null;
72
+ for (let i = from + 1; i < content.length; i += 1) {
73
+ const ch = content[i];
74
+ if (quote !== null) {
75
+ if (ch === quote)
76
+ quote = null;
77
+ continue;
78
+ }
79
+ if (ch === '"' || ch === "'") {
80
+ quote = ch;
81
+ continue;
82
+ }
83
+ if (ch === '>')
84
+ return i;
85
+ }
86
+ return -1;
87
+ }
88
+ /** Attributes of one tag, lowercased keys. Shared with `svg_rules` — see `tagEnd`. */
89
+ export function attrsOf(raw) {
90
+ const attrs = {};
91
+ const re = /([A-Za-z_:][\w.:-]*)\s*=\s*("([^"]*)"|'([^']*)')/g;
92
+ let m;
93
+ while ((m = re.exec(raw)) !== null) {
94
+ const key = (m[1] ?? '').toLowerCase();
95
+ const value = m[3] ?? m[4] ?? '';
96
+ attrs[key] = value.replace(/&amp;/g, '&');
97
+ }
98
+ return attrs;
99
+ }
100
+ /**
101
+ * Parse one document.
102
+ *
103
+ * Never throws: a malformed file produces whatever tree could be built plus
104
+ * the errors that explain it. A parser that threw would make an unparseable
105
+ * file indistinguishable from a crash, and the caller's job is to REPORT the
106
+ * file, not to fall over on it.
107
+ */
108
+ export function parseDocument(content) {
109
+ const at = positions(content);
110
+ const roots = [];
111
+ const elements = [];
112
+ const errors = [];
113
+ const stack = [];
114
+ const make = (kind, start, name = '', value = '', attrs = {}) => {
115
+ const { line, column } = at(start);
116
+ return { kind, name, attrs, line, column, start, value, children: [], parent: null };
117
+ };
118
+ const append = (node) => {
119
+ const parent = stack[stack.length - 1];
120
+ if (parent === undefined) {
121
+ roots.push(node);
122
+ }
123
+ else {
124
+ node.parent = parent;
125
+ parent.children.push(node);
126
+ }
127
+ };
128
+ let i = 0;
129
+ while (i < content.length) {
130
+ const lt = content.indexOf('<', i);
131
+ if (lt === -1) {
132
+ const rest = content.slice(i);
133
+ if (rest.trim() !== '')
134
+ append(make('text', i, '', rest));
135
+ break;
136
+ }
137
+ if (lt > i) {
138
+ const text = content.slice(i, lt);
139
+ if (text.trim() !== '')
140
+ append(make('text', i, '', text));
141
+ }
142
+ if (content.startsWith('<!--', lt)) {
143
+ const end = content.indexOf('-->', lt + 4);
144
+ if (end === -1) {
145
+ const p = at(lt);
146
+ errors.push({ message: 'unterminated comment', line: p.line, column: p.column });
147
+ append(make('comment', lt, '', content.slice(lt + 4)));
148
+ break;
149
+ }
150
+ append(make('comment', lt, '', content.slice(lt + 4, end)));
151
+ i = end + 3;
152
+ continue;
153
+ }
154
+ if (content.startsWith('<![CDATA[', lt)) {
155
+ const end = content.indexOf(']]>', lt + 9);
156
+ if (end === -1) {
157
+ const p = at(lt);
158
+ errors.push({ message: 'unterminated CDATA section', line: p.line, column: p.column });
159
+ append(make('cdata', lt, '', content.slice(lt + 9)));
160
+ break;
161
+ }
162
+ append(make('cdata', lt, '', content.slice(lt + 9, end)));
163
+ i = end + 3;
164
+ continue;
165
+ }
166
+ if (content.startsWith('<?', lt)) {
167
+ const end = content.indexOf('?>', lt + 2);
168
+ if (end === -1) {
169
+ // Finding 11 of this change's completion review: this and the
170
+ // declaration below swallowed the rest of the document into one
171
+ // node and returned cleanly, so a file ending in
172
+ // `<?xml version="1.0"` read as WELL-FORMED — a skip, under a
173
+ // contract whose whole point is that a file which does not
174
+ // parse is a finding rather than a skipped file.
175
+ const p = at(lt);
176
+ errors.push({ message: 'unterminated processing instruction', line: p.line, column: p.column });
177
+ }
178
+ const stop = end === -1 ? content.length : end + 2;
179
+ append(make('pi', lt, '', content.slice(lt + 2, end === -1 ? content.length : end)));
180
+ i = stop;
181
+ continue;
182
+ }
183
+ if (content.startsWith('<!', lt)) {
184
+ // A DOCTYPE may carry a bracketed internal subset; it ends after it.
185
+ const bracket = content.indexOf('[', lt);
186
+ const close = content.indexOf('>', lt);
187
+ let stop;
188
+ if (bracket !== -1 && close !== -1 && bracket < close) {
189
+ const endBracket = content.indexOf(']', bracket);
190
+ const after = endBracket === -1 ? close : content.indexOf('>', endBracket);
191
+ stop = after === -1 ? content.length : after + 1;
192
+ }
193
+ else {
194
+ stop = close === -1 ? content.length : close + 1;
195
+ }
196
+ if (close === -1) {
197
+ const p = at(lt);
198
+ errors.push({ message: 'unterminated declaration', line: p.line, column: p.column });
199
+ }
200
+ append(make('doctype', lt, '', content.slice(lt + 2, Math.max(lt + 2, stop - 1))));
201
+ i = stop;
202
+ continue;
203
+ }
204
+ const gt = tagEnd(content, lt);
205
+ if (gt === -1) {
206
+ const p = at(lt);
207
+ errors.push({ message: 'unterminated tag', line: p.line, column: p.column });
208
+ break;
209
+ }
210
+ const raw = content.slice(lt, gt + 1);
211
+ const nameMatch = /^<\/?\s*([A-Za-z_][\w.:-]*)/.exec(raw);
212
+ if (!nameMatch) {
213
+ // Finding 11, third case: a `<` that opens something with no legal
214
+ // element name is malformed markup, not whitespace. Skipping it
215
+ // silently is the same skip the other two were.
216
+ const p = at(lt);
217
+ errors.push({ message: `"${raw.slice(0, 24)}" is not a tag`, line: p.line, column: p.column });
218
+ i = gt + 1;
219
+ continue;
220
+ }
221
+ const name = (nameMatch[1] ?? '').toLowerCase();
222
+ const closing = raw.startsWith('</');
223
+ const selfClosing = raw.endsWith('/>');
224
+ if (closing) {
225
+ const open = stack[stack.length - 1];
226
+ const p = at(lt);
227
+ if (open === undefined) {
228
+ errors.push({ message: `closing tag </${name}> with no open element`, line: p.line, column: p.column });
229
+ }
230
+ else if (open.name !== name) {
231
+ // The shape a flat element list cannot see. Reported against
232
+ // the CLOSING tag, which is where a reader looking at the file
233
+ // sees the problem.
234
+ errors.push({
235
+ message: `closing tag </${name}> does not match the open <${open.name}> (line ${String(open.line)})`,
236
+ line: p.line,
237
+ column: p.column,
238
+ });
239
+ // Recover by popping to the matching open element WHEN THERE
240
+ // IS ONE, so a single mistake does not cascade into an error
241
+ // per remaining tag.
242
+ //
243
+ // When there is none, pop NOTHING. Finding 2 of the fourth
244
+ // completion review: the `else stack.pop()` detached a
245
+ // perfectly good ancestor to pay for a stray tag that never
246
+ // opened anything — a file whose `</g>` has no `<g>` lost its
247
+ // `<svg>` from the stack, so the real `</svg>` at the end then
248
+ // had no open element and the file collected a SECOND error it
249
+ // had not earned. Cascading is exactly what this branch exists
250
+ // to prevent, and the unmatched case was the one where it did
251
+ // the cascading itself. A closing tag with no match is a stray
252
+ // tag: report it and carry on.
253
+ const idx = stack.map((n) => n.name).lastIndexOf(name);
254
+ if (idx !== -1)
255
+ stack.length = idx;
256
+ }
257
+ else {
258
+ stack.pop();
259
+ }
260
+ i = gt + 1;
261
+ continue;
262
+ }
263
+ const node = make('element', lt, name, '', attrsOf(raw));
264
+ append(node);
265
+ elements.push(node);
266
+ if (!selfClosing)
267
+ stack.push(node);
268
+ i = gt + 1;
269
+ }
270
+ for (const unclosed of stack) {
271
+ errors.push({
272
+ message: `<${unclosed.name}> is never closed`,
273
+ line: unclosed.line,
274
+ column: unclosed.column,
275
+ });
276
+ }
277
+ return { roots, elements, errors };
278
+ }
279
+ // `ancestors` and `documentElement` used to live here. Finding 11 of the third
280
+ // completion review: both were exported, called by nothing, and bundled into
281
+ // the per-`.svg`-write dispatch chunk — own-orphans of this same diff, which
282
+ // `minimal-safe-diff` says the diff that made them removes. `XmlNode.parent`
283
+ // is the primitive either would have been built on and it is still here.
284
+ //# sourceMappingURL=svg_dom.js.map