@event4u/agent-config 9.9.0 → 9.11.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 (479) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +212 -194
  3. package/README.md +13 -16
  4. package/agents/templates/.ai-council.yml.example +481 -0
  5. package/agents/templates/.ai-video.xml.example +247 -0
  6. package/dist/agent-src/commands/agent-status.md +12 -11
  7. package/dist/agent-src/commands/agents/user/accept.md +115 -30
  8. package/dist/agent-src/commands/agents/user/delete.md +147 -0
  9. package/dist/agent-src/commands/agents/user/review.md +65 -28
  10. package/dist/agent-src/commands/agents/user/show.md +82 -29
  11. package/dist/agent-src/commands/agents/user/update.md +2 -2
  12. package/dist/agent-src/commands/agents/user.md +16 -3
  13. package/dist/agent-src/commands/check-current-md.md +0 -10
  14. package/dist/agent-src/commands/condense.md +28 -97
  15. package/dist/agent-src/commands/cost/report.md +7 -0
  16. package/dist/agent-src/commands/fix/portability.md +0 -8
  17. package/dist/agent-src/commands/fix/refs.md +0 -8
  18. package/dist/agent-src/commands/humanize.md +2 -2
  19. package/dist/agent-src/commands/jira-ticket.md +1 -1
  20. package/dist/agent-src/commands/memory/load.md +11 -0
  21. package/dist/agent-src/commands/optimize/skills.md +1 -1
  22. package/dist/agent-src/commands/pr/create.md +4 -4
  23. package/dist/agent-src/commands/profile/show.md +3 -3
  24. package/dist/agent-src/commands/rule-compliance-audit.md +5 -4
  25. package/dist/agent-src/commands/security-audit-config.md +1 -1
  26. package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
  27. package/dist/agent-src/commands/tdd.md +21 -0
  28. package/dist/agent-src/commands/team/delegate.md +2 -2
  29. package/dist/agent-src/commands/team-knowledge/bootstrap.md +9 -8
  30. package/dist/agent-src/commands/team-knowledge/consolidate.md +8 -7
  31. package/dist/agent-src/commands/team.md +4 -1
  32. package/dist/agent-src/commands/upstream-contribute.md +0 -1
  33. package/dist/agent-src/contexts/authority/commit-mechanics.md +7 -0
  34. package/dist/agent-src/contexts/authority/destructive-mechanics.md +16 -0
  35. package/dist/agent-src/contexts/authority/scope-mechanics.md +61 -0
  36. package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +20 -18
  37. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  38. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -1
  39. package/dist/agent-src/contexts/communication/rules-auto/source-of-truth-mechanics.md +9 -10
  40. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +1 -1
  41. package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +11 -0
  42. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +26 -15
  43. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +3 -0
  44. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +67 -37
  45. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
  46. package/dist/agent-src/contexts/execution/autonomy-examples.md +1 -1
  47. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +7 -6
  48. package/dist/agent-src/contexts/execution/evidence-discipline.md +92 -77
  49. package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +22 -21
  50. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +24 -0
  51. package/dist/agent-src/contexts/execution/project-intelligence.md +122 -103
  52. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +23 -21
  53. package/dist/agent-src/contexts/execution/subagent-response-contract.md +5 -5
  54. package/dist/agent-src/contexts/execution/subagent-routing.md +11 -0
  55. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +13 -13
  56. package/dist/agent-src/contexts/execution/subagent-steering.md +36 -34
  57. package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
  58. package/dist/agent-src/contexts/execution/user-memory-channels.md +189 -0
  59. package/dist/agent-src/contexts/execution/verification-mechanics.md +9 -0
  60. package/dist/agent-src/contexts/model-recommendations.md +3 -2
  61. package/dist/agent-src/contexts/subagent-configuration.md +3 -3
  62. package/dist/agent-src/ghostwriter/README.md +2 -2
  63. package/dist/agent-src/packs/README.md +1 -1
  64. package/dist/agent-src/personas/README.md +5 -5
  65. package/dist/agent-src/personas/_template-specialist/persona.md +3 -3
  66. package/dist/agent-src/personas/backend-architect.md +24 -23
  67. package/dist/agent-src/personas/eloquent-tamer.md +30 -30
  68. package/dist/agent-src/personas/frontend-engineer.md +30 -30
  69. package/dist/agent-src/personas/product-owner.md +41 -38
  70. package/dist/agent-src/personas/qa.md +13 -13
  71. package/dist/agent-src/personas/security-engineer.md +22 -22
  72. package/dist/agent-src/presets/README.md +3 -3
  73. package/dist/agent-src/profiles/README.md +3 -3
  74. package/dist/agent-src/rules/active-remediation.md +2 -2
  75. package/dist/agent-src/rules/artifact-engagement-recording.md +4 -4
  76. package/dist/agent-src/rules/ask-when-uncertain.md +0 -4
  77. package/dist/agent-src/rules/augment-edit-discipline.md +1 -1
  78. package/dist/agent-src/rules/broken-access-control.md +4 -4
  79. package/dist/agent-src/rules/code-comment-discipline.md +1 -1
  80. package/dist/agent-src/rules/code-provenance.md +2 -2
  81. package/dist/agent-src/rules/commit-policy.md +4 -9
  82. package/dist/agent-src/rules/communication-through-line.md +5 -5
  83. package/dist/agent-src/rules/decision-revisit-gate.md +1 -1
  84. package/dist/agent-src/rules/design-fidelity.md +1 -1
  85. package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
  86. package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
  87. package/dist/agent-src/rules/domain-safety-pii.md +1 -1
  88. package/dist/agent-src/rules/external-code-graph-interop.md +1 -1
  89. package/dist/agent-src/rules/fast-path-marker-visibility.md +43 -7
  90. package/dist/agent-src/rules/finance-safety-floor.md +1 -1
  91. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -3
  92. package/dist/agent-src/rules/history-discipline.md +1 -1
  93. package/dist/agent-src/rules/legal-safety-floor.md +1 -1
  94. package/dist/agent-src/rules/lethal-trifecta-guard.md +5 -5
  95. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +10 -8
  96. package/dist/agent-src/rules/media-governance-routing.md +13 -13
  97. package/dist/agent-src/rules/media-sync-ground-truth.md +29 -11
  98. package/dist/agent-src/rules/no-cheap-questions.md +7 -7
  99. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +29 -18
  100. package/dist/agent-src/rules/non-destructive-by-default.md +5 -23
  101. package/dist/agent-src/rules/onboarding-gate.md +14 -4
  102. package/dist/agent-src/rules/persona-governance.md +2 -2
  103. package/dist/agent-src/rules/prefer-enums-over-literals.md +9 -9
  104. package/dist/agent-src/rules/preservation-guard.md +10 -2
  105. package/dist/agent-src/rules/question-not-instruction.md +1 -1
  106. package/dist/agent-src/rules/roadmap-progress-sync.md +6 -6
  107. package/dist/agent-src/rules/rule-type-governance.md +1 -1
  108. package/dist/agent-src/rules/scale-discipline.md +1 -1
  109. package/dist/agent-src/rules/scope-control.md +1 -1
  110. package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
  111. package/dist/agent-src/rules/security-sensitive-stop.md +17 -11
  112. package/dist/agent-src/rules/senior-engineering-discipline.md +17 -17
  113. package/dist/agent-src/rules/session-canary.md +1 -1
  114. package/dist/agent-src/rules/skill-quality.md +1 -1
  115. package/dist/agent-src/rules/source-confidentiality.md +21 -19
  116. package/dist/agent-src/rules/source-of-truth.md +6 -5
  117. package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -2
  118. package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
  119. package/dist/agent-src/rules/think-before-action.md +5 -5
  120. package/dist/agent-src/rules/token-budget-discipline.md +5 -3
  121. package/dist/agent-src/rules/token-efficiency.md +2 -2
  122. package/dist/agent-src/rules/untrusted-input-defense.md +4 -4
  123. package/dist/agent-src/rules/user-interaction.md +12 -0
  124. package/dist/agent-src/rules/verify-before-complete.md +4 -24
  125. package/dist/agent-src/skills/adversarial-review/SKILL.md +2 -2
  126. package/dist/agent-src/skills/agent-security-review/SKILL.md +52 -45
  127. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  128. package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +20 -20
  129. package/dist/agent-src/skills/ai-council/SKILL.md +185 -128
  130. package/dist/agent-src/skills/analysis-skill-router/SKILL.md +3 -3
  131. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
  132. package/dist/agent-src/skills/artisan-commands/SKILL.md +2 -2
  133. package/dist/agent-src/skills/async-python-patterns/SKILL.md +8 -7
  134. package/dist/agent-src/skills/authz-review/SKILL.md +16 -15
  135. package/dist/agent-src/skills/aws-infrastructure/SKILL.md +5 -5
  136. package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
  137. package/dist/agent-src/skills/bug-analyzer/SKILL.md +30 -12
  138. package/dist/agent-src/skills/code-intelligence/SKILL.md +0 -1
  139. package/dist/agent-src/skills/code-intelligence/evals/triggers.json +52 -0
  140. package/dist/agent-src/skills/code-review/SKILL.md +6 -6
  141. package/dist/agent-src/skills/command-routing/SKILL.md +5 -4
  142. package/dist/agent-src/skills/composer-packages/SKILL.md +2 -2
  143. package/dist/agent-src/skills/condense-memory/SKILL.md +43 -41
  144. package/dist/agent-src/skills/context-document/SKILL.md +23 -21
  145. package/dist/agent-src/skills/copilot-config/SKILL.md +6 -1
  146. package/dist/agent-src/skills/decision-record/SKILL.md +20 -18
  147. package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
  148. package/dist/agent-src/skills/design-review/SKILL.md +15 -14
  149. package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +28 -25
  150. package/dist/agent-src/skills/devcontainer/SKILL.md +2 -2
  151. package/dist/agent-src/skills/docker/SKILL.md +1 -1
  152. package/dist/agent-src/skills/docx-authoring/evals/triggers.json +52 -0
  153. package/dist/agent-src/skills/emit-tickets/SKILL.md +2 -2
  154. package/dist/agent-src/skills/error-handling-patterns/SKILL.md +1 -1
  155. package/dist/agent-src/skills/estimate-ticket/SKILL.md +2 -2
  156. package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +0 -1
  157. package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +52 -0
  158. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +21 -7
  159. package/dist/agent-src/skills/fe-design/SKILL.md +10 -0
  160. package/dist/agent-src/skills/feature-planning/SKILL.md +2 -2
  161. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +3 -3
  162. package/dist/agent-src/skills/flux/SKILL.md +1 -1
  163. package/dist/agent-src/skills/frontend-render-security/SKILL.md +13 -13
  164. package/dist/agent-src/skills/git-workflow/SKILL.md +33 -33
  165. package/dist/agent-src/skills/grafana/SKILL.md +5 -0
  166. package/dist/agent-src/skills/humanizer/SKILL.md +83 -66
  167. package/dist/agent-src/skills/humanizer/data/patterns.md +14 -14
  168. package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +4 -4
  169. package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +82 -37
  170. package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +17 -5
  171. package/dist/agent-src/skills/judge-injection-defense/SKILL.md +63 -25
  172. package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -0
  173. package/dist/agent-src/skills/judge-synthesis/SKILL.md +72 -28
  174. package/dist/agent-src/skills/laravel-horizon/SKILL.md +5 -0
  175. package/dist/agent-src/skills/laravel-mail/SKILL.md +5 -4
  176. package/dist/agent-src/skills/laravel-middleware/SKILL.md +5 -4
  177. package/dist/agent-src/skills/laravel-notifications/SKILL.md +10 -9
  178. package/dist/agent-src/skills/laravel-pennant/SKILL.md +1 -1
  179. package/dist/agent-src/skills/laravel-pulse/SKILL.md +9 -8
  180. package/dist/agent-src/skills/laravel-reverb/SKILL.md +6 -5
  181. package/dist/agent-src/skills/laravel-scheduling/SKILL.md +6 -1
  182. package/dist/agent-src/skills/laravel-validation/SKILL.md +12 -0
  183. package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
  184. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +7 -7
  185. package/dist/agent-src/skills/learning-tutor/SKILL.md +44 -43
  186. package/dist/agent-src/skills/learning-tutor/evals/triggers.json +52 -0
  187. package/dist/agent-src/skills/license-compliance-audit/SKILL.md +7 -7
  188. package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +3 -3
  189. package/dist/agent-src/skills/license-compliance-credits/SKILL.md +4 -4
  190. package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +0 -1
  191. package/dist/agent-src/skills/memory-consolidation/SKILL.md +69 -64
  192. package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -6
  193. package/dist/agent-src/skills/pdf-tools/evals/triggers.json +52 -0
  194. package/dist/agent-src/skills/performance-analysis/SKILL.md +7 -3
  195. package/dist/agent-src/skills/persona-improvement/SKILL.md +0 -2
  196. package/dist/agent-src/skills/persona-improvement/evals/triggers.json +52 -0
  197. package/dist/agent-src/skills/php-coder/SKILL.md +10 -0
  198. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +129 -120
  199. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +36 -35
  200. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +45 -41
  201. package/dist/agent-src/skills/project-analysis-core/SKILL.md +4 -4
  202. package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
  203. package/dist/agent-src/skills/project-analysis-react/SKILL.md +1 -1
  204. package/dist/agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
  205. package/dist/agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
  206. package/dist/agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -1
  207. package/dist/agent-src/skills/prompt-validator/SKILL.md +39 -39
  208. package/dist/agent-src/skills/quality-tools/SKILL.md +15 -15
  209. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +55 -19
  210. package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +29 -27
  211. package/dist/agent-src/skills/readme-writing-package/SKILL.md +2 -2
  212. package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +25 -25
  213. package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -5
  214. package/dist/agent-src/skills/refine-prompt/SKILL.md +1 -1
  215. package/dist/agent-src/skills/refine-ticket/SKILL.md +20 -2
  216. package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
  217. package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
  218. package/dist/agent-src/skills/roadmap-management/SKILL.md +80 -66
  219. package/dist/agent-src/skills/roadmap-writing/SKILL.md +84 -77
  220. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  221. package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +52 -0
  222. package/dist/agent-src/skills/security-audit/SKILL.md +26 -9
  223. package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +38 -16
  224. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +14 -11
  225. package/dist/agent-src/skills/skill-writing/SKILL.md +9 -8
  226. package/dist/agent-src/skills/song-to-script/SKILL.md +93 -85
  227. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
  228. package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +4 -3
  229. package/dist/agent-src/skills/standards-from-config/SKILL.md +61 -43
  230. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +22 -8
  231. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +28 -2
  232. package/dist/agent-src/skills/supply-chain-intake/SKILL.md +13 -13
  233. package/dist/agent-src/skills/systematic-debugging/SKILL.md +22 -21
  234. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
  235. package/dist/agent-src/skills/technical-specification/SKILL.md +5 -0
  236. package/dist/agent-src/skills/terraform/SKILL.md +2 -2
  237. package/dist/agent-src/skills/terragrunt/SKILL.md +8 -8
  238. package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +1 -1
  239. package/dist/agent-src/skills/threat-modeling/SKILL.md +19 -13
  240. package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
  241. package/dist/agent-src/skills/upstream-contribute/SKILL.md +0 -1
  242. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +9 -9
  243. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -1
  244. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +4 -6
  245. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +67 -61
  246. package/dist/agent-src/skills/video-director/SKILL.md +7 -7
  247. package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +3 -3
  248. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  249. package/dist/agent-src/templates/contexts/knowledge-pages.md +47 -45
  250. package/dist/agent-src/templates/contexts/lesson-card.md +2 -2
  251. package/dist/agent-src/templates/contexts/tenant-boundaries.md +2 -2
  252. package/dist/agent-src/templates/contexts.md +1 -1
  253. package/dist/agent-src/templates/features.md +1 -1
  254. package/dist/agent-src/templates/roadmaps.md +125 -116
  255. package/dist/agent-src/templates/rule.md +2 -1
  256. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  257. package/dist/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  258. package/dist/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  259. package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +30 -30
  260. package/dist/agent-src/templates/scripts/work_engine/directives/ui/design.ts +88 -33
  261. package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +22 -2
  262. package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +21 -2
  263. package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +179 -0
  264. package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +155 -4
  265. package/dist/agent-src/templates/scripts/work_engine/state.ts +21 -4
  266. package/dist/agent-src/user-types/README.md +8 -8
  267. package/dist/agent-src/user-types/galabau-field-crew.md +34 -33
  268. package/dist/agent-src/user-types/metalworking-shop.md +35 -34
  269. package/dist/agent-src/user-types/truck-driver.md +22 -20
  270. package/dist/cli/initRouting.js +74 -11
  271. package/dist/cli/initRouting.js.map +1 -1
  272. package/dist/cli/main.js +14 -3
  273. package/dist/cli/main.js.map +1 -1
  274. package/dist/cli/python/workspace_roles.js +2 -2
  275. package/dist/cli/python/workspace_roles.js.map +1 -1
  276. package/dist/cli-delegate/chunk-4SV3XGFA.js +6910 -0
  277. package/dist/cli-delegate/chunk-736JCWLM.js +1104 -0
  278. package/dist/cli-delegate/chunk-7DSAMZFU.js +356 -0
  279. package/dist/cli-delegate/chunk-7HQ52DHU.js +74 -0
  280. package/dist/cli-delegate/chunk-BJGXZNPM.js +266 -0
  281. package/dist/cli-delegate/chunk-FTAISGDQ.js +117 -0
  282. package/dist/cli-delegate/chunk-GME3Q44L.js +82 -0
  283. package/dist/cli-delegate/chunk-GRRPEPRN.js +336 -0
  284. package/dist/cli-delegate/chunk-HJ6DAJHR.js +502 -0
  285. package/dist/cli-delegate/chunk-IR7P7JWA.js +872 -0
  286. package/dist/cli-delegate/chunk-J55WI3RR.js +47 -0
  287. package/dist/cli-delegate/chunk-MCJYCQPF.js +35 -0
  288. package/dist/cli-delegate/chunk-NDJLNC6Q.js +169 -0
  289. package/dist/cli-delegate/chunk-OMIVVCG2.js +26 -0
  290. package/dist/cli-delegate/chunk-OY53J6II.js +7336 -0
  291. package/dist/cli-delegate/chunk-RDGRHAAB.js +259 -0
  292. package/dist/cli-delegate/chunk-TFG57JJM.js +1969 -0
  293. package/dist/cli-delegate/chunk-XX6TOPD7.js +715 -0
  294. package/dist/cli-delegate/chunk-YMFO6FDN.js +10603 -0
  295. package/dist/cli-delegate/cmd_analyze_session.js +294 -0
  296. package/dist/cli-delegate/cmd_conformance.js +646 -0
  297. package/dist/cli-delegate/cmd_converge.js +326 -0
  298. package/dist/cli-delegate/cmd_doctor.js +144 -0
  299. package/dist/cli-delegate/cmd_explain.js +2508 -0
  300. package/dist/cli-delegate/cmd_export.js +296 -0
  301. package/dist/cli-delegate/cmd_fleet.js +332 -0
  302. package/dist/cli-delegate/cmd_memory_get.js +3878 -0
  303. package/dist/cli-delegate/cmd_migrate.js +11 -0
  304. package/dist/cli-delegate/cmd_preflight.js +270 -0
  305. package/dist/cli-delegate/cmd_prune.js +444 -0
  306. package/dist/cli-delegate/cmd_refresh.js +28 -0
  307. package/dist/cli-delegate/cmd_settings_check.js +574 -0
  308. package/dist/cli-delegate/cmd_settings_migrate.js +223 -0
  309. package/dist/cli-delegate/cmd_sync.js +264 -0
  310. package/dist/cli-delegate/cmd_uninstall.js +656 -0
  311. package/dist/cli-delegate/cmd_update.js +425 -0
  312. package/dist/cli-delegate/cmd_upgrade.js +444 -0
  313. package/dist/cli-delegate/cmd_validate.js +305 -0
  314. package/dist/cli-delegate/cmd_versions.js +370 -0
  315. package/dist/discovery/deprecation-report.md +1 -1
  316. package/dist/discovery/discovery-manifest.json +100 -67
  317. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  318. package/dist/discovery/discovery-manifest.summary.md +4 -4
  319. package/dist/discovery/orphan-report.md +1 -1
  320. package/dist/discovery/packs.json +16 -10
  321. package/dist/discovery/trust-report.md +2 -2
  322. package/dist/discovery/workspaces.json +7 -5
  323. package/dist/hooks/dispatch.js +186 -12
  324. package/dist/install/emit_host_rules_cli.js +2 -1
  325. package/dist/install/emit_host_rules_cli.js.map +1 -1
  326. package/dist/install/install.mjs +418 -378
  327. package/dist/install/rule_scope.js +5 -1
  328. package/dist/install/rule_scope.js.map +1 -1
  329. package/dist/install/toolDetection.js +40 -12
  330. package/dist/install/toolDetection.js.map +1 -1
  331. package/dist/install/wizard-plan.js +2 -2
  332. package/dist/install/wizard-plan.js.map +1 -1
  333. package/dist/mcp/registry-manifest.json +3 -3
  334. package/dist/mcp/server.json +2 -2
  335. package/dist/mcp/server.mjs +2194 -1003
  336. package/dist/router.json +1 -1
  337. package/dist/scripts/_lib/compile_time_toggles.js +48 -0
  338. package/dist/scripts/_lib/compile_time_toggles.js.map +1 -0
  339. package/dist/scripts/condense.js +234 -217
  340. package/dist/scripts/condense.js.map +1 -1
  341. package/dist/server/schemas/settings.js +4 -0
  342. package/dist/server/schemas/settings.js.map +1 -1
  343. package/dist/shared/userMd/utils.js +30 -0
  344. package/dist/shared/userMd/utils.js.map +1 -1
  345. package/dist/ui/assets/index-BpSQt5vm.js.map +1 -1
  346. package/docs/guidelines/agent-infra/api-cost-levers.md +56 -5
  347. package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +93 -33
  348. package/package.json +4 -2
  349. package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  350. package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  351. package/src/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  352. package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +30 -30
  353. package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +88 -33
  354. package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +22 -2
  355. package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +21 -2
  356. package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +179 -0
  357. package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +155 -4
  358. package/src/agent-src/templates/scripts/work_engine/state.ts +21 -4
  359. package/src/config/agent-settings.template.yml +32 -2
  360. package/src/config/ci-local-parity.yml +142 -0
  361. package/src/config/discovery/packs.yml +7 -0
  362. package/src/config/evaluator-budgets.json +1 -1
  363. package/src/config/gate-coverage.yml +127 -0
  364. package/src/config/pack-size-budget.json +27 -0
  365. package/src/config/preamble-payload-budget.json +44 -0
  366. package/src/install/emit_host_rules_cli.ts +2 -1
  367. package/src/install/rule_scope.ts +5 -1
  368. package/src/install/toolDetection.ts +39 -8
  369. package/src/install/wizard-plan.ts +2 -2
  370. package/src/scripts/_cli/cmd_conformance.ts +2 -1
  371. package/src/scripts/_cli/cmd_converge.ts +2 -1
  372. package/src/scripts/_cli/cmd_doctor.ts +292 -15
  373. package/src/scripts/_cli/cmd_export.ts +2 -1
  374. package/src/scripts/_cli/cmd_fleet.ts +2 -1
  375. package/src/scripts/_cli/cmd_migrate.ts +2 -1
  376. package/src/scripts/_cli/cmd_preflight.ts +2 -1
  377. package/src/scripts/_cli/cmd_refresh.ts +2 -1
  378. package/src/scripts/_cli/cmd_update.ts +2 -1
  379. package/src/scripts/_cli/cmd_upgrade.ts +2 -1
  380. package/src/scripts/_cli/cmd_versions.ts +2 -1
  381. package/src/scripts/_cli/detection_report.ts +480 -0
  382. package/src/scripts/_dispatch.bash +52 -14
  383. package/src/scripts/_lib/agent_user_profile.ts +381 -0
  384. package/src/scripts/_lib/agents_overlay.ts +9 -0
  385. package/src/scripts/_lib/anchor_eval.ts +311 -0
  386. package/src/scripts/_lib/cc_transcript.ts +316 -0
  387. package/src/scripts/_lib/changelog_eras.ts +103 -9
  388. package/src/scripts/_lib/compile_time_toggles.ts +79 -0
  389. package/src/scripts/_lib/confusables.ts +101 -0
  390. package/src/scripts/_lib/duplicate_scope_census.ts +77 -0
  391. package/src/scripts/_lib/environment_detector.ts +441 -0
  392. package/src/scripts/_lib/managed_agents_folder.ts +181 -0
  393. package/src/scripts/_lib/package_root.ts +72 -0
  394. package/src/scripts/_lib/payload_hash_drift.ts +126 -0
  395. package/src/scripts/_lib/preservation_migration.ts +291 -0
  396. package/src/scripts/_lib/retrieval_sanitize.ts +166 -2
  397. package/src/scripts/_lib/scan_scope.ts +115 -0
  398. package/src/scripts/_lib/user_global_memory_audit.ts +187 -0
  399. package/src/scripts/_lib/user_global_observations.ts +830 -0
  400. package/src/scripts/_lib/user_global_revocations.ts +110 -0
  401. package/src/scripts/_lib/user_memory_gate_counters.ts +291 -0
  402. package/src/scripts/ai_council/blind_review.ts +0 -0
  403. package/src/scripts/ai_council/budget_guard.ts +90 -11
  404. package/src/scripts/ai_council/bundler.ts +2 -2
  405. package/src/scripts/ai_council/clients.ts +59 -3
  406. package/src/scripts/ai_council/config.ts +53 -7
  407. package/src/scripts/ai_council/modes.ts +68 -2
  408. package/src/scripts/ai_council/orchestrator.ts +54 -9
  409. package/src/scripts/ai_council/transport_resolver.ts +331 -0
  410. package/src/scripts/ai_team/team_dispatch.ts +17 -6
  411. package/src/scripts/anchor_eval_falsify.ts +198 -0
  412. package/src/scripts/anchor_scoring_run.ts +239 -0
  413. package/src/scripts/annotate_discovery.ts +1 -65
  414. package/src/scripts/bench_quality_run.ts +168 -4
  415. package/src/scripts/cache_realization_report.ts +782 -0
  416. package/src/scripts/check_artefact_count_messaging.ts +5 -1
  417. package/src/scripts/check_augment_description_cap.ts +15 -4
  418. package/src/scripts/check_bundle_path_leakage.ts +10 -4
  419. package/src/scripts/check_ci_local_parity.ts +317 -0
  420. package/src/scripts/check_condensation.ts +96 -191
  421. package/src/scripts/check_context_paths.ts +38 -9
  422. package/src/scripts/check_dependency_floors.ts +153 -0
  423. package/src/scripts/check_gate_coverage.ts +299 -0
  424. package/src/scripts/check_iron_law_prominence.ts +22 -1
  425. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  426. package/src/scripts/check_no_new_legacy_path.ts +16 -6
  427. package/src/scripts/check_no_roadmap_refs.ts +22 -9
  428. package/src/scripts/check_originality_freshness.ts +167 -0
  429. package/src/scripts/check_pack_size.ts +188 -0
  430. package/src/scripts/check_preamble_payload_budget.ts +130 -0
  431. package/src/scripts/check_proposal.ts +0 -0
  432. package/src/scripts/check_references.ts +0 -1
  433. package/src/scripts/check_safety_floor_untouched.ts +171 -24
  434. package/src/scripts/check_site_links.ts +62 -3
  435. package/src/scripts/ci_status.ts +0 -0
  436. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  437. package/src/scripts/code_graph/build.ts +0 -0
  438. package/src/scripts/command_suggester/types.ts +0 -0
  439. package/src/scripts/compile_router.ts +10 -14
  440. package/src/scripts/condense.sh +3 -4
  441. package/src/scripts/condense.ts +247 -228
  442. package/src/scripts/cost/track.mjs +168 -33
  443. package/src/scripts/cost_summary.ts +33 -1
  444. package/src/scripts/council_cli.ts +51 -5
  445. package/src/scripts/discovery_graph.ts +0 -0
  446. package/src/scripts/encoding_corpus.ts +500 -0
  447. package/src/scripts/encoding_corpus_report.ts +216 -0
  448. package/src/scripts/evaluator_umbrella.sh +34 -1
  449. package/src/scripts/generate_index.ts +19 -2
  450. package/src/scripts/install-hooks.sh +2 -2
  451. package/src/scripts/learning_sidecar.ts +0 -0
  452. package/src/scripts/lint_confusables.ts +10 -72
  453. package/src/scripts/lint_eval_fixture_citations.ts +113 -0
  454. package/src/scripts/lint_featured_skills.ts +0 -0
  455. package/src/scripts/lint_hidden_unicode.ts +208 -0
  456. package/src/scripts/lint_load_context.ts +17 -5
  457. package/src/scripts/lint_new_skill_gate.ts +9 -3
  458. package/src/scripts/lint_no_python_twin_rationale.ts +17 -2
  459. package/src/scripts/lint_originality.ts +1 -1
  460. package/src/scripts/lint_skill_originality.ts +1 -1
  461. package/src/scripts/lint_ticket_buildable.ts +1 -1
  462. package/src/scripts/lint_ui_stack_bundles.ts +170 -0
  463. package/src/scripts/mcp_server/tools.ts +4 -4
  464. package/src/scripts/measure_scope_dedup.ts +224 -0
  465. package/src/scripts/memory_lookup.ts +0 -0
  466. package/src/scripts/mine_session.ts +98 -0
  467. package/src/scripts/orchestration_payload_hash_drift.ts +145 -0
  468. package/src/scripts/preamble_byte_census.ts +574 -0
  469. package/src/scripts/probe_skill_registration.ts +2 -2
  470. package/src/scripts/redact_hook_capture.ts +13 -0
  471. package/src/scripts/release.ts +65 -10
  472. package/src/scripts/router_telemetry.ts +1 -1
  473. package/src/scripts/second_brain_retrieval.ts +14 -4
  474. package/src/scripts/skill_linter.ts +5 -0
  475. package/src/scripts/surface-tiers.yml +2 -0
  476. package/src/scripts/validate_pack_yaml.ts +0 -0
  477. package/src/server/schemas/settings.ts +8 -0
  478. package/src/shared/userMd/utils.ts +31 -0
  479. package/dist/agent-src/rules/telegraph-speak.md +0 -87
@@ -106,14 +106,14 @@ and council-pass notes capture the *why*; checkboxes capture the
106
106
  Iron Law #2.
107
107
 
108
108
  **Bind a `verify:` on behavior-changing steps.** A step that changes
109
- behavior (a new guard, migration, wired endpoint, mechanism edit) SHOULD
110
- carry a narrow `verify:` command in an inline annotation —
111
- `- [ ] Wire the guard <!-- verify: task test -- --filter=GuardTest -->` —
112
- so its `[x]` flip is machine-checkable, not just agent-asserted (template
109
+ behavior (a new guard, a migration, a wired endpoint, a mechanism edit)
110
+ SHOULD carry a narrow `verify:` command in an inline annotation —
111
+ `- [ ] Wire the guard <!-- verify: task test -- --filter=GuardTest -->`
112
+ — so its `[x]` flip is machine-checkable, not just agent-asserted (template
113
113
  rule 23; enforced by the flip-guard). Bind it only where a single narrow
114
114
  command (targeted test / grep / build of the touched surface) proves the
115
- step; leave it off doc-only / prose steps, never the full CI suite
116
- (`roadmap-ci-steps-policy`).
115
+ step; leave it off doc-only / prose steps and never make it the full CI
116
+ suite (`roadmap-ci-steps-policy`).
117
117
 
118
118
  ### 4b. Declare the execution mode (frontmatter)
119
119
 
@@ -121,22 +121,23 @@ Every new roadmap declares how a later `/roadmap:process-*` run should
121
121
  interact, via `execution.mode:` in frontmatter — `autonomous` (one
122
122
  run-start execution-contract confirmation, then uninterrupted except
123
123
  safety floors), `phase-checkpoints` (halt + compact status per phase
124
- boundary), or `interactive` (absent-field default; omit field).
125
- Semantics: [`templates/roadmaps.md` rule 19](../../templates/roadmaps.md);
124
+ boundary), or `interactive` (absent-field default; omit the field).
125
+ Semantics: [`templates/roadmaps.md` rule 18](../../templates/roadmaps.md);
126
126
  run mechanics:
127
127
  [`roadmap-execution-contract`](../../contexts/execution/roadmap-execution-contract.md).
128
- Field is intent, never a permission grant — grants happen only at the
129
- run-start contract. `/roadmap:create` asks this as one question; when
130
- authoring a roadmap directly, ask it too (follow-ups pre-select the
131
- parent's mode but always re-ask). **Author every roadmap to be
128
+ The field is intent, never a permission grant — grants happen only at
129
+ the run-start contract. `/roadmap:create` asks this as one question;
130
+ when authoring a roadmap directly, ask it too (follow-ups pre-select
131
+ the parent's mode but always re-ask). **Author every roadmap to be
132
132
  autonomy-capable (§ 4c); recommend `autonomous`** when evidence,
133
133
  rollback coverage, and risk profile support unattended execution —
134
- mode remains the user's risk preference, not a property of the
135
- document. **Authoring duty for `autonomous`:**
136
- steps must be precise enough to clear `ask-when-uncertain` vague-
137
- trigger patterns — vagueness resolved at authoring time, not mid-run;
138
- pre-existing `[~]` items in an `autonomous` roadmap draw a lint
139
- warning (they guarantee the archival gate fires later).
134
+ the mode remains the user's risk preference, not a property of the
135
+ document. **Authoring duty for `autonomous`:** steps must be precise
136
+ enough to clear the
137
+ `ask-when-uncertain` vague-trigger patterns — vagueness is resolved at
138
+ authoring time, not mid-run; pre-existing `[~]` items in an
139
+ `autonomous` roadmap draw a lint warning (they guarantee the archival
140
+ gate fires later).
140
141
 
141
142
  ### 4c. Autonomy-first — zero human gates by default
142
143
 
@@ -145,8 +146,8 @@ Canonical rule:
145
146
  Default human-checkpoint count: **zero**. Every step is
146
147
  agent-executable — `- [ ] User verifies X` steps and "Review /
147
148
  Sign-off" phases are authoring bugs; replace each with an
148
- agent-verifiable check (command, targeted test, grep). Never restate
149
- run-time safety floors as steps.
149
+ agent-verifiable check (a command, a targeted test, a grep). Never
150
+ restate run-time safety floors as steps.
150
151
 
151
152
  Gate-test before any checkpoint: *"Could the agent clear this with a
152
153
  tool or command during the run?"* Yes → step, not gate. No →
@@ -155,8 +156,8 @@ structured `## Blockers` entry (§ 5b), distinguishing per rule 22:
155
156
  authorization, billable spend, contested decision) vs **external
156
157
  blocker** (agent cannot resolve but CAN probe status — CI run, package
157
158
  release, upstream PR; `Resolved when:` carries the probe, owner is
158
- not a human). Merge is never a completion requirement — may appear as
159
- a blocker only when later roadmap work depends on the merged state.
159
+ not a human). Merge is never a completion requirement — it may appear
160
+ as a blocker only when later roadmap work depends on the merged state.
160
161
  `lint_roadmap_complexity` warns on human-gate patterns in every mode.
161
162
 
162
163
  ### 5. Exit & rollback per phase
@@ -169,48 +170,51 @@ file exists, test passes — never "user reviews" / "looks good" (§ 4c).
169
170
 
170
171
  ### 5b. Blockers are structured, not free prose
171
172
 
172
- Gate only user or maintainer can clear — decision, external
173
- dependency, evidence threshold, kernel-budget soak window — records
174
- as `## Blockers` entry (`### blocker: <id>` with `Status` / `Owner` /
175
- `Blocks` / `What to do` / `Resolved when`), never a stray "blocked on
176
- X" sentence. Dashboard generator parses these into overview's
177
- `Blocker` column and per-roadmap breakdown. Full shape:
178
- [`templates/roadmaps.md` rule 20](../../agent-src/templates/roadmaps.md).
179
- Omit section entirely when roadmap has no such gate; run the § 4c
180
- gate-test before adding one.
173
+ A gate only the user or a maintainer can clear — a decision, an
174
+ external dependency, an evidence threshold, a kernel-budget soak
175
+ window — is recorded as a `## Blockers` entry (`### blocker: <id>`
176
+ with `Status` / `Owner` / `Blocks` / `What to do` / `Resolved when`),
177
+ never a stray "blocked on X" sentence. The dashboard generator parses
178
+ these into the overview's `Blocker` column and the per-roadmap
179
+ breakdown. Full shape: [`templates/roadmaps.md` rule 20](../../agent-src/templates/roadmaps.md).
180
+ Omit the section entirely when the roadmap has no such gate; run the
181
+ § 4c gate-test before adding one.
181
182
 
182
183
  ### 6. Step-marker semantics — pick `[~]` (defer) vs `[-]` (cancel) honestly
183
184
 
184
- Difference carries load when authoring (and especially when rewriting
185
- mid-flight):
185
+ When authoring (and especially when rewriting a roadmap mid-flight),
186
+ the difference between the two non-`[x]`-non-`[ ]` markers carries
187
+ load:
186
188
 
187
189
  | Glyph | Semantic | When to use |
188
190
  |---|---|---|
189
- | `[~]` | **deferred** — planned, will be done, just not in this roadmap | Scope-cut + clear intent to revisit. Triggers Iron Law 3 follow-up flow before archive — info preservation enforced. |
190
- | `[-]` | **cancelled** — won't be done at all | Scope rejected, design changed, replaced by another roadmap. Decision final; no follow-up implied. |
191
+ | `[~]` | **deferred** — planned, will be done, just not in this roadmap | Scope-cut + clear intent to revisit. Triggers the Iron Law 3 follow-up flow before archive — info preservation is enforced. |
192
+ | `[-]` | **cancelled** — won't be done at all | Scope rejected, design changed, replaced by another roadmap. The decision is final; no follow-up implied. |
191
193
 
192
- Optional inline annotations on same line:
194
+ Optional inline annotations live on the same line:
193
195
 
194
196
  ```markdown
195
- - [~] Migrate bulk-import job to chunked dispatch. <!-- deferred: ops capacity in Q3 -->
197
+ - [~] Migrate the bulk-import job to chunked dispatch. <!-- deferred: ops capacity in Q3 -->
196
198
  - [-] Wire SQS retry topic. <!-- cancelled: superseded by Lambda DLQ in road-to-event-bridge -->
197
199
  ```
198
200
 
199
- Annotation for next human reader (and for migration procedure when
200
- [`roadmap-management`](../roadmap-management/SKILL.md) spawns a follow-up).
201
- Bare `[~]` / `[-]` allowed; annotated preferred.
201
+ The annotation is for the next human reader (and for the migration
202
+ procedure when [`roadmap-management`](../roadmap-management/SKILL.md)
203
+ spawns a follow-up). Bare `[~]` / `[-]` is allowed; annotated is
204
+ preferred.
202
205
 
203
206
  ### 7. Follow-up roadmaps spawn from deferred items — frontmatter shape
204
207
 
205
- When parent roadmap closes with `[~]` items,
208
+ When a parent roadmap closes with `[~]` items, the
206
209
  [`roadmap-management`](../roadmap-management/SKILL.md) skill spawns a
207
- follow-up. Authors and reviewers must recognise the shape:
210
+ follow-up. Authors and reviewers must know the shape so they can
211
+ recognise it:
208
212
 
209
213
  ```markdown
210
214
  ---
211
215
  complexity: lightweight
212
216
  status: draft # optional — draft hides from dashboard
213
- parent_roadmap: <parent-slug> # back-link to archived source
217
+ parent_roadmap: <parent-slug> # back-link to the archived source
214
218
  ---
215
219
 
216
220
  # Roadmap: Follow-up to <parent-title>
@@ -223,24 +227,25 @@ This roadmap collects items deferred from
223
227
  [`agents/roadmaps/archive/<parent-slug>.md`](../archive/<parent-slug>.md).
224
228
  { … original phases preserved verbatim … }
225
229
 
226
- <!-- For option 2 (ready + blocked), add as body note, NOT in frontmatter: -->
227
- > Blocked until <condition>. Execution starts when condition clears.
230
+ <!-- For option 2 (ready + blocked), add this as a body note, NOT in frontmatter: -->
231
+ > Blocked until <condition>. Execution starts when the condition clears.
228
232
  ```
229
233
 
230
- Two states author picks between (mirrors Iron Law 3 numbered-options
231
- block in [`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md)):
234
+ Two states the author picks between (mirrors the Iron Law 3
235
+ numbered-options block in [`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md)):
232
236
 
233
- - **`status: draft`** → hidden from `agents/roadmaps-progress.md` until
234
- flipped. Use for items user wants captured but not surfaced to
235
- active backlog yet.
236
- - **`status: ready` (default; omit key)** plus body `> Blocked until …`
237
- note → visible in dashboard, execution gated by documented
238
- condition. Blocking is body convention, not enforced by dashboard
239
- generator — readers honor the note.
237
+ - **`status: draft`** → hidden from `agents/roadmaps-progress.md`
238
+ until flipped. Use for items the user wants captured but not
239
+ surfaced to the active backlog yet.
240
+ - **`status: ready` (default; omit the key)** plus body
241
+ `> Blocked until …` note → visible in the dashboard, execution
242
+ gated by the documented condition. The blocking is a body
243
+ convention, not enforced by the dashboard generator — readers
244
+ honor the note.
240
245
 
241
- Follow-up is **not** authored from scratch — deferred steps copied
242
- verbatim (with phase context). Preserves plan exactly as author
243
- originally wrote it.
246
+ The follow-up roadmap is **not** authored from scratch — the
247
+ deferred steps are copied verbatim (with their phase context). This
248
+ preserves the plan exactly as the author originally wrote it.
244
249
 
245
250
  ### 8. Source-derived & capability-adoption roadmaps (conditional)
246
251
 
@@ -297,14 +302,16 @@ to every roadmap you author.
297
302
  5. Is content duplicated from another roadmap (supersession instead)?
298
303
  6. Any human-gate steps or sign-off phases (§ 4c violation) —
299
304
  agent-verifiable check or structured blocker instead?
300
- 7. *Source-derived/adoption only (§ 8):* gap-table (`KEEP`/`FOLD`/`CUT`)
301
- behind the scope? `## Provenance` block with `ENC1:` link? inlined
302
- council convergence? anti-dump acceptance criterion? (Internally
303
- originated → these must be **absent**, not empty.)
304
- 8. *Inbox-sourced only:* roadmap consumed an `agents/tmp/` file as input →
305
- file moved to `agents/tmp.old/<name>` in the SAME reply, Source line
306
- pointing at the `tmp.old/` path? (Per `agents-layout § User Inbox
307
- Workflow`. Move only the named input file(s); never sweep the inbox.)
305
+ 7. *Source-derived/adoption only (§ 8):* is there a `KEEP`/`FOLD`/`CUT`
306
+ gap-table behind the scope, a `## Provenance` block with an `ENC1:`
307
+ link, inlined council convergence, and an anti-dump acceptance
308
+ criterion? (Internally-originated roadmap → these must be **absent**,
309
+ not empty.)
310
+ 8. *Inbox-sourced only:* if the roadmap consumed an `agents/tmp/` file as
311
+ its input, is that file moved to `agents/tmp.old/<name>` in the SAME
312
+ reply, with the Source line pointing at the `tmp.old/` path? (Per
313
+ `agents-layout § User Inbox Workflow`. Move only the explicitly named
314
+ input file(s); never sweep the rest of the inbox.)
308
315
 
309
316
  ## Do NOT
310
317
 
@@ -328,7 +335,7 @@ to every roadmap you author.
328
335
  `quality.local_auto_run: false` — blocked by
329
336
  `task lint-roadmap-ci-steps` per
330
337
  [`roadmap-ci-steps-policy`](../../rules/roadmap-ci-steps-policy.md).
331
- Reword as narrow verifications, or mark with
338
+ Reword as narrow verifications, or mark the step with
332
339
  `<!-- carve-out: new-gate-verification -->` when it verifies a NEW
333
340
  gate this roadmap introduces.
334
341
  * Use ALL-CAPS Iron-Law fenced blocks — those belong in
@@ -336,7 +343,7 @@ to every roadmap you author.
336
343
  rules, not roadmaps.
337
344
  * Adopt items from an external source / harvest **without a
338
345
  `KEEP`/`FOLD`/`CUT` gap-table** against the existing surface (§ 8) —
339
- skill dump, not integration.
346
+ that is a skill dump, not integration.
340
347
  * Add a `## Provenance` block (or gap-table) to an **internally
341
348
  originated** roadmap — § 8 is conditional; an empty Provenance section
342
349
  is noise (template rule 19).
@@ -352,8 +359,8 @@ to every roadmap you author.
352
359
  - **Vague goal sentence** — "Improve roadmap quality" forces every
353
360
  reader to re-derive intent and blocks decidable acceptance.
354
361
  - **Human-gate steps sprinkled through phases** — each one interrupts
355
- an autonomous run; dashboard counts open work the agent can never
356
- close. § 4c: agent-verifiable check or structured blocker.
362
+ an autonomous run, and the dashboard counts open work the agent can
363
+ never close. § 4c: agent-verifiable check or structured blocker.
357
364
  - **Restating template rules** — pasting structural rules into the
358
365
  roadmap body creates two sources of truth that drift over months.
359
366
  - **Version numbers in phase names** — `Phase 1 — v1.8.0` violates
@@ -366,14 +373,14 @@ to every roadmap you author.
366
373
  operations the user has not authorized. Roadmap completion is
367
374
  decoupled from delivery; ship-the-PR is its own decision.
368
375
  - **Adopting an external suggestion verbatim** — a harvest/suggestion
369
- roadmap copying the source's item list without the § 8
370
- `KEEP`/`FOLD`/`CUT` audit becomes a skill dump: existing items get
371
- rebuilt, fold-candidates spawn duplicates. The gap-table is the
372
- integration discipline.
373
- - **Council-as-afterthought** — running council only *after* a contested
374
- roadmap is written wastes the convergence: the plan still reads as
375
- open questions. Source-derived/contested → council *first* (§ 8.B),
376
- then author the verdicts.
376
+ roadmap that copies the source's proposed item list without the § 8
377
+ `KEEP`/`FOLD`/`CUT` audit becomes a skill dump: items that already
378
+ exist get rebuilt, items that should fold into an existing artefact
379
+ spawn a duplicate. The gap-table is the integration discipline.
380
+ - **Council-as-afterthought** — running the council only *after* a
381
+ contested roadmap is written wastes the convergence: the plan still
382
+ reads as open questions. For source-derived/contested plans, council
383
+ *first* (§ 8.B), then author the verdicts.
377
384
 
378
385
  ## Examples
379
386
 
@@ -104,7 +104,7 @@ canonical sequence) before pushing.
104
104
 
105
105
  ### 7. Record the delta
106
106
 
107
- Append a snapshot to `agents/.augment-budget-history.jsonl`:
107
+ Append a snapshot to `agents/runtime/.augment-budget-history.jsonl`:
108
108
 
109
109
  ```bash
110
110
  ./scripts-run src/scripts/measure_augment_budget --trend-append
@@ -0,0 +1,52 @@
1
+ {
2
+ "skill": "screenshot-hygiene",
3
+ "last_eval": "2026-07-30",
4
+ "description": "5 should-trigger + 5 should-not-trigger queries. Should-trigger covers DE + EN phrasings for capturing and anonymising a screenshot that is about to ship into documentation — risk tier, OCR detection, deterministic redaction, the pre-embed human gate. Should-not-trigger covers the near-miss neighbours (image analysis, image editing/inpaint, image generation, the provided-design spec path, PII scrubbing on text surfaces) whose vocabulary overlaps.",
5
+ "queries": [
6
+ {
7
+ "q": "capture a screenshot of the admin dashboard for the feature docs",
8
+ "trigger": true
9
+ },
10
+ {
11
+ "q": "I want to embed a screenshot of this settings page in the README — is it safe to ship?",
12
+ "trigger": true
13
+ },
14
+ {
15
+ "q": "redact the customer names and the local path in this screenshot before it lands in docs/media/",
16
+ "trigger": true
17
+ },
18
+ {
19
+ "q": "mach einen Screenshot für das Doku-Kapitel und anonymisiere vorher alles Sensible",
20
+ "trigger": true
21
+ },
22
+ {
23
+ "q": "can this dashboard screenshot go on the docs site, or does it leak PII?",
24
+ "trigger": true
25
+ },
26
+ {
27
+ "q": "analyse this character image feature by feature and diff it against the canon",
28
+ "trigger": false,
29
+ "note": "per-feature image analysis / canon drift, not doc-shipping anonymisation → image-analyser (this skill only borrows its OCR read)"
30
+ },
31
+ {
32
+ "q": "inpaint the background out of this photo and give me a couple of variations",
33
+ "trigger": false,
34
+ "note": "image editing / lossy inpaint — explicitly forbidden as a redaction method here → image-editing"
35
+ },
36
+ {
37
+ "q": "generate a banner image for the launch post",
38
+ "trigger": false,
39
+ "note": "image generation from a brief, not a captured screenshot → image-generation (brand assets → brand-asset-generation)"
40
+ },
41
+ {
42
+ "q": "here's a screenshot of the mockup — build the UI to match it 1:1",
43
+ "trigger": false,
44
+ "note": "a user-supplied screenshot used as a design spec to build against → design-fidelity (rule) / cross-source-consistency"
45
+ },
46
+ {
47
+ "q": "scrub the email addresses and tokens out of these log lines before we ship them",
48
+ "trigger": false,
49
+ "note": "PII redaction on a text surface (drafts / logs / exports), not inside an image → domain-safety-pii (rule)"
50
+ }
51
+ ]
52
+ }
@@ -42,13 +42,18 @@ Do NOT use when:
42
42
 
43
43
  ### 0. False-positive gate — restate the claim before reporting
44
44
 
45
- Before any finding enters report, restate as one falsifiable sentence naming all three:
45
+ Before any finding enters the report, restate it as one falsifiable sentence
46
+ naming all three of:
46
47
 
47
- 1. **Privilege level** — access attacker already has (anonymous, authenticated user, tenant admin, CI runner).
48
- 2. **Execution context** — where vulnerable code runs (request handler, queue worker, sandboxed template, build step).
49
- 3. **Attacker precondition** — concrete state or input attacker must control to trigger it.
48
+ 1. **Privilege level** — what access the attacker already has (anonymous,
49
+ authenticated user, tenant admin, CI runner).
50
+ 2. **Execution context** — where the vulnerable code runs (request handler,
51
+ queue worker, sandboxed template, build step).
52
+ 3. **Attacker precondition** — the concrete state or input the attacker must
53
+ control to trigger it.
50
54
 
51
- Any of the three not concretely nameable → **not a finding yet** — trace further or drop with one-line reason.
55
+ If any of the three cannot be named concretely, the item is **not a finding
56
+ yet** — trace further or drop it with a one-line reason.
52
57
 
53
58
  **Rationalizations to Reject:**
54
59
 
@@ -61,8 +66,14 @@ Any of the three not concretely nameable → **not a finding yet** — trace fur
61
66
 
62
67
  **Standard vs. Deep verification routing:**
63
68
 
64
- - **Standard** — traced data flow + all three claim elements named → report with normal field list.
65
- - **Deep** — severity High/Critical, OR precondition chain crosses trust boundary you did not trace → devil's-advocate pass first: actively try to refute finding (existing middleware? framework default? type system? config?). Report only what survives; killed findings listed one-line under *Rejected candidates* so triage is auditable.
69
+ - **Standard** — traced data flow + all three claim elements named → report
70
+ with the normal field list.
71
+ - **Deep** — severity would be High/Critical, OR the precondition chain
72
+ crosses a trust boundary you did not personally trace → run a
73
+ devil's-advocate pass first: actively try to refute the finding (existing
74
+ middleware? framework default? type system? config?). Report only what
75
+ survives; findings the pass killed are listed one-line under
76
+ *Rejected candidates* so the triage is auditable.
66
77
 
67
78
  ### 1. Map attack surface
68
79
 
@@ -104,7 +115,10 @@ User Input → Controller → Validation → Service → DB/File/External
104
115
  | **Header injection** | User input in response headers, email headers |
105
116
  | **Insecure defaults / fail-open** | Guards that allow on error (`catch { return true }` in an authz check), default-allow matchers, debug mode defaulting on, permissive CORS/`verify=false` fallbacks, feature flags whose missing value grants access |
106
117
 
107
- Worked example (fail-open): `if (!$gate->check($user)) { … }` wrapped in `try/catch` that logs and **continues** fails open — exception in gate grants access. Finding shape: Category *Insecure defaults*, Evidence the catch block `file:line`, Fix *fail closed — rethrow or deny on gate error*.
118
+ Worked example (fail-open): `if (!$gate->check($user)) { … }` wrapped in a
119
+ `try/catch` that logs and **continues** fails open — an exception in the gate
120
+ grants access. Finding shape: Category *Insecure defaults*, Evidence the
121
+ catch block `file:line`, Fix *fail closed — rethrow or deny on gate error*.
108
122
 
109
123
  ### 4. Framework-specific checks
110
124
 
@@ -135,7 +149,10 @@ For each vulnerability:
135
149
  - **Fix:** concrete mitigation
136
150
  - **Confidence:** Low / Medium / High
137
151
 
138
- After findings, add **Rejected candidates** section: one line per look-dangerous-but-benign pattern the Step-0 gate killed, with traced reason ("raw SQL string is a static migration constant — no user input reaches it"). Audit that rejects nothing has usually skipped the gate.
152
+ After the findings, add a **Rejected candidates** section: one line per
153
+ look-dangerous-but-benign pattern the Step-0 gate killed, with the traced
154
+ reason ("raw SQL string is a static migration constant — no user input
155
+ reaches it"). An audit that rejects nothing has usually skipped the gate.
139
156
 
140
157
  ## Integration with other skills
141
158
 
@@ -11,7 +11,10 @@ packs:
11
11
 
12
12
  # security-maturity-assessment
13
13
 
14
- Rate how mature a module's security **posture** is — category by category, every rating backed by `file:line` evidence — instead of hunting individual vulnerabilities. Output is a scorecard a maintainer can re-run and diff, not a finding list.
14
+ Rate how mature a module's security **posture** is — category by category,
15
+ every rating backed by `file:line` evidence — instead of hunting individual
16
+ vulnerabilities. The output is a scorecard a maintainer can re-run and diff,
17
+ not a finding list.
15
18
 
16
19
  ## When to use
17
20
 
@@ -53,34 +56,53 @@ Do NOT use when:
53
56
 
54
57
  ## Procedure
55
58
 
56
- 1. **Scope** — name the module/paths under assessment; list entry points (routes, jobs, commands, webhooks). Scorecard without stated scope is not reproducible.
57
- 2. **Assess each category** — inspect the code the category names. Every rating cites evidence:
59
+ 1. **Scope** — name the module/paths under assessment; list entry points
60
+ (routes, jobs, commands, webhooks). A scorecard without a stated scope is
61
+ not reproducible.
62
+ 2. **Assess each category** — inspect the code the category names. Every
63
+ rating cites evidence:
58
64
  - Positive evidence: `file:line` of the control (`app/Http/Requests/…:12`, `src/guards/auth.guard.ts:12`).
59
- - Absence evidence: the searches run that came back empty (name the grep patterns) — "not found" beats "probably missing".
60
- - Multi-tenant N/A: single-tenant systems rate category 8 `N/A`; drops out of the roll-up.
61
- 3. **Roll up deterministically** — overall rating is computed, not vibed:
65
+ - Absence evidence: the searches run that came back empty (name the grep
66
+ patterns) — "not found" beats "probably missing".
67
+ - Multi-tenant N/A: single-tenant systems rate category 8 `N/A`; it drops
68
+ out of the roll-up.
69
+ 3. **Roll up deterministically** — the overall rating is computed, not vibed:
62
70
  - `overall = min( median(all rated categories), one step above the lowest critical-category rating )`
63
- - Consequences: any critical category **Missing** caps overall at **Weak**; any critical **Weak** caps overall at **Moderate**. Non-critical categories move the median but never lift the cap.
64
- 4. **Recommend** — max 3 next steps, ordered by which would raise the overall rating (fix the lowest critical category first).
71
+ - Consequences: any critical category **Missing** caps overall at **Weak**;
72
+ any critical **Weak** caps overall at **Moderate**. Non-critical
73
+ categories move the median but can never lift the cap.
74
+ 4. **Recommend** — max 3 next steps, ordered by which would raise the overall
75
+ rating (i.e. fix the lowest critical category first).
65
76
 
66
77
  ## Output format
67
78
 
68
- 1. **Scope block** — module/paths + entry-point list, so the scorecard is re-runnable.
69
- 2. **Scorecard table** — one row per category: `Category | Rating | Evidence (file:line or named empty searches) | Gap`. Every row MUST carry evidence; a rating without a citation is invalid.
70
- 3. **Overall rating** — with the roll-up shown (`median=…, lowest critical=…, cap=… → overall=…`), never a bare verdict.
79
+ 1. **Scope block** — module/paths + entry-point list, so the scorecard is
80
+ re-runnable.
81
+ 2. **Scorecard table** — one row per category:
82
+ `Category | Rating | Evidence (file:line or named empty searches) | Gap`.
83
+ Every row MUST carry evidence; a rating without a citation is invalid.
84
+ 3. **Overall rating** — with the roll-up shown (`median=…, lowest critical=…,
85
+ cap=… → overall=…`), never a bare verdict.
71
86
  4. **Top-3 next steps** — ordered by roll-up impact.
72
87
 
73
88
  ## Gotcha
74
89
 
75
- - The model tends to rate from vibes ("looks well-structured") — a rating row without `file:line` or named empty searches is invalid; redo it.
76
- - Don't let a Strong non-critical category mask a Weak critical one — the cap rule exists precisely because a polished logging setup does not offset missing authorization.
77
- - A vulnerability found mid-assessment is **out of scope** for the scorecard — note it and route to [`security-audit`](../security-audit/SKILL.md) (with its false-positive gate) instead of inlining findings here.
90
+ - The model tends to rate from vibes ("looks well-structured") — a rating
91
+ row without `file:line` or named empty searches is invalid; redo it.
92
+ - Don't let a Strong non-critical category mask a Weak critical one — the
93
+ cap rule exists precisely because a polished logging setup does not offset
94
+ missing authorization.
95
+ - A vulnerability found mid-assessment is **out of scope** for the scorecard
96
+ — note it and route to [`security-audit`](../security-audit/SKILL.md)
97
+ (with its false-positive gate) instead of inlining findings here.
78
98
 
79
99
  ## Do NOT
80
100
 
81
- - Do NOT emit a rating without evidence — every row cites `file:line` or the empty searches that prove absence.
101
+ - Do NOT emit a rating without evidence — every row cites `file:line` or the
102
+ empty searches that prove absence.
82
103
  - Do NOT average away critical categories — the deterministic cap always wins.
83
- - Do NOT turn the scorecard into a finding list — posture assessment and vulnerability hunting are different deliverables.
104
+ - Do NOT turn the scorecard into a finding list — posture assessment and
105
+ vulnerability hunting are different deliverables.
84
106
  - Do NOT assess unscoped ("the whole app") when the user named a module.
85
107
 
86
108
  ## See also
@@ -11,6 +11,8 @@ workspaces:
11
11
  - agent-config-maintainer
12
12
  packs:
13
13
  - meta
14
+ requires_skills:
15
+ - learning-to-rule-or-skill
14
16
  ---
15
17
 
16
18
  # skill-improvement-pipeline
@@ -66,19 +68,21 @@ Show the user:
66
68
 
67
69
  #### Cross-project promotion signal (surfacing only — never an auto-writer)
68
70
 
69
- Same learning now seen in **≥ 2 distinct projects** → strong candidate for a
70
- *shared* surface (global rule/skill or a `src/patterns/` recipe), not a
71
- project-local note. **Surface** it; do **not** auto-write:
71
+ If the **same learning** has now been observed in **≥ 2 distinct projects**, it
72
+ is a strong promotion candidate for a *shared* surface (a global rule/skill or a
73
+ `src/patterns/` recipe) rather than a project-local note. **Surface** that signal
74
+ to the user — do **not** auto-write it:
72
75
 
73
76
  ```
74
- > Cross-project: also seen in {other-project}.
77
+ > Cross-project: this learning was also seen in {other-project}.
75
78
  > ≥2 projects ⇒ candidate for a shared surface (global rule / skill / pattern).
76
79
  > → surface for promotion (human decides; no auto-write)
77
80
  ```
78
81
 
79
- A *signal*, not a store: no auto-write, no decay, no runtime (the writable
80
- per-project learning store stays rejected — [[council-agent-memory-sunset]]).
81
- The human decides whether the cross-project recurrence justifies promotion.
82
+ This is a *signal*, not a store: there is no auto-write, no decay, no runtime
83
+ (the writable per-project learning store stays rejected —
84
+ [[council-agent-memory-sunset]]). The human decides whether the cross-project
85
+ recurrence justifies promotion.
82
86
 
83
87
  ### Step 3: Classify
84
88
 
@@ -122,11 +126,10 @@ Decide what to create:
122
126
  After creation:
123
127
  1. Run `./scripts-run src/scripts/skill_linter {path}` — must pass (0 fail)
124
128
  2. Copy to `.augment/`
125
- 3. Mark hash: `./scripts-run src/scripts/condense --mark-done "{relative_path}"`
126
- 4. Regenerate tools: `./scripts-run src/scripts/condense --generate-tools`
127
- 5. **If from a knowledge page** (`agents/knowledge/procedures/skill-candidates.md`
129
+ 3. Regenerate tools: `./scripts-run src/scripts/condense --generate-tools`
130
+ 4. **If the learning came from a knowledge page** (`agents/knowledge/procedures/skill-candidates.md`
128
131
  or any `agents/knowledge/` page) — degrade the source to a pointer;
129
- promotion isn't complete otherwise (double-maintenance risk):
132
+ promotion is not complete otherwise (double-maintenance risk):
130
133
  `./scripts-run src/scripts/degrade_to_pointer --source "<knowledge-path>[#<anchor>]" --artifact "{relative_path}" --date "<YYYY-MM-DD>"`
131
134
 
132
135
  ### Step 5: Decide scope
@@ -454,14 +454,15 @@ to every skill you author.
454
454
  ## Read-only-by-default scripts
455
455
 
456
456
  A script shipped inside a skill (`scripts/**`) is **side-effect-free by
457
- default** — inspects, computes, prints; does not mutate. Mutation (write /
458
- delete / rename / copy) gates behind an explicit flag named in this SKILL.md —
459
- `--writable` / `--apply` / `--write` / `--output` / `--fix` — so the default
460
- invocation is safe. A generator whose *declared purpose* is to write (emits an
461
- artifact to a caller-supplied path) is allowlisted with a rationale in
462
- `src/scripts/lint_skill_scripts_readonly_allowlist.json` instead of a redundant
463
- flag. `lint_skill_scripts_readonly` enforces this: an ungated, non-allowlisted
464
- write fails the build.
457
+ default** — it inspects, computes, and prints; it does not mutate the
458
+ filesystem. Any mutation (writing a file, deleting, rename/copy) must be gated
459
+ behind an explicit flag named in this SKILL.md — `--writable` / `--apply` /
460
+ `--write` / `--output` / `--fix` — so the default invocation is safe to run
461
+ blind. A generator whose *declared purpose* is to write (it emits an artifact
462
+ to a caller-supplied path) is allowlisted with a rationale in
463
+ `src/scripts/lint_skill_scripts_readonly_allowlist.json` rather than carrying a
464
+ redundant flag. `lint_skill_scripts_readonly` enforces this: an ungated,
465
+ non-allowlisted write fails the build.
465
466
 
466
467
  ## Description-optimizer loop (U1 — held-out, not vibes)
467
468