@event4u/agent-config 9.9.0 → 9.10.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 (384) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +153 -194
  3. package/README.md +1 -1
  4. package/dist/agent-src/commands/agent-status.md +12 -11
  5. package/dist/agent-src/commands/agents/user/accept.md +115 -30
  6. package/dist/agent-src/commands/agents/user/delete.md +147 -0
  7. package/dist/agent-src/commands/agents/user/review.md +65 -28
  8. package/dist/agent-src/commands/agents/user/show.md +82 -29
  9. package/dist/agent-src/commands/agents/user/update.md +2 -2
  10. package/dist/agent-src/commands/agents/user.md +16 -3
  11. package/dist/agent-src/commands/check-current-md.md +0 -10
  12. package/dist/agent-src/commands/condense.md +28 -97
  13. package/dist/agent-src/commands/cost/report.md +7 -0
  14. package/dist/agent-src/commands/fix/portability.md +0 -8
  15. package/dist/agent-src/commands/fix/refs.md +0 -8
  16. package/dist/agent-src/commands/humanize.md +2 -2
  17. package/dist/agent-src/commands/jira-ticket.md +1 -1
  18. package/dist/agent-src/commands/memory/load.md +11 -0
  19. package/dist/agent-src/commands/optimize/skills.md +1 -1
  20. package/dist/agent-src/commands/pr/create.md +4 -4
  21. package/dist/agent-src/commands/profile/show.md +3 -3
  22. package/dist/agent-src/commands/rule-compliance-audit.md +5 -4
  23. package/dist/agent-src/commands/security-audit-config.md +1 -1
  24. package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
  25. package/dist/agent-src/commands/tdd.md +21 -0
  26. package/dist/agent-src/commands/team/delegate.md +2 -2
  27. package/dist/agent-src/commands/team-knowledge/bootstrap.md +9 -8
  28. package/dist/agent-src/commands/team-knowledge/consolidate.md +8 -7
  29. package/dist/agent-src/commands/team.md +4 -1
  30. package/dist/agent-src/commands/upstream-contribute.md +0 -1
  31. package/dist/agent-src/contexts/authority/commit-mechanics.md +7 -0
  32. package/dist/agent-src/contexts/authority/destructive-mechanics.md +16 -0
  33. package/dist/agent-src/contexts/authority/scope-mechanics.md +61 -0
  34. package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +20 -18
  35. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  36. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -1
  37. package/dist/agent-src/contexts/communication/rules-auto/source-of-truth-mechanics.md +9 -10
  38. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +1 -1
  39. package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +11 -0
  40. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +26 -15
  41. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +3 -0
  42. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +67 -37
  43. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
  44. package/dist/agent-src/contexts/execution/autonomy-examples.md +1 -1
  45. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +7 -6
  46. package/dist/agent-src/contexts/execution/evidence-discipline.md +92 -77
  47. package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +22 -21
  48. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +24 -0
  49. package/dist/agent-src/contexts/execution/project-intelligence.md +122 -103
  50. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +23 -21
  51. package/dist/agent-src/contexts/execution/subagent-response-contract.md +5 -5
  52. package/dist/agent-src/contexts/execution/subagent-routing.md +11 -0
  53. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +13 -13
  54. package/dist/agent-src/contexts/execution/subagent-steering.md +36 -34
  55. package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
  56. package/dist/agent-src/contexts/execution/user-memory-channels.md +189 -0
  57. package/dist/agent-src/contexts/execution/verification-mechanics.md +9 -0
  58. package/dist/agent-src/contexts/model-recommendations.md +3 -2
  59. package/dist/agent-src/contexts/subagent-configuration.md +3 -3
  60. package/dist/agent-src/ghostwriter/README.md +2 -2
  61. package/dist/agent-src/packs/README.md +1 -1
  62. package/dist/agent-src/personas/README.md +5 -5
  63. package/dist/agent-src/personas/_template-specialist/persona.md +3 -3
  64. package/dist/agent-src/personas/backend-architect.md +24 -23
  65. package/dist/agent-src/personas/eloquent-tamer.md +30 -30
  66. package/dist/agent-src/personas/frontend-engineer.md +30 -30
  67. package/dist/agent-src/personas/product-owner.md +41 -38
  68. package/dist/agent-src/personas/qa.md +13 -13
  69. package/dist/agent-src/personas/security-engineer.md +22 -22
  70. package/dist/agent-src/presets/README.md +3 -3
  71. package/dist/agent-src/profiles/README.md +3 -3
  72. package/dist/agent-src/rules/active-remediation.md +2 -2
  73. package/dist/agent-src/rules/artifact-engagement-recording.md +4 -4
  74. package/dist/agent-src/rules/ask-when-uncertain.md +0 -4
  75. package/dist/agent-src/rules/augment-edit-discipline.md +1 -1
  76. package/dist/agent-src/rules/broken-access-control.md +4 -4
  77. package/dist/agent-src/rules/code-comment-discipline.md +1 -1
  78. package/dist/agent-src/rules/code-provenance.md +2 -2
  79. package/dist/agent-src/rules/commit-policy.md +4 -9
  80. package/dist/agent-src/rules/communication-through-line.md +5 -5
  81. package/dist/agent-src/rules/decision-revisit-gate.md +1 -1
  82. package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
  83. package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
  84. package/dist/agent-src/rules/domain-safety-pii.md +1 -1
  85. package/dist/agent-src/rules/external-code-graph-interop.md +1 -1
  86. package/dist/agent-src/rules/fast-path-marker-visibility.md +43 -7
  87. package/dist/agent-src/rules/finance-safety-floor.md +1 -1
  88. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -3
  89. package/dist/agent-src/rules/history-discipline.md +1 -1
  90. package/dist/agent-src/rules/legal-safety-floor.md +1 -1
  91. package/dist/agent-src/rules/lethal-trifecta-guard.md +5 -5
  92. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +10 -8
  93. package/dist/agent-src/rules/media-governance-routing.md +13 -13
  94. package/dist/agent-src/rules/media-sync-ground-truth.md +29 -11
  95. package/dist/agent-src/rules/no-cheap-questions.md +7 -7
  96. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +29 -18
  97. package/dist/agent-src/rules/non-destructive-by-default.md +5 -23
  98. package/dist/agent-src/rules/onboarding-gate.md +14 -4
  99. package/dist/agent-src/rules/persona-governance.md +2 -2
  100. package/dist/agent-src/rules/prefer-enums-over-literals.md +9 -9
  101. package/dist/agent-src/rules/preservation-guard.md +10 -2
  102. package/dist/agent-src/rules/question-not-instruction.md +1 -1
  103. package/dist/agent-src/rules/roadmap-progress-sync.md +6 -6
  104. package/dist/agent-src/rules/rule-type-governance.md +1 -1
  105. package/dist/agent-src/rules/scale-discipline.md +1 -1
  106. package/dist/agent-src/rules/scope-control.md +1 -1
  107. package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
  108. package/dist/agent-src/rules/security-sensitive-stop.md +17 -11
  109. package/dist/agent-src/rules/senior-engineering-discipline.md +17 -17
  110. package/dist/agent-src/rules/session-canary.md +1 -1
  111. package/dist/agent-src/rules/skill-quality.md +1 -1
  112. package/dist/agent-src/rules/source-confidentiality.md +21 -19
  113. package/dist/agent-src/rules/source-of-truth.md +6 -5
  114. package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -2
  115. package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
  116. package/dist/agent-src/rules/think-before-action.md +5 -5
  117. package/dist/agent-src/rules/token-budget-discipline.md +5 -3
  118. package/dist/agent-src/rules/token-efficiency.md +2 -2
  119. package/dist/agent-src/rules/untrusted-input-defense.md +4 -4
  120. package/dist/agent-src/rules/user-interaction.md +12 -0
  121. package/dist/agent-src/rules/verify-before-complete.md +4 -24
  122. package/dist/agent-src/skills/adversarial-review/SKILL.md +2 -2
  123. package/dist/agent-src/skills/agent-security-review/SKILL.md +52 -45
  124. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  125. package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +20 -20
  126. package/dist/agent-src/skills/ai-council/SKILL.md +185 -128
  127. package/dist/agent-src/skills/analysis-skill-router/SKILL.md +3 -3
  128. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
  129. package/dist/agent-src/skills/artisan-commands/SKILL.md +2 -2
  130. package/dist/agent-src/skills/async-python-patterns/SKILL.md +8 -7
  131. package/dist/agent-src/skills/authz-review/SKILL.md +16 -15
  132. package/dist/agent-src/skills/aws-infrastructure/SKILL.md +5 -5
  133. package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
  134. package/dist/agent-src/skills/bug-analyzer/SKILL.md +30 -12
  135. package/dist/agent-src/skills/code-intelligence/SKILL.md +0 -1
  136. package/dist/agent-src/skills/code-intelligence/evals/triggers.json +52 -0
  137. package/dist/agent-src/skills/code-review/SKILL.md +6 -6
  138. package/dist/agent-src/skills/command-routing/SKILL.md +5 -4
  139. package/dist/agent-src/skills/composer-packages/SKILL.md +2 -2
  140. package/dist/agent-src/skills/condense-memory/SKILL.md +43 -41
  141. package/dist/agent-src/skills/context-document/SKILL.md +23 -21
  142. package/dist/agent-src/skills/copilot-config/SKILL.md +6 -1
  143. package/dist/agent-src/skills/decision-record/SKILL.md +20 -18
  144. package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
  145. package/dist/agent-src/skills/design-review/SKILL.md +15 -14
  146. package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +28 -25
  147. package/dist/agent-src/skills/devcontainer/SKILL.md +2 -2
  148. package/dist/agent-src/skills/docker/SKILL.md +1 -1
  149. package/dist/agent-src/skills/docx-authoring/evals/triggers.json +52 -0
  150. package/dist/agent-src/skills/emit-tickets/SKILL.md +2 -2
  151. package/dist/agent-src/skills/error-handling-patterns/SKILL.md +1 -1
  152. package/dist/agent-src/skills/estimate-ticket/SKILL.md +2 -2
  153. package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +0 -1
  154. package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +52 -0
  155. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +6 -5
  156. package/dist/agent-src/skills/feature-planning/SKILL.md +2 -2
  157. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +3 -3
  158. package/dist/agent-src/skills/flux/SKILL.md +1 -1
  159. package/dist/agent-src/skills/frontend-render-security/SKILL.md +13 -13
  160. package/dist/agent-src/skills/git-workflow/SKILL.md +33 -33
  161. package/dist/agent-src/skills/grafana/SKILL.md +5 -0
  162. package/dist/agent-src/skills/humanizer/SKILL.md +83 -66
  163. package/dist/agent-src/skills/humanizer/data/patterns.md +14 -14
  164. package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +4 -4
  165. package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +82 -37
  166. package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +17 -5
  167. package/dist/agent-src/skills/judge-injection-defense/SKILL.md +63 -25
  168. package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -0
  169. package/dist/agent-src/skills/judge-synthesis/SKILL.md +72 -28
  170. package/dist/agent-src/skills/laravel-horizon/SKILL.md +5 -0
  171. package/dist/agent-src/skills/laravel-mail/SKILL.md +5 -4
  172. package/dist/agent-src/skills/laravel-middleware/SKILL.md +5 -4
  173. package/dist/agent-src/skills/laravel-notifications/SKILL.md +10 -9
  174. package/dist/agent-src/skills/laravel-pennant/SKILL.md +1 -1
  175. package/dist/agent-src/skills/laravel-pulse/SKILL.md +9 -8
  176. package/dist/agent-src/skills/laravel-reverb/SKILL.md +6 -5
  177. package/dist/agent-src/skills/laravel-scheduling/SKILL.md +6 -1
  178. package/dist/agent-src/skills/laravel-validation/SKILL.md +12 -0
  179. package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
  180. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +7 -7
  181. package/dist/agent-src/skills/learning-tutor/SKILL.md +44 -43
  182. package/dist/agent-src/skills/learning-tutor/evals/triggers.json +52 -0
  183. package/dist/agent-src/skills/license-compliance-audit/SKILL.md +7 -7
  184. package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +3 -3
  185. package/dist/agent-src/skills/license-compliance-credits/SKILL.md +4 -4
  186. package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +0 -1
  187. package/dist/agent-src/skills/memory-consolidation/SKILL.md +69 -64
  188. package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -6
  189. package/dist/agent-src/skills/pdf-tools/evals/triggers.json +52 -0
  190. package/dist/agent-src/skills/performance-analysis/SKILL.md +7 -3
  191. package/dist/agent-src/skills/persona-improvement/SKILL.md +0 -2
  192. package/dist/agent-src/skills/persona-improvement/evals/triggers.json +52 -0
  193. package/dist/agent-src/skills/php-coder/SKILL.md +10 -0
  194. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +129 -120
  195. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +36 -35
  196. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +45 -41
  197. package/dist/agent-src/skills/project-analysis-core/SKILL.md +4 -4
  198. package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
  199. package/dist/agent-src/skills/project-analysis-react/SKILL.md +1 -1
  200. package/dist/agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
  201. package/dist/agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
  202. package/dist/agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -1
  203. package/dist/agent-src/skills/prompt-validator/SKILL.md +39 -39
  204. package/dist/agent-src/skills/quality-tools/SKILL.md +15 -15
  205. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +55 -19
  206. package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +29 -27
  207. package/dist/agent-src/skills/readme-writing-package/SKILL.md +2 -2
  208. package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +25 -25
  209. package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -5
  210. package/dist/agent-src/skills/refine-prompt/SKILL.md +1 -1
  211. package/dist/agent-src/skills/refine-ticket/SKILL.md +20 -2
  212. package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
  213. package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
  214. package/dist/agent-src/skills/roadmap-management/SKILL.md +80 -66
  215. package/dist/agent-src/skills/roadmap-writing/SKILL.md +84 -77
  216. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  217. package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +52 -0
  218. package/dist/agent-src/skills/security-audit/SKILL.md +26 -9
  219. package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +38 -16
  220. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +14 -11
  221. package/dist/agent-src/skills/skill-writing/SKILL.md +9 -8
  222. package/dist/agent-src/skills/song-to-script/SKILL.md +93 -85
  223. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
  224. package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +4 -3
  225. package/dist/agent-src/skills/standards-from-config/SKILL.md +61 -43
  226. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +22 -8
  227. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +28 -2
  228. package/dist/agent-src/skills/supply-chain-intake/SKILL.md +13 -13
  229. package/dist/agent-src/skills/systematic-debugging/SKILL.md +22 -21
  230. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
  231. package/dist/agent-src/skills/technical-specification/SKILL.md +5 -0
  232. package/dist/agent-src/skills/terraform/SKILL.md +2 -2
  233. package/dist/agent-src/skills/terragrunt/SKILL.md +8 -8
  234. package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +1 -1
  235. package/dist/agent-src/skills/threat-modeling/SKILL.md +19 -13
  236. package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
  237. package/dist/agent-src/skills/upstream-contribute/SKILL.md +0 -1
  238. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +9 -9
  239. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -1
  240. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +4 -6
  241. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +67 -61
  242. package/dist/agent-src/skills/video-director/SKILL.md +7 -7
  243. package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +3 -3
  244. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  245. package/dist/agent-src/templates/contexts/knowledge-pages.md +47 -45
  246. package/dist/agent-src/templates/contexts/lesson-card.md +2 -2
  247. package/dist/agent-src/templates/contexts/tenant-boundaries.md +2 -2
  248. package/dist/agent-src/templates/contexts.md +1 -1
  249. package/dist/agent-src/templates/features.md +1 -1
  250. package/dist/agent-src/templates/roadmaps.md +125 -116
  251. package/dist/agent-src/templates/rule.md +2 -1
  252. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  253. package/dist/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  254. package/dist/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  255. package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
  256. package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
  257. package/dist/agent-src/user-types/README.md +8 -8
  258. package/dist/agent-src/user-types/galabau-field-crew.md +34 -33
  259. package/dist/agent-src/user-types/metalworking-shop.md +35 -34
  260. package/dist/agent-src/user-types/truck-driver.md +22 -20
  261. package/dist/cli/python/workspace_roles.js +2 -2
  262. package/dist/cli/python/workspace_roles.js.map +1 -1
  263. package/dist/discovery/deprecation-report.md +1 -1
  264. package/dist/discovery/discovery-manifest.json +88 -62
  265. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  266. package/dist/discovery/discovery-manifest.summary.md +3 -3
  267. package/dist/discovery/orphan-report.md +1 -1
  268. package/dist/discovery/packs.json +6 -5
  269. package/dist/discovery/trust-report.md +2 -2
  270. package/dist/discovery/workspaces.json +5 -4
  271. package/dist/hooks/dispatch.js +186 -12
  272. package/dist/install/install.mjs +8 -0
  273. package/dist/mcp/registry-manifest.json +3 -3
  274. package/dist/mcp/server.json +2 -2
  275. package/dist/mcp/server.mjs +1199 -857
  276. package/dist/router.json +1 -1
  277. package/dist/scripts/_lib/compile_time_toggles.js +48 -0
  278. package/dist/scripts/_lib/compile_time_toggles.js.map +1 -0
  279. package/dist/scripts/condense.js +234 -217
  280. package/dist/scripts/condense.js.map +1 -1
  281. package/dist/server/schemas/settings.js +4 -0
  282. package/dist/server/schemas/settings.js.map +1 -1
  283. package/dist/shared/userMd/utils.js +30 -0
  284. package/dist/shared/userMd/utils.js.map +1 -1
  285. package/dist/ui/assets/index-BpSQt5vm.js.map +1 -1
  286. package/docs/guidelines/agent-infra/api-cost-levers.md +56 -5
  287. package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +93 -33
  288. package/package.json +1 -1
  289. package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  290. package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  291. package/src/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  292. package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
  293. package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
  294. package/src/config/agent-settings.template.yml +32 -2
  295. package/src/config/ci-local-parity.yml +142 -0
  296. package/src/config/gate-coverage.yml +127 -0
  297. package/src/config/preamble-payload-budget.json +44 -0
  298. package/src/scripts/_cli/cmd_doctor.ts +78 -2
  299. package/src/scripts/_lib/agent_user_profile.ts +381 -0
  300. package/src/scripts/_lib/agents_overlay.ts +9 -0
  301. package/src/scripts/_lib/anchor_eval.ts +311 -0
  302. package/src/scripts/_lib/cc_transcript.ts +316 -0
  303. package/src/scripts/_lib/compile_time_toggles.ts +79 -0
  304. package/src/scripts/_lib/confusables.ts +101 -0
  305. package/src/scripts/_lib/duplicate_scope_census.ts +77 -0
  306. package/src/scripts/_lib/managed_agents_folder.ts +181 -0
  307. package/src/scripts/_lib/payload_hash_drift.ts +126 -0
  308. package/src/scripts/_lib/preservation_migration.ts +291 -0
  309. package/src/scripts/_lib/retrieval_sanitize.ts +166 -2
  310. package/src/scripts/_lib/scan_scope.ts +115 -0
  311. package/src/scripts/_lib/user_global_memory_audit.ts +187 -0
  312. package/src/scripts/_lib/user_global_observations.ts +830 -0
  313. package/src/scripts/_lib/user_global_revocations.ts +110 -0
  314. package/src/scripts/_lib/user_memory_gate_counters.ts +291 -0
  315. package/src/scripts/ai_council/blind_review.ts +0 -0
  316. package/src/scripts/ai_council/budget_guard.ts +90 -11
  317. package/src/scripts/ai_council/bundler.ts +2 -2
  318. package/src/scripts/ai_council/clients.ts +59 -3
  319. package/src/scripts/ai_council/config.ts +38 -0
  320. package/src/scripts/ai_council/orchestrator.ts +54 -9
  321. package/src/scripts/ai_team/team_dispatch.ts +17 -6
  322. package/src/scripts/anchor_eval_falsify.ts +198 -0
  323. package/src/scripts/anchor_scoring_run.ts +239 -0
  324. package/src/scripts/annotate_discovery.ts +1 -65
  325. package/src/scripts/bench_quality_run.ts +168 -4
  326. package/src/scripts/cache_realization_report.ts +782 -0
  327. package/src/scripts/check_artefact_count_messaging.ts +5 -1
  328. package/src/scripts/check_augment_description_cap.ts +15 -4
  329. package/src/scripts/check_ci_local_parity.ts +317 -0
  330. package/src/scripts/check_condensation.ts +96 -191
  331. package/src/scripts/check_context_paths.ts +38 -9
  332. package/src/scripts/check_gate_coverage.ts +299 -0
  333. package/src/scripts/check_iron_law_prominence.ts +22 -1
  334. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  335. package/src/scripts/check_no_new_legacy_path.ts +16 -6
  336. package/src/scripts/check_no_roadmap_refs.ts +22 -9
  337. package/src/scripts/check_originality_freshness.ts +167 -0
  338. package/src/scripts/check_preamble_payload_budget.ts +130 -0
  339. package/src/scripts/check_proposal.ts +0 -0
  340. package/src/scripts/check_references.ts +0 -1
  341. package/src/scripts/check_safety_floor_untouched.ts +171 -24
  342. package/src/scripts/check_site_links.ts +62 -3
  343. package/src/scripts/ci_status.ts +0 -0
  344. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  345. package/src/scripts/code_graph/build.ts +0 -0
  346. package/src/scripts/command_suggester/types.ts +0 -0
  347. package/src/scripts/compile_router.ts +10 -14
  348. package/src/scripts/condense.sh +3 -4
  349. package/src/scripts/condense.ts +247 -228
  350. package/src/scripts/cost/track.mjs +168 -33
  351. package/src/scripts/cost_summary.ts +33 -1
  352. package/src/scripts/council_cli.ts +45 -3
  353. package/src/scripts/discovery_graph.ts +0 -0
  354. package/src/scripts/encoding_corpus.ts +500 -0
  355. package/src/scripts/encoding_corpus_report.ts +216 -0
  356. package/src/scripts/generate_index.ts +19 -2
  357. package/src/scripts/install-hooks.sh +2 -2
  358. package/src/scripts/learning_sidecar.ts +0 -0
  359. package/src/scripts/lint_confusables.ts +10 -72
  360. package/src/scripts/lint_featured_skills.ts +0 -0
  361. package/src/scripts/lint_hidden_unicode.ts +208 -0
  362. package/src/scripts/lint_load_context.ts +17 -5
  363. package/src/scripts/lint_new_skill_gate.ts +9 -3
  364. package/src/scripts/lint_no_python_twin_rationale.ts +17 -2
  365. package/src/scripts/lint_originality.ts +1 -1
  366. package/src/scripts/lint_skill_originality.ts +1 -1
  367. package/src/scripts/lint_ticket_buildable.ts +1 -1
  368. package/src/scripts/mcp_server/tools.ts +4 -4
  369. package/src/scripts/measure_scope_dedup.ts +224 -0
  370. package/src/scripts/memory_lookup.ts +0 -0
  371. package/src/scripts/mine_session.ts +98 -0
  372. package/src/scripts/orchestration_payload_hash_drift.ts +145 -0
  373. package/src/scripts/preamble_byte_census.ts +574 -0
  374. package/src/scripts/probe_skill_registration.ts +2 -2
  375. package/src/scripts/redact_hook_capture.ts +13 -0
  376. package/src/scripts/release.ts +65 -10
  377. package/src/scripts/router_telemetry.ts +1 -1
  378. package/src/scripts/second_brain_retrieval.ts +14 -4
  379. package/src/scripts/skill_linter.ts +5 -0
  380. package/src/scripts/surface-tiers.yml +2 -0
  381. package/src/scripts/validate_pack_yaml.ts +0 -0
  382. package/src/server/schemas/settings.ts +8 -0
  383. package/src/shared/userMd/utils.ts +31 -0
  384. package/dist/agent-src/rules/telegraph-speak.md +0 -87
@@ -1,10 +1,11 @@
1
1
  # Project Intelligence — Evidence v2 self-building context (capture auto, trust gated)
2
2
 
3
- Definitional spine for **Evidence v2**: agent builds project- (and optionally user-)
4
- context *while working*, so the next agent starts smarter. Additive on the v1
5
- [`evidence-discipline`](evidence-discipline.md) — weakens **no** v1 invariant. Loaded
6
- alongside the v1 spine by [`source-discovery-gate`](../../rules/source-discovery-gate.md);
7
- executable Class-A procedure is [`standards-from-config`](../../skills/standards-from-config/SKILL.md).
3
+ Definitional spine for **Evidence v2**: the agent builds project- (and optionally
4
+ user-) context *while working*, so the next agent starts smarter. Additive on the
5
+ v1 [`evidence-discipline`](evidence-discipline.md) — it does **not** weaken a
6
+ single v1 invariant. Loaded alongside the v1 spine by
7
+ [`source-discovery-gate`](../../rules/source-discovery-gate.md); the executable
8
+ Class-A procedure is [`standards-from-config`](../../skills/standards-from-config/SKILL.md).
8
9
 
9
10
  ## The one guiding principle
10
11
 
@@ -15,14 +16,15 @@ THE ONLY DEFENSE IS THAT NOTHING SELF-WRITTEN IS DURABLE, TRUSTED, SHARED TRUTH
15
16
  UNTIL EVIDENCE OR A HUMAN CONFIRMS IT.
16
17
  ```
17
18
 
18
- v1 trust-tiering pulled one level up: in v1 a card's *positive structure* is a
19
- hypothesis; in v2 a *learned lesson about the project or the user* is equally a
20
- hypothesis. Both are leads, not truth.
19
+ This is the v1 trust-tiering pulled one level up: in v1 a card's *positive
20
+ structure* is a hypothesis; in v2 a *learned lesson about the project or the user*
21
+ is equally a hypothesis. Both are leads, not truth.
21
22
 
22
23
  ## Three context classes — different problems, different validation
23
24
 
24
- Not one promote-from-intake flow. A/B/C are three problems with different validation
25
- logic and storage; the human promotion gate may be unified, the validation rules are not.
25
+ Not one promote-from-intake flow. A/B/C are three problems with different
26
+ validation logic and storage; the human promotion gate may be unified, the
27
+ validation rules are not.
26
28
 
27
29
  | Class | Question | Evidence source | Problem type | Trust | Storage |
28
30
  |---|---|---|---|---|---|
@@ -30,7 +32,7 @@ logic and storage; the human promotion gate may be unified, the validation rules
30
32
  | **B — observed convention** | how is this usually built? | ≥N real files | statistical/sampling (decays as code evolves) | medium — lead, confirm against code | `curated/conventions/` (% match) |
31
33
  | **C — learned lesson** | what recurred as a mistake? | a real failure (test/error/revert) | causal inference (needs counter-evidence) | lowest — intake until curated | `curated/lessons/` (symptom/hypothesis + history) |
32
34
 
33
- Fixed lines: **A is derived evidence** (the config *is* the standard; card is
35
+ Fixed lines: **A is derived evidence** (the config *is* the standard; the card is
34
36
  pointer+digest, never a flattened claim — conflicts surface as two pointers). The
35
37
  *convention* of an endpoint is Class B and card-able; the **concrete shape of a
36
38
  concrete endpoint stays v1** — read fresh, never cached.
@@ -43,10 +45,10 @@ OBSERVE → write INTAKE → (human promotion gate) → commit CURATED
43
45
  low-trust) user-confirmed) team-visible)
44
46
  ```
45
47
 
46
- Agent MAY *suggest* an intake signal in its reply ("I notice X — record as
48
+ The agent MAY *suggest* an intake signal in its reply ("I notice X — record as
47
49
  context?") but never treats it as fact and never silently commits
48
- ([`scope-control`](../../rules/scope-control.md): create/draft ≠ commit). Intake
49
- *grows* automatically; only the step to trusted, shared truth is human.
50
+ ([`scope-control`](../../rules/scope-control.md): create/draft ≠ commit). The
51
+ intake *grows* automatically; only the step to trusted, shared truth is human.
50
52
 
51
53
  ## Memory tiers — three, not two
52
54
 
@@ -56,69 +58,75 @@ context?") but never treats it as fact and never silently commits
56
58
  | **intake** | `agents/memory/intake/` | gitignored | *generalizable* observations — promotion candidates only | via human gate |
57
59
  | **curated** | `agents/memory/<type>/*.yml`, `agents/settings/contexts/` | tracked | human-promoted shared truth | (is the promoted state) |
58
60
 
59
- Trial-and-error and transient state go to **ephemeral** (never promoted), keeping the
60
- intake promotion queue free of per-session noise. Only generalizable observations reach
61
+ Not everything that helps the next agent should be committed. Trial-and-error and
62
+ transient state go to **ephemeral** (never promoted), keeping the intake
63
+ promotion queue free of per-session noise. Only generalizable observations reach
61
64
  intake.
62
65
 
63
66
  ## Class B — verifiability boundary, static-consensus, deviation-staleness (council 2026-06-16)
64
67
 
65
- A dogfood eval (claude-sonnet-4-5 + gpt-4o, design mode, 2 rounds) surfaced a trap
66
- and re-framed how Class B is built:
68
+ A dogfood eval (claude-sonnet-4-5 + gpt-4o, design mode, 2 rounds) surfaced a
69
+ trap and re-framed how Class B is built:
67
70
 
68
71
  - **Linter-enforced ≠ observed.** A convention the tooling *enforces* (required
69
- sections, frontmatter keys) is a **Class-A constraint**, not Class-B — capturing
70
- it as B is double-counting; a careful agent reaches it by running the linter.
71
- **Class B is only for conventions the tooling does NOT enforce** (response-shape
72
- `{data, meta}`, `config/` not `configs/`, test-description phrasing, section
73
- *ordering* the linter ignores). Verifiability is the boundary: prefer
74
- mechanically-checkable; gate subjective ones behind higher evidence
75
- (`observed_n ≥ 10`).
76
- - **Problem is consensus-detection, not capture.** "How is this usually built?" is
77
- answered by a **static-analysis consensus pass** over the real codebase ("87% of
78
- test files are `*.test.ts`"), human-curated to the dominant pattern — not by an
79
- agent free-writing observations into intake.
80
- - **Staleness = deviation metric (not a calendar).** Re-run the consensus pass on a
81
- cadence / in CI; when dominant pattern's share drops below threshold (e.g. 87% →
82
- < 70%), flag for re-review. Cheap, evidence-grounded, no background daemon.
83
- - **Auto-capture loop is deferred.** Agent-driven capture→intake loop is **not** built
84
- on current evidence (eval was invalid for B — it tested a Class-A constraint). Gated
85
- on a re-run with a *discriminating* non-linter convention. Static-consensus pass
86
- banks most of the cost win without accumulation risk. Re-evaluate only if
87
- static-consensus proves insufficient.
72
+ sections, frontmatter keys) is a **Class-A constraint**, not a Class-B observed
73
+ convention — capturing it as B is double-counting, and a careful agent reaches
74
+ it by running the linter. **Class B is only for conventions the tooling does
75
+ NOT enforce** (response-shape `{data, meta}`, `config/` not `configs/`, test-
76
+ description phrasing, section *ordering* the linter ignores). Verifiability, not
77
+ topic, is the boundary: prefer mechanically-checkable conventions; gate
78
+ subjective ones behind higher evidence (`observed_n ≥ 10`).
79
+ - **The problem is consensus-detection, not capture.** "How is this usually
80
+ built?" is answered by a **static-analysis consensus pass** over the real
81
+ codebase ("87% of test files are `*.test.ts`"), human-curated to the dominant
82
+ pattern — not by an agent free-writing observations into intake.
83
+ - **Staleness = deviation metric (not a calendar).** Re-run the consensus pass on
84
+ a cadence / in CI; when the dominant pattern's share drops below a threshold
85
+ (e.g. 87% → < 70%), flag the convention for re-review. This is the Class-B
86
+ staleness mechanism — cheap, evidence-grounded, no background daemon.
87
+ - **Auto-capture loop is deferred.** An agent-driven capture→intake loop is **not**
88
+ built on the current evidence (the eval was invalid for B — it tested a Class-A
89
+ constraint). It is gated on a re-run with a *discriminating* non-linter
90
+ convention AND is the more expensive path; the static-consensus pass banks most
91
+ of the cost win without the accumulation risk. Re-evaluate only if the
92
+ static-consensus path proves insufficient.
88
93
 
89
94
  ## Class B storage + the human gate's teeth
90
95
 
91
- Curated Class-B conventions under `agents/memory/curated/conventions/` with:
96
+ Curated Class-B conventions live under `agents/memory/curated/conventions/` with:
92
97
 
93
- - **Two-stage split** — freshly captured/consensus-derived convention lands in
94
- `quarantine/` (not yet agent-readable); human promotes to `approved/`
95
- (agent-readable). Auto-derived noise never reaches agent context before review.
98
+ - a **two-stage split** — a freshly captured/consensus-derived convention lands in
99
+ `quarantine/` (not yet agent-readable as a heuristic); a human promotes it to
100
+ `approved/` (agent-readable). Auto-derived noise never reaches agent context
101
+ before review.
96
102
  - **B-specific validation** (statistical, not causal): each convention carries
97
- `observed_n`, `dominant_share`, `confirm_against` (sibling/code to check before
98
- relying on it). Separate validation logic from Class-C lessons.
99
- - **Gate teeth:** promotion shows original-vs-derived diff + deviation metric;
100
- convention below consensus threshold cannot be promoted.
103
+ `observed_n`, `dominant_share`, and `confirm_against` (the sibling/code to check
104
+ before relying on it). Separate validation logic from Class-C lessons, even if
105
+ the human promotion gate is unified.
106
+ - **gate teeth:** promotion shows an original-vs-derived diff + the deviation
107
+ metric; a convention below the consensus threshold cannot be promoted.
101
108
 
102
109
  ## Class C — learned lessons (the safety spec; accumulation layer eval-gated)
103
110
 
104
- Riskiest class: an *inference* about why something went wrong. **Accumulation layer**
105
- (agent writing lessons into intake during normal work) is **NOT built** until a 3-arm
106
- eval shows accumulated context lowers error rate at acceptable cost on a
107
- *discriminating* task. What IS specified now is the **shape a lesson must take** so
108
- it cannot calcify a wrong belief.
111
+ The riskiest class: an *inference* about why something went wrong. The
112
+ **accumulation layer** (an agent writing lessons into intake during normal work)
113
+ is **NOT built** until a 3-arm eval shows accumulated context lowers the error
114
+ rate at acceptable cost on a *discriminating* task — and `proprietary`/global
115
+ scope is gated separately. What IS specified now is the **shape a lesson must
116
+ take** so that, if built, it cannot calcify a wrong belief.
109
117
 
110
118
  ### Evidence ≠ diagnosis (the core split)
111
119
 
112
120
  A lesson has two parts with different trust:
113
121
 
114
- - **`symptom` (durable-ish, falsifiable):** *what* really went wrong — real error
115
- text, failing test name, reverted commit SHA. Timestamped, cited.
116
- - **`hypothesis` (inference, low-trust, decaying):** *why* — agent's causal theory.
117
- Marked a hypothesis, **never** a durable lesson, until repeatedly confirmed. A
118
- wrong cause-theory must never harden into superstition.
122
+ - **`symptom` (durable-ish, falsifiable):** *what* really went wrong — the real
123
+ error text, the failing test name, the reverted commit SHA. Timestamped, cited.
124
+ - **`hypothesis` (inference, low-trust, decaying):** *why* — the agent's causal
125
+ theory. Marked a hypothesis, **never** a durable lesson, until repeatedly
126
+ confirmed. A wrong cause-theory must never harden into superstition.
119
127
 
120
- Card holds symptom as fact, diagnosis as hypothesis. Human promotion gate confirms
121
- the *causal claim*, not just "did the symptom happen".
128
+ The card holds the symptom as fact and the diagnosis as hypothesis. The human
129
+ promotion gate confirms the *causal claim*, not just "did the symptom happen".
122
130
 
123
131
  ### Test-tracking history (makes anti-calcification enforceable)
124
132
 
@@ -136,17 +144,18 @@ lesson:
136
144
  counter_evidence_ratio_gt: 0.3 # ≥30% disconfirmations → demote
137
145
  ```
138
146
 
139
- `event` logged when a *situation the lesson claims to govern* recurs:
140
- `confirmed` (claim held), `not_applicable` (situation changed — lesson no longer
141
- governs), `counter_evidence` (claim failed). Absence of recurrence is **not**
142
- confirmation.
147
+ `event` is logged when a *situation the lesson claims to govern* recurs:
148
+ `confirmed` (the claim held), `not_applicable` (the situation changed — the
149
+ lesson no longer governs it), `counter_evidence` (the claim failed). Absence of
150
+ recurrence is **not** confirmation.
143
151
 
144
152
  ### Anti-calcification check
145
153
 
146
- Curated lesson that hits either decay trigger (`no_confirmation_for_days` or
154
+ A curated lesson that hits either decay trigger (`no_confirmation_for_days` or
147
155
  `counter_evidence_ratio_gt`) is **automatically demoted to hypothesis** — by a
148
156
  periodic pass / CI step, wired alongside the accumulation layer if it ships.
149
- Self-improvement requires forgetting; without demotion, lessons rot into noise.
157
+ Self-improvement requires forgetting; without demotion, accumulated lessons rot
158
+ into noise and the agent gets *worse*.
150
159
 
151
160
  ### Subject-not-person privacy floor
152
161
 
@@ -163,11 +172,13 @@ deliberately, never silently.
163
172
  ### The existence gate (why the accumulation layer is deferred)
164
173
 
165
174
  `Self-improving` is a hypothesis, not a law — accumulated context can *raise* the
166
- error rate. Accumulation layer ships only if a 3-arm eval (no-context / v1 /
167
- v2-accumulated) on a *discriminating* task shows it lowers error rate at acceptable
168
- cost. Kill-criterion: if it does not, layer is not built and agent runs v1 + Class A
169
- (the rollback target in [`evidence-discipline`](evidence-discipline.md)). Eval
170
- requires real multi-task spend and valid (non-saturated) task design.
175
+ error rate (calcified diagnoses, stale conventions, context-window flood). The
176
+ accumulation layer ships only if a 3-arm eval (no-context / v1 / v2-accumulated)
177
+ on a *discriminating* task (not a saturated one — see the Class-B council note)
178
+ shows it lowers the error rate at acceptable cost. Kill-criterion: if it does
179
+ not, the layer is not built and the agent runs v1 + Class A (the rollback target
180
+ in [`evidence-discipline`](evidence-discipline.md)). This eval requires real
181
+ multi-task spend and a valid (non-saturated) task design.
171
182
 
172
183
  ## The v1↔v2 isolation contract (the load-bearing guardrail)
173
184
 
@@ -177,12 +188,13 @@ v2 CONTEXT SKILLS ARE WRITE-ONLY INTO INTAKE. A STRUCTURAL CLAIM STILL REQUIRES
177
188
  FRESH SOURCE PER v1, REGARDLESS OF WHAT CURATED CONTEXT "KNOWS".
178
189
  ```
179
190
 
180
- Dominant failure: once something is in `curated/`, agent has no incentive to re-check,
181
- and v2's cached claims contaminate v1's read-fresh discipline. Defense is behavioral,
182
- enforced by skill design (not a deployment boundary): v2 context informs *where to
183
- look* and *what to expect* (heuristics), but field/endpoint/column/value is still
184
- confirmed against a live source this session. Class A is the one high-trust class,
185
- and even it is read for heuristics, never to skip a structural read.
191
+ The dominant failure: once something is in `curated/`, the agent has no incentive
192
+ to re-check, and v2's cached claims contaminate v1's read-fresh discipline. The
193
+ defense is behavioral, enforced by skill design (not a deployment boundary): v2
194
+ context informs *where to look* and *what convention to expect* (heuristics), but
195
+ a field/endpoint/column/value is still confirmed against a live source this
196
+ session. Class A is the one high-trust class, and even it is read for heuristics,
197
+ never to skip a structural read.
186
198
 
187
199
  ## Redaction on every intake write
188
200
 
@@ -191,20 +203,23 @@ THE PRIVACY REDACTOR RUNS ON EVERY INTAKE WRITE, BEFORE THE FILE IS CREATED.
191
203
  A HALT-TRIGGER BLOCKS THE WRITE — IT DOES NOT SILENTLY SCRUB-AND-CONTINUE.
192
204
  ```
193
205
 
194
- v1 regex-denylist redactor (`low-impact-corpus-privacy-floor` +
195
- `source-confidentiality`) gates every intake write. On a hit it **blocks** the write
196
- and surfaces the offending pattern; never silently rewrites. Promotion review shows
197
- original-vs-redacted diff so a human sees what was scrubbed.
206
+ The v1 regex-denylist redactor (`low-impact-corpus-privacy-floor` +
207
+ `source-confidentiality` pattern set) gates every intake write. On a hit it
208
+ **blocks** the write and surfaces the offending pattern; it never silently
209
+ rewrites. Promotion review shows an original-vs-redacted diff so a human sees what
210
+ was scrubbed. Closes the "Class-B auto-capture leaks a secret-in-pattern (e.g. a
211
+ header value) before redaction runs" gap.
198
212
 
199
213
  ## Multi-agent concurrency
200
214
 
201
215
  Parallel agents share one project tree. Intake writes therefore:
202
216
 
203
- - carry an **agent-id / random suffix** in filename (no overwrite of another agent's
204
- pending intake);
205
- - pass a **promotion conflict check** — human promotion flow surfaces near-duplicate /
206
- conflicting pending intake from other agents for human resolution rather than
207
- last-write-wins.
217
+ - carry an **agent-id / random suffix** in the filename (no overwrite of another
218
+ agent's pending intake);
219
+ - pass a **promotion conflict check** — the human promotion flow surfaces
220
+ near-duplicate / conflicting pending intake from other agents (e.g. agent A
221
+ proposes "handlers return `{status,data}`" while agent B has pending
222
+ "`{ok,result}`") for human resolution rather than last-write-wins.
208
223
 
209
224
  ## Context budget + prioritisation
210
225
 
@@ -214,7 +229,7 @@ unreviewable queue. Quantitative ceilings (starting values, tune on evidence):
214
229
  | Bound | Start | Over-budget action |
215
230
  |---|---|---|
216
231
  | total curated size (A+B+C) | ~50 KB | lowest-confidence / oldest items expire or need re-review |
217
- | pending intake queue | ~20 | block new intake until queue drains |
232
+ | pending intake queue | ~20 | block new intake until the queue drains |
218
233
  | Class A budget | unlimited | deterministic, low-entropy |
219
234
  | Class B per domain | ~10 conventions | demote the weakest by % match |
220
235
  | Class C active lessons | ~5, sorted by confirmation count | demote the least-confirmed |
@@ -223,27 +238,31 @@ v2 must never become a write-only structure that grows forever.
223
238
 
224
239
  ## v1→v2 migration
225
240
 
226
- When v2 ships, existing v1 context-documents are **not** silently re-trusted. They
227
- keep their v1 semantics (present-state snapshots a human curates); v2 adds A/B/C-tagged
228
- classes *alongside* them. No existing card's trust level changes without an explicit
229
- human pass — trust-semantics change cannot silently corrupt an existing project's
230
- evidence base.
241
+ When v2 ships, existing v1 context-documents are **not** silently re-trusted.
242
+ They keep their v1 semantics (present-state snapshots a human curates); v2 adds
243
+ the A/B/C-tagged classes *alongside* them. No existing card's trust level changes
244
+ without an explicit human pass — the trust-semantics change cannot silently
245
+ corrupt an existing project's evidence base.
231
246
 
232
247
  ## Global promotion (A/B/C) — reuse the measure-then-decide gate, never auto
233
248
 
234
- No new mechanism: global promotion reuses the ADR-100 / **ADR-103** gate
235
- (`knowledge.global_sharing`, **default-off until cross-project reuse is measured
236
- across ≥ 2 real projects**; `record-seen` sightings are the instrument).
237
-
238
- - **Class A / B (conventions):** project-local committed by default. Global only when
239
- the *same* convention is empirically reused across ≥ 2 projects — **manually
240
- promoted, never auto**, through the measure-then-decide gate, same privacy floor
241
- (slugs / subject only, never contents / persons).
242
- - **Class C (lessons):** global only for cross-project **subject** lessons. Same gate,
243
- same floor. Killing the global layer never kills project-local lessons (v1 F-5 holds).
244
- - **Suggestion-gated, always.** Agent may *surface* a promotion candidate; human
245
- decides. **No runtime self-modifying trusted store** — global store stays file-first,
246
- leads-only cache (ADR-100 Decision-3).
249
+ No new mechanism: global promotion of any v2 class reuses the ADR-100 /
250
+ **ADR-103** gate (`knowledge.global_sharing`, **default-off until cross-project
251
+ reuse is measured across ≥ 2 real projects**; the `record-seen` sightings are the
252
+ instrument).
253
+
254
+ - **Class A / B (conventions):** project-local committed by default (they belong
255
+ to the repo). Global only when the *same* convention is empirically reused
256
+ across ≥ 2 projects — **manually promoted, never auto**, through the
257
+ measure-then-decide gate, with the same privacy floor (slugs / subject only,
258
+ never contents / persons).
259
+ - **Class C (lessons):** global only for cross-project **subject** lessons
260
+ ("this *kind* of integration is often wired wrong"), same gate, same floor.
261
+ Killing the global layer never kills the project-local lessons (v1 F-5 holds).
262
+ - **Suggestion-gated, always.** The agent may *surface* a promotion candidate;
263
+ the human decides. There is **no runtime self-modifying trusted store** — the
264
+ global store stays a file-first, leads-only cache whose positive content is
265
+ re-confirmed against the live source this session (ADR-100 Decision-3).
247
266
 
248
267
  ## Reaffirmed v1 invariants (v2 weakens none)
249
268
 
@@ -253,7 +272,7 @@ across ≥ 2 real projects**; `record-seen` sightings are the instrument).
253
272
  3. Trust-tiering holds — self-written is hypothesis until evidence/human confirms;
254
273
  Class A is high-trust *because* config-derived.
255
274
  4. Honest enforcement — the self-capture log is instrumentation; the teeth are
256
- pointer-CI + eval gates + human promotion gate.
275
+ pointer-CI + the eval gates + the human promotion gate.
257
276
  5. No auto-commit, no auto-promote, no runtime self-modifying trusted store.
258
277
 
259
278
  ## See also
@@ -1,40 +1,41 @@
1
1
  # Roadmap Execution Contract
2
2
 
3
- Loaded by [`roadmap-process-loop § 3`](roadmap-process-loop.md) when
3
+ Loaded by [`roadmap-process-loop § 3`](roadmap-process-loop.md) when the
4
4
  resolved roadmap declares `execution.mode` in frontmatter
5
5
  (`autonomous` | `phase-checkpoints`; absent / `interactive` = legacy
6
- behavior, this context stays unloaded). Defines the run-start
7
- pre-scan, the contract summary user confirms ONCE, the grants that
6
+ behavior, this context stays unloaded). Defines the run-start pre-scan,
7
+ the contract summary the user confirms ONCE, the grants that
8
8
  confirmation activates, and the per-mode gate table.
9
9
 
10
10
  ## Principle — declaration vs. authorization
11
11
 
12
12
  `execution.mode` in frontmatter is a **declaration of intent** written
13
- at authoring time. Grants nothing. Authorization happens exactly once
14
- per run: user invokes `/roadmap:process-*` (a this-turn action), loop
15
- derives the contract below from roadmap's CURRENT content, and user's
16
- single confirmation converts declared mode into this-turn grants
17
- **cached for this run only** (same mechanism as commit pre-scan it
18
- extends). Stale frontmatter is harmless: no confirmation, no grants.
13
+ at authoring time. It grants nothing. Authorization happens exactly
14
+ once per run: the user invokes `/roadmap:process-*` (a this-turn
15
+ action), the loop derives the contract below from the roadmap's
16
+ CURRENT content, and the user's single confirmation converts the
17
+ declared mode into this-turn grants **cached for this run only**
18
+ (same mechanism as the commit pre-scan it extends). Stale frontmatter
19
+ is harmless: no confirmation, no grants.
19
20
 
20
21
  ## 1. Pre-scan — four detection classes
21
22
 
22
23
  Scan every open step (text + inline notes) for:
23
24
 
24
25
  1. **Commit-shaped steps** — `commit:` / `git commit` / `Commit phase`
25
- (existing § 3 scan).
26
+ (the existing § 3 scan).
26
27
  2. **Git-shape needs** — steps requiring a branch / push / PR
27
28
  (`branch`, `push`, `open a PR`, `create PR`, "in a worktree"), plus
28
- run's own delivery needs when roadmap's definition of done includes
29
- shipping (autonomous mode default, § 4).
29
+ the run's own delivery needs when the roadmap's definition of done
30
+ includes shipping (autonomous mode default, § 4).
30
31
  3. **Artifact-authoring steps** — steps that create or materially
31
32
  rewrite a skill / rule / command / guideline (verbs `add`/`create`/
32
33
  `write`/`rewrite` + artifact nouns, or paths under
33
- `src/{skills,rules}/`, command/guideline trees). Feed the batched
34
- [`artifact-drafting-protocol`](../../rules/artifact-drafting-protocol.md)
34
+ `src/{skills,rules}/`, command/guideline trees). These feed the
35
+ batched [`artifact-drafting-protocol`](../../rules/artifact-drafting-protocol.md)
35
36
  research pass (§ 3 below).
36
37
  4. **Open questions / ambiguity** — explicit `?` markers, "decide
37
- whether", options left unresolved, or steps matching
38
+ whether", options left unresolved, or steps matching the
38
39
  [`ask-when-uncertain`](../../rules/ask-when-uncertain.md)
39
40
  vague-trigger patterns.
40
41
 
@@ -63,9 +64,10 @@ Always active regardless of this contract (never lifted):
63
64
  2. Adjust (name the change) · 3. Run interactive instead · 4. Abort
64
65
  ```
65
66
 
66
- Accept = ONE authorization of the run. Cache all grants; never re-ask
67
- inside the run. Adjust → apply, re-show once. Contract re-derived on
68
- every invocation — always reflects roadmap's and repo's current state.
67
+ Accept = the ONE authorization of the run. Cache all grants; never
68
+ re-ask inside the run. Adjust → apply, re-show once. The contract is
69
+ re-derived on every invocation — it always reflects the roadmap's and
70
+ repo's current state.
69
71
 
70
72
  ## 3. Grants activated by acceptance
71
73
 
@@ -78,7 +80,7 @@ every invocation — always reflects roadmap's and repo's current state.
78
80
  | Batched artifact drafting | The drafting-protocol **Research/overlap pass runs NOW at contract time against current artifact state**; results cached; Understand/Draft phases run non-interactively during the run. Artifacts NOT in the batch still trigger the interactive protocol |
79
81
  | Council auto-enable | In-run open questions route to the AI council silently; `high_impact` / `user_required` classifications STILL escalate to the user per [`ask-when-uncertain`](../../rules/ask-when-uncertain.md). **No council configured** → the contract summary says so and in-run true ambiguity halts (never silent guessing) |
80
82
 
81
- Grants satisfy [`scope-control`](../../rules/scope-control.md)'s
83
+ These grants satisfy [`scope-control`](../../rules/scope-control.md)'s
82
84
  "standing instruction" clause for the run — see
83
85
  [`scope-mechanics § Roadmap execution contract`](../authority/scope-mechanics.md).
84
86
 
@@ -90,8 +92,8 @@ Grants satisfy [`scope-control`](../../rules/scope-control.md)'s
90
92
  | `phase-checkpoints` | Same end state | Safety floors + a compact status + "continue?" prompt at each phase boundary |
91
93
  | `interactive` (absent field) | Legacy: work lands, no git delivery without per-op permission | All gates as authored by their owning rules |
92
94
 
93
- If roadmap contains **no** delivery need and no commit steps, git
94
- grants are omitted from the contract (nothing to authorize —
95
+ If the roadmap contains **no** delivery need and no commit steps, the
96
+ git grants are omitted from the contract (nothing to authorize —
95
97
  [`commit-policy`](../../rules/commit-policy.md) default: never commit).
96
98
 
97
99
  ## 5. What acceptance can NEVER cover
@@ -23,9 +23,9 @@ orchestrator synthesises and re-verifies.
23
23
 
24
24
  ## Budget-hit partial result
25
25
 
26
- Worker's `max_tokens_per_worker` stop-loss fires
27
- ([spawn contract § Per-worker token stop-loss](subagent-spawn-contract.md#per-worker-token-stop-loss-l0b--hard-budget-structured-escalation))
28
- → return is `BLOCKED` envelope whose body is this shape instead:
26
+ When the worker's `max_tokens_per_worker` stop-loss fires
27
+ ([spawn contract § Per-worker token stop-loss](subagent-spawn-contract.md#per-worker-token-stop-loss-l0b--hard-budget-structured-escalation)),
28
+ the return is a `BLOCKED` envelope whose body is this shape instead:
29
29
 
30
30
  ```json
31
31
  {
@@ -36,9 +36,9 @@ Worker's `max_tokens_per_worker` stop-loss fires
36
36
  }
37
37
  ```
38
38
 
39
- `budget_hit: true` is the escalation flag; `found` follows same
39
+ `budget_hit: true` is the escalation flag; `found` follows the same
40
40
  refs-not-bodies floor as `evidence_refs`. Validator:
41
- `worker_budget.validateWorkerPartialResult` — orchestrator never adopts
41
+ `worker_budget.validateWorkerPartialResult` — the orchestrator never adopts an
42
42
  invalid partial return.
43
43
 
44
44
  ## Orchestrator synthesis duties
@@ -37,6 +37,17 @@ THE SAME MINUS THE QUOTA WIN.
37
37
  "Sonnet-has-its-own-allowance" idea lives, and it lives as a runtime-detected
38
38
  flag, never as portable prose.
39
39
 
40
+ **Cache trade-off (road-to-cache-economy Phase 4).** A tier downshift changes
41
+ the sub-task's model, and the prompt cache is keyed by `(model, prefix)` — so
42
+ a downshifted leg forfeits its model-scoped cache reads AND splits a cohort's
43
+ shared prefix into two caches (downshifted legs vs. session-tier legs). The
44
+ per-call model saving and the forfeited cache-read saving pull in opposite
45
+ directions; which wins is a measured question, not a default this policy
46
+ resolves — see
47
+ [`docs/contracts/ai-council-config.md`](../../../../docs/contracts/ai-council-config.md)
48
+ § `model_downgrade` for the analogous downgrade/cache coupling this suite
49
+ already ships on the council side.
50
+
40
51
  ## Why vendor-neutral
41
52
 
42
53
  A separate-quota-pool is a billing quirk of one host at one time. Encoding it
@@ -51,7 +51,7 @@ A WORKER OVERRUNNING ITS BUDGET 20× IS A DISPATCH ERROR ON THE WRONG RUNG,
51
51
  NOT DILIGENCE.
52
52
  ```
53
53
 
54
- Budgets keyed by the worker's resolved tier
54
+ Budgets are keyed by the worker's resolved tier
55
55
  (`worker_budget.budgetForTier`; start values `lite: 15k` — the lookup-class
56
56
  seed — `medium: 60k`, `high: 150k`, refined from `budget_hit` telemetry, never
57
57
  final). On hit the worker returns a `BLOCKED` envelope whose body is the
@@ -60,9 +60,9 @@ partial-result shape from the
60
60
  what was found (refs), what remains, suggested next rung. The stop-loss
61
61
  **composes** with the N=3 validation budget
62
62
  ([`autonomous-execution`](../../rules/autonomous-execution.md)) and the
63
- ADR-109 response contract — replaces nothing. Live evidence (2026-07-28):
64
- four lookup-class workers burned 280–327k tokens each on tasks a
65
- deterministic primitive answers for <1k.
63
+ ADR-109 response contract — it replaces nothing. Live evidence
64
+ (2026-07-28): four lookup-class workers burned 280–327k tokens each on tasks
65
+ a deterministic primitive answers for <1k.
66
66
 
67
67
  ## Bundle resolver — bind to the existing surfaces
68
68
 
@@ -98,14 +98,14 @@ covered by
98
98
 
99
99
  ## Worker rtk allowlist — wrap only the measured class
100
100
 
101
- Worker tool loops wrap a command with rtk **only** when that command class
102
- measured ≥ ~50% output saving in `internal/bench/rtk-savings/RESULTS.md`
103
- (`git status`, full-format `git log -N`, `ls -la`); the ~0%-class
104
- (`--oneline`, `--stat` views, `npm ls`) stays unwrapped — wrap overhead
105
- without return. Deterministic list: `src/scripts/_lib/rtk_allowlist.ts`
106
- (`shouldWrapWithRtk`); congruence with RESULTS.md is test-enforced
107
- (`tests/scripts/_lib_rtk_allowlist.test.ts`) — numbers live in the bench
108
- file, referenced, never duplicated.
101
+ A worker's tool loop wraps a command with rtk **only** when that command
102
+ class measured ≥ ~50% output saving in
103
+ `internal/bench/rtk-savings/RESULTS.md` (`git status`, full-format
104
+ `git log -N`, `ls -la`); the ~0%-class (`--oneline`, `--stat` views,
105
+ `npm ls`) stays unwrapped — wrap overhead without return. Deterministic
106
+ list: `src/scripts/_lib/rtk_allowlist.ts` (`shouldWrapWithRtk`); congruence
107
+ with RESULTS.md is test-enforced (`tests/scripts/_lib_rtk_allowlist.test.ts`)
108
+ — the numbers live in the bench file, referenced, never duplicated.
109
109
 
110
110
  ## Prefix stability — deterministic payload ordering
111
111
 
@@ -113,7 +113,7 @@ Spawn payloads serialize **static prefix first** (role contract, profile,
113
113
  personas, budget — byte-identical across dispatches of the same
114
114
  configuration), **variable task part last**; no timestamps, no random IDs
115
115
  (`serializeSpawnPayload` / `spawnPayloadHash`). Provider prompt-caching keys
116
- on the stable prefix; `payload_hash` + `cache_hit` audit fields
116
+ on the stable prefix; the `payload_hash` + `cache_hit` audit fields
117
117
  ([`orchestration-telemetry`](orchestration-telemetry.md)) measure whether it
118
118
  actually hits. Measurement only — no savings claim without provider-response
119
119
  evidence.