@event4u/agent-config 14.22.0 → 15.0.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 (557) 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 +333 -356
  5. package/README.md +1 -1
  6. package/dist/agent-src/commands/agent-handoff.md +8 -7
  7. package/dist/agent-src/commands/agents/init.md +1 -1
  8. package/dist/agent-src/commands/agents/user/accept.md +4 -4
  9. package/dist/agent-src/commands/agents/user/delete.md +2 -2
  10. package/dist/agent-src/commands/agents/user/init.md +3 -3
  11. package/dist/agent-src/commands/agents/user/review.md +3 -3
  12. package/dist/agent-src/commands/agents/user/show.md +3 -3
  13. package/dist/agent-src/commands/agents/user/update.md +2 -2
  14. package/dist/agent-src/commands/agents/user.md +6 -6
  15. package/dist/agent-src/commands/analytics/prune.md +1 -1
  16. package/dist/agent-src/commands/analytics/show.md +2 -2
  17. package/dist/agent-src/commands/analyze/decision.md +2 -2
  18. package/dist/agent-src/commands/analyze/inbox.md +5 -5
  19. package/dist/agent-src/commands/analyze/incident.md +3 -3
  20. package/dist/agent-src/commands/analyze/near-miss.md +3 -3
  21. package/dist/agent-src/commands/analyze/postmortem.md +4 -4
  22. package/dist/agent-src/commands/analyze/premortem.md +2 -2
  23. package/dist/agent-src/commands/analyze.md +2 -2
  24. package/dist/agent-src/commands/bug/fix.md +1 -1
  25. package/dist/agent-src/commands/bug/investigate.md +2 -2
  26. package/dist/agent-src/commands/cost/profile.md +3 -3
  27. package/dist/agent-src/commands/design.md +1 -1
  28. package/dist/agent-src/commands/feature/explore.md +1 -1
  29. package/dist/agent-src/commands/feature/plan.md +2 -2
  30. package/dist/agent-src/commands/feature/roadmap.md +2 -2
  31. package/dist/agent-src/commands/ghostwriter/fetch.md +4 -4
  32. package/dist/agent-src/commands/ghostwriter/list.md +1 -1
  33. package/dist/agent-src/commands/ghostwriter/show.md +1 -1
  34. package/dist/agent-src/commands/ghostwriter/write.md +9 -9
  35. package/dist/agent-src/commands/humanize.md +6 -6
  36. package/dist/agent-src/commands/jira-ticket.md +1 -1
  37. package/dist/agent-src/commands/judge/solo.md +1 -1
  38. package/dist/agent-src/commands/judge.md +1 -1
  39. package/dist/agent-src/commands/knowledge/cross-repo.md +1 -1
  40. package/dist/agent-src/commands/knowledge/forget.md +1 -1
  41. package/dist/agent-src/commands/knowledge/ingest.md +2 -2
  42. package/dist/agent-src/commands/knowledge/list.md +1 -1
  43. package/dist/agent-src/commands/memory/add.md +3 -3
  44. package/dist/agent-src/commands/memory/load.md +4 -4
  45. package/dist/agent-src/commands/memory/mine-session.md +1 -1
  46. package/dist/agent-src/commands/memory/promote.md +4 -4
  47. package/dist/agent-src/commands/memory/propose.md +2 -2
  48. package/dist/agent-src/commands/mode.md +5 -5
  49. package/dist/agent-src/commands/post-as/ghostwriter.md +3 -3
  50. package/dist/agent-src/commands/post-as/me.md +7 -7
  51. package/dist/agent-src/commands/pr/create.md +1 -1
  52. package/dist/agent-src/commands/pr/merge.md +48 -39
  53. package/dist/agent-src/commands/profile/activate.md +1 -1
  54. package/dist/agent-src/commands/profile/show.md +1 -1
  55. package/dist/agent-src/commands/research/deep.md +2 -2
  56. package/dist/agent-src/commands/research/report.md +2 -2
  57. package/dist/agent-src/commands/review/changes.md +1 -1
  58. package/dist/agent-src/commands/review/routing.md +1 -1
  59. package/dist/agent-src/commands/roadmap/create.md +1 -1
  60. package/dist/agent-src/commands/roadmap/materialize.md +2 -2
  61. package/dist/agent-src/commands/roadmap/next.md +9 -1
  62. package/dist/agent-src/commands/roadmap/process-full.md +2 -2
  63. package/dist/agent-src/commands/security-audit-config.md +3 -3
  64. package/dist/agent-src/commands/skill/preview.md +1 -1
  65. package/dist/agent-src/commands/skills/discover.md +1 -1
  66. package/dist/agent-src/commands/sync/agent-settings.md +2 -2
  67. package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
  68. package/dist/agent-src/commands/tests/create.md +1 -1
  69. package/dist/agent-src/commands/tests/e2e-heal.md +1 -1
  70. package/dist/agent-src/commands/tests/e2e-plan.md +1 -1
  71. package/dist/agent-src/contexts/authority/kernel-rule-edits.md +6 -6
  72. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -2
  73. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +2 -2
  74. package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +88 -1
  75. package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +1 -1
  76. package/dist/agent-src/contexts/contracts/frugality-charter.md +1 -1
  77. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
  78. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
  79. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +13 -1
  80. package/dist/agent-src/contexts/execution/cheap-question-mechanics.md +1 -1
  81. package/dist/agent-src/contexts/execution/contract-decision-sheet.md +3 -3
  82. package/dist/agent-src/contexts/execution/mandated-lines.md +1 -1
  83. package/dist/agent-src/contexts/execution/non-interactive-contract.md +1 -1
  84. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +1 -1
  85. package/dist/agent-src/contexts/execution/plan-confidence-gate.md +5 -5
  86. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +1 -1
  87. package/dist/agent-src/contexts/execution/subagent-modes-detail.md +1 -1
  88. package/dist/agent-src/contexts/execution/subagent-routing.md +2 -2
  89. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +1 -1
  90. package/dist/agent-src/contexts/execution/user-memory-channels.md +3 -3
  91. package/dist/agent-src/contexts/execution/verification-mechanics.md +1 -1
  92. package/dist/agent-src/contexts/judges/persona-voice-rubric.md +2 -2
  93. package/dist/agent-src/guidelines/abstraction-thresholds.md +88 -0
  94. package/dist/agent-src/guidelines/agent-infra/5w2h-analysis.md +260 -0
  95. package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +99 -0
  96. package/dist/agent-src/guidelines/agent-infra/agent-interaction-and-decision-quality.md +325 -0
  97. package/dist/agent-src/guidelines/agent-infra/api-cost-levers.md +177 -0
  98. package/dist/agent-src/guidelines/agent-infra/artifact-drafting-protocol-mechanics.md +222 -0
  99. package/dist/agent-src/guidelines/agent-infra/ask-when-uncertain-demos.md +134 -0
  100. package/dist/agent-src/guidelines/agent-infra/asking-and-brevity-examples.md +198 -0
  101. package/dist/agent-src/guidelines/agent-infra/break-glass-usage.md +113 -0
  102. package/dist/agent-src/guidelines/agent-infra/carve-out-predicates.md +17 -0
  103. package/dist/agent-src/guidelines/agent-infra/comparison-matrix.md +179 -0
  104. package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +165 -0
  105. package/dist/agent-src/guidelines/agent-infra/corpus-grounding-authoring.md +91 -0
  106. package/dist/agent-src/guidelines/agent-infra/critical-thinking.md +156 -0
  107. package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +109 -0
  108. package/dist/agent-src/guidelines/agent-infra/developer-judgment.md +82 -0
  109. package/dist/agent-src/guidelines/agent-infra/direct-answers-demos.md +142 -0
  110. package/dist/agent-src/guidelines/agent-infra/domain-adoption-gates.md +112 -0
  111. package/dist/agent-src/guidelines/agent-infra/domain-eval-anti-pattern.md +53 -0
  112. package/dist/agent-src/guidelines/agent-infra/domain-pack-architecture.md +56 -0
  113. package/dist/agent-src/guidelines/agent-infra/downstream-changes-mechanics.md +91 -0
  114. package/dist/agent-src/guidelines/agent-infra/emphasis-budget.md +45 -0
  115. package/dist/agent-src/guidelines/agent-infra/engineering-memory-data-format.md +210 -0
  116. package/dist/agent-src/guidelines/agent-infra/evaluator-independence-mechanics.md +92 -0
  117. package/dist/agent-src/guidelines/agent-infra/existence-question-verdicts.md +80 -0
  118. package/dist/agent-src/guidelines/agent-infra/failure-signatures.md +70 -0
  119. package/dist/agent-src/guidelines/agent-infra/false-green.md +233 -0
  120. package/dist/agent-src/guidelines/agent-infra/first-principles.md +192 -0
  121. package/dist/agent-src/guidelines/agent-infra/framework-neutrality-patterns.md +66 -0
  122. package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +169 -0
  123. package/dist/agent-src/guidelines/agent-infra/gate-authoring.md +177 -0
  124. package/dist/agent-src/guidelines/agent-infra/guarded-baseline.md +39 -0
  125. package/dist/agent-src/guidelines/agent-infra/installed-tools-manifest.md +142 -0
  126. package/dist/agent-src/guidelines/agent-infra/inversion-thinking.md +388 -0
  127. package/dist/agent-src/guidelines/agent-infra/ios-simulator-guide.md +378 -0
  128. package/dist/agent-src/guidelines/agent-infra/language-and-tone-examples.md +141 -0
  129. package/dist/agent-src/guidelines/agent-infra/layered-settings.md +317 -0
  130. package/dist/agent-src/guidelines/agent-infra/linked-projects-onboarding-gate.md +80 -0
  131. package/dist/agent-src/guidelines/agent-infra/mcp-request-signing.md +197 -0
  132. package/dist/agent-src/guidelines/agent-infra/memory-access.md +149 -0
  133. package/dist/agent-src/guidelines/agent-infra/mental-models.md +314 -0
  134. package/dist/agent-src/guidelines/agent-infra/minimal-safe-diff-mechanics.md +241 -0
  135. package/dist/agent-src/guidelines/agent-infra/missing-tool-handling.md +66 -0
  136. package/dist/agent-src/guidelines/agent-infra/model-recommendation.md +101 -0
  137. package/dist/agent-src/guidelines/agent-infra/naming.md +69 -0
  138. package/dist/agent-src/guidelines/agent-infra/notes-horizon-mechanics.md +90 -0
  139. package/dist/agent-src/guidelines/agent-infra/output-patterns.md +117 -0
  140. package/dist/agent-src/guidelines/agent-infra/recurring-criticism-mechanics.md +96 -0
  141. package/dist/agent-src/guidelines/agent-infra/reuse-verdict-mechanics.md +71 -0
  142. package/dist/agent-src/guidelines/agent-infra/review-routing-data-format.md +143 -0
  143. package/dist/agent-src/guidelines/agent-infra/roadmap-deferred-resolution-provenance.md +54 -0
  144. package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +274 -0
  145. package/dist/agent-src/guidelines/agent-infra/role-contracts.md +209 -0
  146. package/dist/agent-src/guidelines/agent-infra/role-mode-router.md +89 -0
  147. package/dist/agent-src/guidelines/agent-infra/rule-body-migration-inventory.md +241 -0
  148. package/dist/agent-src/guidelines/agent-infra/rule-type-governance.md +73 -0
  149. package/dist/agent-src/guidelines/agent-infra/runtime-layer.md +89 -0
  150. package/dist/agent-src/guidelines/agent-infra/scqa-framework.md +526 -0
  151. package/dist/agent-src/guidelines/agent-infra/security-lint-containment.md +121 -0
  152. package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +134 -0
  153. package/dist/agent-src/guidelines/agent-infra/simplicity-and-goal-demos.md +211 -0
  154. package/dist/agent-src/guidelines/agent-infra/six-hats.md +353 -0
  155. package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +229 -0
  156. package/dist/agent-src/guidelines/agent-infra/skill-quality-checklist.md +157 -0
  157. package/dist/agent-src/guidelines/agent-infra/source-confidentiality-mechanics.md +109 -0
  158. package/dist/agent-src/guidelines/agent-infra/symptom-driven-harvest-loop.md +104 -0
  159. package/dist/agent-src/guidelines/agent-infra/systems-thinking.md +220 -0
  160. package/dist/agent-src/guidelines/agent-infra/tool-description-as-policy.md +35 -0
  161. package/dist/agent-src/guidelines/agent-infra/tool-integration.md +73 -0
  162. package/dist/agent-src/guidelines/agent-infra/traceability-field-mechanics.md +50 -0
  163. package/dist/agent-src/guidelines/agent-infra/untrusted-input-spotlighting.md +166 -0
  164. package/dist/agent-src/guidelines/agent-infra/verify-before-complete-demos.md +128 -0
  165. package/dist/agent-src/guidelines/augment-portability-patterns.md +70 -0
  166. package/dist/agent-src/guidelines/code-clarity.md +350 -0
  167. package/dist/agent-src/guidelines/component-oriented-and-oop-development.md +189 -0
  168. package/dist/agent-src/guidelines/cross-role-handoff.md +127 -0
  169. package/dist/agent-src/guidelines/design-antipatterns-triggers.json +18 -0
  170. package/dist/agent-src/guidelines/design-antipatterns.md +327 -0
  171. package/dist/agent-src/guidelines/design-asset-discipline.md +38 -0
  172. package/dist/agent-src/guidelines/design-canon.md +63 -0
  173. package/dist/agent-src/guidelines/design-fidelity-mechanics.md +293 -0
  174. package/dist/agent-src/guidelines/design-fidelity-routing.md +78 -0
  175. package/dist/agent-src/guidelines/design-handover-extraction.md +117 -0
  176. package/dist/agent-src/guidelines/design-modes.md +143 -0
  177. package/dist/agent-src/guidelines/design-reconciliation.md +172 -0
  178. package/dist/agent-src/guidelines/docs/readme-size-and-splitting.md +209 -0
  179. package/dist/agent-src/guidelines/e2e/playwright.md +363 -0
  180. package/dist/agent-src/guidelines/gtm-handoff.md +114 -0
  181. package/dist/agent-src/guidelines/monorepo-antipatterns.md +141 -0
  182. package/dist/agent-src/guidelines/php/api-design.md +115 -0
  183. package/dist/agent-src/guidelines/php/artisan-commands.md +81 -0
  184. package/dist/agent-src/guidelines/php/blade-ui.md +78 -0
  185. package/dist/agent-src/guidelines/php/controllers.md +90 -0
  186. package/dist/agent-src/guidelines/php/database.md +194 -0
  187. package/dist/agent-src/guidelines/php/eloquent.md +208 -0
  188. package/dist/agent-src/guidelines/php/flux.md +80 -0
  189. package/dist/agent-src/guidelines/php/general.md +207 -0
  190. package/dist/agent-src/guidelines/php/git.md +164 -0
  191. package/dist/agent-src/guidelines/php/jobs.md +111 -0
  192. package/dist/agent-src/guidelines/php/livewire.md +71 -0
  193. package/dist/agent-src/guidelines/php/logging.md +79 -0
  194. package/dist/agent-src/guidelines/php/naming.md +89 -0
  195. package/dist/agent-src/guidelines/php/patterns/dependency-injection.md +57 -0
  196. package/dist/agent-src/guidelines/php/patterns/dtos.md +199 -0
  197. package/dist/agent-src/guidelines/php/patterns/events.md +67 -0
  198. package/dist/agent-src/guidelines/php/patterns/factory.md +53 -0
  199. package/dist/agent-src/guidelines/php/patterns/pipelines.md +66 -0
  200. package/dist/agent-src/guidelines/php/patterns/policies.md +66 -0
  201. package/dist/agent-src/guidelines/php/patterns/repositories.md +122 -0
  202. package/dist/agent-src/guidelines/php/patterns/service-layer.md +64 -0
  203. package/dist/agent-src/guidelines/php/patterns/strategy.md +247 -0
  204. package/dist/agent-src/guidelines/php/patterns.md +28 -0
  205. package/dist/agent-src/guidelines/php/performance.md +92 -0
  206. package/dist/agent-src/guidelines/php/php-coding-patterns.md +80 -0
  207. package/dist/agent-src/guidelines/php/resources.md +100 -0
  208. package/dist/agent-src/guidelines/php/security.md +110 -0
  209. package/dist/agent-src/guidelines/php/sql.md +97 -0
  210. package/dist/agent-src/guidelines/php/validations.md +119 -0
  211. package/dist/agent-src/guidelines/php/websocket.md +100 -0
  212. package/dist/agent-src/guidelines/prompt-templates.md +189 -0
  213. package/dist/agent-src/guidelines/redundancy-taxonomy.md +208 -0
  214. package/dist/agent-src/guidelines/wing4-handoff.md +127 -0
  215. package/dist/agent-src/personas/README.md +1 -1
  216. package/dist/agent-src/personas/_template-specialist/persona.md +1 -1
  217. package/dist/agent-src/personas/product-owner.md +1 -1
  218. package/dist/agent-src/rules/active-remediation.md +1 -1
  219. package/dist/agent-src/rules/architecture.md +2 -2
  220. package/dist/agent-src/rules/artifact-drafting-protocol.md +1 -1
  221. package/dist/agent-src/rules/ask-when-uncertain.md +2 -2
  222. package/dist/agent-src/rules/brand-source-of-truth.md +9 -7
  223. package/dist/agent-src/rules/code-comment-discipline.md +2 -2
  224. package/dist/agent-src/rules/code-provenance.md +1 -1
  225. package/dist/agent-src/rules/content-quoting-floor.md +1 -1
  226. package/dist/agent-src/rules/context-hygiene.md +5 -5
  227. package/dist/agent-src/rules/cross-source-consistency.md +1 -1
  228. package/dist/agent-src/rules/design-fidelity.md +36 -46
  229. package/dist/agent-src/rules/direct-answers.md +2 -2
  230. package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
  231. package/dist/agent-src/rules/evaluator-independence.md +1 -1
  232. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
  233. package/dist/agent-src/rules/icon-consistency.md +5 -1
  234. package/dist/agent-src/rules/improve-before-implement.md +1 -1
  235. package/dist/agent-src/rules/language-and-tone.md +3 -3
  236. package/dist/agent-src/rules/minimal-safe-diff.md +1 -1
  237. package/dist/agent-src/rules/notes-first-reasoning.md +36 -25
  238. package/dist/agent-src/rules/recurring-criticism.md +1 -1
  239. package/dist/agent-src/rules/roadmap-progress-sync.md +1 -1
  240. package/dist/agent-src/rules/role-mode-adherence.md +2 -2
  241. package/dist/agent-src/rules/security-sensitive-stop.md +1 -1
  242. package/dist/agent-src/rules/size-enforcement.md +1 -1
  243. package/dist/agent-src/rules/source-confidentiality.md +2 -2
  244. package/dist/agent-src/rules/think-before-action.md +1 -1
  245. package/dist/agent-src/rules/token-efficiency.md +7 -5
  246. package/dist/agent-src/rules/ui-audit-gate.md +3 -2
  247. package/dist/agent-src/rules/untrusted-input-defense.md +3 -3
  248. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +106 -4
  249. package/dist/agent-src/skills/activation-design/SKILL.md +2 -2
  250. package/dist/agent-src/skills/adr-create/SKILL.md +5 -5
  251. package/dist/agent-src/skills/ai-council/SKILL.md +1 -1
  252. package/dist/agent-src/skills/ai-council/references/advanced-modes.md +1 -1
  253. package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
  254. package/dist/agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
  255. package/dist/agent-src/skills/brand-to-tokens/SKILL.md +24 -3
  256. package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
  257. package/dist/agent-src/skills/build-buy-partner/SKILL.md +1 -1
  258. package/dist/agent-src/skills/churn-prevention/SKILL.md +2 -2
  259. package/dist/agent-src/skills/code-intelligence/SKILL.md +57 -1
  260. package/dist/agent-src/skills/code-refactoring/SKILL.md +3 -3
  261. package/dist/agent-src/skills/code-review/SKILL.md +3 -3
  262. package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
  263. package/dist/agent-src/skills/comp-banding/SKILL.md +1 -1
  264. package/dist/agent-src/skills/competitive-moat-analysis/SKILL.md +1 -1
  265. package/dist/agent-src/skills/competitive-positioning/SKILL.md +2 -2
  266. package/dist/agent-src/skills/complexity-first-planning/SKILL.md +1 -1
  267. package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
  268. package/dist/agent-src/skills/content-funnel-design/SKILL.md +2 -2
  269. package/dist/agent-src/skills/contracts-cognition/SKILL.md +1 -1
  270. package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +2 -2
  271. package/dist/agent-src/skills/corpus-grounding/SKILL.md +2 -2
  272. package/dist/agent-src/skills/customer-research/SKILL.md +2 -2
  273. package/dist/agent-src/skills/dashboard-design/SKILL.md +1 -1
  274. package/dist/agent-src/skills/data-handling-judgment/SKILL.md +1 -1
  275. package/dist/agent-src/skills/deal-qualification-meddic/SKILL.md +2 -2
  276. package/dist/agent-src/skills/decision-record/SKILL.md +3 -3
  277. package/dist/agent-src/skills/decision-review/SKILL.md +8 -8
  278. package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +22 -22
  279. package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
  280. package/dist/agent-src/skills/design-intelligence/references/context-and-registers.md +2 -2
  281. package/dist/agent-src/skills/design-review/SKILL.md +4 -4
  282. package/dist/agent-src/skills/design-system-capture/references/design-system-json.md +20 -1
  283. package/dist/agent-src/skills/design-tokens/SKILL.md +17 -2
  284. package/dist/agent-src/skills/design-variations/SKILL.md +2 -2
  285. package/dist/agent-src/skills/developer-like-execution/SKILL.md +2 -2
  286. package/dist/agent-src/skills/discovery-interview/SKILL.md +2 -2
  287. package/dist/agent-src/skills/doc-coauthoring/SKILL.md +3 -3
  288. package/dist/agent-src/skills/editorial-calendar/SKILL.md +2 -2
  289. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +44 -1
  290. package/dist/agent-src/skills/existing-ui-audit/references/anti-slop-cross-reference.md +2 -2
  291. package/dist/agent-src/skills/expansion-playbook/SKILL.md +2 -2
  292. package/dist/agent-src/skills/experiment-loop/SKILL.md +1 -1
  293. package/dist/agent-src/skills/experiment-loop/references/protocol.md +1 -1
  294. package/dist/agent-src/skills/fe-design/SKILL.md +3 -3
  295. package/dist/agent-src/skills/fe-design/references/design-patterns.md +1 -1
  296. package/dist/agent-src/skills/fe-design/references/design-read-and-memory.md +3 -3
  297. package/dist/agent-src/skills/fe-design/references/source-led-port.md +1 -1
  298. package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
  299. package/dist/agent-src/skills/flux/SKILL.md +1 -1
  300. package/dist/agent-src/skills/forecast-accuracy/SKILL.md +2 -2
  301. package/dist/agent-src/skills/forecasting/SKILL.md +2 -2
  302. package/dist/agent-src/skills/fundraising-narrative/SKILL.md +2 -2
  303. package/dist/agent-src/skills/funnel-analysis/SKILL.md +2 -2
  304. package/dist/agent-src/skills/git-workflow/references/push-closes-its-loop.md +9 -0
  305. package/dist/agent-src/skills/gtm-launch/SKILL.md +2 -2
  306. package/dist/agent-src/skills/hiring-loop-design/SKILL.md +1 -1
  307. package/dist/agent-src/skills/html-deck/SKILL.md +5 -5
  308. package/dist/agent-src/skills/humanizer/SKILL.md +1 -1
  309. package/dist/agent-src/skills/humanizer/data/patterns.md +1 -1
  310. package/dist/agent-src/skills/iconography/SKILL.md +3 -3
  311. package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -1
  312. package/dist/agent-src/skills/laravel-api-endpoint/SKILL.md +2 -2
  313. package/dist/agent-src/skills/launch-readiness/SKILL.md +3 -3
  314. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +6 -6
  315. package/dist/agent-src/skills/livewire/SKILL.md +1 -1
  316. package/dist/agent-src/skills/market-entry-analysis/SKILL.md +1 -1
  317. package/dist/agent-src/skills/mcp-builder/SKILL.md +1 -1
  318. package/dist/agent-src/skills/memory-consolidation/SKILL.md +3 -3
  319. package/dist/agent-src/skills/messaging-architecture/SKILL.md +2 -2
  320. package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
  321. package/dist/agent-src/skills/onboarding-design/SKILL.md +2 -2
  322. package/dist/agent-src/skills/onboarding-program/SKILL.md +1 -1
  323. package/dist/agent-src/skills/one-on-one-cadence/SKILL.md +1 -1
  324. package/dist/agent-src/skills/org-design/SKILL.md +1 -1
  325. package/dist/agent-src/skills/overbuild-review-lens/SKILL.md +3 -3
  326. package/dist/agent-src/skills/override-management/SKILL.md +1 -1
  327. package/dist/agent-src/skills/perf-feedback-craft/SKILL.md +1 -1
  328. package/dist/agent-src/skills/persona-writing/SKILL.md +1 -1
  329. package/dist/agent-src/skills/php-coder/SKILL.md +1 -1
  330. package/dist/agent-src/skills/pipeline-strategy/SKILL.md +2 -2
  331. package/dist/agent-src/skills/playwright-testing/SKILL.md +3 -3
  332. package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
  333. package/dist/agent-src/skills/positioning-strategy/SKILL.md +2 -2
  334. package/dist/agent-src/skills/privacy-review/SKILL.md +1 -1
  335. package/dist/agent-src/skills/prompt-optimizer/SKILL.md +3 -3
  336. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +1 -1
  337. package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +2 -2
  338. package/dist/agent-src/skills/receiving-code-review/SKILL.md +1 -1
  339. package/dist/agent-src/skills/refine-ticket/SKILL.md +2 -2
  340. package/dist/agent-src/skills/release-comms/SKILL.md +2 -2
  341. package/dist/agent-src/skills/retention-loops/SKILL.md +2 -2
  342. package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
  343. package/dist/agent-src/skills/roadmap-management/SKILL.md +1 -1
  344. package/dist/agent-src/skills/roadmap-management/references/archival.md +1 -1
  345. package/dist/agent-src/skills/roadmap-writing/SKILL.md +5 -5
  346. package/dist/agent-src/skills/rule-writing/SKILL.md +6 -6
  347. package/dist/agent-src/skills/runway-cognition/SKILL.md +2 -2
  348. package/dist/agent-src/skills/scenario-modeling/SKILL.md +2 -2
  349. package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
  350. package/dist/agent-src/skills/skill-writing/references/procedure.md +1 -1
  351. package/dist/agent-src/skills/skill-writing/references/section-patterns.md +3 -3
  352. package/dist/agent-src/skills/spreadsheet-authoring/SKILL.md +1 -1
  353. package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +3 -3
  354. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
  355. package/dist/agent-src/skills/supply-chain-intake/SKILL.md +1 -1
  356. package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
  357. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +60 -4
  358. package/dist/agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +1 -1
  359. package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
  360. package/dist/agent-src/skills/typography-system/SKILL.md +2 -2
  361. package/dist/agent-src/skills/ui-component-architect/SKILL.md +28 -8
  362. package/dist/agent-src/skills/unit-economics-modeling/SKILL.md +2 -2
  363. package/dist/agent-src/skills/upstream-contribute/SKILL.md +1 -1
  364. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +2 -2
  365. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  366. package/dist/agent-src/skills/vision-articulation/SKILL.md +1 -1
  367. package/dist/agent-src/skills/voc-extract/SKILL.md +2 -2
  368. package/dist/agent-src/skills/voice-and-tone-design/SKILL.md +2 -2
  369. package/dist/agent-src/skills/wireframe/SKILL.md +1 -1
  370. package/dist/agent-src/skills/workspace-link/SKILL.md +1 -1
  371. package/dist/agent-src/templates/agent-settings.md +6 -6
  372. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  373. package/dist/agent-src/templates/contexts/knowledge-pages.md +2 -3
  374. package/dist/agent-src/templates/copilot-instructions.md +1 -1
  375. package/dist/agent-src/templates/roadmaps.md +1 -1
  376. package/dist/agent-src/templates/scripts/README.md +2 -2
  377. package/dist/agent-src/user-types/_template/user-type.md +1 -1
  378. package/dist/cli/registry.js +1 -1
  379. package/dist/cli-delegate/archive_completed_roadmaps.js +52 -4
  380. package/dist/cli-delegate/check_update_banner.js +12 -1
  381. package/dist/cli-delegate/{chunk-TGIPZBCW.js → chunk-2KKXJW25.js} +22 -8
  382. package/dist/cli-delegate/{chunk-NLP54U3J.js → chunk-2XY7ILBT.js} +13 -1
  383. package/dist/cli-delegate/{chunk-4FS4WRXP.js → chunk-3FKR64R5.js} +34 -6
  384. package/dist/cli-delegate/{chunk-J3RFNKG4.js → chunk-55ACLDUE.js} +2 -2
  385. package/dist/cli-delegate/{chunk-PKOBQADP.js → chunk-57PN4GYJ.js} +1 -1
  386. package/dist/cli-delegate/{chunk-BIXEDQPZ.js → chunk-AK6HODNQ.js} +4 -4
  387. package/dist/cli-delegate/{chunk-2FTMENJL.js → chunk-GYC3VRYN.js} +1 -1
  388. package/dist/cli-delegate/{chunk-LWTYTX6F.js → chunk-HZ52BRGG.js} +24 -18
  389. package/dist/cli-delegate/{chunk-6RJA2F5A.js → chunk-IVBPRCQO.js} +1 -1
  390. package/dist/cli-delegate/{chunk-I6RHFQEG.js → chunk-YUM5KURG.js} +17 -1
  391. package/dist/cli-delegate/cmd_analyze_session.js +1 -1
  392. package/dist/cli-delegate/cmd_brand_status.js +1 -1
  393. package/dist/cli-delegate/cmd_conformance.js +3 -3
  394. package/dist/cli-delegate/cmd_doctor.js +3 -3
  395. package/dist/cli-delegate/cmd_explain.js +2 -2
  396. package/dist/cli-delegate/cmd_export.js +4 -4
  397. package/dist/cli-delegate/cmd_handoff.js +24 -16
  398. package/dist/cli-delegate/cmd_mcp_available.js +1 -1
  399. package/dist/cli-delegate/cmd_memory_get.js +1 -1
  400. package/dist/cli-delegate/cmd_migrate.js +2 -2
  401. package/dist/cli-delegate/cmd_packs_active.js +2 -2
  402. package/dist/cli-delegate/cmd_prune.js +4 -4
  403. package/dist/cli-delegate/cmd_route_audit.js +3 -3
  404. package/dist/cli-delegate/cmd_route_explain.js +1 -1
  405. package/dist/cli-delegate/cmd_session_recycle.js +4 -14
  406. package/dist/cli-delegate/cmd_settings_get.js +15 -9
  407. package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
  408. package/dist/cli-delegate/cmd_settings_set.js +41 -11
  409. package/dist/cli-delegate/cmd_sync.js +4 -4
  410. package/dist/cli-delegate/cmd_uninstall.js +4 -4
  411. package/dist/cli-delegate/cmd_update.js +1 -1
  412. package/dist/cli-delegate/cmd_upgrade.js +1 -1
  413. package/dist/cli-delegate/cmd_validate.js +4 -4
  414. package/dist/cli-delegate/cmd_versions.js +1 -1
  415. package/dist/discovery/deprecation-report.md +1 -1
  416. package/dist/discovery/discovery-manifest.json +27 -80
  417. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  418. package/dist/discovery/discovery-manifest.summary.md +3 -3
  419. package/dist/discovery/dormancy-report.md +1 -1
  420. package/dist/discovery/orphan-report.md +1 -1
  421. package/dist/discovery/packs.json +5 -7
  422. package/dist/discovery/trust-report.md +2 -2
  423. package/dist/discovery/workspaces.json +4 -6
  424. package/dist/hooks/dispatch.js +9249 -8981
  425. package/dist/install/install.mjs +47 -8
  426. package/dist/mcp/registry-manifest.json +3 -3
  427. package/dist/mcp/server.json +2 -2
  428. package/dist/mcp/server.mjs +5496 -2400
  429. package/dist/router.json +1 -1
  430. package/dist/scripts/_lib/agent_settings.js +73 -0
  431. package/dist/scripts/_lib/agent_src.js +20 -0
  432. package/dist/scripts/_lib/guidelines_lane.js +158 -0
  433. package/dist/scripts/_lib/lean_projection_mode.js +108 -0
  434. package/dist/scripts/_lib/router_match.js +243 -0
  435. package/dist/scripts/_lib/rule_injection.js +216 -0
  436. package/dist/scripts/condense.js +22 -25
  437. package/dist/scripts/project_thin_rules.js +139 -19
  438. package/dist/server/io/yamlIO.js +125 -17
  439. package/dist/server/schemas/settings.js +32 -5
  440. package/dist/shared/settingsSurface.js +6 -1
  441. package/docs/MIGRATION.md +56 -0
  442. package/docs/contracts/settings-classes.md +48 -7
  443. package/docs/guidelines/abstraction-thresholds.md +35 -0
  444. package/docs/guidelines/agent-infra/active-remediation-mechanics.md +3 -3
  445. package/docs/guidelines/agent-infra/false-green.md +2 -2
  446. package/docs/guidelines/agent-infra/notes-horizon-mechanics.md +90 -0
  447. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  448. package/docs/guidelines/agent-infra/skill-quality-checklist.md +1 -1
  449. package/docs/guidelines/design-fidelity-mechanics.md +4 -0
  450. package/docs/guidelines/design-fidelity-routing.md +78 -0
  451. package/docs/guidelines/design-reconciliation.md +172 -0
  452. package/docs/guidelines/gtm-handoff.md +2 -2
  453. package/docs/guidelines/wing4-handoff.md +2 -2
  454. package/llms.txt +1 -1
  455. package/package.json +7 -3
  456. package/src/agent-src/scripts/archive_completed_roadmaps.ts +106 -4
  457. package/src/config/agent-settings.template.yml +94 -1
  458. package/src/config/ci-local-parity.yml +34 -0
  459. package/src/config/continuity-surface.json +8 -29
  460. package/src/config/evaluator-budgets.json +4 -4
  461. package/src/config/gate-coverage.yml +31 -8
  462. package/src/config/gate-reachability-exemptions.json +1 -0
  463. package/src/config/gate-violation-baselines.json +3 -3
  464. package/src/config/hook-token-budget.json +8 -7
  465. package/src/config/host-injection-effect.json +2 -2
  466. package/src/config/pack-size-budget.json +55 -4
  467. package/src/config/packed-binary-manifest.json +1 -1
  468. package/src/config/platform-anchor.json +47 -0
  469. package/src/config/preamble-payload-budget.json +2 -3
  470. package/src/config/publish-surface.json +4 -2
  471. package/src/config/ratification-policy.json +7 -0
  472. package/src/config/routing-coverage-seed.json +9 -2
  473. package/src/config/rule-stub-ceilings.json +16 -9
  474. package/src/scripts/_cli/cmd_session_recycle.ts +2 -25
  475. package/src/scripts/_cli/cmd_settings_get.ts +22 -7
  476. package/src/scripts/_cli/handoff_sessions.ts +14 -44
  477. package/src/scripts/_lib/agent_settings.ts +85 -0
  478. package/src/scripts/_lib/agent_src.ts +21 -0
  479. package/src/scripts/_lib/artifact_maturity.ts +242 -0
  480. package/src/scripts/_lib/conformance_report.ts +403 -0
  481. package/src/scripts/_lib/continuity_slot.ts +295 -0
  482. package/src/scripts/_lib/continuity_writer.ts +312 -0
  483. package/src/scripts/_lib/design_system_import.ts +20 -0
  484. package/src/scripts/_lib/design_tolerance.ts +281 -0
  485. package/src/scripts/_lib/guidelines_lane.ts +164 -0
  486. package/src/scripts/_lib/hook_settings.ts +85 -0
  487. package/src/scripts/_lib/lean_projection_mode.ts +127 -0
  488. package/src/scripts/_lib/obligation_frequency.ts +2 -3
  489. package/src/scripts/_lib/packed_binary_predicate.ts +37 -0
  490. package/src/scripts/_lib/platform_anchor.ts +1053 -0
  491. package/src/scripts/_lib/ratification_artifact.ts +278 -0
  492. package/src/scripts/_lib/recycle_envelope_paths.ts +109 -21
  493. package/src/scripts/_lib/regression_neighbourhood.ts +159 -22
  494. package/src/scripts/_lib/security_lint.ts +23 -2
  495. package/src/scripts/_lib/self_repair.ts +21 -0
  496. package/src/scripts/_lib/session_eol.ts +44 -0
  497. package/src/scripts/_lib/session_index_trust.ts +387 -0
  498. package/src/scripts/_lib/standing_bound_ratchet.ts +220 -0
  499. package/src/scripts/_lib/tolerance_shadow.ts +177 -0
  500. package/src/scripts/_lib/vendored_grammar_upstream.ts +280 -0
  501. package/src/scripts/ai_council/redact_low_impact_entry.ts +8 -0
  502. package/src/scripts/audit_mcp_tools.ts +69 -25
  503. package/src/scripts/autonomy_friction_traffic.ts +379 -0
  504. package/src/scripts/build_mcp_catalog.ts +24 -1
  505. package/src/scripts/check_host_tree_parity.ts +291 -0
  506. package/src/scripts/check_kernel_edit_ratified.ts +462 -0
  507. package/src/scripts/check_loss_class_declared.ts +793 -46
  508. package/src/scripts/check_platform_anchor.ts +390 -0
  509. package/src/scripts/check_preamble_payload_budget.ts +424 -7
  510. package/src/scripts/check_projected_rule_routes.ts +395 -0
  511. package/src/scripts/check_rule_projection_integrity.ts +102 -2
  512. package/src/scripts/ci_settle.ts +205 -5
  513. package/src/scripts/code_graph/build.ts +79 -0
  514. package/src/scripts/code_graph/cli.ts +264 -7
  515. package/src/scripts/code_graph/detect.ts +38 -0
  516. package/src/scripts/code_graph/query.ts +25 -2
  517. package/src/scripts/code_graph/sqlite_store.ts +16 -1
  518. package/src/scripts/code_graph/types.ts +52 -3
  519. package/src/scripts/code_graph/validate.ts +3 -1
  520. package/src/scripts/code_graph/verbs.ts +590 -0
  521. package/src/scripts/condense.ts +22 -26
  522. package/src/scripts/generate_host_cost_table.ts +354 -0
  523. package/src/scripts/handoff_context_hook.ts +39 -1
  524. package/src/scripts/hook_manifest.json +1 -1
  525. package/src/scripts/hook_manifest.yaml +59 -28
  526. package/src/scripts/hooks/block_speaking_inbox_dir.ts +182 -16
  527. package/src/scripts/hooks/category_a.ts +1 -1
  528. package/src/scripts/hooks/chain_nudge_hook.ts +311 -25
  529. package/src/scripts/hooks/code_graph_context_hook.ts +7 -18
  530. package/src/scripts/hooks/push_settle_hook.ts +3 -2
  531. package/src/scripts/hooks/rule_inject_hook.ts +107 -20
  532. package/src/scripts/hooks/session_eol_hook.ts +177 -145
  533. package/src/scripts/hooks/source_first_gate_hook.ts +12 -0
  534. package/src/scripts/hooks/ui_route_nudge_hook.ts +52 -15
  535. package/src/scripts/hot_context_hook.ts +103 -408
  536. package/src/scripts/lint_evidence_artifacts.ts +1 -0
  537. package/src/scripts/lint_knowledge_scale.ts +0 -26
  538. package/src/scripts/lint_roadmap_blockers.ts +164 -1
  539. package/src/scripts/mcp_server/consumer_tool_catalog.json +152 -2
  540. package/src/scripts/mcp_server/graph_tools.ts +294 -0
  541. package/src/scripts/mcp_server/path_util.ts +31 -0
  542. package/src/scripts/mcp_server/tool_catalog_source.ts +7 -1
  543. package/src/scripts/mcp_server/tools.ts +3 -13
  544. package/src/scripts/memory_lookup.ts +9 -9
  545. package/src/scripts/model_rule_injection.ts +61 -4
  546. package/src/scripts/project_thin_rules.ts +149 -16
  547. package/src/scripts/report_standing_payload_by_host.ts +650 -0
  548. package/src/scripts/schemas/agent-settings.schema.json +7 -1
  549. package/src/scripts/session_memory_index.ts +86 -8
  550. package/src/scripts/sync_agent_settings.ts +270 -10
  551. package/src/server/io/yamlIO.ts +127 -17
  552. package/src/server/schemas/settings.ts +45 -6
  553. package/src/shared/settingsSurface.ts +13 -2
  554. package/src/templates/compact-instructions.md +8 -3
  555. package/src/vendor/grammars/README.md +27 -2
  556. package/dist/agent-src/commands/chat-history/import.md +0 -170
  557. package/dist/agent-src/commands/chat-history.md +0 -63
@@ -0,0 +1,222 @@
1
+ # Artifact Drafting Protocol — Mechanics
2
+
3
+ > Phase A/B/C detail and the roadmap batch-mode carve-out for the `artifact-drafting-protocol` rule
4
+
5
+ _Origin: migrated from `src/rules/artifact-drafting-protocol.md` per the P4 pattern of `road-to-kernel-and-router.md`. The Iron Law, the trigger surface, and the golden rules stay in the rule; this file carries the per-phase procedure._
6
+
7
+ ## Phase A — Understand
8
+
9
+ **Question zero, asked first: should this artifact exist at all?**
10
+
11
+ Before the five below, put the extend-versus-create question to the user —
12
+ *is there an existing artifact this belongs in?* It used to live in Phase B,
13
+ after the research, and it was measured moving: one source found that the same
14
+ stop placed after work had begun was passed straight through, because mid-build
15
+ momentum beats restraint. A stop that only fires once you are invested is a stop
16
+ that does not fire.
17
+
18
+ Asking it first costs one question and is answerable without the research: the
19
+ user usually knows whether they are extending something. Phase B still runs the
20
+ overlap scan — that is what turns a guess into a verdict — but it now *confirms
21
+ or overturns* an answer already on the record rather than raising the question
22
+ for the first time at the point where a draft is half-formed.
23
+
24
+ Ask up to **5** further clarifying questions (numbered options, each with a
25
+ *"skip / I don't know yet"* escape):
26
+
27
+ 1. **Problem** — what does this solve that no existing artifact solves?
28
+ 2. **Trigger surface** — which user phrasings should fire this?
29
+ 3. **Should-trigger examples** — 2-3 in the user's words.
30
+ 4. **Near-miss cases** — 2-3 phrasings that must **not** fire.
31
+ 5. **Artifact type** — skill, rule, command, or guideline? Offer a
32
+ 3-line primer if unsure.
33
+
34
+ If the user skips Q1 or Q5, stop and surface the ambiguity — don't guess.
35
+
36
+ ## Phase B — Research
37
+
38
+ Run the **search protocol** from
39
+ [`learning-to-rule-or-skill` § 4](../../skills/learning-to-rule-or-skill/SKILL.md)
40
+ — `ls` all four surfaces (`skills/`, `rules/`, `guidelines/`, `commands/`),
41
+ grep with **solution-words AND problem-words**, scan sub-directory
42
+ taxonomies, then **open and skim** the 3 nearest matches. A negative grep
43
+ alone is not proof of no overlap. Report the top 3-5 most-similar
44
+ artifacts and ask (numbered options) — this **confirms or overturns** the
45
+ question-zero answer from Phase A with evidence, rather than raising it for the
46
+ first time:
47
+
48
+ - Extend an existing one?
49
+ - Create a new one — gap is real?
50
+ - Show overlap first?
51
+ - Promote via `learning-to-rule-or-skill` instead?
52
+
53
+ A Phase-B verdict that contradicts the Phase-A answer is the useful outcome, not
54
+ an embarrassment: it is the research doing its job. Surface the contradiction
55
+ and let the user re-decide.
56
+
57
+ Carry the summary into the commit message (*"Reviewed before drafting:
58
+ X, Y"*).
59
+
60
+ ### Where the answer is written — `composition_review:`
61
+
62
+ A commit message is not a tree artifact. Measured 2026-08-27 over the twenty most
63
+ recently added skills and rules
64
+ (`agents/evidence/analysis/authoring-search-record-sample-2026-08-27.md`), **1 of
65
+ 20** carried a machine-readable record of the Phase-B verdict; 9 carried a strict
66
+ prose one, and the rest carried a `See also` gloss or a routing row. So an
67
+ artifact authored after a thorough scan and one authored after none were
68
+ indiscernible in the tree — which is why the overlap tools
69
+ (`audit_overlap`, `audit_skill_overlap`, `report_layer_overlap`) run over a
70
+ corpus rather than over a decision.
71
+
72
+ The record is a frontmatter block, defined in `skill.schema.json` and
73
+ `rule.schema.json`, and **optional on existing artifacts by design — nothing is
74
+ backfilled**:
75
+
76
+ ```yaml
77
+ composition_review:
78
+ - candidate: skill:existing-ui-audit # skill: / rule: / command: / guideline: / none
79
+ disposition: create_separate # what happened to this candidate
80
+ rationale: audits what exists before a write; this governs the write itself
81
+ ```
82
+
83
+ Four dispositions, and the discriminator for each:
84
+
85
+ | Value | Means |
86
+ |---|---|
87
+ | `extend_incumbent` | the incumbent absorbed the change; no new artifact was created |
88
+ | `compose_with_incumbent` | the new artifact routes to the incumbent rather than restating it |
89
+ | `create_separate` | the incumbent exists, was evaluated, and a separate artifact was authored anyway |
90
+ | `none_found` | the search ran and found no credible incumbent — pairs only with `candidate: none` |
91
+
92
+ `none_found` exists so an author is never pushed to **invent** an incumbent to
93
+ satisfy the schema. That failure would manufacture the pro-forma record the
94
+ mechanism is supposed to measure, using the mechanism.
95
+
96
+ `create_separate` is the value no other disposition vocabulary in this tree can
97
+ express, and it is why this is a fifth enum rather than a reuse. The nearest
98
+ incumbent is the harvest ledger's `adopt | adapt`
99
+ (`lint_harvest_provenance.ts:76`), which deliberately **excludes** rejection
100
+ (`:222`) because a rejected harvest has no artifact to cite. This record is the
101
+ mirror image — it is written *on* the artifact being created — so rejection is
102
+ the value it most needs. The finding, review and archive vocabularies are about
103
+ defects, review rows and roadmap files respectively; none of them has a slot for
104
+ "an incumbent existed and I built anyway".
105
+
106
+ **What the lint does and does not do.** `lint_composition_review` fails a record
107
+ whose `candidate` resolves to no artifact, or whose `none` / `none_found` pair
108
+ disagrees — a record naming an incumbent that is not in the tree reads as
109
+ evidence of a search that cannot have happened. It *reports without failing* an
110
+ addition carrying no record at all. It cannot check that the search happened,
111
+ that the rationale is true, or that the named incumbent is the nearest one;
112
+ flipping the advisory half to a block needs a false-positive rate from at least
113
+ one release of advisory operation, which does not exist yet.
114
+
115
+ ## Phase C — Draft
116
+
117
+ Propose **2-3 description variants** — Conservative / Pushy
118
+ (per `skill-quality`) / Concrete (embedded trigger example). User picks
119
+ or merges. Only then draft the body. Surface every structural choice
120
+ (size class, section order) as numbered options if in doubt.
121
+
122
+ Enforce size live: *"Body is at 420/500 lines. Split?"* (budgets per
123
+ `size-enforcement`). New skills also get an `evals/triggers.json` stub
124
+ (5 should-trigger + 5 should-not-trigger). See `skill-writing` § 1c.
125
+
126
+ ## Roadmap-run batch mode — the ONE structured bypass
127
+
128
+ When a `/roadmap:process-*` run starts under an **accepted execution
129
+ contract** (`roadmap-execution-contract`) whose pre-scan detected
130
+ artifact-authoring steps, the protocol runs in batch mode for exactly
131
+ those artifacts:
132
+
133
+ - **Phase B (Research) runs ONCE at contract time, against the CURRENT
134
+ artifact state** — one overlap scan covering every artifact the
135
+ roadmap plans; results (nearest matches, extend-vs-create verdicts)
136
+ are surfaced inside the contract summary the user accepts. This is
137
+ why authoring-time-only checking is not enough: a sibling roadmap may
138
+ have landed overlapping artifacts between authoring and execution.
139
+ - **Phases A (Understand) and C (Draft) run non-interactively during
140
+ the run** — the roadmap step text is the Understand input; the
141
+ contract acceptance is the approval that the per-phase prompts exist
142
+ to obtain.
143
+ - **Scope is the batch, nothing more.** An artifact NOT declared in the
144
+ roadmap (discovered mid-run) triggers the full interactive protocol —
145
+ or, under the contract, the scope-out-of-roadmap halt. That halt is the
146
+ **default** and stays the default; see § Late artifacts below for the one
147
+ declared value that changes it.
148
+ - Batch mode never skips the Research pass itself — it relocates and
149
+ batches it. `artifact_protocol: skip` does not exist.
150
+
151
+ ### Late artifacts — `halt` by default, `auto-research` only when declared
152
+
153
+ The bullet above is the whole rule when the contract says nothing. A contract
154
+ may instead declare `late_artifacts: auto-research`
155
+ ([`roadmap-execution-contract § 2a`](../../contexts/execution/roadmap-execution-contract.md)),
156
+ and then a mid-run discovery runs **this** procedure rather than halting:
157
+
158
+ 1. **Re-run Phase B against current state** — the same overlap scan the batch
159
+ ran at contract time, now over the artifact the run just found. Nothing new
160
+ is invented: this is the accepted-as-non-interactive procedure, later.
161
+ 2. **Extend verdict → extend silently.** The nearest match is edited. This is
162
+ the outcome the overlap scan exists to produce and it needs no approval it
163
+ did not already have.
164
+ 3. **Create verdict → derive Phase A from what is already on the record.** The
165
+ understand-answers come from the roadmap step text plus the decision-sheet
166
+ answers the user accepted. No new question is opened.
167
+ 4. **Genuine overlap conflict → halt.** Two plausible extend targets, or a
168
+ match whose scope contradicts the step, is a real decision and stops the
169
+ run.
170
+ 5. **Cap: three per run, then halt regardless of verdict.**
171
+
172
+ `halt` remains the shipped default (`decision 2026-08-20`, AI council 2/2 on
173
+ the `autonomy-defaults-sheet` fork; record
174
+ `agents/evidence/council/drain-blocker-dispositions-a.md`). The reasoning is
175
+ short: the cap bounds how far an unplanned artifact can drift the run, but it
176
+ does not decide whether the drift is wanted, and the conservative side of that
177
+ fork is the behaviour the tree already had. Making `auto-research` a declared
178
+ value rather than an inherited one is also what makes its own kill criterion —
179
+ the late-artifact revisit rate — attributable to the runs that chose it.
180
+ Reverting is one word in each of the two tables; no mechanism depends on the
181
+ default's direction.
182
+
183
+ **Kill criterion for `auto-research`, at the site rather than in a roadmap:**
184
+ a late-artifact revisit rate above 20 % — an auto-authored or auto-extended
185
+ artifact later reworked or reverted — removes the value and returns every
186
+ late discovery to `halt`. **No instrument today:** nothing counts late
187
+ artifacts or their revisits, so the rate is unmeasured rather than low, and
188
+ the cap of three is the only live bound. Recorded here because a criterion
189
+ that lives only in the roadmap that flipped the default becomes unreachable
190
+ the moment that roadmap is archived.
191
+
192
+
193
+ ## Complexity budget — the six questions before a new artifact
194
+
195
+ Folded here from the 9.4.0 review (Prio 5), which named the failure mode:
196
+ "das Paket kann fast jede Kritik mit einem weiteren Mechanismus beantworten"
197
+ (Problem → Regel → Lint → Hook → Report → Roadmap → Claim → Test = governance
198
+ inflation). This REPLACES the ad-hoc "should this exist" prose — it is a
199
+ checklist, not a new gate/rule (adding a gate to enforce "add less" would be
200
+ the very inflation it guards against). Before drafting any new skill / rule /
201
+ command / hook / gate, answer all six; a "no" on **replaces** or **removable**
202
+ is a strong signal to fold into an existing artifact instead:
203
+
204
+ 1. **Replaces?** — what existing mechanism does this retire or subsume? (If
205
+ nothing, justify why the surface must grow.)
206
+ 2. **Overlaps?** — does it duplicate a trigger / responsibility another
207
+ artifact already owns?
208
+ 3. **Discoverable?** — will a user actually find it, or does it just raise the
209
+ catalog count?
210
+ 4. **Measurable?** — is there a signal that would show it earning its place
211
+ (or a null that would retire it)?
212
+ 5. **Removable?** — can it be demoted / de-eligibled / deleted later without a
213
+ migration?
214
+ 6. **Who debugs it?** — is the maintenance owner real, given bus-factor?
215
+
216
+ The load-bearing question the review elevates: not "how do we prevent this
217
+ error in future?" but **"which existing mechanism gets removed or replaced?"**
218
+
219
+ ## See also
220
+
221
+ - `artifact-drafting-protocol` (rule) — Iron Law, triggers, golden rules.
222
+ - `ask-when-uncertain` · `improve-before-implement` · `user-interaction` · `skill-quality` — the protocol extends these; cross-link, don't restate.
@@ -0,0 +1,134 @@
1
+ ---
2
+ demo_for: ask-when-uncertain
3
+ layer: pattern-memory
4
+ prose_delta:
5
+ rule_chars_before: 3893
6
+ rule_chars_after: 4267
7
+ measured_at: phase-3.3-cross-link-landing
8
+ note: "+374 chars from the Examples cross-link block; future prose-pruning rounds (out of scope for Phase 3) will pull pattern prose from the rule into this demo and drive the after-count below the before-count."
9
+ ---
10
+
11
+ # ask-when-uncertain — Pattern Memory
12
+
13
+ > Wrong / right / why demos for the `ask-when-uncertain` Iron Law
14
+ > (one question per turn, vague-request must ask). Linked from
15
+ > [`ask-when-uncertain`](../../rules/ask-when-uncertain.md)
16
+ > § Examples. Outcome baseline at
17
+ > [`tests/golden/outcomes/ask_when_uncertain.json`](../../../tests/golden/outcomes/ask_when_uncertain.json).
18
+
19
+ ## Demo 1 — Vague request, multi-question stack
20
+
21
+ ### Wrong shape
22
+
23
+ ```
24
+ User: improve this
25
+
26
+ Agent:
27
+ 1. Should I optimize for readability or speed?
28
+ 2. Refactor the function signature?
29
+ 3. Add tests too?
30
+ 4. Run PHPStan after?
31
+
32
+ Reply with a, b, c, d so I can pick.
33
+ ```
34
+
35
+ **Failure mode:** four `?` aimed at the user, structured-answer
36
+ demand (`a, b, c, d`), no triage. Iron Law breach: a turn with a
37
+ question has *exactly one*. Compound thinking load — answer to Q1
38
+ reframes Q2.
39
+
40
+ ### Right shape
41
+
42
+ ```
43
+ User: improve this
44
+
45
+ Agent: Welche Achse soll "improve" treffen?
46
+
47
+ 1. Lesbarkeit (Naming, Funktions-Splits)
48
+ 2. Performance (Allokationen, N+1)
49
+ 3. Robustheit (Error-Handling, Edge Cases)
50
+
51
+ Dann lege ich los.
52
+ ```
53
+
54
+ ### Why it works
55
+
56
+ Single `?`, numbered options without compound asks, picks the
57
+ question whose answer reframes everything downstream. The follow-up
58
+ ("tests? PHPStan?") rides on the next turn — its framing depends on
59
+ the answer here.
60
+
61
+ ## Demo 2 — Drive-by execution on a vague trigger
62
+
63
+ ### Wrong shape
64
+
65
+ ```
66
+ User: clean up this file
67
+
68
+ Agent: [edits 12 files, removes 200 lines, reformats imports,
69
+ extracts 3 helpers, renames 5 variables]
70
+ Done.
71
+ ```
72
+
73
+ **Failure mode:** "clean up" is a vague-request trigger
74
+ (`ask-when-uncertain` § Vague-request triggers). MUST-ask before
75
+ touching code. Without scope, the diff is a guess at the user's
76
+ intent.
77
+
78
+ ### Right shape
79
+
80
+ ```
81
+ User: clean up this file
82
+
83
+ Agent: Was bedeutet "clean up" hier?
84
+
85
+ 1. Toten Code raus
86
+ 2. Format / Imports sortieren
87
+ 3. Refactor (Funktionen splitten)
88
+
89
+ Pick one — sonst ist der Diff Raten.
90
+ ```
91
+
92
+ ### Why it works
93
+
94
+ Names the trigger explicitly ("vague-request"), surfaces the three
95
+ canonical interpretations from the rule's trigger table, and
96
+ declines to act without scope. The cost of asking once << cost of
97
+ ripping through 12 files in the wrong direction.
98
+
99
+ ## Demo 3 — Stacked questions inside a handoff
100
+
101
+ ### Wrong shape
102
+
103
+ ```
104
+ Agent: Bevor ich die Roadmap übergebe:
105
+
106
+ - Welcher Branch?
107
+ - Soll ich PRs erwähnen?
108
+ - Welches Modell für die Fortsetzung?
109
+ - Soll ich agents/runtime/.agent-chat-history zitieren?
110
+
111
+ Antworte als 1, 2, 3, 4.
112
+ ```
113
+
114
+ **Failure mode:** four-question handoff block. Per § Ordering &
115
+ handoff: handoff questions ride LAST, after domain clarifications,
116
+ folded into the handoff prompt itself — not as a parallel quiz.
117
+
118
+ ### Right shape
119
+
120
+ ```
121
+ Agent: [delivers the handoff prompt with sensible defaults filled
122
+ in: current branch, PR link present if open, model
123
+ recommendation per `model-recommendation`, history reference
124
+ auto-included]
125
+
126
+ Welche der vier Defaults soll ich vor dem Übergeben anpassen?
127
+ ```
128
+
129
+ ### Why it works
130
+
131
+ Defaults absorb three of the four "questions"; the remaining
132
+ question is the only one that genuinely needs user input — and it's
133
+ phrased so a one-word answer ("PR link" / "model" / "passt") closes
134
+ the loop.
@@ -0,0 +1,198 @@
1
+ # asking-and-brevity-examples
2
+
3
+ Companion examples for three always-rules:
4
+ [`ask-when-uncertain`](../../rules/ask-when-uncertain.md),
5
+ [`no-cheap-questions`](../../rules/no-cheap-questions.md),
6
+ [`direct-answers`](../../rules/direct-answers.md).
7
+
8
+ The rules carry the Iron Laws and the obligation surface. This file
9
+ carries the illustrative material (example questions, rationale
10
+ tables, failure-mode catalogs) that does not need to live in the
11
+ always-loaded rule body — extracted to fit the always-rule budget.
12
+
13
+ ## Vague-request triggers — example questions
14
+
15
+ Companion to `ask-when-uncertain` § Vague-request triggers. This
16
+ section is the canonical home for the nine trigger patterns, the
17
+ missing-info each one hides, and the example clarifying question —
18
+ the rule cites it instead of restating the catalog.
19
+
20
+ | Pattern | Missing info | Example clarifying question |
21
+ |---|---|---|
22
+ | "improve / optimize this" | metric — speed, readability, memory? | "Optimize for what — execution speed or readability?" |
23
+ | "add caching" | store, scope, invalidation | "Which cache driver, and what invalidates it?" |
24
+ | "make it better / cleaner" | by what standard? | "What specifically feels wrong in the current code?" |
25
+ | "clean up this file" | dead code, format, refactor? | "Remove unused code, reformat, or restructure?" |
26
+ | "fix this" (no symptom) | what output is wrong? | "What output/behavior is wrong right now?" |
27
+ | "refactor X" | target pattern, boundaries | "Refactor toward what — smaller methods, extract class, or something else?" |
28
+ | "use best practices" | whose, for what? | "Best practices for what specifically — testing, naming, structure?" |
29
+ | "handle errors properly" | which errors — log/retry/propagate? | "For which failure modes, and what should happen on error?" |
30
+ | "add a UI / component / tile / page" in mixed-framework repo | which stack? | "This repo uses {A} and {B} for UI — which one for this?" |
31
+
32
+ ## One-question-per-turn — why serial always wins
33
+
34
+ Companion to `ask-when-uncertain` § How to ask. The rule states the
35
+ Iron Law and the self-check; this file expands the rationale.
36
+
37
+ | Situation | Why serial always wins |
38
+ |---|---|
39
+ | Design / architecture decisions | Answer to Q1 reframes Q2 |
40
+ | Naming / command-syntax / API shape | Later choices depend on it |
41
+ | Scope / PR boundaries | Changes what the other questions even mean |
42
+ | Tool / library selection | Downstream choices branch from it |
43
+ | "Which approach: A vs B vs C" | Each answer opens a different follow-up |
44
+ | Even "independent" yes/no pairs | User still has to parse two contexts |
45
+ | Any question the user has to **think** about, not just pick | Thinking load compounds when stacked |
46
+
47
+ The shorthand: if the user has to *think* about an answer, that
48
+ answer almost always reframes whatever question would have come
49
+ next. Serial preserves the framing; parallel destroys it.
50
+
51
+ ## Cheap-question class catalog — extended examples
52
+
53
+ Companion to `no-cheap-questions` § What counts as cheap. This
54
+ section is the canonical home for the nine cheap-question classes
55
+ and their per-class patterns — the rule cites it instead of
56
+ restating the catalog.
57
+
58
+ | Class | Pattern · why cheap | Concrete example |
59
+ |---|---|---|
60
+ | **Sequencing** | "Step 2 or 3 next?" when roadmap orders them — answer is in the roadmap | Roadmap says "2.1 then 2.2" → don't ask "should I do 2.2 next?" |
61
+ | **Format-only** | "Table or paragraph?" — no semantic trade-off | User asked for a summary; format is a non-decision |
62
+ | **Commit asks** | "Commit now?" — `commit-policy`: never ask | The commit-policy Iron Law forbids the question |
63
+ | **CI / test asks** | "Run tests now?" — `verify-before-complete` decides | Verification is mandatory before completion claims; not a choice |
64
+ | **Fenced-step re-asks** | "Start Phase 1?" after "plan only" — `scope-control § fenced step` | The fence stands until the user explicitly lifts it |
65
+ | **Iron-Law option** | Option breaches `commit-policy`, `scope-control § git-ops`, or `non-destructive-by-default` — does not exist | Don't surface "force-push to main?" as Option 2 |
66
+ | **Context-derived** | Answer follows from prior turn / standing instruction / roadmap — act, state assumption inline | "Use the same branch?" after user said "stay on this branch" |
67
+ | **Dominant option** | One choice obviously correct; alternatives carry no upside — pick it | "Run the linter or skip it?" when the linter is part of CI |
68
+ | **Re-ask after decline** | Same path after user said no — `scope-control § decline = silence` | User declined a separate branch → don't propose it again on the same task |
69
+
70
+ ## Direct-answers — severity-tiered claim examples
71
+
72
+ Companion to `direct-answers` § Iron Law 2 (no invented facts). This
73
+ section is the canonical home for the severity tiers, per-tier
74
+ verification actions, and the override carve-out — the rule cites it
75
+ instead of restating the table.
76
+
77
+ | Severity | Examples | Verification action |
78
+ |---|---|---|
79
+ | **High — load-bearing** | "Method `X::y()` exists at `path/to/file.php:142`", "version 12.4.1 added the API", "this test passes" | MUST verify with `view`, `grep`, `codebase-retrieval`, or fresh command output **before** claiming. Too expensive → ask. |
80
+ | **Medium — project-shape** | "This project uses Pest for testing", "controllers live under `app/Http/Controllers`" | Verify if one tool call reaches it; otherwise hedge: *"I'd guess X — not checked"*. |
81
+ | **Low — well-known idioms** | "PHP `array_map` returns a new array", "git tags are immutable", "JS arrays are zero-indexed" | Inference acceptable. Mark as inference if not 100% sure. |
82
+
83
+ **Override:** "just guess" / "rough estimate" / "skip verify" in the
84
+ user's turn drops every claim to **Low** for that turn only. Reverts
85
+ on the next turn unless the user repeats the override.
86
+
87
+ Hedge-language patterns:
88
+
89
+ - ✅ "haven't verified X — likely from {known-similar-codebase}"
90
+ - ✅ "guess, not checked — `path/to/file.php:142` is my best read"
91
+ - ❌ "probably" alone — name what's unverified
92
+ - ❌ "vermutlich" without hedge target <!-- md-language-check: ignore -->
93
+
94
+ ### Volatile-fact freshness — which claims need a live source
95
+
96
+ Generalizes `direct-answers` Iron Law 2's git/PR live-state clause to any
97
+ research or knowledge claim, not just repo state.
98
+
99
+ | Class | Examples | Rule |
100
+ |---|---|---|
101
+ | **Fresh-lookup** | current role/status of a person or org, prices/versions/quotas, laws & regulatory policy, an unrecognized entity (tool, package, product), a binary event (release, deprecation, incident) | Never answer from model memory — search or cite a live source, every time. These change silently and staleness is invisible until wrong. |
102
+ | **Stable** | math/CS fundamentals, settled historical facts, language/framework basics pinned by the project's own lockfiles | Model knowledge is acceptable; no live lookup required. |
103
+
104
+ The line is whether the fact **could have changed since training** in a way
105
+ that matters for the claim. When in doubt, treat it as fresh-lookup — the
106
+ cost of one extra search is far lower than a stale claim stated with
107
+ confidence.
108
+
109
+ ### No duration estimates (Iron Law 2 family)
110
+
111
+ An LLM has no wall-clock and no latency training signal, so a duration estimate
112
+ is a fabricated fact wearing a number:
113
+
114
+ - Never predict how long **the agent's own work** will take ("this refactor is
115
+ ~2 hours", "I'll have it in a few minutes").
116
+ - Never predict how long **the user's work** will take ("this is a 2–3 week
117
+ project", "should take you an afternoon").
118
+ - Instead: break the work into **actionable steps** and let the user judge
119
+ timing against their own context — they have the clock, the agent does not.
120
+
121
+ A step list is honest ("A → B → C, C depends on B"); a schedule is invention.
122
+
123
+ **Carve-out — world-knowledge ranges.** An industry-typical duration sourced
124
+ from public benchmarks in strategy-advisory output ("integrations of this
125
+ class typically run 4–8 weeks") is a statement about the world, not a
126
+ prediction of the agent's or the user's own latency — allowed, but it MUST
127
+ carry an "industry-typical, not a prediction" qualifier. Unqualified, it
128
+ reads as the banned schedule.
129
+
130
+ ### Never cite the rule as the reason
131
+
132
+ When declining or constraining an action, give the **actual, substantive
133
+ reason** — never "my rules / guidelines / instructions require X":
134
+
135
+ - ❌ "I can't do that, my guidelines don't allow it." / "A rule requires me to ask first."
136
+ - ✅ "Sending this would post publicly and can't be undone, so confirm the recipient first." / "This edits a production branch — I need your go-ahead."
137
+
138
+ Appealing to a hidden rule (a) replaces real reasoning the user can evaluate,
139
+ and (b) widens the prompt-extraction surface (it advertises that hidden
140
+ instructions exist and invites probing them). State the real-world consequence,
141
+ not the rule's existence.
142
+
143
+ ## Direct-answers — failure modes the user will call out
144
+
145
+ Companion to `direct-answers` § Failure modes. The rule lists the
146
+ modes; this file adds the trigger phrases and the in-language
147
+ correction pattern.
148
+
149
+ | Failure | User's typical callout | Correct response |
150
+ |---|---|---|
151
+ | Iron Law 1 violation | "skip the flattery", "ohne smalltalk" | drop the opener; deliver substance |
152
+ | Iron Law 2 violation | "have you actually checked?", "wo steht das?" | re-verify with a tool call; correct or retract the claim |
153
+ | Iron Law 3 violation | "kürzer", "less prose", "tldr" | trim to one sentence + the answer | <!-- md-language-check: ignore -->
154
+ | Emoji blacklist hit | "ohne emojis", "no decoration" | re-render plain |
155
+
156
+ Acknowledge once, in the user's language, switch behavior, no
157
+ excuses (mirrors `language-and-tone` § slip handling).
158
+
159
+ ### Bullet floor
160
+
161
+ Companion to `direct-answers` § Iron Law 3. Multi-step content earns
162
+ bullets; each bullet is a complete 1–2-sentence statement, never a
163
+ fragment masquerading as a list item ("Faster." / "Better UX." with no
164
+ subject or verb). A decline or refusal is never rendered as a bulleted
165
+ list of reasons — declines are short prose, one or two sentences, because
166
+ a bulleted refusal reads as a checklist to argue against rather than a
167
+ direct answer.
168
+
169
+ ## No Cheap Questions — Iron Law 3 detail (paternalistic state options)
170
+
171
+ Companion to `no-cheap-questions` § Iron Law 3. The rule states the
172
+ prohibition; this file lists the patterns and the carve-outs.
173
+
174
+ **Forbidden patterns** (non-exhaustive):
175
+
176
+ - "Stop hier — du hast genug für heute" <!-- md-language-check: ignore -->
177
+ - "Take a break and come back fresh"
178
+ - "Weitermachen wenn frisch" <!-- md-language-check: ignore -->
179
+ - "Du wirkst genervt, sollen wir pausieren?" <!-- md-language-check: ignore -->
180
+ - "Sleep on it"
181
+ - "That's a good stopping point" as a numbered option
182
+ - Any option whose recommendation rests on inferred fatigue,
183
+ frustration, or end-of-day mood.
184
+
185
+ **Carve-outs** — allowed because they cite **observable, in-message**
186
+ evidence, not inferred state:
187
+
188
+ - User said "ich bin müde / done for today / let's stop" **this turn** <!-- md-language-check: ignore -->
189
+ → ack and stop (instruction, not option).
190
+ - Hard Floor confirmation per `non-destructive-by-default` → "confirm
191
+ or abort" is the option, not "rest".
192
+ - Context-window / freshness threshold tripped per `context-hygiene` →
193
+ cite the threshold ("fresh chat at 75%"), do not infer mood.
194
+
195
+ **The rule of thumb**: every numbered option must be a technical /
196
+ scope / sequencing choice with a real trade-off, not a mood-management
197
+ nudge. If the only remaining differentiator is "you might be tired" →
198
+ drop the option, recommend a concrete next step instead.
@@ -0,0 +1,113 @@
1
+ # Break-Glass Usage
2
+
3
+ Guideline for operating the agent under a controlled emergency state —
4
+ when a production incident requires faster stabilization than normal
5
+ verification allows.
6
+
7
+ Break-glass is **a narrowing, not a bypass**. The rules still apply; the
8
+ gate is just smaller. Never decide to "break glass" unilaterally.
9
+
10
+ ## When break-glass is justified
11
+
12
+ All of the following must hold:
13
+
14
+ - **Active customer-impacting incident** — data loss, outage, security
15
+ exposure, billing regression. Not "we have a deadline".
16
+ - **Explicit user invocation** — the user says "break-glass" or
17
+ "hotfix, skip the full suite". Ambiguous wording is not enough; ask.
18
+ - **No viable rollback path** that would be faster than the forward fix.
19
+
20
+ Not a break-glass situation:
21
+
22
+ - Friday afternoon and you want to ship a feature.
23
+ - CI is slow and you want to skip tests.
24
+ - You can't reproduce a flaky test locally.
25
+ - A reviewer is asleep and you want to self-approve.
26
+
27
+ ## How to invoke
28
+
29
+ The user sets one of:
30
+
31
+ 1. **Conversation flag** — says "break-glass: true" or "this is a hotfix".
32
+ 2. **PR label** — `break-glass` on the PR (optional; the agent still
33
+ requires explicit invocation in the current turn).
34
+ 3. **Commit trailer** — `Break-Glass: <incident-id>` in the commit
35
+ message of the hotfix.
36
+
37
+ The agent confirms: "Entering break-glass — narrowing verification to
38
+ targeted test + smoke check. Follow-up PR required within 24h. Confirm?"
39
+ If the user agrees, proceed. If not, stay in the normal gate.
40
+
41
+ ## What narrows
42
+
43
+ | Layer | Normal gate | Break-glass |
44
+ |---|---|---|
45
+ | Tests | Targeted + full suite | Targeted only — covering the regression |
46
+ | Quality tools | PHPStan + Rector + ECS | Deferred to follow-up PR |
47
+ | Migrations review | Full dry-run + rollback check | Dry-run only, rollback note mandatory |
48
+ | Code review | ≥ 1 reviewer from required roles | 1 reviewer, can be post-merge |
49
+ | Changelog | Required | Deferred to follow-up PR |
50
+
51
+ Zero tests is **never** acceptable. If the incident fix genuinely cannot
52
+ be tested in the available time, document that explicitly and attach a
53
+ reproducer to the follow-up ticket.
54
+
55
+ ## What does NOT narrow
56
+
57
+ These rules stay fully in force, break-glass or not:
58
+
59
+ - [`minimal-safe-diff`](../../rules/minimal-safe-diff.md) — the hotfix is
60
+ still the **smallest** change that stops the bleeding. No drive-by
61
+ cleanups.
62
+ - [`security-sensitive-stop`](../../rules/security-sensitive-stop.md) — a
63
+ security-relevant change still needs the threat-model pass.
64
+ - [`scope-control`](../../rules/scope-control.md) — never mix the
65
+ hotfix with unrelated refactors from another branch.
66
+ - [`ask-when-uncertain`](../../rules/ask-when-uncertain.md) — more
67
+ asking, not less, when the blast radius is live.
68
+
69
+ ## Required artifacts
70
+
71
+ The hotfix PR must include, in the description:
72
+
73
+ 1. **Incident link** — ticket, Sentry issue, or Statuspage entry.
74
+ 2. **Skipped validations** — bullet list of what was deferred (e.g.
75
+ "full PHPUnit suite", "PHPStan", "Rector").
76
+ 3. **Evidence attached in-PR** — targeted test output, smoke-check log or
77
+ curl response, migration dry-run if applicable.
78
+ 4. **Follow-up commitment** — link to the follow-up ticket or PR that
79
+ will run the full gate. Due within 24h.
80
+
81
+ ## After the incident
82
+
83
+ Within 24 hours:
84
+
85
+ 1. Open the **follow-up PR** — runs the full verification gate against
86
+ the same branch or a rebase onto main.
87
+ 2. Write a short **incident note** (2–5 lines) — what failed, what the
88
+ hotfix did, what was deferred. Store in the project's postmortem
89
+ location.
90
+ 3. If the incident exposed a recurring failure mode, add an entry to
91
+ `historical-bug-patterns.yml` (see
92
+ [`review-routing-data-format`](review-routing-data-format.md)).
93
+
94
+ ## Anti-patterns — reject them
95
+
96
+ - "Break-glass" used as a label for every urgent task — the word stops
97
+ meaning anything.
98
+ - Shipping the hotfix **and** a refactor in the same commit "since the
99
+ file was open".
100
+ - Skipping the follow-up PR because "the hotfix was fine". The gate
101
+ runs once, not zero times.
102
+ - Logging the incident as "false alarm" when the hotfix actually
103
+ changed behavior. If behavior changed, write the note.
104
+
105
+ ## See also
106
+
107
+ - [`minimal-safe-diff`](../../rules/minimal-safe-diff.md) — break-glass
108
+ exception section.
109
+ - [`verify-before-complete`](../../rules/verify-before-complete.md) —
110
+ break-glass reduction section.
111
+ - [`security-sensitive-stop`](../../rules/security-sensitive-stop.md).
112
+ - [`review-routing-data-format`](review-routing-data-format.md) —
113
+ where to register newly-discovered failure modes.