@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
@@ -247,8 +247,39 @@ dispatch runs, not WHETHER the layer exists, so they keep their own C rows.
247
247
  |---|---|
248
248
  | A — preference | 26 |
249
249
  | B — consent | 3 |
250
- | C — guarded | 110 |
251
- | **Total** | **139** |
250
+ | C — guarded | 116 |
251
+ | **Total** | **145** |
252
+
253
+ It rose to 142 on 2026-09-08 from two independent additions that landed in the same
254
+ day and are counted together here: `lean_projection.hosts` (one C, `policy`, from
255
+ `road-to-delivery-for-every-host`) and the two continuity keys below. The merge that
256
+ combined them re-derived the total from the class table rather than adding either
257
+ side's figure to the other, which is the arithmetic `lint_settings_classes` checks.
258
+
259
+ It rose on 2026-09-08 when `road-to-continuity-writer-activation`
260
+ step 1.2 added `continuity.auto_record` — one C, `consent`: it arms an automatic
261
+ producer on the normal session-end path, and the roadmap step required the
262
+ default to stay `off` until parity was measured, which is a decision no agent may
263
+ take by writing the key. **It ships `on` since 2026-09-10.** The class did not
264
+ change and neither did the write protection — `settings:set` still refuses this
265
+ key. What changed is the shipped default, edited by hand in the template and the
266
+ schema on a recorded AI-council verdict (2026-09-10, 2 seats, convergent, under
267
+ the owner's written delegation), which is the route a class-C default moves by
268
+ and the reason the refusal in `settings:set` is not a contradiction: the guard
269
+ stops an agent from deciding, not a recorded decision from being applied. Step 1.4 added
270
+ `continuity.run_checkpoints` the same day — a second C, shipping `on` because
271
+ that is the behavior the tree already had. It exists so the three session-end
272
+ handlers are independently disableable, which is what the 2026-09-07 council's
273
+ D2 asked for; it changes nothing that ships.
274
+
275
+ Its disposition is `consent`, and `derivable` was considered first and rejected:
276
+ `derivable` is the **deletion queue**, a claim that the key disappears once the
277
+ mechanism it names exists. This one is an operator kill switch over a recovery
278
+ artifact, so it is meant to survive — and nothing in the tree can derive whether
279
+ an operator wants resumability traded for quiet. It sits in the same shape as the
280
+ kill switches already classified `consent` (`knowledge.global_sharing.enabled`
281
+ and its allowlist): the mechanism's own preconditions are computable, the
282
+ operator's decision to suppress it is not.
252
283
 
253
284
  The total was 140 until 2026-08-12, when five of the six keys no code path read were
254
285
  deleted, minus the one held open (§ The six unread keys, below): one A
@@ -338,9 +369,9 @@ the template, which is the drift this contract exists to prevent.
338
369
  |---|---|
339
370
  | derivable | 83 |
340
371
  | un-inferrable | 9 |
341
- | consent | 41 |
342
- | policy | 6 |
343
- | **Total** | **139** |
372
+ | consent | 44 |
373
+ | policy | 9 |
374
+ | **Total** | **145** |
344
375
 
345
376
  First measured 2026-08-12 at 140 leaves (derivable 88 · consent 38 ·
346
377
  un-inferrable 9 · policy 5), from the table below rather than predicted — the
@@ -355,8 +386,12 @@ mechanism it names actually exists, so 83 measures work outstanding, not keys
355
386
  about to disappear. The count is expected to fall while `un-inferrable` does not
356
387
  — those 9 plus whatever survives re-examination in `consent` are the floor this
357
388
  surface has, and stating it is the point. `policy` is the smallest class and the
358
- only one whose action is a *move* rather than a keep or a delete: five keys carry
359
- a project fact the tree could hold instead.
389
+ only one whose action is a *move* rather than a keep or a delete: seven keys carry
390
+ a project fact the tree could hold instead. (This sentence read "five" while the
391
+ counts table beside it read 6, and 2026-09-08 added `lean_projection.hosts` as the
392
+ seventh — corrected in both directions rather than only incremented, because a
393
+ prose number that disagrees with a computed one beside it is the exact defect
394
+ `lint_settings_classes` fails the two Total rows for.)
360
395
 
361
396
  ## The floor — the nine keys no mechanism can derive
362
397
 
@@ -440,6 +475,7 @@ Rows follow template order, so a diff against the template reads straight down.
440
475
  | `discipline_profile` | C | `__DISCIPLINE_PROFILE__` | master switch for the discipline rule tier | derivable — its own `auto` resolution against `src/config/host-capabilities.yml` |
441
476
  | `rule_loading_tier` | C | `__RULE_LOADING_TIER__` | legacy master switch for rule loading | derivable — `discipline_profile` supersedes it with a documented mapping (minimal→off, balanced→essential, full→full) |
442
477
  | `lean_projection.mode` | C | `eager-all` | `thin` removes rule bodies from the agent's context | derivable — `probe_host_compliance.ts` already computes the per-host thin/eager recommendation |
478
+ | `lean_projection.hosts` | C | `[claude-code]` | decides WHICH hosts a thinning mode may thin, so an added id removes rule bodies from that host's context | policy — the value is a package-level decision the tree already holds: ADR-267 scopes the shipped `delivery` flip to `claude-code` alone. NOT `derivable`, and the distinction is the whole reason for this row: the mechanism that would compute an admissible host set, `admissibleUnderE3` in `src/scripts/_lib/injection_effect.ts`, admits **nothing** today — `src/config/host-injection-effect.json` carries 1 `observed-false` and 8 `unobserved` rows and no `observed-true` — so a derivation would yield `[]` rather than the shipped `[claude-code]`. Naming a mechanism that returns empty as the replacement would put a key in the deletion queue whose deletion would silently change the default. Move target: the ADR plus that census, once a host earns an `observed-true` row |
443
479
  | `telegraph.speak` | C | `false` | ships a rule body; a token-cost lever in both directions | derivable — the telegraph kill-criterion bench verdict is a package-level decision, not a per-install one |
444
480
  | `tokens.rich_skills` | C | `"on"` | token-spend lever | derivable — the skill's own `token_budget_class: rich` declaration plus the CI ceiling in `lint_token_budget_discipline.ts` |
445
481
  | `cost.budgets.daily` | C | `0` | rolling spend ceiling | consent |
@@ -501,6 +537,9 @@ Rows follow template order, so a diff against the template reads straight down.
501
537
  | `planning.completion_review` | C | `true` | disables the completion-review validator | derivable — `check_completion_review`'s own scope predicate, bound to the current diff hash |
502
538
  | `quality.local_auto_run` | C | `false` | governs whether local verification runs at all | consent |
503
539
  | `design.fidelity_mode` | C | `strict` | strict-mode selector, one of whose values is a Hard Floor | policy |
540
+ | `design.approximation.enabled` | C | `false` | lets a value change without a per-value confirmation; enabling it is a consumer-facing default flip | consent |
541
+ | `design.approximation.tolerance.color` | C | `null` | decides which colour deviations may be taken silently | policy |
542
+ | `design.approximation.tolerance.length` | C | `null` | decides which length deviations may be taken silently | policy |
504
543
  | `consistency.cross_source` | C | `"on"` | disables the cross-source discrepancy gate | derivable — the rule's own trigger condition; a discrepancy exists only when two present sources contradict |
505
544
  | `screenshots.identity_allowlist` | C | `[]` | allowlist of identities that ship unredacted | consent |
506
545
  | `screenshots.forbid_terminal_capture` | C | `true` | kill-switch over the highest-leak capture path | consent |
@@ -537,6 +576,8 @@ Rows follow template order, so a diff against the template reads straight down.
537
576
  | `commands.create_pr.screenshots` | C | `false` | puts captured screenshots into a published PR body | consent |
538
577
  | `commands.create_pr.ui_paths` | C | `[]` | glob allowlist | derivable — the frontend-surface heuristic the PR-description flow already applies when the glob list is empty |
539
578
  | `commands.create_pr.api_paths` | C | `[]` | glob allowlist | derivable — the API-endpoint heuristic the same flow already applies as its documented empty-list fallback |
579
+ | `continuity.auto_record` | C | `"on"` | arms an automatic producer on the normal session-end path | consent |
580
+ | `continuity.run_checkpoints` | C | `"on"` | disabling it removes a recovery artifact a killed run resumes from | consent |
540
581
  | `memory.cadence` | C | `always` | suppressing the visibility line hides what the agent learned from the user | derivable — the hits/asks count the memory-visibility summary already computes; the line only exists when memory was consulted |
541
582
  | `memory.review_threshold` | A | `10` | when a review preview surfaces; governs no gate | derivable — the unreviewed-intake count `/memory load` already computes before rendering its preview |
542
583
  | `memory.redact_patterns` | C | `[]` | deny-list of secret and PII regexes | policy |
@@ -45,6 +45,41 @@ present in the diff** — never speculative abstraction for "this could grow
45
45
  later". See [`component-oriented-and-oop-development`](component-oriented-and-oop-development.md)
46
46
  § The load-bearing caveat.
47
47
 
48
+ ## The provided-artifact clause — repetition observable before the code exists
49
+
50
+ ADR-213 authorises extraction on repetition **already present in the diff**. A
51
+ handed-over **runnable** artifact makes repetition observable before any code
52
+ exists at all: four `<Card>` instances are visible in the handover, so a port
53
+ that writes them one at a time and extracts on the second is doing the
54
+ threshold's own arithmetic in the wrong order.
55
+
56
+ This is a **different mechanism** than the one the threshold tested, not a
57
+ loophole in it. `adr_cite_check ADR-213` reports the record LIVE with an
58
+ **indeterminate** review trigger and `reopen_policy: unclassified`, so
59
+ investigation is permitted; the numbers themselves — 2 · 3+ · ~4+ — are
60
+ **unchanged**, and this clause moves only *when* the count may be taken.
61
+
62
+ **Two guards, both required. The first alone is insufficient.**
63
+
64
+ 1. **A runnable artifact, not a design comp.** A comp shows a picture of four
65
+ cards; a runnable artifact carries four instances of a thing. Counting
66
+ rectangles in an image is not counting repetition, and a comp therefore does
67
+ not qualify.
68
+ 2. **Repetition of the ELEMENT, not of its compositional context.** Four
69
+ `<Card>` instances show that Card is used four times. They do **not** show
70
+ that a `CardGrid` is needed — that needs multiple distinct contexts each
71
+ arranging several cards. Without this guard the clause would license
72
+ extracting a wrapper for every layout the artifact happens to contain once,
73
+ which is speculative abstraction with an artifact as its excuse.
74
+
75
+ **Enforcement, stated honestly: guard (2) is model-carried and audit-enforced.**
76
+ Nothing mechanical separates *"I saw four Cards"* from *"I saw a CardGrid
77
+ pattern"* — the distinction is about what the repetition MEANS, and
78
+ `lint_abstraction_thresholds.ts` checks numeric threshold drift, which is a
79
+ different property. Guard (1) is checkable (is the handover runnable), guard (2)
80
+ is not, and claiming otherwise would be the coverage inflation this tree forbids
81
+ elsewhere. The discipline is the control.
82
+
48
83
  ## See also
49
84
 
50
85
  - [`architecture`](../../src/rules/architecture.md) — the rule that carries the code-level bar.
@@ -67,16 +67,16 @@ Two failure shapes this table exists to name:
67
67
 
68
68
  ### Worked example — a red gate seen mid-task
69
69
 
70
- > `task check` fails; the lint step reports 7 errors, all pre-existing on `main`, in files this branch does not touch.
70
+ > the `check` task fails; the lint step reports 7 errors, all pre-existing on `main`, in files this branch does not touch.
71
71
 
72
- Wrong, and the canonical shape of it: finish the task, and close with *"the only thing still open is the lint finding — 7 errors on main, which makes `task check` unusable as a chain"*. The sentence is accurate, the issue is named, and nothing about it is decided — the next session inherits it verbatim.
72
+ Wrong, and the canonical shape of it: finish the task, and close with *"the only thing still open is the lint finding — 7 errors on main, which makes the `check` task unusable as a chain"*. The sentence is accurate, the issue is named, and nothing about it is decided — the next session inherits it verbatim.
73
73
 
74
74
  Right: the errors are pre-existing, outside the fix-now bar (unrelated files, more than ~10 lines), so they are **note + ask** — after the task is delivered, one block:
75
75
 
76
76
  1. Fix the 3 `no-unused-vars` in `src/a.ts`, `src/b.ts` — ~6 lines, mechanical, ships in this PR.
77
77
  2. Fix all 7 in a separate follow-up PR — keeps this diff single-purpose; needs a branch (permission-gated).
78
78
  3. Suppress the two in generated output with a scoped ignore, fix the rest — smallest green path, adds a suppression to review.
79
- 4. Leave as is — `task check` stays unusable as a chain until someone else picks it up.
79
+ 4. Leave as is — the `check` task stays unusable as a chain until someone else picks it up.
80
80
 
81
81
  One recommendation line names the pick. Whatever the user answers, the item is closed. If they answer nothing, it is raised once at the next task boundary — not carried silently into a third session.
82
82
 
@@ -168,8 +168,8 @@ bash src/scripts/condense.sh --changed # dist != rewrite(src) => the scan
168
168
  ./scripts-run src/scripts/check_condensation --summary # byte-exactness dist vs rewrite(src)
169
169
  ```
170
170
 
171
- **Structural fix:** regenerate before judging (`task sync` then
172
- `task generate-tools`, in that order), and treat a baseline unchanged past
171
+ **Structural fix:** regenerate before judging — this repository's `sync` task
172
+ then its `generate-tools` task, in that order — and treat a baseline unchanged past
173
173
  `STALE_AFTER_DAYS` (56, `_lib/gate_baseline.ts:39`) as suppression rather than
174
174
  as headroom. A completion claim rests on a run made **after** the last edit, not
175
175
  on the freshest run you happen to remember.
@@ -0,0 +1,90 @@
1
+ # Notes-first reasoning — horizon and reopening mechanics
2
+
3
+ Migrated out of [`notes-first-reasoning`](../../../src/rules/notes-first-reasoning.md)
4
+ on 2026-09-08. That rule is delivered on **every subagent spawn**, so its body is
5
+ paid per spawn; this material is reference read on demand. Nothing was dropped —
6
+ the four passages below are the rule's own text, verbatim, and the rule keeps
7
+ both Iron Laws and points here.
8
+
9
+ Same reason, and the same remedy, as the 2026-08-29 drain run recorded for
10
+ `source-confidentiality`: the addition had no room under the per-spawn ceiling,
11
+ and raising that ceiling is the config-weakening move this repository refuses.
12
+
13
+ ### Why reasoning stays out of the reply, and what grounds the notes file
14
+
15
+ Reasoning dumped into the user-facing answer is both noise and a
16
+ `reasoning_extraction` refusal risk (see `rdp-gate`). Keep it in the notes file.
17
+
18
+ The notes file is grounded in the documented cross-run lessons memory
19
+ (consolidated via [`memory-consolidation`](../../../src/skills/memory-consolidation/SKILL.md));
20
+ the rule's in-task sections are a local derivation for within-task scope. The
21
+ gate itself reads settings + task-signal + host self-assessment.
22
+
23
+ ### The two section fields, in full
24
+
25
+ The rule lists the sections and no count. That is deliberate: the structure
26
+ carries the enumeration, so there is no "write N hypotheses" instruction to
27
+ follow — a run records what the work actually surfaced, and an empty section is
28
+ a fact about the work rather than a gap in the notes.
29
+
30
+ `## Predictions` carries **chosen form** · prediction · confidence · result ·
31
+ lesson — the calibration loop: hypothesis → prediction → reality →
32
+ calibration. The form is named first because a prediction with no subject
33
+ cannot be contradicted: when the observation comes back, "the prediction
34
+ missed" has to point at *what* it was a prediction about, or nothing reopens.
35
+
36
+ `## Decisions` escalates to
37
+ [`decision-record`](../../../src/skills/decision-record/SKILL.md)/ADR when the
38
+ decision is cross-task or architectural — litmus: would a dev on a different
39
+ component next month need this context? And `next-commitment` is the boundary
40
+ this choice authorises work up to, not the plan for it: choosing a form is not
41
+ permission to execute a twelve-step plan on it without re-reading the position.
42
+
43
+ ### The horizon — which boundaries count
44
+
45
+ The boundary is the nearest of these that the plan actually reaches: a **test
46
+ result** · a **type or schema inspection** · a **compile** · a **runtime probe**
47
+ · a **call-site inventory** · a **dry run** · a **browser observation** · a
48
+ **dependency-contract read**. The set is enumerable, which is the whole point —
49
+ "the work up to the nearest of those" is decidable from the plan, and `next
50
+ justified commitment` as prose degrades to *"implement solution"*, which is the
51
+ starting point wearing a label.
52
+
53
+ ### Width scales with reversibility, never with task size
54
+
55
+ | The action is… | The horizon runs to… |
56
+ |---|---|
57
+ | a reversible local edit | a whole implementation slice — stopping at the first boundary costs more than it saves |
58
+ | stateful or cross-layer | the next boundary from the list above |
59
+ | irreversible or a public contract | **before** the irreversible step, unless direct evidence already covers it |
60
+
61
+ ### The look-ahead ladder is a CEILING, never a quota
62
+
63
+ Three to five moves is the *maximum*, and only for a forcing, irreversible or
64
+ externally observable line. Stateful or cross-layer gets two to three. A quiet
65
+ reversible line gets **one, deliberately** — and no artifact anywhere requires a
66
+ minimum depth. Always-three-to-five across all variants is 1024 leaves at four
67
+ branches and depth five, which buys nothing and costs the run its budget.
68
+
69
+ ### Reopening — the two consequences
70
+
71
+ A reopen driven by ritual rather than by contradicting evidence is ceremony, and
72
+ an uncapped reopen is a loop with better manners. Two consequences:
73
+
74
+ - **A rejection whose premise is falsified is not a rejection.** A candidate
75
+ killed by an assumption that later turns out false is *un-evaluated*, not
76
+ dead — it returns to the set. That is what makes a stated `killed-if`
77
+ condition worth carrying: without it, "we ruled that out" is unfalsifiable.
78
+ - **The first failure reads the candidate list before the retry**, where one
79
+ exists — see [`autonomy-mechanics`](../../../src/agent-src/contexts/execution/autonomy-mechanics.md)
80
+ § Retry-budget escalation ladder. Where none exists the ladder is unchanged.
81
+ This adds a branch; it does not move the N=3 budget.
82
+
83
+ ## See also
84
+
85
+ - [`notes-first-reasoning`](../../../src/rules/notes-first-reasoning.md) — the
86
+ rule this material was paid for in, and which keeps both Iron Laws.
87
+ - [`rdp-gate`](../../../src/agent-src/contexts/execution/rdp-gate.md) — the
88
+ engagement gate that decides whether the notes discipline runs at all.
89
+ - [`decision-record`](../../../src/skills/decision-record/SKILL.md) — where a
90
+ cross-task or architectural decision escalates to.
@@ -15,7 +15,7 @@ _Origin: migrated from `.agent-src.uncondensed/rules/roadmap-progress-sync.md` p
15
15
  > 2. `.git/hooks/pre-commit` (installed by `scripts/install-hooks.sh`) —
16
16
  > blocks any commit whose staged set touches `agents/roadmaps/` or
17
17
  > `agents/roadmaps-progress.md` while the dashboard is stale.
18
- > 3. `task ci` runs `roadmap-progress-check` so a PR cannot land with a
18
+ > 3. The `ci` task runs `roadmap-progress-check` so a PR cannot land with a
19
19
  > stale dashboard even if local hooks were bypassed.
20
20
  >
21
21
  > Hook is primary; the prose below is the specification the hook
@@ -53,7 +53,7 @@ A field that carries the schema `default` (e.g. `trust.level: core`,
53
53
  `validate_frontmatter.apply_schema_defaults` injects it transparently for
54
54
  every consumer (validator, discovery manifest, drift checksum). Writing it
55
55
  anyway is boilerplate that `scripts/lint_frontmatter_boilerplate.ts` rejects
56
- (wired into `task ci-fast`). To strip it across the tree, run
56
+ (wired into this repository's `ci-fast` task). To strip it across the tree, run
57
57
  `./scripts-run src/scripts/migrate_frontmatter_defaults`. Background:
58
58
  `road-to-abstraction-reduction.md` +
59
59
  `agents/evidence/analysis/abstraction-reduction-preflight.md`.
@@ -230,6 +230,10 @@ unmarked finding is treated as actionable, so the default failure direction is
230
230
 
231
231
  Regression witness: `daf-slop-vs-provided`.
232
232
 
233
+ **Why the default is what it is, and why the 2026-07-31 council lock over this
234
+ loop cannot be discharged by measuring it:**
235
+ [`design-reconciliation § The 2026-07-31 lock`](design-reconciliation.md).
236
+
233
237
  ## Value-level provenance — the finer grain beside the flag
234
238
 
235
239
  The block above is finding-level and stays the default: `artifact_covered` is a
@@ -0,0 +1,78 @@
1
+ # Design-fidelity routing mechanics — how the trigger set is authored
2
+
3
+ Split out of [`design-fidelity-mechanics`](design-fidelity-mechanics.md) on
4
+ 2026-09-09 under `check_depth_budget`'s 16,000-character per-file ceiling. It is
5
+ also a genuinely different subject: that guideline is read while PORTING an
6
+ artifact, and this one is read while EDITING the rule's own trigger set — which
7
+ happens rarely, by a maintainer, and never during a port.
8
+
9
+ ## Routing mechanics
10
+
11
+ Migrated out of `design-fidelity.md` on 2026-09-09 under the council verdict on
12
+ `blocker: rule-body-cap` — a semantic migration that frees rule-body lines for
13
+ the operative pointers the same verdict requires, not an arbitrary line cut. The
14
+ rule keeps the obligations; this holds the reasoning behind them.
15
+
16
+ ### The withdrawn builder-URL trigger
17
+
18
+ A page built in Lovable / v0 / bolt and handed over as a share link is a
19
+ finished spec, and `design-fidelity` does not route it. The obvious trigger was
20
+ tried and **withdrawn**: matching is plain lower-cased substring containment, so
21
+ `https://v0.dev/` also fires on `https://v0.dev/docs`, on a pricing page, and on
22
+ a changelog link — it would treat every mention of the tool's own site as a spec
23
+ handover. That is exactly the `claude.ai` failure the capability-URL trigger
24
+ exists to avoid, and by the rule's own standard it is worse than the gap it
25
+ closes. The alternatives are a bare-host keyword (broader still) or guessing
26
+ each vendor's share-path segment, and a trigger built on a guessed path is not
27
+ evidence.
28
+
29
+ **What closes it:** a verified share-path segment per vendor, or a
30
+ handover-word co-occurrence the matcher cannot express today. Until then the
31
+ class needs one word in the prompt, like any other unlisted filename.
32
+ `near-bare-host-mention` in `ROUTING_MATRIX` pins the bare-host direction silent
33
+ so a future attempt cannot reintroduce the broad form unnoticed.
34
+
35
+ ### The trigger set, class by class
36
+
37
+ Phrase-heavy on the German side and on `artifact` deliberately: a bare
38
+ `artifact` keyword fires on *"the CI build artifact is 40 MB"*, which is CI
39
+ vocabulary and not a handover. `ROUTING_MATRIX` pins both halves — every class
40
+ that must route, and every near-miss that must stay silent (fixture
41
+ `daf-port-trigger-de`).
42
+
43
+ Each shipped class carries its own near-miss row, and the pairing is the
44
+ contract rather than a courtesy:
45
+
46
+ | Class | Its near-miss row | The direction that row tests |
47
+ |---|---|---|
48
+ | `phrase: claude.site/artifacts` | `near-claude-ai-chat-link` | a bare `claude.ai` chat link is a conversation reference, not a spec |
49
+ | `path_prefix: .claude/design-system/` | `near-generic-design-system-dir` | a bare `design-system/` is a normal source folder in a large fraction of frontend repos |
50
+ | `file_pattern: *.dc.html` | `near-plain-html-open-file`, `near-dc-in-a-filename` | an ordinary `.html` file in the tree; a filename that merely contains the letters |
51
+ | the withdrawn builder URL | `near-bare-host-mention` | left behind on purpose, so the broad form stays pinned silent |
52
+
53
+ ### Write the near-miss row first — and test the right direction
54
+
55
+ Extending the trigger set without adding a near-miss row is how an over-broad
56
+ trigger lands. The stronger half of the contract is *which* near-miss:
57
+
58
+ **The row must test the direction the NEW trigger opens, not a direction that
59
+ was already closed.** The withdrawn class is the worked example. Its first
60
+ near-miss row tested a protocol-less mention — silent *before* the change, and
61
+ therefore incapable of catching the over-broadness the change introduced. The
62
+ row that would have caught it is `near-builder-host-non-handover-url`, a
63
+ documentation URL on the same host, and it exists only because a review asked
64
+ for it after the trigger had already shipped.
65
+
66
+ Applied on the next trigger to land: `*.dc.html` (the Claude Design canvas
67
+ artboard, which `*design.html` cannot match because it compiles to
68
+ `^(?:.*design\.html)$`) shipped with `near-plain-html-open-file` and
69
+ `near-dc-in-a-filename` written **before** it, both testing the direction it
70
+ opens — an ordinary `.html` file in the tree, and a filename that merely
71
+ contains the letters. Both were confirmed red-then-green against the real
72
+ matcher rather than asserted.
73
+
74
+ ## See also
75
+
76
+ - [`design-fidelity-mechanics`](design-fidelity-mechanics.md) — the porting half.
77
+ - `tests/scripts/design_fidelity_routing.test.ts` — `ROUTING_MATRIX`, which is
78
+ the measurement this file describes rather than a second copy of it.
@@ -0,0 +1,172 @@
1
+ # Design reconciliation — artifact values against a project's own tokens
2
+
3
+ Split out of [`design-fidelity-mechanics`](design-fidelity-mechanics.md) on
4
+ 2026-09-09, and the reason is a real constraint rather than tidiness: that file
5
+ crossed `check_depth_budget`'s 16,000-character per-file ceiling, which is a
6
+ shrink-only growth ratchet. The subject splits cleanly — that guideline answers
7
+ *how do I port an artifact faithfully*, and this one answers *what happens when
8
+ the artifact's values meet a project that already has its own*. The two rules
9
+ that arbitrate between an artifact and a brand both point here, and neither can
10
+ hold the arbitration itself: a consumer receives `design-fidelity`
11
+ (`engineering-base`) or `brand-source-of-truth` (`brand`), rarely both.
12
+
13
+ ## Tolerance — why the mechanism ships and the number does not
14
+
15
+ `design-fidelity`'s `strict` mode says EVERY visible deviation needs explicit
16
+ confirmation. The owner directive that motivated
17
+ `road-to-design-intent-conformance` asks for an unprompted approximation within
18
+ a tolerance. Read literally, those contradict — and the contradiction is real
19
+ rather than a wording problem: `grep -cE 'reconcil|tolerance|approximat|nearest'`
20
+ over the rule and this guideline returned 0 / 0 before this section existed.
21
+
22
+ **The re-frame, and its condition.** A value inside a configured tolerance stops
23
+ being an unconfirmed deviation and becomes a **reported reconciliation**: the
24
+ project's token is written, and the distance from the artifact's own value is
25
+ reported on the row. Everything outside the tolerance stays confirmation-bound,
26
+ and structure — layout, control types, component set, ordering, breakpoints —
27
+ is never in scope at any setting, because it is not a value question.
28
+
29
+ **The condition is load-bearing, not a hedge.** `design.approximation` ships
30
+ `enabled: false` with `tolerance.color` and `tolerance.length` both `null`, so
31
+ in a default install the paragraph above describes nothing that happens: every
32
+ deviation stays confirmation-bound exactly as before, and no consumer default
33
+ moved. `hard-floor` disables the mechanism outright, so the strictest mode
34
+ cannot be loosened by configuring a tolerance under it.
35
+
36
+ **Why no threshold ships**, decided by the AI council on 2026-09-09 (anthropic +
37
+ openai, 2/2), and worth re-reading before adding one: *a number in a config
38
+ file, even flagged unmeasured, shapes behavior and creates path dependency.*
39
+ Zero of seven design-to-code benchmarks in the evidence set score token
40
+ conformance, so a shipped threshold would be a guess wearing a default's
41
+ authority. Two proposals were examined and rejected on their merits rather than
42
+ on caution — `±5 per RGB channel`, because RGB channel distance is not
43
+ perceptually uniform and "likely imperceptible" does not follow from it; and
44
+ `max(1px, 2%)`, because it grows steadily more permissive at large dimensions
45
+ with no evidence that this is wanted. GitHub Primer's ±1px spacing widening is
46
+ the one real measurement available and is recorded as an externally observed
47
+ **candidate**, not adopted.
48
+
49
+ **The metric IS fixed, and that is the half that could be settled.** Colour
50
+ distance is OKLab ΔEOK, length distance is absolute CSS pixels
51
+ (`src/scripts/_lib/design_tolerance.ts`). Fixing the method mattered before
52
+ fixing any number: RGB Euclidean, ΔE LAB, CIEDE2000 and OKLab/ΔEOK give
53
+ different numbers for the same pair, so a threshold quoted without its metric
54
+ is not a threshold.
55
+
56
+ **The distance is reported on every row regardless.** Preserved values carry it
57
+ too. That is what makes the deferred half decidable: a window over rows that
58
+ report distances yields a distribution, where a window over rows reporting only
59
+ "kept" or "changed" yields nothing to read a threshold off.
60
+
61
+ ## Artifact versus brand
62
+
63
+ Both `design-fidelity` and `brand-source-of-truth` point here rather than
64
+ carrying this arbitration themselves, and the pointers are **operative**: apply
65
+ this section before reconciling a value, not as a reference to consult if
66
+ curious. Two standing rules cannot each hold half of an arbitration between
67
+ them — a consumer receives one of them without the other, because
68
+ `design-fidelity` ships in `engineering-base` and `brand-source-of-truth` in
69
+ `brand` — so the split has to be somewhere both can reach.
70
+
71
+ **Values reconcile onto the brand token, with the distance reported.** Colour,
72
+ type and spacing are the axes where the field converges, unanimously and at
73
+ error severity, across the design systems surveyed. Where a registered brand
74
+ token exists, it wins, and the artifact's own value is not silently absorbed:
75
+ the distance between the two is reported on the same row, so what changed is
76
+ visible before it is cumulative.
77
+
78
+ **Structure is the artifact's, and is never adjusted to suit a token.** Layout,
79
+ control types, component set, ordering, breakpoints and behavior are not value
80
+ questions at all, and no brand token is evidence about any of them. A structural
81
+ deviation stays what `design-fidelity`'s Iron Law says it is: a proposal needing
82
+ explicit confirmation.
83
+
84
+ **A conflict is surfaced, never merged.** Where the artifact and the brand
85
+ genuinely disagree on something that is not resolvable by the two rules above —
86
+ an artifact whose type scale contradicts the brand's, say — the agent surfaces
87
+ both readings as a numbered choice and builds neither until the human picks.
88
+ Averaging them produces a third design nobody approved.
89
+
90
+ **Where no brand exists**, there is nothing to reconcile onto: the artifact's
91
+ values are the values, and `brand-source-of-truth`'s own "when NOT to fire"
92
+ already says so. The reconciliation above is a rule about *two* sources, not a
93
+ license to normalize one.
94
+
95
+ **What this section does NOT decide** is whether an in-tolerance value may be
96
+ reconciled *without asking*. That needs a tolerance to exist and a default to be
97
+ chosen, and both are recorded as open decisions rather than answered here —
98
+ `design.tolerance.*` ships empty and the approximation ships disabled.
99
+
100
+ ## Icons on a provided artifact
101
+
102
+ `icon-consistency` owns the icon axis and, until 2026-09-09, carried **zero**
103
+ occurrences of `artifact` / `artefact` / `provided` — so no surface in the
104
+ package handled a handed-over artifact's icons at all. Its "ad-hoc inline SVGs
105
+ alongside a chosen set" clause is exactly the shape a faithful port produces,
106
+ which made a port read as a violation of the rule it was obeying.
107
+
108
+ **The fix is a new rung, not a re-ordering.** Rung 1 of the iconography ladder
109
+ is the project's brand token, and the artifact does **not** outrank it. What the
110
+ carve-out changes is which findings are violations, not which source wins.
111
+
112
+ **The obligation that survives is traceability, not conformity.** An
113
+ artifact-sourced icon is legitimate when it traces to the artifact and that
114
+ provenance is stated. An inline `<svg>` that traces to neither the adopted icon
115
+ set nor a named artifact is untraceable, and still fires.
116
+
117
+ **A swap is still a deviation.** Replacing the artifact's icon with the
118
+ project's nearest equivalent is a substitution of a control the artifact
119
+ specified, so it needs the same explicit confirmation as any other deviation
120
+ under `design-fidelity`'s Iron Law. The carve-out permits keeping the
121
+ artifact's icon; it never permits changing it silently.
122
+
123
+ **What is deliberately NOT here:** an assertion that an artifact's icons are
124
+ *reconcilable* onto the project's set by default. `tailwind-engineer` carried
125
+ that claim in the opposite direction — icons "stay 1:1 with the artifact", with
126
+ no citation — and it was deleted rather than inverted. The contrary evidence and
127
+ the two conditions that would reverse the silence are recorded in
128
+ `road-to-design-intent-conformance` § The icon evidence.
129
+
130
+ ## The 2026-07-31 lock, and why its own reopening condition cannot discharge it
131
+
132
+ A council lock of 2026-07-31 names its reopening condition as *"a measured run
133
+ showing the polish loop still edits away from a provided artifact"*. No such run
134
+ exists, which makes running one look like the cheap way to close or reopen it.
135
+ **It is not, and this paragraph exists so the next reader meets the argument
136
+ instead of re-deriving it and spending the run.**
137
+
138
+ The mechanism is **structural, not probabilistic**. Three facts, each checkable:
139
+ `polish.ts:135-167` drops findings flagged `artifact_covered: true`;
140
+ `src/skills/design-tokens/SKILL.md` wired `token_violation` findings into the
141
+ same loop **without** setting that flag; and the paragraph above states that an
142
+ unmarked finding is treated as actionable. Those compose into a path that edits
143
+ away from the artifact whenever a token-violation finding fires on an
144
+ artifact-derived value. Nothing about that path is stochastic.
145
+
146
+ So a green measured run would establish *"this did not trigger in the sample"*
147
+ — it could never establish *"this cannot trigger"*, which is the claim the lock
148
+ would need to be discharged in the useful direction. A run whose only possible
149
+ informative outcome is the one nobody wants is not a measurement, it is a
150
+ lottery ticket, and it costs a real run to buy.
151
+
152
+ **The structural fix is the discharge, and it is `blocker:
153
+ findings-actionability-default`** on `road-to-design-intent-conformance`.
154
+ Resolved by the AI council on 2026-09-09 to option (b): set `artifact_covered`
155
+ on the `token_violation` path, changing no package-wide default. Option (a) —
156
+ inverting the default so a finding is non-actionable unless escalated — was
157
+ rejected on blast radius: it changes the meaning of every existing unmarked
158
+ finding across the package to fix one known producer.
159
+
160
+ **No measurement is scheduled against this lock.** If a later reader wants to
161
+ reopen it, the thing to change is the falsifiability of its condition, not the
162
+ sample size.
163
+
164
+ ## See also
165
+
166
+ - [`design-fidelity-mechanics`](design-fidelity-mechanics.md) — the porting
167
+ half, including § Provided-artifact precedence and the `artifact_covered`
168
+ flag whose default the lock section above turns on.
169
+ - [`design-fidelity-routing`](design-fidelity-routing.md) — how the rule's own
170
+ trigger set is authored, split out in the same change.
171
+ - `src/scripts/_lib/design_tolerance.ts` — the metric and the shipped-null
172
+ thresholds this file argues for.
@@ -12,7 +12,7 @@ the typed artifact looks like**, and **who owns the failure mode
12
12
  when the chain breaks**.
13
13
 
14
14
  Cycle / dangling / tier-mismatch enforcement is not duplicated here —
15
- `task lint-handoffs` (per cross-wing-handoff § 4) is the mechanical
15
+ The `lint-handoffs` task (per cross-wing-handoff § 4) is the mechanical
16
16
  gate.
17
17
 
18
18
  ## Chain 1 — brand → channel
@@ -101,7 +101,7 @@ the contract (O2 owns the interface; H10 only consumes it).
101
101
  ## See also
102
102
 
103
103
  - [`docs/contracts/cross-wing-handoff.md`](../contracts/cross-wing-handoff.md)
104
- — typed-handoff mechanical contract; `task lint-handoffs` enforces
104
+ — typed-handoff mechanical contract; the `lint-handoffs` task enforces
105
105
  cycles, dangling references, and tier mismatches over the graph.
106
106
  - [`docs/guidelines/cross-role-handoff.md`](cross-role-handoff.md)
107
107
  — when to hand off at all, how to phrase the routing, L4 / C8
@@ -15,7 +15,7 @@ artifact looks like**, and **who owns the failure mode when the
15
15
  chain breaks**.
16
16
 
17
17
  Cycle / dangling / tier-mismatch enforcement is not duplicated here —
18
- `task lint-handoffs` (per cross-wing-handoff § 4) is the mechanical
18
+ The `lint-handoffs` task (per cross-wing-handoff § 4) is the mechanical
19
19
  gate.
20
20
 
21
21
  ## Chain 1 — money → strategy
@@ -112,7 +112,7 @@ consumes it).
112
112
  ## See also
113
113
 
114
114
  - [`docs/contracts/cross-wing-handoff.md`](../contracts/cross-wing-handoff.md)
115
- — typed-handoff mechanical contract; `task lint-handoffs` enforces
115
+ — typed-handoff mechanical contract; the `lint-handoffs` task enforces
116
116
  cycles, dangling references, and tier mismatches over the graph.
117
117
  - [`docs/guidelines/cross-role-handoff.md`](cross-role-handoff.md)
118
118
  — when to hand off at all, how to phrase the routing, L4 / C8
package/llms.txt CHANGED
@@ -41,7 +41,7 @@ canvas-design: Creating static visual art — posters, marketing visuals, brand
41
41
  character-consistency: Use when a character must stay visually identical across AI video scenes — locks identity tokens (silhouette, palette, wardrobe, prop) in JSON. Triggers 'character lock', 'same character'.
42
42
  check-refs: Use when verifying cross-references between skills, rules, commands, guidelines, and context documents are not broken after edits, renames, or deletions.
43
43
  churn-prevention: Use when designing churn defence — health-score signals, churn-cause split (involuntary / value / relationship / fit), early-warning loop. Triggers on 'why are accounts leaving'.
44
- code-intelligence: Route codebase-structure questions (who calls X, where is this used, what imports, change-impact) to an existing code-graph first: cheaper, never more precise; grep stays routine. Also 'call graph'.
44
+ code-intelligence: Route codebase-structure questions (who calls X, where used, change-impact) to an existing code-graph first: impact, tests-for, dead cheaper, never more precise; grep routine. Also 'call graph'.
45
45
  code-refactoring: When the user says 'refactor this', 'rename class', or 'move method'. Safely refactors code in any language — finds all callers, updates downstream dependencies, verifies via quality tools.
46
46
  code-review: Use when the user says \"review this\", \"check my code\", or wants feedback on changes. Reviews for correctness, quality, security, and coding standards.
47
47
  command-routing: Use when the user invokes a slash command like /create-pr, /commit, /fix-ci, or pastes command file content — routes to the right command with context inference and GitHub API patterns.