@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
@@ -7,8 +7,8 @@ Lookup material for `prediction-pool-optimizer`. Two parts:
7
7
  - **B — Bonus / award / special questions**: a type → method table so every
8
8
  open question in the pool reaches an answer.
9
9
 
10
- Not betting advice; how to read a public market as a probability prior for a
11
- fun pool.
10
+ Nothing here is betting advice; it is how to read a public market as a
11
+ probability prior for a fun pool.
12
12
 
13
13
  ---
14
14
 
@@ -17,51 +17,55 @@ fun pool.
17
17
  ### Why not one book
18
18
 
19
19
  A single bookmaker's line can be stale, regionally shaded, or carry a fat
20
- margin. A consensus across several books is a far better probability estimate,
21
- and cross-book agreement tells you the market's confidence. **Never mirror one
22
- portal.**
20
+ margin. A consensus across several books is a far better probability
21
+ estimate, and cross-book agreement tells you how confident the market is.
22
+ **Never mirror one portal.**
23
23
 
24
24
  ### Which books (5–10, publicly viewable)
25
25
 
26
26
  Availability varies by region and over time — this list is **illustrative,
27
- refresh it at run time** and use whatever is publicly viewable from the current
28
- locale. Fastest way to see many at once = an **odds-comparison aggregator**:
27
+ refresh it at run time** and use whatever is publicly viewable from the
28
+ current locale. The fastest way to see many at once is an **odds-comparison
29
+ aggregator**:
29
30
 
30
31
  - **Aggregators (many books on one page):** Oddschecker, Oddsportal,
31
32
  Betexplorer, OddsAlert.
32
- - **Sharp / low-margin reference books (weight higher):** Pinnacle, Betfair
33
- Exchange (an exchange = closest thing to a true market price).
33
+ - **Sharp / low-margin reference books (weight higher):** Pinnacle,
34
+ Betfair Exchange (an exchange = the closest thing to a true market price).
34
35
  - **Large recreational books (weight lower):** bet365, Bwin, William Hill,
35
36
  Unibet, Betano, Tipico, Interwetten, bet-at-home, 888sport, Winamax.
36
37
 
37
- Aim for **5–10** spanning both groups. If only recreational books are viewable,
38
- say so in the run note — the consensus is then softer.
38
+ Aim for **5–10** spanning both groups. If only recreational books are
39
+ viewable, say so in the run note — the consensus is then softer.
39
40
 
40
41
  ### The recipe
41
42
 
42
- 1. **Per market, per book**: collect decimal odds (1X2, exact-score, each
43
- outright, each special/award market a bonus question needs).
44
- 2. **De-vig each book independently.** For 1X2 decimal odds `o_H, o_D, o_A`,
45
- raw implied probs `1/o` sum to `>1` (overround); normalise:
46
- `p_i = (1/o_i) / Σ(1/o)`. Per book — never aggregate raw odds.
47
- 3. **Sharpness-weight and combine.** Sharp books > recreational; **weighted
48
- mean** — or **trimmed median** when books disagree a lot (robust to one
49
- outlier). A defensible weighting:
43
+ 1. **Per market, per book**: collect the decimal odds (1X2, exact-score,
44
+ each outright, each special/award market a bonus question needs).
45
+ 2. **De-vig each book independently.** For a 1X2 market with decimal odds
46
+ `o_H, o_D, o_A`, the raw implied probs are `1/o`; they sum to `>1` (the
47
+ overround). Normalise: `p_i = (1/o_i) / Σ(1/o)`. Do this **per book** —
48
+ never aggregate raw odds.
49
+ 3. **Sharpness-weight and combine.** Give sharp books more weight than
50
+ recreational ones, then take a **weighted mean** — or a **trimmed median**
51
+ when books disagree a lot (robust to one outlier). A simple, defensible
52
+ weighting:
50
53
 
51
54
  - Pinnacle / Betfair Exchange → weight 3
52
55
  - large recreational books → weight 1
53
- - aggregator "average" column → weight 1 (already blends many)
54
-
55
- `p_consensus = Σ(wᵢ · pᵢ) / Σwᵢ` per outcome, then re-normalise the outcome
56
- set to sum to 1.
57
- 4. **Outlier handling.** One book far off the others = **flag, not truth**:
58
- check for a reason (priced-in injury, stale line) before moving the
59
- consensus. Cross-book agreement = signal; one disagreeing book = investigate.
56
+ - aggregator "average" column → weight 1 (it already blends many)
57
+
58
+ `p_consensus = Σ(wᵢ · pᵢ) / Σwᵢ`, computed per outcome, then re-normalise
59
+ the outcome set to sum to 1.
60
+ 4. **Outlier handling.** If one book is far off the others, that is a **flag,
61
+ not a truth**: check for a reason (priced-in injury, stale line) before
62
+ moving the consensus. Cross-book agreement = signal; one disagreeing book
63
+ = investigate.
60
64
  5. **Healthy weighting overall.** The consensus is a **prior**. Blend it with
61
- the per-sport model (Poisson / Gaussian) and override only with *current*
62
- info the market has not absorbed (confirmed lineup, late injury,
63
- suspension, manager change). The pool answer is EV under the rules on top of
64
- this blended probability — the market informs, it does not dictate.
65
+ the per-sport model (Poisson / Gaussian) and only override with *current*
66
+ info the market has not yet absorbed (confirmed lineup, late injury,
67
+ suspension, manager change). The pool answer is EV under the rules on top
68
+ of this blended probability — the market informs, it does not dictate.
65
69
 
66
70
  ### Worked mini-example (1X2)
67
71
 
@@ -81,27 +85,27 @@ the per-match EV grid — not either book's raw number.
81
85
  ## B. Bonus / award / special questions — type → method
82
86
 
83
87
  Every entry on the step-1 checklist gets an answer. Match the question to a
84
- row; real market where one exists, a **labelled** model estimate where none
85
- does. Optimize each on expected points under its point weight.
88
+ row; use a real market where one exists, a **labelled** model estimate where
89
+ none does. Optimize each on expected points under its point weight.
86
90
 
87
91
  | Question type | Example | Method |
88
92
  |---|---|---|
89
93
  | **Outright winner** | "Who wins the tournament?" | Outright "to win" market, consensus per A; or `poisson_sim.ts` `title_pct`. EV-max under the question's points. |
90
94
  | **Group / stage** | "Who wins group X?", "Who advances?" | "To win group" / "to qualify" markets; or `advance_pct` from the simulator. |
91
95
  | **Finalists / matchup** | "Who reaches the final?" | "To reach final" market per team; simulator pairing is approximate — prefer the market. |
92
- | **Top scorer (player)** | "Tournament top scorer?" | "Top goalscorer" outright market, consensus per A; EV-max player (favourite unless rarity scoring rewards a longer shot). |
93
- | **Team of the top scorer** | "Which team supplies the top scorer?" | Aggregate per-player top-scorer probabilities **by team** (sum each squad); pick the highest-summed team. |
94
- | **Most assists / cards / etc.** | "Most yellow cards?" | Matching special market if offered; else a labelled model estimate (discipline/aggression proxy). |
95
- | **Binary special** | "Will there be a red card in match X?" | De-vig the yes/no line to a probability; EV-max side under the points. No market → labelled base-rate estimate. |
96
- | **Over / under total** | "Over/under total goals / cards?" | De-vig the totals line at the offered threshold; higher-EV side. |
97
- | **Exact stat** | "How many goals in the final?" | Market totals distribution if available; else per-match Poisson on consensus xG. State the model. |
96
+ | **Top scorer (player)** | "Tournament top scorer?" | "Top goalscorer" outright market, consensus per A; pick the EV-max player (favourite unless rarity scoring rewards a longer shot). |
97
+ | **Team of the top scorer** | "Which team supplies the top scorer?" | Aggregate per-player top-scorer probabilities **by team** (sum each squad's players); pick the team with the highest summed probability. |
98
+ | **Most assists / cards / etc.** | "Most yellow cards?" | The matching special market if offered; else a labelled model estimate (e.g. discipline/aggression proxy). |
99
+ | **Binary special** | "Will there be a red card in match X?" | De-vig the yes/no line to a probability; pick the EV-max side under the points. No market → labelled base-rate estimate. |
100
+ | **Over / under total** | "Over/under total goals / cards?" | De-vig the totals line at the offered threshold; pick the side with higher EV. |
101
+ | **Exact stat** | "How many goals in the final?" | Market totals distribution if available; else the per-match Poisson on consensus xG. State the model. |
98
102
 
99
103
  ### Rules for bonus answers
100
104
 
101
105
  - **Answer all of them.** The output's bonus table must have the same number
102
- of rows as the step-1 checklist. A missing row = a dropped question.
103
- - **Market first, labelled model second.** Prefer a real special market; none
104
- exists → derive from a stated model and mark `Source: model`.
106
+ of rows as the step-1 checklist. A missing row is a dropped question.
107
+ - **Market first, labelled model second.** Prefer a real special market;
108
+ when none exists, derive from a stated model and mark `Source: model`.
105
109
  - **Rarity rules apply here too.** Under quote/rarity scoring, a
106
110
  plausible-but-rarer answer can out-score the favourite when
107
111
  `payout × probability` is higher — same EV logic as the scores.
@@ -131,11 +131,11 @@ Check:
131
131
 
132
132
  ## Knowledge capture (`convention_detected` events)
133
133
 
134
- An architecture-map or stack finding that recurs (naming convention,
135
- module boundary, layering rule) is worth persisting for the team.
134
+ An architecture map or stack finding that recurs (a naming convention,
135
+ a module boundary, a layering rule) is worth persisting for the team.
136
136
  Append to the knowledge intake instead of leaving it in the one-off
137
- analysis output — applies to every `project-analysis-*` specialist
138
- this skill hands off to:
137
+ analysis output (applies to every `project-analysis-*` specialist this
138
+ skill hands off to, not just this one):
139
139
 
140
140
  ```bash
141
141
  npx tsx node_modules/@event4u/agent-config/src/scripts/emit_knowledge_event.ts --type convention_detected \
@@ -17,7 +17,7 @@ packs:
17
17
  Use this skill when:
18
18
 
19
19
  * There is a concrete issue to explain
20
- * Multiple root → are plausible
20
+ * Multiple root causes are plausible
21
21
  * The system spans several layers
22
22
  * A shallow single-explanation answer would be risky
23
23
  * `universal-project-analysis` or `bug-analyzer` routes here
@@ -33,7 +33,7 @@ Do NOT use when:
33
33
  * Never stop at the first plausible explanation
34
34
  * Code, docs, and evidence beat intuition
35
35
  * Rejected hypotheses matter
36
- * Multiple interacting → are common
36
+ * Multiple interacting causes are common
37
37
  * Uncertainty must be marked explicitly
38
38
 
39
39
  ## Procedure
@@ -95,7 +95,7 @@ Ask:
95
95
 
96
96
  * does this fully explain the behavior?
97
97
  * what remains unexplained?
98
- * could multiple → interact?
98
+ * could multiple causes interact?
99
99
  * does contradictory evidence exist?
100
100
 
101
101
  If anything major remains unexplained: continue analysis, do not present a final conclusion yet.
@@ -117,7 +117,7 @@ Check:
117
117
  ## Gotcha
118
118
 
119
119
  * React bugs often come from stale state, not broken logic.
120
- * Missing deps in hooks are one of the most common root causes.
120
+ * Missing dependencies in hooks are one of the most common root causes.
121
121
  * Overusing memoization can make code harder to reason about without solving real problems.
122
122
 
123
123
  ## Do NOT
@@ -44,7 +44,7 @@ Do NOT use when:
44
44
  ### 1. Confirm Symfony version and app shape
45
45
 
46
46
  Check: `composer.lock`, `composer.json`, Symfony packages/components, PHP version, environment config structure.
47
- Validate: Symfony version is explicit, major bundles/components are identified, env-specific config layout is known.
47
+ Validate: Symfony version is explicit, major bundles/components are identified, environment-specific config layout is known.
48
48
 
49
49
  ### 2. Analyze kernel and container boot
50
50
 
@@ -54,7 +54,7 @@ Check:
54
54
 
55
55
  * merge order surprises
56
56
  * missing overrides
57
- * env config mismatches
57
+ * environment config mismatches
58
58
  * heavy bootstrap logic
59
59
 
60
60
  ### 3. Analyze ServiceManager behavior
@@ -106,7 +106,7 @@ Check:
106
106
  ## Gotcha
107
107
 
108
108
  * Many Zend/Laminas issues are caused by config order and service resolution, not controller code.
109
- * Shared services and legacy migration remnants can create cross-request or env-specific bugs.
109
+ * Shared services and legacy migration remnants can create cross-request or environment-specific bugs.
110
110
  * Old project behavior may depend on historical bootstrap side effects that are easy to miss.
111
111
 
112
112
  ## Do NOT
@@ -144,7 +144,7 @@ Production prompts handle their own failure cases:
144
144
 
145
145
  ## Provenance
146
146
 
147
- - Adopted from: an external reference (MIT, © 2025 an external reference) — restructured into a decision-framework shape; vendor `prompt_optimizer` Python snippets dropped (project-specific to an external reference).
147
+ - Adopted from: an external reference (internal provenance, redacted) — restructured into a decision-framework shape; source-specific vendor Python snippets dropped.
148
148
  - Cross-linked: [`prompt-optimizer`](../prompt-optimizer/SKILL.md), [`refine-prompt`](../refine-prompt/SKILL.md), [`mcp-builder`](../mcp-builder/SKILL.md), [`async-python-patterns`](../async-python-patterns/SKILL.md).
149
149
  - Provenance registry: `agents/settings/contexts/skills-provenance.yml` (entry: `prompt-engineering-patterns`).
150
150
  - Iron-Law floor: `verify-before-complete`, `skill-quality`, `non-destructive-by-default`.
@@ -20,14 +20,14 @@ install:
20
20
  # prompt-validator
21
21
 
22
22
  > Deterministic pre-spend gate: collect **every** prompt a video run is
23
- > about to send (all scenes, all blocks), cross-check against each other
24
- > and against the run's locked facts (character lock, vocal map, model
25
- > capabilities), **block with a specific error** on contradiction.
26
- > Skills are deterministic — a multi-scene batch fails by
27
- > *contradiction*, not drift: two prompts that cannot both be true of
28
- > the same video (AI-council convergence, 2026-06-06). One blocked
29
- > batch costs a re-edit; one rendered contradiction costs the whole
30
- > spend.
23
+ > about to send (all scenes, all blocks), cross-check them against each
24
+ > other and against the run's locked facts (character lock, vocal map,
25
+ > model capabilities), and **block with a specific error** on
26
+ > contradiction. Skills are deterministic — the failure mode of a
27
+ > multi-scene batch is not drift, it is *contradiction*: two prompts
28
+ > that cannot both be true of the same video (AI-council convergence,
29
+ > 2026-06-06). One blocked batch costs a re-edit; one rendered
30
+ > contradiction costs the whole spend.
31
31
 
32
32
  ## When to use
33
33
 
@@ -41,16 +41,16 @@ install:
41
41
 
42
42
  Do NOT use when:
43
43
 
44
- - Only a single scene exists (nothing to contradict) — per-scene checks
45
- in `video-director` cover internal consistency.
46
- - Pure preview with no approval intent — validate when the batch is
47
- about to be gated, not on every draft keystroke.
44
+ - Only a single scene exists (nothing to contradict) — the per-scene
45
+ checks in `video-director` already cover internal consistency.
46
+ - The run is pure preview with no approval intent — validate when the
47
+ batch is about to be gated, not on every draft keystroke.
48
48
 
49
49
  ## Inputs
50
50
 
51
51
  - `<project>/script.md` — every `## Scene N` (duration, mood, action,
52
52
  camera, dialogue).
53
- - Every rendered scene prompt (eight-block image/video prompts from
53
+ - Every rendered scene prompt (the eight-block image/video prompts from
54
54
  `video-director` / blueprint JSON), in scene order.
55
55
  - `<project>/character.json` — when present, the locked identity
56
56
  (subject, palette, wardrobe, prop, seed).
@@ -64,20 +64,20 @@ Do NOT use when:
64
64
 
65
65
  Read every scene's prompt blocks into one table:
66
66
  `scene → {style, subject, environment, action, camera, lens, lighting,
67
- mood, duration, aspect, dialogue/singer}`. Prompt missing or
68
- unparseable → **block**: `scene N: prompt missing/unreadable` — an
69
- incomplete batch already contradicts the script.
67
+ mood, duration, aspect, dialogue/singer}`. A scene whose prompt is
68
+ missing or unparseable → **block**: `scene N: prompt missing/unreadable`
69
+ — an incomplete batch is already a contradiction with the script.
70
70
 
71
71
  ### 2. Style consistency
72
72
 
73
- `style` block must agree across all scenes — one look per video unless
74
- the script *names* an intentional break (e.g. "dream sequence").
73
+ The `style` block must agree across all scenes — one look per video
74
+ unless the script *names* an intentional break (e.g. "dream sequence").
75
75
 
76
76
  - Conflicting render families (`photorealistic` vs `cel-shaded` /
77
77
  `claymation` / `watercolor`) with no scripted break →
78
78
  `style mismatch: scene 3 'photorealistic' vs scene 7 'cel-shaded'`.
79
79
  - Conflicting era/grade tokens (`1970s film grain` vs `clean digital
80
- HDR`) → same error shape, name both scenes + both tokens.
80
+ HDR`) → same error shape, name both scenes and both tokens.
81
81
 
82
82
  ### 3. Character consistency (character mode)
83
83
 
@@ -88,7 +88,7 @@ match the lock:
88
88
  `blue jacket`) → `character mismatch: scene 5 'blue jacket' vs lock
89
89
  'red coat'`.
90
90
  - A scene inventing a second recurring subject the script never cast →
91
- flag — uncast identities break continuity AND the likeness gate.
91
+ flag it — uncast identities break continuity AND the likeness gate.
92
92
  - **Lip-sync ownership:** a scene with a `dialogue:` line must name the
93
93
  vocal map's singer for that line — wrong mouth on wrong words is the
94
94
  render-money-burning failure (`media-sync-ground-truth`). A `"?"`
@@ -100,21 +100,21 @@ match the lock:
100
100
  with no scripted transition → `continuity: scene 4 'noon sun' →
101
101
  scene 5 'starry night' within the same chorus`.
102
102
  - Impossible camera/action pairs (`locked-off tripod` + `whip pan`),
103
- (`underwater` + `desert dust`) → name scene + both tokens.
104
- - Duration / aspect vs. model envelope: any scene outside
105
- `[min_duration, max_duration]` or with an unlisted aspect → block
106
- with the violated bound (defense-in-depth after `song-to-script`
107
- Step 1 — hand-edited prompts re-open this hole).
103
+ (`underwater` + `desert dust`) → name scene + the two tokens.
104
+ - Duration / aspect vs. the model envelope: any scene outside
105
+ `[min_duration, max_duration]` or with an aspect the model does not
106
+ list → block with the violated bound (defense-in-depth after
107
+ `song-to-script` Step 1 — hand-edited prompts re-open this hole).
108
108
 
109
109
  ### 5. Verdict
110
110
 
111
111
  - **Zero findings** → emit `prompt-validator: N scenes, no
112
- contradictions`, hand the batch to the preview gate.
112
+ contradictions` and hand the batch to the preview gate.
113
113
  - **Any finding** → **block the gate**. Report every finding (not just
114
114
  the first), each as `class: scene(s) + conflicting values + fix
115
- hint`. Operator (or calling command) fixes prompts, re-runs the
116
- validator — never "approve anyway" past a contradiction; an
117
- intentional break gets *scripted* (named in `script.md`), which
115
+ hint`. The operator (or the calling command) fixes the prompts and
116
+ re-runs the validator — never "approve anyway" past a contradiction;
117
+ an intentional break gets *scripted* (named in `script.md`), which
118
118
  legitimizes it on the next pass.
119
119
 
120
120
  ## Output format
@@ -135,20 +135,20 @@ verdict: BLOCKED (2 contradictions) — fix and re-run
135
135
 
136
136
  ## Gotchas
137
137
 
138
- - **An intentional style break is scripted, not waved through.** Only a
139
- break `script.md` names is accepted; "operator said it's fine in
140
- chat" does not survive to the next run.
141
- - **Re-validate after every hand-edit.** One edited scene can
138
+ - **An intentional style break is scripted, not waved through.** The
139
+ validator only accepts a break that `script.md` names; "the operator
140
+ said it's fine in chat" does not survive to the next run.
141
+ - **Re-validate after every hand-edit.** A single edited scene can
142
142
  contradict five untouched ones; the batch is the unit, not the scene.
143
143
  - **`verified: false` capability entries still gate.** Blocking on a
144
144
  documented-best-effort bound beats rendering past a real one; the
145
- report names the unverified flag — override by editing the manifest,
146
- never by skipping the check.
145
+ report names the unverified flag so the operator can override by
146
+ editing the manifest, never by skipping the check.
147
147
 
148
148
  ## Do NOT
149
149
 
150
- - Do NOT auto-fix prompts — report and block; the fix is the operator's
151
- (or calling skill's) edit, visible in the diff.
150
+ - Do NOT auto-fix prompts — report and block; the fix is the
151
+ operator's (or calling skill's) edit, visible in the diff.
152
152
  - Do NOT validate only changed scenes — always the full batch.
153
153
  - Do NOT soften a contradiction into a warning — contradictions block;
154
154
  only consistency passes.
@@ -157,8 +157,8 @@ verdict: BLOCKED (2 contradictions) — fix and re-run
157
157
 
158
158
  ## See also
159
159
 
160
- - [`/video:from-song`](../../commands/video/from-song.md) — invokes this
161
- before the unified storyboard/cost preview gate (Step 8).
160
+ - [`/video:from-song`](../../commands/video/from-song.md) —
161
+ invokes this before the unified storyboard/cost preview gate (Step 8).
162
162
  - [`video-director`](../video-director/SKILL.md) — produces the prompts
163
163
  this skill cross-checks.
164
164
  - [`character-consistency`](../character-consistency/SKILL.md) — the
@@ -31,20 +31,20 @@ false OR MISSING (THE DEFAULT). DO NOT ASK WHETHER TO RUN THEM.
31
31
  THE USER RUNS THEM MANUALLY. REMOTE CI IS THE AUTHORITATIVE GATE.
32
32
  ```
33
33
 
34
- Toolchains differ per language and project, often unknown to the agent —
35
- discovery + execution burns time and tokens. Under the default, exactly
36
- three triggers justify running a quality tool:
37
-
38
- 1. **Explicit ask this turn** — user says so or invokes `/fix quality`.
39
- 2. **Concrete CI failure** — remote pipeline reports a failing check;
40
- run exactly that failing check to reproduce and fix (`/fix:ci` is
41
- the canonical flow).
42
- 3. **New-gate carve-out** — change itself introduces a NEW CI gate,
43
- smoke test, or test file; must run once locally to be proven.
44
-
45
- `quality.local_auto_run: true` restores legacy autonomous behaviour
46
- (run pipeline when work is ready for verification). When runs are
47
- suppressed, completion message says *"quality gates delegated to
34
+ Toolchains differ per language and project and are often unknown to the
35
+ agent — discovering and running them burns time and tokens. Under the
36
+ default, exactly three triggers justify running a quality tool:
37
+
38
+ 1. **Explicit ask this turn** — the user says so or invokes `/fix quality`.
39
+ 2. **Concrete CI failure** — the remote pipeline reports a failing
40
+ check; run exactly that failing check to reproduce and fix it
41
+ (`/fix:ci` is the canonical flow).
42
+ 3. **New-gate carve-out** — the change itself introduces a NEW CI gate,
43
+ smoke test, or test file; it must run once locally to be proven.
44
+
45
+ `quality.local_auto_run: true` restores the legacy autonomous behaviour
46
+ (run the pipeline when work is ready for verification). When runs are
47
+ suppressed, the completion message says *"quality gates delegated to
48
48
  remote CI"* — never that the tools passed.
49
49
 
50
50
  ## Language detection
@@ -61,7 +61,7 @@ If both PHP and JS/TS files changed → run **both** pipelines.
61
61
 
62
62
  ## Related rules and guidelines
63
63
 
64
- - `verify-before-complete` rule — no pass claims without fresh output; suppressed runs surfaced as "delegated to remote CI", never claimed
64
+ - `verify-before-complete` rule — no pass claims without fresh output; suppressed runs are surfaced as "delegated to remote CI", never claimed
65
65
  - `php-coding` rule → PHPStan section — inline ignores, PHPDoc rules
66
66
  - `contexts/execution/verification-mechanics.md` — Gate zero (`local_auto_run`) + timing when `true` (quality tools ONCE at the end, not after each edit)
67
67
  - [`testing-anti-patterns`](../testing-anti-patterns/SKILL.md) and
@@ -128,17 +128,41 @@ declared version:
128
128
 
129
129
  ## Registry & MCP awareness (opt-in)
130
130
 
131
- Default path = bundled `scripts/shadcn_add.ts` + `components.json`; works on most projects, stays default. Modern registry model is OPT-IN — no round-trips on every op. JSON-schema + namespace detail lazy-loaded from [`reference/registry.md`](reference/registry.md); read only on this path.
132
-
133
- **`shadcn info --json` handshake** — run as grounding step WHEN `components.json` declares custom/namespaced `registries`, OR theme-alignment in scope. Returns framework / aliases / installed components / icon lib / base settings. NOT a forced first action on every `add` (over-gating, low ROI vanilla).
134
-
135
- - **Precedence:** prefer live `shadcn info --json`; fall back to `state.ui_audit.shadcn_inventory` (existing-ui-audit) when CLI/MCP unreachable. Live read wins.
136
-
137
- **Namespaced installs** — `@ns/item` resolves via the `registries` map to a `registry-item.json` URL (see reference). `view @ns/item` before `add`. Honour `registryDependencies` (install the graph, incl. version-pinned GitHub refs `acme/ui/button#v1.2.0`); keep propose-never-silent-run + `--dry-run`.
138
-
139
- **Token-aware scaffolding** — `registry-item.json` `cssVars` (OKLCH light/dark/theme) → align to project tokens (`info --json` / `components.json` / `state.ui_audit.design_tokens`); never inject the default shadcn neutral theme (flagged anti-slop tell: default theme + Inter + neutral grays).
140
-
141
- **MCP path (opt-in)** — shadcn MCP server: browse / search-across-registries / install-with-NL over MCP; wire per [`mcp`](../mcp/SKILL.md). Alternative to CLI, never a hard dep. Decision: CLI = default + universal; MCP = opt-in when configured; registry-JSON literacy underpins both.
131
+ The default path is the bundled `scripts/shadcn_add.ts` CLI wrapper + reading
132
+ `components.json` — it works on most shadcn projects and stays the default.
133
+ The modern registry model is an **opt-in enhancement**; do not add round-trips
134
+ to every component op. Full JSON-schema + namespace detail is lazy-loaded from
135
+ [`reference/registry.md`](reference/registry.md) — read it only on this path,
136
+ not on the vanilla `add`.
137
+
138
+ **`shadcn info --json` handshake** — run it as the grounding step **when** the
139
+ project declares custom/namespaced `registries` in `components.json`, OR when
140
+ theme-alignment is in scope. It returns framework, aliases, installed
141
+ components, icon lib, and base settings. Do NOT make it a forced first action
142
+ on every `add` (over-gating; low ROI on vanilla projects).
143
+
144
+ - **Precedence vs our own audit:** prefer a live `shadcn info --json` when
145
+ available; fall back to `state.ui_audit.shadcn_inventory` (from
146
+ `existing-ui-audit`) when the CLI/MCP is not reachable. They answer the same
147
+ question (project context) — the live read wins.
148
+
149
+ **Namespaced installs** — `@ns/item` resolves via the `registries` map to a
150
+ `registry-item.json` URL (see the reference). Run `view @ns/item` to inspect
151
+ the JSON before `add`. Honour `registryDependencies` (install the graph,
152
+ including version-pinned GitHub refs like `acme/ui/button#v1.2.0`); keep
153
+ propose-never-silent-run + `--dry-run`.
154
+
155
+ **Token-aware scaffolding** — when a `registry-item.json` carries `cssVars`
156
+ (OKLCH, light/dark/theme), align additions to the project's existing tokens
157
+ (from `info --json` / `components.json` / `state.ui_audit.design_tokens`) —
158
+ **never inject the default shadcn neutral theme** (it is a flagged anti-slop
159
+ tell: default theme + Inter fallback + neutral grays).
160
+
161
+ **MCP path (opt-in)** — the shadcn MCP server exposes browse / search-across-
162
+ registries / install-with-natural-language over MCP; configure per the
163
+ [`mcp`](../mcp/SKILL.md) skill. It is an alternative to the CLI, never a hard
164
+ dependency. Decision note: **CLI path = default + universal; MCP path = opt-in
165
+ when the user has it configured; registry-JSON literacy underpins both.**
142
166
 
143
167
  ## Procedure: render a shadcn/ui component for the design brief
144
168
 
@@ -251,17 +275,29 @@ current state on the next polish round.
251
275
 
252
276
  ## Taste Dials
253
277
 
254
- `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.
278
+ 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.
255
279
 
256
280
  ## Component workshop (Storybook) — when the library is large enough
257
281
 
258
- Generic "isolate + document reusable components" principle → [`fe-design`](../fe-design/SKILL.md) § Component Architecture; this is the React carve-out for the tool-specific part.
259
-
260
- - **When it pays off** — real, growing shared-component library (more than a handful of reused primitives, multiple consumers, ongoing UI work): Storybook makes each component discoverable, reviewable in isolation, reused not re-invented. **Skip** for a small surface of one-offs — setup + maintenance not worth it yet.
261
- - **Story per reusable primitive, not per screen** — a story covers a component + its states (default / loading / empty / error / dark), mirroring the Step 3 state-coverage matrix. Screens composed, not story-fied.
262
- - **Reuse the token layer** — stories render under the same semantic tokens + `.dark` class; never hardcode a preview theme (Step 2 token discipline).
263
- - **A11y in-workshop** — run the a11y addon so isolation catches contrast / role / focus before the component reaches a screen.
264
- - Do NOT let stories drift from the component API — a story props-drilling values the component no longer accepts is stale documentation; keep beside the component, update in the same change.
282
+ The generic "isolate + document reusable components" principle lives in
283
+ [`fe-design`](../fe-design/SKILL.md) § Component Architecture; this is the React
284
+ carve-out for the tool-specific part.
285
+
286
+ - **When it pays off** — a real, growing shared-component library (roughly: more
287
+ than a handful of reused primitives, multiple consumers, ongoing UI work).
288
+ Storybook makes each component discoverable, reviewable in isolation, and
289
+ reused instead of re-invented. **Skip it** for a small surface of one-off
290
+ components — the setup + maintenance is not worth it yet.
291
+ - **Story per reusable primitive, not per screen** — a story covers a component
292
+ and its states (default / loading / empty / error / dark), mirroring the
293
+ Step 3 state-coverage matrix. Screens are composed, not story-fied.
294
+ - **Reuse the token layer** — stories render under the same semantic tokens +
295
+ `.dark` class; never hardcode a preview theme (same token discipline as Step 2).
296
+ - **A11y in-workshop** — run the a11y addon so the isolation catches contrast /
297
+ role / focus issues before the component reaches a screen.
298
+ - Do NOT let stories drift from the component API — a story that props-drills
299
+ values the component no longer accepts is stale documentation; keep them beside
300
+ the component and update them in the same change.
265
301
 
266
302
  ## Do NOT
267
303
 
@@ -1,36 +1,36 @@
1
1
  # shadcn registry & namespace reference
2
2
 
3
3
  > Lazy-loaded by `react-shadcn-ui` ONLY on the registry/MCP path (custom or
4
- > namespaced registries, or theme-alignment). Not in the always-on skill body —
5
- > zero token cost on the vanilla `shadcn add` path.
4
+ > namespaced registries, or theme-alignment work). Not part of the always-on
5
+ > skill body — zero token cost on the vanilla `shadcn add` path.
6
6
 
7
7
  ## `registry-item.json` — the self-describing component unit
8
8
 
9
- Each item is a JSON doc the agent reads before scaffolding — never guesses
10
- paths, deps, or tokens.
9
+ A registry serves each item as a JSON document the agent reads before
10
+ scaffolding, so it never guesses paths, deps, or tokens.
11
11
 
12
12
  - `name` — item id.
13
13
  - `type` — one of: `registry:ui`, `registry:component`, `registry:block`,
14
14
  `registry:hook`, `registry:lib`, `registry:theme`, `registry:style`,
15
15
  `registry:page`, `registry:file`, `registry:base`, `registry:item`.
16
- - `dependencies` / `devDependencies` — npm packages.
17
- - `registryDependencies` — other items to pull first (the dependency graph):
18
- built-in (`"button"`), namespaced (`"@acme/input"`), GitHub
16
+ - `dependencies` / `devDependencies` — npm packages to install.
17
+ - `registryDependencies` — other registry items to pull first (the dependency
18
+ graph). Forms: built-in (`"button"`), namespaced (`"@acme/input"`), GitHub
19
19
  (`"acme/ui/button#v1.2.0"`), URL, or local path.
20
- - `files[]` — each `{ path, type, target }`; `target` uses the project alias
21
- placeholders (`~`, `@ui/`, `@lib/`, `@hooks/`) from `components.json`.
22
- - `cssVars` — tokens scoped by mode: `theme` (font/radius), `light`, `dark`,
23
- OKLCH. **Align to the project's tokens; do not inject the default neutral
24
- theme** (anti-slop C1/C5/T7).
25
- - `css` — raw `@layer` / `@utility` / `@keyframes` / `@plugin`.
20
+ - `files[]` — each `{ path, type, target }`; `target` uses the project's alias
21
+ placeholders (`~`, `@ui/`, `@lib/`, `@hooks/`) resolved from `components.json`.
22
+ - `cssVars` — design tokens scoped by mode: `theme` (font/radius), `light`,
23
+ `dark`. Values are OKLCH. **Align these to the project's existing tokens, do
24
+ not inject the default neutral theme** (anti-slop C1/C5/T7).
25
+ - `css` — raw `@layer` / `@utility` / `@keyframes` / `@plugin` directives.
26
26
 
27
- Scaffold order: read item → install npm `dependencies` → resolve
28
- `registryDependencies` (recurse) → write `files[]` to alias targets → merge
29
- `cssVars` into the project token layer (reconcile, don't overwrite).
27
+ Scaffold order: read the item → install npm `dependencies` → resolve
28
+ `registryDependencies` (recurse) → write `files[]` to the alias targets →
29
+ merge `cssVars` into the project's token layer (reconcile, do not overwrite).
30
30
 
31
31
  ## Namespaced registries
32
32
 
33
- `components.json` maps a namespace → URL template under `registries`:
33
+ `components.json` maps a namespace to a URL template under `registries`:
34
34
 
35
35
  ```json
36
36
  {
@@ -44,16 +44,18 @@ Scaffold order: read item → install npm `dependencies` → resolve
44
44
  }
45
45
  ```
46
46
 
47
- - Resolution: `@ns/name` → look up `@ns` → substitute `{name}` (+ optional
48
- `{style}`). Reference regex: `^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$`.
49
- - Auth registries: per-registry `headers` with `${ENV_VAR}` — never inline a
50
- token; read from the environment.
51
- - Namespace space is **decentralized** — no central collision authority; the
52
- `components.json` map is the project's source of truth.
47
+ - Resolution: `@ns/name` → look up `@ns` → substitute `{name}` (and optional
48
+ `{style}`) into the URL template. The reference resolution regex is
49
+ `^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$`.
50
+ - Auth registries: per-registry `headers` with `${ENV_VAR}` interpolation —
51
+ never inline a token; read it from the environment.
52
+ - The namespace space is **decentralized** — no central authority resolves
53
+ collisions; the `components.json` map is the project's source of truth.
53
54
 
54
55
  ## CLI surface (the agent drives these)
55
56
 
56
- `init` · `add [item|@ns/item]` · `search @ns -q <q>` · `view @ns/item` (inspect
57
- JSON before install) · `docs [item] --json` · `diff` (drift vs updated
58
- registry) · `info --json` (project context — see the SKILL handshake) · `build`
59
- (publish). Inspect with `view` before `add` — evidence before action.
57
+ `init` · `add [item|@ns/item]` · `search @ns -q <q>` · `view @ns/item`
58
+ (inspect JSON before install) · `docs [item] --json` · `diff` (drift vs the
59
+ updated registry) · `info --json` (project context — see the SKILL handshake)
60
+ · `build` (publish a registry). Inspect with `view` before `add` — evidence
61
+ before action.
@@ -262,8 +262,8 @@ npx <package> init --tools=windsurf # Windsurf
262
262
  Pair the catalog with a separate "Global install" subsection (same flags
263
263
  plus `--global`) and an "Other commands" subsection. Reference example:
264
264
  [`README.md § Pick specific AIs`](../../../README.md#pick-specific-ais) in
265
- this repository. Inspiration:
266
- [`an external reference suite § Installation`](https://github.com/an external reference suite#installation).
265
+ this repository — or any well-structured external skill README that
266
+ lists per-target install commands in a flat catalog.
267
267
 
268
268
  Use the catalog when the package's primary install action varies by
269
269
  platform; use a matrix table (Tool / Rules / Skills / Commands) for