@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
@@ -129,31 +129,33 @@ Output the structured payload (below). The user — or
129
129
  ## Weighted-matrix mode (quantitative)
130
130
 
131
131
  Optional numeric variant of step 3. **Gate — fire only when ALL hold:**
132
- ≥ 3 options · no single dominant criterion · costly / hard-to-reverse ·
133
- commensurable criteria (no values conflict). 2-option or reversible choice →
134
- one-line redirect: just decide, or qualitative matrix above. Full procedure,
135
- anchors, worked example: [`references/weighted-matrix.md`](references/weighted-matrix.md).
136
-
137
- 1. User states decision + options.
138
- 2. **User lists criteria + weights (1-10) BEFORE any scoring** — AI may
139
- append missed criteria afterward, each labeled `(AI-suggested)`. Never
140
- propose criteria first (anchoring).
132
+ ≥ 3 options · no single dominant criterion · costly / hard-to-reverse
133
+ decision · commensurable criteria (no values conflict). A 2-option or
134
+ reversible choice gets a one-line redirect: just decide, or use the
135
+ qualitative matrix above. Full procedure, anchors, worked example:
136
+ [`references/weighted-matrix.md`](references/weighted-matrix.md).
137
+
138
+ 1. User states the decision + options.
139
+ 2. **User lists criteria and weights (1-10) BEFORE any scoring** — the AI
140
+ may append missed criteria afterward, each labeled `(AI-suggested)`.
141
+ Never propose criteria first (anchoring).
141
142
  3. Criteria hygiene: cap 4-8, merge near-synonyms (double-counting check).
142
143
  4. Score options 1-10 against **fixed anchors** (each criterion declares
143
144
  what 1 and what 10 mean — never relative-to-best-in-set).
144
- 5. Weighted sums, then **sensitivity block — the load-bearing gate**:
145
+ 5. Weighted sums, then the **sensitivity block — the load-bearing gate**:
145
146
  close-call margin (< 10 % = "no clear winner — decide on unquantified
146
147
  factors"), smallest weight change that flips the winner, ±1-score flip
147
- test. Fragile winner reported as fragile, never as "the rational choice".
148
- 6. Delegate argue-against to
148
+ test. A fragile winner is reported as fragile, never as "the rational
149
+ choice".
150
+ 6. Delegate the argue-against pass to
149
151
  [`adversarial-review`](../adversarial-review/SKILL.md), scoped: "attack
150
- the winner, using the losing options' strongest criteria" (`premortem`
151
- delegation pattern — never reimplemented inline).
152
+ the winner, using the losing options' strongest criteria" (the
153
+ `premortem` delegation pattern — never reimplemented inline).
152
154
 
153
- Output appends matrix + sensitivity block + attack summary + intuition
155
+ Output appends matrix + sensitivity block + attack summary + the intuition
154
156
  caveat (resistance to the result signals a wrong weight or unquantified
155
157
  information — surface it, don't ignore it). **The score is a structured
156
- argument, not a verdict.** Hand-off to `adr-create` unchanged.
158
+ argument, not a verdict.** Hand-off to `adr-create` is unchanged.
157
159
 
158
160
  ## Related Skills
159
161
 
@@ -189,8 +191,8 @@ argument, not a verdict.** Hand-off to `adr-create` unchanged.
189
191
  - "Wir müssen ein ADR draus machen."
190
192
  - "Trade-off-Matrix für X vs Y."
191
193
  - "Diese Entscheidung überschreibt das alte ADR-NN."
192
- - "Weighted decision matrix für die Optionen" / "score my options
193
- against my criteria" — fires the weighted-matrix mode (gate permitting).
194
+ - "Weighted decision matrix für die Optionen" / "score my options against
195
+ my criteria" — fires the weighted-matrix mode (gate permitting).
194
196
 
195
197
  ## Output
196
198
 
@@ -139,10 +139,10 @@ Dials persist in `DESIGN.md`; the stack executors (`tailwind-engineer`,
139
139
  design direction, cross-check your first impulse against the current-generation
140
140
  tells in [`design-antipatterns.md`](../../../docs/guidelines/design-antipatterns.md)
141
141
  (§ Current-generation tells — the warm-editorial C5+T2+T7 signature and the
142
- previous-generation C1/C2 gradient) plus the L1/L2 layout defaults. If a tell was
143
- your first reach, name a different direction or explicitly justify why this brief
144
- genuinely calls for it. (The finalization cross-check against the full catalog is
145
- under *Anti-slop discipline* below.)
142
+ previous-generation C1/C2 gradient) plus the L1/L2 layout defaults. If a tell
143
+ was your first reach, name a different direction or explicitly justify why this
144
+ brief genuinely calls for it. (The finalization cross-check against the full
145
+ catalog is under *Anti-slop discipline* below.)
146
146
 
147
147
  ## Honesty / real-system grounding
148
148
 
@@ -58,19 +58,19 @@ A **live preview URL** is required for testing.
58
58
  ### Phase 1: Interaction
59
59
 
60
60
  - Test user flows end-to-end.
61
- - **Six interaction states — every interactive element asserts each one** (single
62
- canonical states checklist; no other review phase repeats it):
63
- 1. **default** — resting state is a deliberate style, not the browser default.
64
- 2. **hover** — pointer feedback present (not the *only* affordance — see focus).
61
+ - **Six interaction states — every interactive element asserts each one** (this
62
+ is the single canonical states checklist; no other review phase repeats it):
63
+ 1. **default** — the resting state is a deliberate style, not the browser default.
64
+ 2. **hover** — pointer feedback present (and not the *only* affordance — see focus).
65
65
  3. **active** — pressed/engaged state visibly distinct from hover.
66
- 4. **disabled** — unmistakably non-interactive (a contrast dip a user cannot read
67
- as "disabled" is a WCAG 1.4.1 failure — see `accessibility-auditor`).
68
- 5. **focus** — visible `:focus-visible` indicator (Q6 floor, `lint_design_quality`).
69
- 6. **loading** — explicit pending state (skeleton/spinner/disabled-submit), never a dead frozen control.
66
+ 4. **disabled** — visually unmistakable as non-interactive (a contrast dip alone
67
+ that a user cannot read as "disabled" is a WCAG 1.4.1 failure — see `accessibility-auditor`).
68
+ 5. **focus** — a visible `:focus-visible` indicator (Q6 floor, `lint_design_quality`).
69
+ 6. **loading** — an explicit pending state (skeleton/spinner/disabled-submit), never a dead frozen control.
70
70
  - **Transition timing** between these states follows the motion bands in
71
71
  [`fe-design`](../fe-design/SKILL.md) § Motion (micro-feedback ~100–200 ms;
72
72
  structural open/close ~200–500 ms) — the timing source of truth; do not restate
73
- a competing band set here. Every animated transition carries a
73
+ a competing band set here. Every animated transition also carries a
74
74
  `prefers-reduced-motion` alternative (M5 / Q4).
75
75
  - Test keyboard navigation (Tab, Enter, Escape, Arrow keys).
76
76
  - Verify form submission and error recovery.
@@ -312,11 +312,12 @@ and position it against [`verify-repair-loop`](../verify-repair-loop/SKILL.md)
312
312
  **Why the audit passes stay serial (not a parallel-4 fan-out).** A fan-out of
313
313
  a11y + slop + hierarchy + states across four subagents was evaluated and
314
314
  deferred: the passes share one live browser/navigation session and later phases
315
- build on state established by earlier ones — not cleanly independent; and the
316
- expensive part (browser probing / screenshots) is already offloaded by the async
317
- verifier above, which captures the fan-out's main win without four separate
318
- views. Reconsider only when `design-review` runs as a standalone heavy batch over
319
- many *independent* surfaces, where per-surface `do-in-parallel` genuinely pays.
315
+ build on state established by earlier ones, so they are not cleanly independent;
316
+ and the expensive part — browser probing / screenshots — is already offloaded by
317
+ the async verifier above, which captures the fan-out's main win without spinning
318
+ up four separate views. Reconsider only when `design-review` runs as a standalone
319
+ heavy batch over many *independent* surfaces, where per-surface
320
+ `do-in-parallel` genuinely pays.
320
321
 
321
322
  ## Gotcha
322
323
 
@@ -1,10 +1,10 @@
1
1
  # `design-system.json` — import contract
2
2
 
3
3
  > Lazy-loaded by `design-system-capture` ONLY when importing an extracted design
4
- > system. Not in the always-on skill body. The **consumer-side contract**: any
5
- > external static-extraction tool (URL / git repo / local dir) emits this shape;
6
- > the skill READS it to seed/merge `DESIGN.md`. We own the contract, not the
7
- > crawler (council 2026-06-28).
4
+ > system. Not part of the always-on skill body. This is the **consumer-side
5
+ > contract**: any external static-extraction tool (URL / git repo / local dir
6
+ > crawler) emits this shape; the skill READS it to seed/merge `DESIGN.md`. We
7
+ > own the contract, not the crawler (council 2026-06-28).
8
8
 
9
9
  ## Shape
10
10
 
@@ -31,32 +31,35 @@
31
31
  ## Field rules
32
32
 
33
33
  - **Map to DTCG where it maps cleanly.** `colors` / `typography` / `spacing` /
34
- `radius` / `shadow` = the DTCG `.tokens.json` shape `design-tokens` /
35
- `brand-to-tokens` already author — reuse it; never a parallel token format.
36
- - **Mark extraction-only metadata.** Observation, not a token decision, lives
37
- under `_meta` (`motion._meta.detected_libs`, `components[].observed`). Informs
38
- the human; never becomes a token.
39
- - **`source` is mandatory** — `kind` + `ref` + `captured_at`. No provenance →
40
- reject (can't confirm what you can't trace).
41
- - **`bundled_local`** is a flag, not an instruction: the package never
42
- downloads/bundles fonts (out of scope); it records that the source did.
34
+ `radius` / `shadow` correspond to the DTCG `.tokens.json` shape that
35
+ `design-tokens` / `brand-to-tokens` already author — reuse it; do **not**
36
+ invent a parallel token format.
37
+ - **Mark extraction-only metadata.** Anything that is *observation*, not a
38
+ token decision, lives under a `_meta` key (e.g. `motion._meta.detected_libs`,
39
+ `components[].observed`). It informs the human; it never becomes a token.
40
+ - **`source` is mandatory** — `kind` + `ref` + `captured_at`. An artifact with
41
+ no provenance is rejected (you cannot confirm what you cannot trace).
42
+ - **`bundled_local`** on a font family is a flag, not an instruction: the
43
+ package never downloads or bundles fonts (out of scope) — it records that the
44
+ source did.
43
45
 
44
46
  ## Trust posture (mandatory)
45
47
 
46
- An import is **observed, not authoritative** (mirrors `source-discovery`:
47
- evidence vs. authoritative). It seeds `DESIGN.md` as a **proposal the human
48
- confirms per field** — never a silent write. A field conflicting with a
49
- registered brand value (confirmed `.tokens.json` / brand token) is **flagged,
50
- never auto-applied** (`brand-source-of-truth`). Precedence: registered brand
51
- tokens > confirmed `DESIGN.md` > imported observation.
48
+ An imported artifact is **observed, not authoritative** (mirrors
49
+ `source-discovery`: evidence vs. authoritative). It seeds `DESIGN.md` as a
50
+ **proposal the human confirms per field** — never a silent write. A field that
51
+ conflicts with a registered brand value (a confirmed `.tokens.json` / brand
52
+ token) is **flagged, never auto-applied** (`brand-source-of-truth`: consumer
53
+ brand wins). Precedence on import: registered brand tokens > confirmed
54
+ `DESIGN.md` > imported observation.
52
55
 
53
56
  ## Two sources, one shape
54
57
 
55
- - **External target** (a site/repo you don't own) → external standalone tool
56
- emits `design-system.json`; hand it to `design-system-capture`.
58
+ - **External target** (a site/repo you do not own) → an external standalone
59
+ tool emits `design-system.json`; hand it to `design-system-capture`.
57
60
  - **Current repo** → prefer [`existing-ui-audit`](../../existing-ui-audit/SKILL.md):
58
- it inventories the codebase and emits the same shape, so the import path is
59
- identical either way.
61
+ it already inventories the codebase's components/tokens and can emit the same
62
+ `design-system.json` shape, so the import path is identical either way.
60
63
 
61
- Package **owns this contract**; does **not** ship the crawler, the Playwright
62
- runtime, or a font-bundler.
64
+ The package **owns this contract**; it does **not** ship the crawler, the
65
+ Playwright runtime, or a font-bundler.
@@ -23,7 +23,7 @@ Do NOT use when:
23
23
 
24
24
  1. **Gather context** — read `.devcontainer/devcontainer.json`, check `.devcontainer/` for env files and docs, check `agents/overrides/skills/devcontainer.md` for project-specific overrides.
25
25
  2. **Identify change type** — classify: image change, feature addition, secret addition, extension change, or env var change.
26
- 3. **Make the change** — edit `devcontainer.json` (or related files). Follow conventions below for secrets, features, and env variables.
26
+ 3. **Make the change** — edit `devcontainer.json` (or related files). Follow conventions below for secrets, features, and environment variables.
27
27
  4. **Build and verify** — run `devcontainer build` to confirm the container builds. Check that extensions load and ports forward correctly.
28
28
  5. **Document** — if adding a new secret or dependency, update the onboarding docs in `.devcontainer/`.
29
29
 
@@ -97,7 +97,7 @@ Read `devcontainer.json` for the actual secret definitions and requirements.
97
97
 
98
98
  - DevContainer
99
99
  - Codespaces
100
- - dev env
100
+ - dev environment
101
101
  - container setup
102
102
 
103
103
  ### Validate
@@ -242,7 +242,7 @@ RUN --mount=type=cache,target=/root/.npm \
242
242
 
243
243
  - All PHP commands (artisan, composer, phpunit) must run INSIDE the PHP container — never on the host.
244
244
  - The fast container and Xdebug container share the same codebase but have different PHP configs — don't confuse them.
245
- - `docker compose down -v` destroys volumes including the DB — use `down` without `-v` unless you mean it.
245
+ - `docker compose down -v` destroys volumes including the database — use `down` without `-v` unless you mean it.
246
246
  - The model forgets to use `docker compose exec -T` (no TTY) when running in scripts or CI.
247
247
 
248
248
  ## Do NOT
@@ -0,0 +1,52 @@
1
+ {
2
+ "skill": "docx-authoring",
3
+ "last_eval": "2026-07-30",
4
+ "description": "5 should-trigger + 5 should-not-trigger queries. Should-trigger covers DE + EN phrasings for WRITING a Word .docx — create from content, fill a supplied template, surgical body-XML edit. Should-not-trigger covers the near-miss neighbours (docx→Markdown reading, PDF authoring, spreadsheets, slide decks, prose co-authoring) whose vocabulary overlaps.",
5
+ "queries": [
6
+ {
7
+ "q": "generate a .docx report from this content",
8
+ "trigger": true
9
+ },
10
+ {
11
+ "q": "fill this Word template with these values and save a copy",
12
+ "trigger": true
13
+ },
14
+ {
15
+ "q": "edit the heading and one table cell inside this existing .docx",
16
+ "trigger": true
17
+ },
18
+ {
19
+ "q": "erzeuge daraus ein Word-Dokument mit A4-Seitenformat und einer Tabelle",
20
+ "trigger": true
21
+ },
22
+ {
23
+ "q": "produce the contract as a Word file, not a PDF",
24
+ "trigger": true
25
+ },
26
+ {
27
+ "q": "extract the text of this .docx into Markdown so I can read it here",
28
+ "trigger": false,
29
+ "note": "reading a docx into the conversation, not writing one → markitdown"
30
+ },
31
+ {
32
+ "q": "merge these PDFs and fill the PDF form fields",
33
+ "trigger": false,
34
+ "note": "PDF authoring surface, different library-per-task path → pdf-tools"
35
+ },
36
+ {
37
+ "q": "build me a budget model with formulas in a spreadsheet",
38
+ "trigger": false,
39
+ "note": "spreadsheet/model authoring, not an OOXML text document → spreadsheet-authoring"
40
+ },
41
+ {
42
+ "q": "turn this into a slide deck for the pitch tomorrow",
43
+ "trigger": false,
44
+ "note": "presentation surface; pptx is gated, decks go to → html-deck"
45
+ },
46
+ {
47
+ "q": "help me write the PRD itself — structure the sections and stress-test the reader test",
48
+ "trigger": false,
49
+ "note": "authoring the prose/content of a spec, not producing the .docx container → doc-coauthoring"
50
+ }
51
+ ]
52
+ }
@@ -97,7 +97,7 @@ Apply this floor **before** marking any ticket `lite`:
97
97
  - Any miss → split the ticket further, or escalate to `medium`
98
98
  - Architectural / multi-module → `high` (use `adr-create` first)
99
99
 
100
- **Gate:** run `./scripts-run src/scripts/lint_ticket_buildable agents/tickets/{slug}/`
100
+ **Gate:** run `./scripts-run src/scripts/lint_ticket_buildable.ts agents/tickets/{slug}/`
101
101
  and fix all errors before declaring any ticket `lite`. This is the only
102
102
  authoritative check — do not skip it.
103
103
 
@@ -154,7 +154,7 @@ If the file does not exist, create it with the `bundles:` root.
154
154
  ### §8 — Run the buildability gate
155
155
 
156
156
  ```bash
157
- ./scripts-run src/scripts/lint_ticket_buildable agents/tickets/{slug}/
157
+ ./scripts-run src/scripts/lint_ticket_buildable.ts agents/tickets/{slug}/
158
158
  ```
159
159
 
160
160
  Fix every reported error. Re-run until exit code 0. Max 3 attempts; if still
@@ -126,7 +126,7 @@ Exactly **one** layer translates internal errors to the egress format (HTTP stat
126
126
 
127
127
  ## Provenance
128
128
 
129
- - Adopted from: an external reference (MIT, © 2025 an external reference) — **Sunset Policy applied**: 636-line source reduced to a ~150-line decision framework; language catalogues externalized to the upstream resources below.
129
+ - Adopted from: an external reference (internal provenance, redacted) — **Sunset Policy applied**: a large source reduced to a ~150-line decision framework; language catalogues externalized to the upstream resources below.
130
130
  - Externalized catalogues:
131
131
  - Python: https://docs.python.org/3/tutorial/errors.html · https://docs.python.org/3/library/exceptions.html
132
132
  - PHP / Laravel: https://laravel.com/docs/errors · https://www.php.net/manual/en/language.exceptions.php
@@ -74,7 +74,7 @@ Before producing numbers, check:
74
74
  - Is there a rollback plan implied?
75
75
 
76
76
  If the ticket scores low on estimability (vague AC, no out-of-scope,
77
- no mention of deps), set `uncertainty = Underspecified` and
77
+ no mention of dependencies), set `uncertainty = Underspecified` and
78
78
  emit a single-line redirect to `/refine-ticket` at the top of the output.
79
79
 
80
80
  A **cross-source discrepancy** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md), gated by `consistency.cross_source`) — ticket text contradicting an attached mockup, or a clearly-needed-but-unstated behavior (weekend/holiday shift) — is not estimable as-is: it hides an open scope decision. Raise `uncertainty` and name the discrepancy in the redirect rather than sizing over a contradiction.
@@ -177,7 +177,7 @@ copy-paste instructions if missing.
177
177
  - Estimators default to optimism. Every size must cite evidence for at least one of the four axes — not "feels like M".
178
178
  - `Underspecified` is not a safe default. Use it only when estimability actually fails; otherwise pick a size and state the risk.
179
179
  - `Split: Yes` without concrete split points is useless. Name the slices or drop the recommendation.
180
- - Persona voices drift into general feedback. Each sentence must be about **sizing** — developer talks impl size, stakeholder talks timeline fit, etc.
180
+ - Persona voices drift into general feedback. Each sentence must be about **sizing** — developer talks implementation size, stakeholder talks timeline fit, etc.
181
181
  - Story-point mapping (`S=2 / M=3 / L=5 / XL=8`) is the default; projects may override — do NOT hardcode their scale into this skill.
182
182
 
183
183
  ## Do NOT
@@ -2,7 +2,6 @@
2
2
  model_tier: high
3
3
  name: evaluate-llm-feature
4
4
  description: "Black-box evaluation of a shipped LLM feature — adversarial probes for hallucination, prompt-injection, and cost-runaway vs stated expectations. Not RAG/embedding. Triggers 'review my chatbot'."
5
- source: package
6
5
  personas:
7
6
  - security-engineer
8
7
  domain: quality
@@ -0,0 +1,52 @@
1
+ {
2
+ "skill": "evaluate-llm-feature",
3
+ "last_eval": "2026-07-30",
4
+ "description": "5 should-trigger + 5 should-not-trigger queries. Should-trigger covers DE + EN phrasings for black-box evaluation of a SHIPPED consumer LLM feature — hallucination, prompt-injection and cost-runaway probes against stated expectations. Should-not-trigger covers the near-miss neighbours (this suite's own agent config red-team, LLM app-building/RAG, prompt authoring, the single-response injection judge, code security audit) whose vocabulary overlaps.",
5
+ "queries": [
6
+ {
7
+ "q": "review my support chatbot before launch — does it hallucinate or leak its system prompt?",
8
+ "trigger": true
9
+ },
10
+ {
11
+ "q": "is my summariser safe to ship? probe it for prompt injection through the documents it retrieves",
12
+ "trigger": true
13
+ },
14
+ {
15
+ "q": "evaluate my deployed AI assistant against what it claims to do and its token budget",
16
+ "trigger": true
17
+ },
18
+ {
19
+ "q": "teste meinen ausgelieferten KI-Assistenten adversarial auf Halluzinationen und Kosten-Runaway",
20
+ "trigger": true
21
+ },
22
+ {
23
+ "q": "our doc-QA feature invents API names — run adversarial probes and give me a ship / do-not-ship verdict",
24
+ "trigger": true
25
+ },
26
+ {
27
+ "q": "red-team my own agent setup — my CLAUDE.md, hooks and MCP servers",
28
+ "trigger": false,
29
+ "note": "config-layer red/blue review of this suite's agents, not a shipped consumer feature → agent-security-review"
30
+ },
31
+ {
32
+ "q": "what chunk size and embedding model should I use for my RAG pipeline?",
33
+ "trigger": false,
34
+ "note": "building an LLM app (explicitly out of mission for this skill); provider facts → llm-provider-knowledge, prompt design → prompt-engineering-patterns"
35
+ },
36
+ {
37
+ "q": "make this system prompt better — add few-shot examples and self-verification",
38
+ "trigger": false,
39
+ "note": "authoring/optimising a prompt, not evaluating a running feature → prompt-engineering-patterns / prompt-optimizer"
40
+ },
41
+ {
42
+ "q": "score whether this single agent response resisted the injected instruction",
43
+ "trigger": false,
44
+ "note": "one-response injection-resistance scoring on an axis, not a feature-wide probe campaign → judge-injection-defense"
45
+ },
46
+ {
47
+ "q": "audit the source code of our chat backend for vulnerabilities",
48
+ "trigger": false,
49
+ "note": "white-box code vulnerability hunt; this skill is black-box only → security-audit"
50
+ }
51
+ ]
52
+ }
@@ -31,7 +31,7 @@ Use this skill when:
31
31
  Do NOT use when:
32
32
  - `directive_set="ui-trivial"` — the trivial path bypasses audit by precondition (≤1 file, ≤5 lines, no new component, no new state, no new dep)
33
33
  - `directive_set="backend"` — no UI surface to inventory
34
- - The audit findings already exist in `state.ui_audit` for this state-file (cached) — re-run only if `package.json` or `composer.json` mtime changed
34
+ - The audit findings already exist in `state.ui_audit` for this state-file — the gate round-trips through SUCCESS once `audit_path` is set, and does **not** re-run for the life of that state-file (see Gotchas for what that does and does not cover)
35
35
 
36
36
  ## Resource-first context gate (design fidelity)
37
37
 
@@ -229,11 +229,12 @@ violations will surface as new findings on every run.
229
229
  7. **`state.ui_audit.greenfield`** — boolean; when true, `greenfield_decision` MUST also be set before the dispatcher advances
230
230
  8. **`state.ui_audit.a11y_baseline`** *(optional)* — array of `{rule, selector, severity?}` entries documenting pre-existing a11y violations the review gate should treat as informational. Omit the key entirely when no baseline applies; do not write `[]` for "I checked and there are none" — that disables the gate's filter for every future run.
231
231
 
232
- **Design-system export (current-repo source):** to seed `DESIGN.md` from *this*
233
- repo, emit the inventory as a `design-system.json` artifact (the import contract
234
- in [`design-system-capture`](../design-system-capture/reference/design-system-json.md))
235
- and hand it to `design-system-capture` — same shape an external tool produces,
236
- so the import path is uniform.
232
+ **Design-system export (current-repo source):** when the goal is to seed
233
+ `DESIGN.md` from *this* repo, emit the inventory as a `design-system.json`
234
+ artifact (the import contract in
235
+ [`design-system-capture`](../design-system-capture/reference/design-system-json.md))
236
+ and hand it to `design-system-capture` — the same shape an external extraction
237
+ tool produces, so the import path is uniform.
237
238
 
238
239
  ## Gotcha
239
240
 
@@ -242,7 +243,20 @@ so the import path is uniform.
242
243
  - Don't assume a Radix-only `package.json` means shadcn — shadcn requires `components.json` at repo root.
243
244
  - `state.ui_audit.shadcn_inventory.version` is often missing; the shadcn CLI does not always pin itself in `package.json`. Record `null` rather than guessing.
244
245
  - Greenfield is detected, not assumed — a project with one Blade layout and no components is still greenfield only if tokens AND design system markers AND components are all empty.
245
- - Re-running the skill on a stale state-file: cache by `(composer.json mtime, package.json mtime)`; if either changed, re-audit and overwrite.
246
+ - **There is no mtime cache.** An earlier revision told you to cache by
247
+ `(composer.json mtime, package.json mtime)` and re-audit when either changed.
248
+ No code implemented it, and the key was the wrong one anyway: `apply` adds
249
+ components without touching a manifest, so a manifest-keyed cache never
250
+ invalidates on the change that matters. What the engine does is simpler and
251
+ stricter — `audit.ts` returns SUCCESS unconditionally once `audit_path` is
252
+ `high_confidence` or `ambiguous`, so the inventory is computed **once per
253
+ state-file** and never refreshed.
254
+ - **What that means in practice.** A single request is one pass, so the
255
+ inventory is fresh where it matters. The bounded gap is a run that reuses one
256
+ state-file across several component additions: components written earlier in
257
+ that run are absent from the inventory the later ones are checked against.
258
+ Adding a second component in the same run → re-read the component directories
259
+ directly rather than trusting `state.ui_audit.components_found`.
246
260
 
247
261
  ## Anti-slop cross-reference
248
262
 
@@ -63,6 +63,16 @@ where the corpus reports an evidence gap or the audit already pins a
63
63
  project pattern. Stack-specific choices come from the dispatched
64
64
  implementation skill, not from here.
65
65
 
66
+ > **When the corpus is not installed.** `design-intelligence` ships in the
67
+ > `frontend-design` pack; this skill ships in `engineering-base`. A consumer
68
+ > who installed only `laravel` or only `react` therefore has this skill and
69
+ > **not** the corpus. Fall back to the heuristics here and say so in the
70
+ > result — "selected from heuristics; `frontend-design` not installed, so no
71
+ > corpus grounding". The evidence-gap fallback above is about a corpus that
72
+ > answered "nothing here"; this is about a corpus that is absent. Never
73
+ > present an ungrounded pick as grounded, and never record a missing pack as
74
+ > an evidence gap.
75
+
66
76
  ## Component Architecture
67
77
 
68
78
  ### Page structure (universal shape)
@@ -167,7 +167,7 @@ complexity: lightweight # default — skips bite-sized granularity
167
167
  ---
168
168
  ```
169
169
 
170
- Source: adapted from an external reference `writing-plans/SKILL.md` § Task Structure + § No Placeholders (v5.1.0); complexity-gating is our addition (Council Round 1, Q4 — mitigates UX pushback for senior engineers on well-scoped work).
170
+ Source: adapted from an external reference; complexity-gating is our addition (Council Round 1, Q4 — mitigates UX pushback for senior engineers on well-scoped work).
171
171
 
172
172
  ## Self-review (3-scan checklist)
173
173
 
@@ -179,7 +179,7 @@ Before presenting any plan, run these three scans in order. Each is a fast pass
179
179
 
180
180
  This scan is **separate from** adversarial-review (below). Self-review catches mechanical gaps (missing AC, leftover placeholders, mis-shaped types); adversarial-review challenges the plan's reasoning.
181
181
 
182
- Source: adapted from an external reference `writing-plans/SKILL.md` § Self-Review (v5.1.0).
182
+ Source: adapted from an external reference.
183
183
 
184
184
  ## Adversarial self-review
185
185
 
@@ -63,10 +63,10 @@ or [`fix-pr-comments`](../../commands/fix-pr-comments.md) instead.
63
63
  Run the end-of-work gate before presenting any options — see
64
64
  [`verify-before-complete`](../verify-before-complete/SKILL.md).
65
65
  Steps 1–3 run only when `quality.local_auto_run: true`; under the
66
- default (`false` / missing) skip them without asking — user runs
66
+ default (`false` / missing) skip them without asking — the user runs
67
67
  quality tools manually, remote CI on the PR is the authoritative gate,
68
- readiness report says *"quality gates delegated to remote CI"* instead
69
- of claiming them green:
68
+ and the readiness report says *"quality gates delegated to remote CI"*
69
+ instead of claiming them green:
70
70
 
71
71
  1. Targeted tests green
72
72
  2. Full test suite green
@@ -115,7 +115,7 @@ current state on the next polish round.
115
115
 
116
116
  ## Taste Dials
117
117
 
118
- `DESIGN.md` `## Taste Dials` → honour: Variance → layout-family spread + asymmetry; Motion → animation budget + reduced-motion posture; Density → spacing scale + info-per-viewport. Absent → follow brief's inferred dials.
118
+ When `DESIGN.md` declares `## Taste Dials`, honour them: Variance → layout-family spread + asymmetry tolerance; Motion → animation budget + reduced-motion posture; Density → spacing scale + information-per-viewport. Absent → follow the design brief's inferred dials.
119
119
 
120
120
  ## Do NOT
121
121
 
@@ -11,15 +11,15 @@ packs:
11
11
 
12
12
  # frontend-render-security
13
13
 
14
- AI optimizes for the shortest code producing the requested visible behavior and omits the invisible defensive layer — the sanitizer, origin check, server-side gate, security header. Large samples put XSS in a majority of AI frontend code, ~2.74× more than human; every agent in the Tenzai benchmark shipped client-side flaws. High-precision, grep-catchable patterns — stop them at authoring time.
14
+ AI optimizes for the shortest code that produces the requested visible behavior and omits the invisible defensive layer — the sanitizer, the origin check, the server-side gate, the security header. Large samples put XSS in a majority of AI frontend code and ~2.74× more XSS than human code; every agent in the Tenzai benchmark shipped client-side flaws. These are high-precision, grep-catchable patterns — stop them at authoring time.
15
15
 
16
16
  ## When to use
17
17
 
18
- - Writing/modifying a component, template, or client-side script that renders data, calls an API, handles auth, or reads the URL / `postMessage`.
18
+ - Writing or modifying a component, template, or client-side script that renders data, calls an API, handles auth, or reads the URL / `postMessage`.
19
19
  - Reviewing an AI-authored frontend diff.
20
20
  - Editing `.tsx` / `.jsx` / `.vue` / `.svelte` / `.html` or client-side `.js` / `.ts`.
21
21
 
22
- Do NOT use when: change is server-only, CLI, or non-UI — route to `security` / `security-sensitive-stop`.
22
+ Do NOT use when: the change is server-only, CLI, or non-UI — route to `security` / `security-sensitive-stop`.
23
23
 
24
24
  ## The Iron Law
25
25
 
@@ -38,15 +38,15 @@ NO SECRET, PRIVILEGED KEY, OR SESSION TOKEN LIVES IN CLIENT CODE OR localStorage
38
38
 
39
39
  ## The patterns AI ships by default
40
40
 
41
- | Pattern | Why dangerous | Do instead |
41
+ | Pattern | Why it's dangerous | Do instead |
42
42
  |---|---|---|
43
- | `dangerouslySetInnerHTML` / `v-html` / `.innerHTML =` on non-constant value | Stored/DOM XSS (CWE-79) | render as text, or sanitize (DOMPurify) if HTML required |
44
- | Secret / API key inline or in `NEXT_PUBLIC_*` / `VITE_*` | Bundler inlines it into shipped JS (CWE-798) | call third party via backend-for-frontend proxy; only truly-public values get a public prefix |
45
- | Client-side-only auth / role / validation | Bypassable via dev tools or proxy (CWE-602) | client gate = UX only; enforce server-side |
43
+ | `dangerouslySetInnerHTML` / `v-html` / `.innerHTML =` on non-constant value | Stored/DOM XSS (CWE-79) | render as text, or sanitize (DOMPurify) if HTML is required |
44
+ | Secret / API key inline or in `NEXT_PUBLIC_*` / `VITE_*` | Bundler inlines it into shipped JS (CWE-798) | call the third party via a backend-for-frontend proxy; only truly-public values get a public prefix |
45
+ | Client-side-only auth / role / validation | Bypassable with dev tools or a proxy (CWE-602) | client gate is UX only; enforce the same check server-side |
46
46
  | `location.*` / query param → HTML or JS sink | DOM XSS (CWE-79) | `textContent`; never pass URL data into an HTML/exec sink |
47
47
  | CORS `origin: '*'` (esp. with credentials) | Any site reads authenticated responses (CWE-942) | explicit origin allow-list; never reflect `Origin` on credentialed routes |
48
48
  | Token / JWT in `localStorage` / `sessionStorage` | XSS-exfiltratable (CWE-522) | `HttpOnly; Secure; SameSite` cookie |
49
- | `addEventListener('message', …)` without `event.origin` check | Any embedder drives the handler (CWE-346) | strict-equality `event.origin` vs allow-list first |
49
+ | `addEventListener('message', …)` without `event.origin` check | Any embedder drives the handler (CWE-346) | strict-equality check `event.origin` against an allow-list first |
50
50
  | `redirect` / `next` param → `location` / `router.push` | Open redirect / phishing (CWE-601) | relative-path or allow-listed-host only; reject external / non-http schemes |
51
51
  | `eval` / `new Function` / string-`setTimeout` on input | Eval injection / RCE (CWE-95) | a parser or explicit allow-list |
52
52
  | `target="_blank"` without `rel="noopener"` | Reverse tabnabbing (CWE-1022) | add `rel="noopener noreferrer"` |
@@ -54,7 +54,7 @@ NO SECRET, PRIVILEGED KEY, OR SESSION TOKEN LIVES IN CLIENT CODE OR localStorage
54
54
 
55
55
  ## Backstop greps
56
56
 
57
- Run before committing frontend changes; each returns zero (or every hit is read + justified):
57
+ Run before committing frontend changes; each should return zero (or every hit is read and justified):
58
58
 
59
59
  ```bash
60
60
  # Insecure render + eval sinks
@@ -70,16 +70,16 @@ rg -n 'target=["'\'']_blank["'\'']' # then confirm rel="noopener" present
70
70
 
71
71
  ## Output format
72
72
 
73
- 1. A per-diff verdict listing each pattern class checked + result (`clean` / `hit at file:line → fixed by <change>`).
73
+ 1. A per-diff verdict listing each pattern class checked and its result (`clean` / `hit at file:line → fixed by <change>`).
74
74
  2. The backstop greps run, with results.
75
- 3. For any client gate added, file:line of its **server-side twin** (or an explicit note the server check already exists + where).
75
+ 3. For any client gate added, the file:line of its **server-side twin** (or an explicit note that the server check already exists and where).
76
76
 
77
77
  ## Gotcha
78
78
 
79
- - Modern browsers default `_blank` to `noopener`, but legacy/embedded webviews don't — keep the `rel` for portability.
79
+ - Modern browsers default `_blank` to `noopener`, but legacy/embedded webviews do not — keep the `rel` for portability.
80
80
  - `NEXT_PUBLIC_`/`VITE_` on a *genuinely* public value (a publishable analytics ID) is fine; the violation is a *sensitive* name behind that prefix. Read the name, don't blanket-block the prefix.
81
81
  - A sanitizer (DOMPurify) is the fix only when HTML output is actually required; if plain text suffices, render text and skip the dependency.
82
- - Client-side validation isn't wrong — it's wrong *as the only* enforcement. Keep it for UX; add the server twin.
82
+ - Client-side validation is not wrong — it is wrong *as the only* enforcement. Keep it for UX; add the server twin.
83
83
 
84
84
  ## Do NOT
85
85