claudecode-omc 5.11.0 → 5.13.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 (448) hide show
  1. package/.local/skills/prompt-pilot/SKILL.md +258 -0
  2. package/bundled/manifest.json +3 -3
  3. package/bundled/upstream/anthropic-skills/.omc-source/bundle.json +2 -2
  4. package/bundled/upstream/anthropic-skills/.omc-source/provenance.json +394 -390
  5. package/bundled/upstream/anthropic-skills/skills/claude-api/SKILL.md +60 -29
  6. package/bundled/upstream/anthropic-skills/skills/claude-api/csharp/claude-api.md +46 -1
  7. package/bundled/upstream/anthropic-skills/skills/claude-api/curl/examples.md +2 -2
  8. package/bundled/upstream/anthropic-skills/skills/claude-api/curl/managed-agents.md +3 -1
  9. package/bundled/upstream/anthropic-skills/skills/claude-api/go/claude-api.md +23 -4
  10. package/bundled/upstream/anthropic-skills/skills/claude-api/java/claude-api.md +32 -3
  11. package/bundled/upstream/anthropic-skills/skills/claude-api/php/claude-api.md +27 -0
  12. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/README.md +123 -7
  13. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/batches.md +13 -0
  14. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/files-api.md +7 -2
  15. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/streaming.md +18 -1
  16. package/bundled/upstream/anthropic-skills/skills/claude-api/python/managed-agents/README.md +9 -7
  17. package/bundled/upstream/anthropic-skills/skills/claude-api/ruby/claude-api.md +27 -0
  18. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/agent-design.md +1 -1
  19. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/anthropic-cli.md +246 -0
  20. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/claude-platform-on-aws.md +59 -0
  21. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/error-codes.md +24 -4
  22. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/live-sources.md +8 -0
  23. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-api-reference.md +48 -4
  24. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-client-patterns.md +3 -1
  25. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-core.md +15 -1
  26. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-environments.md +10 -6
  27. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-events.md +25 -0
  28. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-onboarding.md +48 -18
  29. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-overview.md +8 -5
  30. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-scheduled-deployments.md +144 -0
  31. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +2 -1
  32. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-tools.md +46 -9
  33. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/model-migration.md +259 -3
  34. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/models.md +17 -9
  35. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/prompt-caching.md +55 -3
  36. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/token-counting.md +56 -0
  37. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/tool-use-concepts.md +22 -2
  38. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/README.md +45 -6
  39. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/streaming.md +1 -1
  40. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/managed-agents/README.md +10 -12
  41. package/bundled/upstream/anthropic-skills/skills/frontend-design/SKILL.md +39 -26
  42. package/bundled/upstream/ecc/.omc-source/bundle.json +2 -2
  43. package/bundled/upstream/ecc/.omc-source/manifests/.claude-plugin/marketplace.json +2 -2
  44. package/bundled/upstream/ecc/.omc-source/provenance.json +602 -550
  45. package/bundled/upstream/ecc/agents/agent-evaluator.md +206 -0
  46. package/bundled/upstream/ecc/agents/performance-optimizer.md +9 -9
  47. package/bundled/upstream/ecc/agents/php-reviewer.md +109 -0
  48. package/bundled/upstream/ecc/agents/spec-miner.md +217 -0
  49. package/bundled/upstream/ecc/agents/vue-reviewer.md +206 -0
  50. package/bundled/upstream/ecc/commands/cost-report.md +58 -84
  51. package/bundled/upstream/ecc/commands/epic-claim.md +26 -0
  52. package/bundled/upstream/ecc/commands/epic-decompose.md +23 -0
  53. package/bundled/upstream/ecc/commands/epic-publish.md +23 -0
  54. package/bundled/upstream/ecc/commands/epic-review.md +23 -0
  55. package/bundled/upstream/ecc/commands/epic-sync.md +23 -0
  56. package/bundled/upstream/ecc/commands/epic-unblock.md +22 -0
  57. package/bundled/upstream/ecc/commands/epic-validate.md +22 -0
  58. package/bundled/upstream/ecc/commands/instinct-status.md +8 -8
  59. package/bundled/upstream/ecc/commands/multi-backend.md +2 -0
  60. package/bundled/upstream/ecc/commands/multi-execute.md +2 -0
  61. package/bundled/upstream/ecc/commands/multi-frontend.md +2 -0
  62. package/bundled/upstream/ecc/commands/multi-plan.md +2 -0
  63. package/bundled/upstream/ecc/commands/multi-workflow.md +2 -0
  64. package/bundled/upstream/ecc/commands/orch-add-feature.md +36 -0
  65. package/bundled/upstream/ecc/commands/orch-build-mvp.md +36 -0
  66. package/bundled/upstream/ecc/commands/orch-change-feature.md +38 -0
  67. package/bundled/upstream/ecc/commands/orch-fix-defect.md +38 -0
  68. package/bundled/upstream/ecc/commands/orch-refine-code.md +39 -0
  69. package/bundled/upstream/ecc/commands/quality-gate.md +34 -16
  70. package/bundled/upstream/ecc/commands/vue-review.md +174 -0
  71. package/bundled/upstream/ecc/skills/accessibility/SKILL.md +2 -1
  72. package/bundled/upstream/ecc/skills/agent-architecture-audit/SKILL.md +2 -1
  73. package/bundled/upstream/ecc/skills/agent-eval/SKILL.md +2 -1
  74. package/bundled/upstream/ecc/skills/agent-harness-construction/SKILL.md +2 -1
  75. package/bundled/upstream/ecc/skills/agent-introspection-debugging/SKILL.md +2 -1
  76. package/bundled/upstream/ecc/skills/agent-payment-x402/SKILL.md +2 -1
  77. package/bundled/upstream/ecc/skills/agent-self-evaluation/SKILL.md +182 -0
  78. package/bundled/upstream/ecc/skills/agent-self-evaluation/examples/high-score-example.md +87 -0
  79. package/bundled/upstream/ecc/skills/agent-self-evaluation/examples/low-score-example.md +86 -0
  80. package/bundled/upstream/ecc/skills/agent-self-evaluation/references/evaluation-criteria.md +71 -0
  81. package/bundled/upstream/ecc/skills/agent-self-evaluation/references/hook-integration.md +64 -0
  82. package/bundled/upstream/ecc/skills/agent-self-evaluation/scripts/evaluate.py +408 -0
  83. package/bundled/upstream/ecc/skills/agent-self-evaluation/templates/evaluation-report.md +86 -0
  84. package/bundled/upstream/ecc/skills/agent-sort/SKILL.md +2 -1
  85. package/bundled/upstream/ecc/skills/agentic-engineering/SKILL.md +2 -1
  86. package/bundled/upstream/ecc/skills/agentic-os/SKILL.md +2 -1
  87. package/bundled/upstream/ecc/skills/ai-first-engineering/SKILL.md +2 -1
  88. package/bundled/upstream/ecc/skills/ai-regression-testing/SKILL.md +2 -1
  89. package/bundled/upstream/ecc/skills/android-clean-architecture/SKILL.md +2 -1
  90. package/bundled/upstream/ecc/skills/angular-developer/SKILL.md +2 -1
  91. package/bundled/upstream/ecc/skills/api-connector-builder/SKILL.md +2 -1
  92. package/bundled/upstream/ecc/skills/api-design/SKILL.md +2 -1
  93. package/bundled/upstream/ecc/skills/architecture-decision-records/SKILL.md +2 -1
  94. package/bundled/upstream/ecc/skills/article-writing/SKILL.md +2 -1
  95. package/bundled/upstream/ecc/skills/automation-audit-ops/SKILL.md +2 -1
  96. package/bundled/upstream/ecc/skills/autonomous-agent-harness/SKILL.md +2 -1
  97. package/bundled/upstream/ecc/skills/autonomous-loops/SKILL.md +2 -1
  98. package/bundled/upstream/ecc/skills/backend-patterns/SKILL.md +2 -1
  99. package/bundled/upstream/ecc/skills/benchmark/SKILL.md +2 -1
  100. package/bundled/upstream/ecc/skills/benchmark-methodology/SKILL.md +190 -0
  101. package/bundled/upstream/ecc/skills/benchmark-optimization-loop/SKILL.md +2 -1
  102. package/bundled/upstream/ecc/skills/blender-motion-state-inspection/SKILL.md +2 -1
  103. package/bundled/upstream/ecc/skills/blueprint/SKILL.md +2 -1
  104. package/bundled/upstream/ecc/skills/brand-discovery/SKILL.md +145 -0
  105. package/bundled/upstream/ecc/skills/brand-discovery/references/10_purpose-why.md +40 -0
  106. package/bundled/upstream/ecc/skills/brand-discovery/references/20_positioning.md +44 -0
  107. package/bundled/upstream/ecc/skills/brand-discovery/references/30_audience-niche.md +52 -0
  108. package/bundled/upstream/ecc/skills/brand-discovery/references/40_personality-archetype.md +57 -0
  109. package/bundled/upstream/ecc/skills/brand-discovery/references/50_voice-tone.md +59 -0
  110. package/bundled/upstream/ecc/skills/brand-discovery/references/60_narrative-story.md +50 -0
  111. package/bundled/upstream/ecc/skills/brand-discovery/references/70_founder-tension.md +49 -0
  112. package/bundled/upstream/ecc/skills/brand-discovery/references/90_SYNTHESIS.md +133 -0
  113. package/bundled/upstream/ecc/skills/brand-voice/SKILL.md +2 -1
  114. package/bundled/upstream/ecc/skills/browser-qa/SKILL.md +22 -4
  115. package/bundled/upstream/ecc/skills/bun-runtime/SKILL.md +2 -1
  116. package/bundled/upstream/ecc/skills/canary-watch/SKILL.md +2 -1
  117. package/bundled/upstream/ecc/skills/carrier-relationship-management/SKILL.md +1 -1
  118. package/bundled/upstream/ecc/skills/cisco-ios-patterns/SKILL.md +2 -1
  119. package/bundled/upstream/ecc/skills/ck/SKILL.md +2 -1
  120. package/bundled/upstream/ecc/skills/claude-devfleet/SKILL.md +11 -2
  121. package/bundled/upstream/ecc/skills/click-path-audit/SKILL.md +2 -1
  122. package/bundled/upstream/ecc/skills/clickhouse-io/SKILL.md +2 -1
  123. package/bundled/upstream/ecc/skills/code-tour/SKILL.md +2 -1
  124. package/bundled/upstream/ecc/skills/codebase-onboarding/SKILL.md +2 -1
  125. package/bundled/upstream/ecc/skills/codehealth-mcp/SKILL.md +167 -0
  126. package/bundled/upstream/ecc/skills/coding-standards/SKILL.md +4 -2
  127. package/bundled/upstream/ecc/skills/competitive-platform-analysis/SKILL.md +214 -0
  128. package/bundled/upstream/ecc/skills/competitive-report-structure/SKILL.md +162 -0
  129. package/bundled/upstream/ecc/skills/compose-multiplatform-patterns/SKILL.md +2 -1
  130. package/bundled/upstream/ecc/skills/config-gc/SKILL.md +120 -0
  131. package/bundled/upstream/ecc/skills/configure-ecc/SKILL.md +2 -1
  132. package/bundled/upstream/ecc/skills/connections-optimizer/SKILL.md +2 -1
  133. package/bundled/upstream/ecc/skills/content-engine/SKILL.md +2 -1
  134. package/bundled/upstream/ecc/skills/content-hash-cache-pattern/SKILL.md +2 -1
  135. package/bundled/upstream/ecc/skills/context-budget/SKILL.md +2 -1
  136. package/bundled/upstream/ecc/skills/continuous-agent-loop/SKILL.md +2 -1
  137. package/bundled/upstream/ecc/skills/continuous-learning/SKILL.md +2 -1
  138. package/bundled/upstream/ecc/skills/continuous-learning-v2/SKILL.md +2 -1
  139. package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/observer-loop.sh +14 -1
  140. package/bundled/upstream/ecc/skills/continuous-learning-v2/hooks/observe.sh +31 -7
  141. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +90 -2
  142. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +27 -0
  143. package/bundled/upstream/ecc/skills/cost-aware-llm-pipeline/SKILL.md +2 -1
  144. package/bundled/upstream/ecc/skills/cost-tracking/SKILL.md +58 -108
  145. package/bundled/upstream/ecc/skills/council/SKILL.md +2 -1
  146. package/bundled/upstream/ecc/skills/cpp-coding-standards/SKILL.md +2 -1
  147. package/bundled/upstream/ecc/skills/cpp-testing/SKILL.md +2 -1
  148. package/bundled/upstream/ecc/skills/crosspost/SKILL.md +2 -1
  149. package/bundled/upstream/ecc/skills/csharp-testing/SKILL.md +2 -1
  150. package/bundled/upstream/ecc/skills/customer-billing-ops/SKILL.md +2 -1
  151. package/bundled/upstream/ecc/skills/customs-trade-compliance/SKILL.md +1 -1
  152. package/bundled/upstream/ecc/skills/dart-flutter-patterns/SKILL.md +2 -1
  153. package/bundled/upstream/ecc/skills/dashboard-builder/SKILL.md +2 -1
  154. package/bundled/upstream/ecc/skills/data-scraper-agent/SKILL.md +2 -1
  155. package/bundled/upstream/ecc/skills/data-throughput-accelerator/SKILL.md +2 -1
  156. package/bundled/upstream/ecc/skills/database-migrations/SKILL.md +2 -1
  157. package/bundled/upstream/ecc/skills/deep-research/SKILL.md +2 -1
  158. package/bundled/upstream/ecc/skills/defi-amm-security/SKILL.md +2 -1
  159. package/bundled/upstream/ecc/skills/deployment-patterns/SKILL.md +2 -1
  160. package/bundled/upstream/ecc/skills/design-system/SKILL.md +2 -1
  161. package/bundled/upstream/ecc/skills/django-celery/SKILL.md +3 -2
  162. package/bundled/upstream/ecc/skills/django-patterns/SKILL.md +2 -1
  163. package/bundled/upstream/ecc/skills/django-security/SKILL.md +2 -1
  164. package/bundled/upstream/ecc/skills/django-tdd/SKILL.md +2 -1
  165. package/bundled/upstream/ecc/skills/django-verification/SKILL.md +2 -1
  166. package/bundled/upstream/ecc/skills/dmux-workflows/SKILL.md +2 -1
  167. package/bundled/upstream/ecc/skills/docker-patterns/SKILL.md +2 -1
  168. package/bundled/upstream/ecc/skills/documentation-lookup/SKILL.md +2 -1
  169. package/bundled/upstream/ecc/skills/dotnet-patterns/SKILL.md +2 -1
  170. package/bundled/upstream/ecc/skills/dynamic-workflow-mode/SKILL.md +2 -1
  171. package/bundled/upstream/ecc/skills/e2e-testing/SKILL.md +2 -1
  172. package/bundled/upstream/ecc/skills/ecc-guide/SKILL.md +2 -1
  173. package/bundled/upstream/ecc/skills/ecc-tools-cost-audit/SKILL.md +2 -1
  174. package/bundled/upstream/ecc/skills/email-ops/SKILL.md +2 -1
  175. package/bundled/upstream/ecc/skills/energy-procurement/SKILL.md +1 -1
  176. package/bundled/upstream/ecc/skills/enterprise-agent-ops/SKILL.md +2 -1
  177. package/bundled/upstream/ecc/skills/error-handling/SKILL.md +2 -1
  178. package/bundled/upstream/ecc/skills/eval-harness/SKILL.md +2 -1
  179. package/bundled/upstream/ecc/skills/evm-token-decimals/SKILL.md +2 -1
  180. package/bundled/upstream/ecc/skills/exa-search/SKILL.md +2 -1
  181. package/bundled/upstream/ecc/skills/fal-ai-media/SKILL.md +2 -1
  182. package/bundled/upstream/ecc/skills/fastapi-patterns/SKILL.md +375 -188
  183. package/bundled/upstream/ecc/skills/finance-billing-ops/SKILL.md +2 -1
  184. package/bundled/upstream/ecc/skills/flox-environments/SKILL.md +3 -2
  185. package/bundled/upstream/ecc/skills/flutter-dart-code-review/SKILL.md +2 -1
  186. package/bundled/upstream/ecc/skills/frontend-a11y/SKILL.md +3 -3
  187. package/bundled/upstream/ecc/skills/frontend-design-direction/SKILL.md +2 -1
  188. package/bundled/upstream/ecc/skills/frontend-patterns/SKILL.md +23 -8
  189. package/bundled/upstream/ecc/skills/frontend-slides/SKILL.md +2 -1
  190. package/bundled/upstream/ecc/skills/frontend-slides/scripts/export-pdf.sh +1 -1
  191. package/bundled/upstream/ecc/skills/fsharp-testing/SKILL.md +2 -1
  192. package/bundled/upstream/ecc/skills/gan-style-harness/SKILL.md +2 -1
  193. package/bundled/upstream/ecc/skills/gateguard/SKILL.md +9 -1
  194. package/bundled/upstream/ecc/skills/generating-python-installer/SKILL.md +820 -0
  195. package/bundled/upstream/ecc/skills/git-workflow/SKILL.md +2 -1
  196. package/bundled/upstream/ecc/skills/github-ops/SKILL.md +2 -1
  197. package/bundled/upstream/ecc/skills/golang-patterns/SKILL.md +2 -1
  198. package/bundled/upstream/ecc/skills/golang-testing/SKILL.md +2 -1
  199. package/bundled/upstream/ecc/skills/google-workspace-ops/SKILL.md +2 -1
  200. package/bundled/upstream/ecc/skills/healthcare-cdss-patterns/SKILL.md +2 -1
  201. package/bundled/upstream/ecc/skills/healthcare-emr-patterns/SKILL.md +2 -1
  202. package/bundled/upstream/ecc/skills/healthcare-eval-harness/SKILL.md +2 -1
  203. package/bundled/upstream/ecc/skills/healthcare-phi-compliance/SKILL.md +2 -1
  204. package/bundled/upstream/ecc/skills/hermes-imports/SKILL.md +2 -1
  205. package/bundled/upstream/ecc/skills/hexagonal-architecture/SKILL.md +2 -1
  206. package/bundled/upstream/ecc/skills/hipaa-compliance/SKILL.md +2 -1
  207. package/bundled/upstream/ecc/skills/homelab-network-readiness/SKILL.md +2 -1
  208. package/bundled/upstream/ecc/skills/homelab-network-setup/SKILL.md +2 -1
  209. package/bundled/upstream/ecc/skills/homelab-pihole-dns/SKILL.md +10 -9
  210. package/bundled/upstream/ecc/skills/homelab-vlan-segmentation/SKILL.md +2 -1
  211. package/bundled/upstream/ecc/skills/homelab-wireguard-vpn/SKILL.md +4 -3
  212. package/bundled/upstream/ecc/skills/inherit-legacy-style/SKILL.md +157 -0
  213. package/bundled/upstream/ecc/skills/intent-driven-development/SKILL.md +360 -0
  214. package/bundled/upstream/ecc/skills/inventory-demand-planning/SKILL.md +1 -1
  215. package/bundled/upstream/ecc/skills/investor-materials/SKILL.md +2 -1
  216. package/bundled/upstream/ecc/skills/investor-outreach/SKILL.md +2 -1
  217. package/bundled/upstream/ecc/skills/ios-icon-gen/SKILL.md +2 -1
  218. package/bundled/upstream/ecc/skills/iterative-retrieval/SKILL.md +2 -1
  219. package/bundled/upstream/ecc/skills/ito-basket-compare/SKILL.md +2 -1
  220. package/bundled/upstream/ecc/skills/ito-data-atlas-agent/SKILL.md +2 -1
  221. package/bundled/upstream/ecc/skills/ito-market-intelligence/SKILL.md +2 -1
  222. package/bundled/upstream/ecc/skills/ito-trade-planner/SKILL.md +2 -1
  223. package/bundled/upstream/ecc/skills/java-coding-standards/SKILL.md +2 -1
  224. package/bundled/upstream/ecc/skills/jira-integration/SKILL.md +17 -7
  225. package/bundled/upstream/ecc/skills/jpa-patterns/SKILL.md +2 -1
  226. package/bundled/upstream/ecc/skills/knowledge-ops/SKILL.md +2 -1
  227. package/bundled/upstream/ecc/skills/kotlin-coroutines-flows/SKILL.md +2 -1
  228. package/bundled/upstream/ecc/skills/kotlin-exposed-patterns/SKILL.md +2 -1
  229. package/bundled/upstream/ecc/skills/kotlin-ktor-patterns/SKILL.md +2 -1
  230. package/bundled/upstream/ecc/skills/kotlin-patterns/SKILL.md +2 -1
  231. package/bundled/upstream/ecc/skills/kotlin-testing/SKILL.md +2 -1
  232. package/bundled/upstream/ecc/skills/kubernetes-patterns/SKILL.md +756 -0
  233. package/bundled/upstream/ecc/skills/laravel-patterns/SKILL.md +2 -1
  234. package/bundled/upstream/ecc/skills/laravel-plugin-discovery/SKILL.md +2 -1
  235. package/bundled/upstream/ecc/skills/laravel-security/SKILL.md +826 -163
  236. package/bundled/upstream/ecc/skills/laravel-tdd/SKILL.md +541 -149
  237. package/bundled/upstream/ecc/skills/laravel-verification/SKILL.md +2 -1
  238. package/bundled/upstream/ecc/skills/latency-critical-systems/SKILL.md +2 -1
  239. package/bundled/upstream/ecc/skills/lead-intelligence/SKILL.md +2 -1
  240. package/bundled/upstream/ecc/skills/llm-trading-agent-security/SKILL.md +2 -1
  241. package/bundled/upstream/ecc/skills/logistics-exception-management/SKILL.md +1 -1
  242. package/bundled/upstream/ecc/skills/make-interfaces-feel-better/SKILL.md +2 -1
  243. package/bundled/upstream/ecc/skills/manim-video/SKILL.md +2 -1
  244. package/bundled/upstream/ecc/skills/market-research/SKILL.md +2 -1
  245. package/bundled/upstream/ecc/skills/marketing-campaign/SKILL.md +2 -1
  246. package/bundled/upstream/ecc/skills/mcp-server-patterns/SKILL.md +2 -1
  247. package/bundled/upstream/ecc/skills/messages-ops/SKILL.md +2 -1
  248. package/bundled/upstream/ecc/skills/ml-adoption-playbook/SKILL.md +57 -0
  249. package/bundled/upstream/ecc/skills/mle-workflow/SKILL.md +2 -1
  250. package/bundled/upstream/ecc/skills/motion-patterns/SKILL.md +1 -2
  251. package/bundled/upstream/ecc/skills/motion-ui/SKILL.md +2 -1
  252. package/bundled/upstream/ecc/skills/mysql-patterns/SKILL.md +2 -1
  253. package/bundled/upstream/ecc/skills/nanoclaw-repl/SKILL.md +2 -1
  254. package/bundled/upstream/ecc/skills/nestjs-patterns/SKILL.md +2 -1
  255. package/bundled/upstream/ecc/skills/netmiko-ssh-automation/SKILL.md +2 -1
  256. package/bundled/upstream/ecc/skills/network-bgp-diagnostics/SKILL.md +2 -1
  257. package/bundled/upstream/ecc/skills/network-config-validation/SKILL.md +2 -1
  258. package/bundled/upstream/ecc/skills/network-interface-health/SKILL.md +2 -1
  259. package/bundled/upstream/ecc/skills/nextjs-turbopack/SKILL.md +2 -1
  260. package/bundled/upstream/ecc/skills/nodejs-keccak256/SKILL.md +2 -1
  261. package/bundled/upstream/ecc/skills/nutrient-document-processing/SKILL.md +2 -1
  262. package/bundled/upstream/ecc/skills/nuxt4-patterns/SKILL.md +2 -1
  263. package/bundled/upstream/ecc/skills/openclaw-persona-forge/SKILL.md +2 -1
  264. package/bundled/upstream/ecc/skills/opensource-pipeline/SKILL.md +2 -1
  265. package/bundled/upstream/ecc/skills/orch-add-feature/SKILL.md +45 -0
  266. package/bundled/upstream/ecc/skills/orch-build-mvp/SKILL.md +49 -0
  267. package/bundled/upstream/ecc/skills/orch-change-feature/SKILL.md +43 -0
  268. package/bundled/upstream/ecc/skills/orch-fix-defect/SKILL.md +43 -0
  269. package/bundled/upstream/ecc/skills/orch-pipeline/SKILL.md +121 -0
  270. package/bundled/upstream/ecc/skills/orch-refine-code/SKILL.md +44 -0
  271. package/bundled/upstream/ecc/skills/parallel-execution-optimizer/SKILL.md +2 -1
  272. package/bundled/upstream/ecc/skills/perl-patterns/SKILL.md +2 -1
  273. package/bundled/upstream/ecc/skills/perl-security/SKILL.md +2 -1
  274. package/bundled/upstream/ecc/skills/perl-testing/SKILL.md +2 -1
  275. package/bundled/upstream/ecc/skills/plan-orchestrate/SKILL.md +2 -1
  276. package/bundled/upstream/ecc/skills/plankton-code-quality/SKILL.md +2 -1
  277. package/bundled/upstream/ecc/skills/postgres-patterns/SKILL.md +2 -1
  278. package/bundled/upstream/ecc/skills/prediction-market-oracle-research/SKILL.md +2 -1
  279. package/bundled/upstream/ecc/skills/prediction-market-risk-review/SKILL.md +2 -1
  280. package/bundled/upstream/ecc/skills/prisma-patterns/SKILL.md +2 -1
  281. package/bundled/upstream/ecc/skills/product-capability/SKILL.md +2 -1
  282. package/bundled/upstream/ecc/skills/product-lens/SKILL.md +2 -1
  283. package/bundled/upstream/ecc/skills/production-audit/SKILL.md +2 -1
  284. package/bundled/upstream/ecc/skills/production-scheduling/SKILL.md +1 -1
  285. package/bundled/upstream/ecc/skills/project-flow-ops/SKILL.md +2 -1
  286. package/bundled/upstream/ecc/skills/prompt-optimizer/SKILL.md +1 -1
  287. package/bundled/upstream/ecc/skills/python-patterns/SKILL.md +4 -3
  288. package/bundled/upstream/ecc/skills/python-testing/SKILL.md +2 -1
  289. package/bundled/upstream/ecc/skills/pytorch-patterns/SKILL.md +2 -1
  290. package/bundled/upstream/ecc/skills/quality-nonconformance/SKILL.md +1 -1
  291. package/bundled/upstream/ecc/skills/quarkus-patterns/SKILL.md +51 -50
  292. package/bundled/upstream/ecc/skills/quarkus-security/SKILL.md +25 -24
  293. package/bundled/upstream/ecc/skills/quarkus-tdd/SKILL.md +73 -72
  294. package/bundled/upstream/ecc/skills/quarkus-verification/SKILL.md +8 -7
  295. package/bundled/upstream/ecc/skills/ralphinho-rfc-pipeline/SKILL.md +2 -1
  296. package/bundled/upstream/ecc/skills/react-patterns/SKILL.md +2 -1
  297. package/bundled/upstream/ecc/skills/react-performance/SKILL.md +2 -1
  298. package/bundled/upstream/ecc/skills/react-testing/SKILL.md +2 -1
  299. package/bundled/upstream/ecc/skills/recsys-pipeline-architect/SKILL.md +2 -1
  300. package/bundled/upstream/ecc/skills/recursive-decision-ledger/SKILL.md +2 -1
  301. package/bundled/upstream/ecc/skills/redis-patterns/SKILL.md +2 -1
  302. package/bundled/upstream/ecc/skills/regex-vs-llm-structured-text/SKILL.md +2 -1
  303. package/bundled/upstream/ecc/skills/repo-scan/SKILL.md +64 -63
  304. package/bundled/upstream/ecc/skills/research-ops/SKILL.md +2 -1
  305. package/bundled/upstream/ecc/skills/returns-reverse-logistics/SKILL.md +1 -1
  306. package/bundled/upstream/ecc/skills/rules-distill/SKILL.md +2 -1
  307. package/bundled/upstream/ecc/skills/rust-patterns/SKILL.md +2 -1
  308. package/bundled/upstream/ecc/skills/rust-testing/SKILL.md +2 -1
  309. package/bundled/upstream/ecc/skills/safety-guard/SKILL.md +2 -1
  310. package/bundled/upstream/ecc/skills/santa-method/SKILL.md +2 -1
  311. package/bundled/upstream/ecc/skills/scientific-db-pubmed-database/SKILL.md +2 -1
  312. package/bundled/upstream/ecc/skills/scientific-db-uspto-database/SKILL.md +2 -1
  313. package/bundled/upstream/ecc/skills/scientific-pkg-gget/SKILL.md +2 -1
  314. package/bundled/upstream/ecc/skills/scientific-thinking-literature-review/SKILL.md +2 -1
  315. package/bundled/upstream/ecc/skills/scientific-thinking-scholar-evaluation/SKILL.md +2 -1
  316. package/bundled/upstream/ecc/skills/search-first/SKILL.md +2 -1
  317. package/bundled/upstream/ecc/skills/security-bounty-hunter/SKILL.md +2 -1
  318. package/bundled/upstream/ecc/skills/security-review/SKILL.md +2 -1
  319. package/bundled/upstream/ecc/skills/security-scan/SKILL.md +2 -1
  320. package/bundled/upstream/ecc/skills/seo/SKILL.md +2 -1
  321. package/bundled/upstream/ecc/skills/skill-comply/SKILL.md +2 -1
  322. package/bundled/upstream/ecc/skills/skill-comply/scripts/runner.py +8 -0
  323. package/bundled/upstream/ecc/skills/skill-scout/SKILL.md +2 -1
  324. package/bundled/upstream/ecc/skills/skill-stocktake/SKILL.md +2 -1
  325. package/bundled/upstream/ecc/skills/social-graph-ranker/SKILL.md +2 -1
  326. package/bundled/upstream/ecc/skills/social-publisher/SKILL.md +17 -2
  327. package/bundled/upstream/ecc/skills/springboot-patterns/SKILL.md +2 -1
  328. package/bundled/upstream/ecc/skills/springboot-security/SKILL.md +2 -1
  329. package/bundled/upstream/ecc/skills/springboot-tdd/SKILL.md +2 -1
  330. package/bundled/upstream/ecc/skills/springboot-verification/SKILL.md +2 -1
  331. package/bundled/upstream/ecc/skills/strategic-compact/SKILL.md +10 -5
  332. package/bundled/upstream/ecc/skills/swift-actor-persistence/SKILL.md +2 -1
  333. package/bundled/upstream/ecc/skills/swift-protocol-di-testing/SKILL.md +2 -1
  334. package/bundled/upstream/ecc/skills/taste/SKILL.md +264 -0
  335. package/bundled/upstream/ecc/skills/taste/references/genre-taxonomy.md +87 -0
  336. package/bundled/upstream/ecc/skills/tdd-workflow/SKILL.md +64 -1
  337. package/bundled/upstream/ecc/skills/team-agent-orchestration/SKILL.md +2 -1
  338. package/bundled/upstream/ecc/skills/team-builder/SKILL.md +2 -1
  339. package/bundled/upstream/ecc/skills/terminal-ops/SKILL.md +2 -1
  340. package/bundled/upstream/ecc/skills/tinystruct-patterns/SKILL.md +77 -1
  341. package/bundled/upstream/ecc/skills/token-budget-advisor/SKILL.md +2 -1
  342. package/bundled/upstream/ecc/skills/ui-demo/SKILL.md +2 -1
  343. package/bundled/upstream/ecc/skills/ui-to-vue/SKILL.md +2 -1
  344. package/bundled/upstream/ecc/skills/uncloud/SKILL.md +2 -1
  345. package/bundled/upstream/ecc/skills/unified-notifications-ops/SKILL.md +2 -1
  346. package/bundled/upstream/ecc/skills/verification-loop/SKILL.md +2 -1
  347. package/bundled/upstream/ecc/skills/video-editing/SKILL.md +2 -1
  348. package/bundled/upstream/ecc/skills/videodb/SKILL.md +2 -1
  349. package/bundled/upstream/ecc/skills/vite-patterns/SKILL.md +2 -1
  350. package/bundled/upstream/ecc/skills/vue-patterns/SKILL.md +471 -0
  351. package/bundled/upstream/ecc/skills/windows-desktop-e2e/SKILL.md +9 -8
  352. package/bundled/upstream/ecc/skills/workspace-surface-audit/SKILL.md +2 -1
  353. package/bundled/upstream/ecc/skills/x-api/SKILL.md +2 -1
  354. package/bundled/upstream/impeccable/.omc-source/bundle.json +2 -2
  355. package/bundled/upstream/impeccable/.omc-source/provenance.json +30 -25
  356. package/bundled/upstream/impeccable/skills/impeccable/SKILL.md +2 -2
  357. package/bundled/upstream/impeccable/skills/impeccable/reference/hooks.md +10 -8
  358. package/bundled/upstream/impeccable/skills/impeccable/reference/live.md +1 -1
  359. package/bundled/upstream/impeccable/skills/impeccable/scripts/context.mjs +707 -26
  360. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/browser/injected/index.mjs +202 -0
  361. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/cli/main.mjs +57 -11
  362. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/design-system.mjs +750 -0
  363. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +231 -0
  364. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/detect-antipatterns.mjs +7 -0
  365. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +29 -4
  366. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +20 -4
  367. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +2 -0
  368. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +27 -1
  369. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/registry/antipatterns.mjs +29 -0
  370. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/shared/inline-ignores.mjs +148 -0
  371. package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-admin.mjs +135 -48
  372. package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-before-edit.mjs +5 -2
  373. package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-lib.mjs +375 -29
  374. package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/design-parser.mjs +8 -1
  375. package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/impeccable-config.mjs +638 -0
  376. package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/impeccable-paths.mjs +37 -35
  377. package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/target-args.mjs +42 -0
  378. package/bundled/upstream/impeccable/skills/impeccable/scripts/live-browser.js +159 -72
  379. package/bundled/upstream/impeccable/skills/impeccable/scripts/live-poll.mjs +16 -11
  380. package/bundled/upstream/impeccable/skills/impeccable/scripts/live-server.mjs +9 -8
  381. package/bundled/upstream/impeccable/skills/impeccable/scripts/live-target.mjs +30 -0
  382. package/bundled/upstream/impeccable/skills/impeccable/scripts/live-wrap.mjs +1 -1
  383. package/bundled/upstream/impeccable/skills/impeccable/scripts/live.mjs +72 -21
  384. package/bundled/upstream/oh-my-claudecode/.omc-source/bundle.json +2 -2
  385. package/bundled/upstream/oh-my-claudecode/.omc-source/provenance.json +103 -103
  386. package/bundled/upstream/oh-my-claudecode/agents/analyst.md +6 -0
  387. package/bundled/upstream/oh-my-claudecode/agents/architect.md +6 -0
  388. package/bundled/upstream/oh-my-claudecode/agents/code-reviewer.md +6 -0
  389. package/bundled/upstream/oh-my-claudecode/agents/critic.md +6 -0
  390. package/bundled/upstream/oh-my-claudecode/agents/debugger.md +6 -0
  391. package/bundled/upstream/oh-my-claudecode/agents/security-reviewer.md +6 -0
  392. package/bundled/upstream/oh-my-claudecode/agents/tracer.md +6 -0
  393. package/bundled/upstream/oh-my-claudecode/agents/verifier.md +7 -0
  394. package/bundled/upstream/oh-my-claudecode/hooks/hooks.json +9 -2
  395. package/bundled/upstream/oh-my-claudecode/skills/ask/SKILL.md +15 -4
  396. package/bundled/upstream/oh-my-claudecode/skills/autopilot/SKILL.md +30 -1
  397. package/bundled/upstream/oh-my-claudecode/skills/cancel/SKILL.md +29 -35
  398. package/bundled/upstream/oh-my-claudecode/skills/ccg/SKILL.md +20 -9
  399. package/bundled/upstream/oh-my-claudecode/skills/configure-notifications/SKILL.md +2 -2
  400. package/bundled/upstream/oh-my-claudecode/skills/omc-reference/SKILL.md +6 -4
  401. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/02-configure.md +1 -1
  402. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/03-integrations.md +2 -1
  403. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/04-welcome.md +2 -2
  404. package/bundled/upstream/oh-my-claudecode/skills/omc-teams/SKILL.md +29 -18
  405. package/bundled/upstream/oh-my-claudecode/skills/team/SKILL.md +127 -165
  406. package/bundled/upstream/superpowers/.omc-source/bundle.json +2 -2
  407. package/bundled/upstream/superpowers/.omc-source/provenance.json +59 -52
  408. package/bundled/upstream/superpowers/hooks/hooks-codex.json +16 -0
  409. package/bundled/upstream/superpowers/hooks/session-start +4 -12
  410. package/bundled/upstream/superpowers/hooks/session-start-codex +26 -0
  411. package/bundled/upstream/superpowers/skills/brainstorming/SKILL.md +5 -10
  412. package/bundled/upstream/superpowers/skills/brainstorming/scripts/frame-template.html +25 -26
  413. package/bundled/upstream/superpowers/skills/brainstorming/scripts/helper.js +101 -22
  414. package/bundled/upstream/superpowers/skills/brainstorming/scripts/server.cjs +399 -30
  415. package/bundled/upstream/superpowers/skills/brainstorming/scripts/start-server.sh +70 -9
  416. package/bundled/upstream/superpowers/skills/brainstorming/scripts/stop-server.sh +66 -2
  417. package/bundled/upstream/superpowers/skills/brainstorming/spec-document-reviewer-prompt.md +1 -1
  418. package/bundled/upstream/superpowers/skills/brainstorming/visual-companion.md +33 -22
  419. package/bundled/upstream/superpowers/skills/dispatching-parallel-agents/SKILL.md +9 -6
  420. package/bundled/upstream/superpowers/skills/executing-plans/SKILL.md +2 -2
  421. package/bundled/upstream/superpowers/skills/finishing-a-development-branch/SKILL.md +2 -12
  422. package/bundled/upstream/superpowers/skills/receiving-code-review/SKILL.md +2 -2
  423. package/bundled/upstream/superpowers/skills/requesting-code-review/SKILL.md +2 -2
  424. package/bundled/upstream/superpowers/skills/requesting-code-review/code-reviewer.md +15 -11
  425. package/bundled/upstream/superpowers/skills/subagent-driven-development/SKILL.md +206 -67
  426. package/bundled/upstream/superpowers/skills/subagent-driven-development/implementer-prompt.md +30 -4
  427. package/bundled/upstream/superpowers/skills/subagent-driven-development/scripts/review-package +44 -0
  428. package/bundled/upstream/superpowers/skills/subagent-driven-development/scripts/sdd-workspace +22 -0
  429. package/bundled/upstream/superpowers/skills/subagent-driven-development/scripts/task-brief +40 -0
  430. package/bundled/upstream/superpowers/skills/subagent-driven-development/task-reviewer-prompt.md +188 -0
  431. package/bundled/upstream/superpowers/skills/systematic-debugging/SKILL.md +1 -1
  432. package/bundled/upstream/superpowers/skills/test-driven-development/SKILL.md +1 -1
  433. package/bundled/upstream/superpowers/skills/using-git-worktrees/SKILL.md +9 -22
  434. package/bundled/upstream/superpowers/skills/using-superpowers/SKILL.md +19 -15
  435. package/bundled/upstream/superpowers/skills/using-superpowers/references/antigravity-tools.md +96 -0
  436. package/bundled/upstream/superpowers/skills/using-superpowers/references/claude-code-tools.md +50 -0
  437. package/bundled/upstream/superpowers/skills/using-superpowers/references/codex-tools.md +25 -12
  438. package/bundled/upstream/superpowers/skills/using-superpowers/references/copilot-tools.md +27 -20
  439. package/bundled/upstream/superpowers/skills/using-superpowers/references/gemini-tools.md +44 -32
  440. package/bundled/upstream/superpowers/skills/using-superpowers/references/pi-tools.md +28 -0
  441. package/bundled/upstream/superpowers/skills/writing-plans/SKILL.md +22 -0
  442. package/bundled/upstream/superpowers/skills/writing-plans/plan-document-reviewer-prompt.md +1 -1
  443. package/bundled/upstream/superpowers/skills/writing-skills/SKILL.md +52 -18
  444. package/bundled/upstream/superpowers/skills/writing-skills/anthropic-best-practices.md +88 -88
  445. package/bundled/upstream/superpowers/skills/writing-skills/persuasion-principles.md +3 -3
  446. package/package.json +1 -1
  447. package/bundled/upstream/superpowers/skills/subagent-driven-development/code-quality-reviewer-prompt.md +0 -25
  448. package/bundled/upstream/superpowers/skills/subagent-driven-development/spec-reviewer-prompt.md +0 -61
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * `/impeccable hooks <on|off|status|reset>` — manage the design hook
4
- * via the `hook` key of .impeccable/config.json and .impeccable/config.local.json
5
- * in the current project.
3
+ * `/impeccable hooks <on|off|status|reset>` — manage the design hook runtime
4
+ * via the `hook` key and shared detector ignores via the `detector` key in
5
+ * .impeccable/config.json / .impeccable/config.local.json.
6
6
  *
7
7
  * Usage:
8
8
  * node hook-admin.mjs status # print current state
@@ -109,6 +109,28 @@ const HOOK_MANIFEST_TARGETS = [
109
109
  },
110
110
  }),
111
111
  },
112
+ {
113
+ // GitHub Copilot reads repo-level hooks from `.github/hooks/*.json`. The same
114
+ // manifest is honored by the CLI (once committed to the default branch) and
115
+ // the cloud/app agent. Schema differs: lowercase `postToolUse`, flat entries,
116
+ // `bash`/`timeoutSec`, and a `matcher` regex against the `edit`/`create` tools.
117
+ provider: '.github',
118
+ skillRel: '.github/skills/impeccable',
119
+ destRel: '.github/hooks/impeccable.json',
120
+ manifest: () => ({
121
+ version: 1,
122
+ hooks: {
123
+ postToolUse: [
124
+ {
125
+ type: 'command',
126
+ matcher: 'edit|create|apply_patch',
127
+ bash: 'node "$(git rev-parse --show-toplevel)/.github/skills/impeccable/scripts/hook.mjs"',
128
+ timeoutSec: TIMEOUT_SECONDS,
129
+ },
130
+ ],
131
+ },
132
+ }),
133
+ },
112
134
  ];
113
135
 
114
136
  function readRawConfigFile(filePath) {
@@ -120,23 +142,48 @@ function readRawConfigFile(filePath) {
120
142
  }
121
143
  }
122
144
 
123
- // The hook settings to edit: the unified file's `hook` subtree.
124
- function readRawConfig(cwd, opts = {}) {
145
+ const DETECTOR_CONFIG_KEYS = new Set(['ignoreRules', 'ignoreFiles', 'ignoreValues', 'designSystem']);
146
+
147
+ function hookSection(unified) {
148
+ return unified && typeof unified === 'object' && !Array.isArray(unified) && unified.hook && typeof unified.hook === 'object' && !Array.isArray(unified.hook)
149
+ ? unified.hook
150
+ : null;
151
+ }
152
+
153
+ function detectorSection(unified) {
154
+ return unified && typeof unified === 'object' && !Array.isArray(unified) && unified.detector && typeof unified.detector === 'object' && !Array.isArray(unified.detector)
155
+ ? unified.detector
156
+ : null;
157
+ }
158
+
159
+ function readRawHookConfig(cwd, opts = {}) {
160
+ const unified = readRawConfigFile(opts.local ? getLocalConfigPath(cwd) : getConfigPath(cwd)).raw;
161
+ return hookSection(unified);
162
+ }
163
+
164
+ function readRawDetectorConfig(cwd, opts = {}) {
125
165
  const unified = readRawConfigFile(opts.local ? getLocalConfigPath(cwd) : getConfigPath(cwd)).raw;
126
- if (unified && typeof unified === 'object' && unified.hook && typeof unified.hook === 'object') {
127
- return unified.hook;
166
+ const merged = mergeDetectorConfig(hookSection(unified));
167
+ return mergeDetectorConfig(detectorSection(unified), merged);
168
+ }
169
+
170
+ function stripDetectorKeys(raw) {
171
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw)) return {};
172
+ const out = {};
173
+ for (const [key, value] of Object.entries(raw)) {
174
+ if (!DETECTOR_CONFIG_KEYS.has(key)) out[key] = value;
128
175
  }
129
- return null;
176
+ return out;
130
177
  }
131
178
 
132
- // Write the hook config back under the `hook` key of the unified file, leaving
133
- // any sibling keys (e.g. updateCheck) untouched.
134
- function writeConfig(cwd, hookConfig, opts = {}) {
179
+ // Write hook runtime config under `hook`, leaving detector filters in
180
+ // `detector` and preserving sibling keys such as updateCheck.
181
+ function writeHookConfig(cwd, hookConfig, opts = {}) {
135
182
  const filePath = opts.local ? getLocalConfigPath(cwd) : getConfigPath(cwd);
136
183
  if (opts.local) ensureHookGitExcludes(cwd);
137
184
  const existingRaw = readRawConfigFile(filePath).raw;
138
185
  const existing = existingRaw && typeof existingRaw === 'object' && !Array.isArray(existingRaw) ? existingRaw : {};
139
- const existingHook = existing.hook && typeof existing.hook === 'object' && !Array.isArray(existing.hook) ? existing.hook : {};
186
+ const existingHook = stripDetectorKeys(hookSection(existing));
140
187
  // Merge over the existing hook object so fields the merge helpers don't manage
141
188
  // (consent, quiet, auditLog) survive a `/impeccable hooks` edit.
142
189
  const next = { ...existing, hook: { ...existingHook, ...hookConfig } };
@@ -145,15 +192,28 @@ function writeConfig(cwd, hookConfig, opts = {}) {
145
192
  return filePath;
146
193
  }
147
194
 
148
- function mergeConfig(existing) {
149
- // Persist the full shape so /impeccable hooks edits leave a complete file
150
- // for the user to see, not an unhelpful `{"enabled":false}`.
195
+ function writeDetectorConfig(cwd, detectorConfig, opts = {}) {
196
+ const filePath = opts.local ? getLocalConfigPath(cwd) : getConfigPath(cwd);
197
+ if (opts.local) ensureHookGitExcludes(cwd);
198
+ const existingRaw = readRawConfigFile(filePath).raw;
199
+ const existing = existingRaw && typeof existingRaw === 'object' && !Array.isArray(existingRaw) ? existingRaw : {};
200
+ const nextHook = stripDetectorKeys(hookSection(existing));
201
+ const existingDetector = mergeDetectorConfig(detectorSection(existing));
202
+ const next = {
203
+ ...existing,
204
+ detector: mergeDetectorConfig(detectorConfig, existingDetector),
205
+ };
206
+ if (Object.keys(nextHook).length > 0) next.hook = nextHook;
207
+ else delete next.hook;
208
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
209
+ fs.writeFileSync(filePath, JSON.stringify(next, null, 2) + '\n');
210
+ return filePath;
211
+ }
212
+
213
+ function mergeHookConfig(existing) {
151
214
  const base = existing && typeof existing === 'object' ? existing : {};
152
215
  return {
153
216
  enabled: base.enabled === false ? false : true,
154
- ignoreRules: Array.isArray(base.ignoreRules) ? Array.from(new Set(base.ignoreRules.map(String))) : [],
155
- ignoreFiles: Array.isArray(base.ignoreFiles) ? Array.from(new Set(base.ignoreFiles.map(String))) : [],
156
- ignoreValues: normalizeIgnoreValueEntries(base.ignoreValues || []),
157
217
  limits: {
158
218
  maxFindings: Number.isFinite(base?.limits?.maxFindings) ? base.limits.maxFindings : DEFAULT_CONFIG.limits.maxFindings,
159
219
  maxChars: Number.isFinite(base?.limits?.maxChars) ? base.limits.maxChars : DEFAULT_CONFIG.limits.maxChars,
@@ -161,28 +221,54 @@ function mergeConfig(existing) {
161
221
  };
162
222
  }
163
223
 
164
- function mergeLocalConfig(existing) {
224
+ function mergeDetectorConfig(existing, seed = null) {
165
225
  const base = existing && typeof existing === 'object' ? existing : {};
166
- const out = {};
167
- if (Object.prototype.hasOwnProperty.call(base, 'enabled')) {
168
- out.enabled = base.enabled === false ? false : true;
226
+ const out = seed ? {
227
+ ignoreRules: [...seed.ignoreRules],
228
+ ignoreFiles: [...seed.ignoreFiles],
229
+ ignoreValues: normalizeIgnoreValueEntries(seed.ignoreValues),
230
+ } : {
231
+ ignoreRules: [],
232
+ ignoreFiles: [],
233
+ ignoreValues: [],
234
+ };
235
+ if (seed?.designSystem && typeof seed.designSystem === 'object' && !Array.isArray(seed.designSystem)) {
236
+ out.designSystem = { ...seed.designSystem };
237
+ }
238
+ if (base.designSystem && typeof base.designSystem === 'object' && !Array.isArray(base.designSystem)) {
239
+ out.designSystem = {
240
+ ...(out.designSystem || {}),
241
+ enabled: base.designSystem.enabled === false ? false : true,
242
+ };
169
243
  }
170
244
  if (Array.isArray(base.ignoreRules)) {
171
- out.ignoreRules = Array.from(new Set(base.ignoreRules.map(String)));
245
+ out.ignoreRules = Array.from(new Set([...out.ignoreRules, ...base.ignoreRules.map(String)]));
172
246
  }
173
247
  if (Array.isArray(base.ignoreFiles)) {
174
- out.ignoreFiles = Array.from(new Set(base.ignoreFiles.map(String)));
248
+ out.ignoreFiles = Array.from(new Set([...out.ignoreFiles, ...base.ignoreFiles.map(String)]));
175
249
  }
176
- out.ignoreValues = normalizeIgnoreValueEntries(base.ignoreValues || []);
177
- if (base.limits && typeof base.limits === 'object') {
178
- const limits = {};
179
- if (Number.isFinite(base.limits.maxFindings)) limits.maxFindings = base.limits.maxFindings;
180
- if (Number.isFinite(base.limits.maxChars)) limits.maxChars = base.limits.maxChars;
181
- if (Object.keys(limits).length) out.limits = limits;
250
+ if (Array.isArray(base.ignoreValues)) {
251
+ out.ignoreValues = mergeIgnoreValueEntries(out.ignoreValues, base.ignoreValues);
182
252
  }
183
253
  return out;
184
254
  }
185
255
 
256
+ function mergeIgnoreValueEntries(existing, incoming) {
257
+ const map = new Map();
258
+ for (const entry of normalizeIgnoreValueEntries(existing)) {
259
+ map.set(ignoreValueEntryKey(entry), entry);
260
+ }
261
+ for (const entry of normalizeIgnoreValueEntries(incoming)) {
262
+ map.set(ignoreValueEntryKey(entry), entry);
263
+ }
264
+ return Array.from(map.values());
265
+ }
266
+
267
+ function ignoreValueEntryKey(entry) {
268
+ const files = Array.isArray(entry.files) && entry.files.length > 0 ? entry.files.join('\x1f') : '';
269
+ return `${entry.rule}\0${entry.value}\0${files}`;
270
+ }
271
+
186
272
  function statusReport(cwd) {
187
273
  const shared = readRawConfigFile(getConfigPath(cwd));
188
274
  const local = readRawConfigFile(getLocalConfigPath(cwd));
@@ -216,14 +302,14 @@ function statusReport(cwd) {
216
302
  }
217
303
 
218
304
  function setEnabled(cwd, value) {
219
- const config = mergeConfig(readRawConfig(cwd));
305
+ const config = mergeHookConfig(readRawHookConfig(cwd));
220
306
  config.enabled = value;
221
- const target = writeConfig(cwd, config);
307
+ const target = writeHookConfig(cwd, config);
222
308
  if (!value) {
223
309
  return `Design hook disabled for this project (wrote ${path.relative(cwd, target) || target}).`;
224
310
  }
225
311
 
226
- const localTarget = writeConfig(cwd, { consent: 'accepted' }, { local: true });
312
+ const localTarget = writeHookConfig(cwd, { consent: 'accepted' }, { local: true });
227
313
  const repaired = repairHookManifests(cwd);
228
314
  const parts = [
229
315
  `Design hook enabled for this project (wrote ${path.relative(cwd, target) || target}).`,
@@ -336,7 +422,10 @@ function valueHasImpeccableHookMarker(value) {
336
422
 
337
423
  function stripImpeccableHookEntry(entry) {
338
424
  if (!entry || typeof entry !== 'object') return entry;
339
- if (valueHasImpeccableHookMarker(entry.command) || valueHasImpeccableHookMarker(entry.args)) {
425
+ // `command`/`args`: Claude/Codex/Cursor. `bash`/`powershell`: GitHub Copilot's
426
+ // flat entry shape, where the marker lives under the shell-command keys.
427
+ if (valueHasImpeccableHookMarker(entry.command) || valueHasImpeccableHookMarker(entry.args)
428
+ || valueHasImpeccableHookMarker(entry.bash) || valueHasImpeccableHookMarker(entry.powershell)) {
340
429
  return null;
341
430
  }
342
431
  if (!Array.isArray(entry.hooks)) return entry;
@@ -429,18 +518,18 @@ function addIgnoreRule(cwd, args) {
429
518
  if (rule === 'overused-font' && !parsed.allValues) {
430
519
  throw new Error('overused-font is value-specific by default. Use /impeccable hooks ignore-value overused-font <font> for a confirmed font, or /impeccable hooks ignore-rule overused-font --all-values only when the user asked to ignore overused fonts generally.');
431
520
  }
432
- const config = mergeConfig(readRawConfig(cwd));
521
+ const config = mergeDetectorConfig(readRawDetectorConfig(cwd));
433
522
  if (!config.ignoreRules.includes(rule)) config.ignoreRules.push(rule);
434
- writeConfig(cwd, config);
435
- return `Added "${rule}" to ignoreRules. Current: ${config.ignoreRules.join(', ')}`;
523
+ writeDetectorConfig(cwd, config);
524
+ return `Added "${rule}" to detector.ignoreRules. Current: ${config.ignoreRules.join(', ')}`;
436
525
  }
437
526
 
438
527
  function addIgnoreFile(cwd, glob) {
439
528
  if (!glob) throw new Error('Pass a glob, e.g. /impeccable hooks ignore-file "src/legacy/**"');
440
- const config = mergeConfig(readRawConfig(cwd));
529
+ const config = mergeDetectorConfig(readRawDetectorConfig(cwd));
441
530
  if (!config.ignoreFiles.includes(glob)) config.ignoreFiles.push(glob);
442
- writeConfig(cwd, config);
443
- return `Added "${glob}" to ignoreFiles. Current: ${config.ignoreFiles.join(', ')}`;
531
+ writeDetectorConfig(cwd, config);
532
+ return `Added "${glob}" to detector.ignoreFiles. Current: ${config.ignoreFiles.join(', ')}`;
444
533
  }
445
534
 
446
535
  function parseIgnoreValueArgs(args) {
@@ -489,9 +578,7 @@ function addIgnoreValue(cwd, args) {
489
578
  }
490
579
 
491
580
  const local = parsed.local;
492
- const config = local
493
- ? mergeLocalConfig(readRawConfig(cwd, { local: true }))
494
- : mergeConfig(readRawConfig(cwd, { local: false }));
581
+ const config = mergeDetectorConfig(readRawDetectorConfig(cwd, { local }));
495
582
  const key = `${parsed.rule}\0${parsed.value}`;
496
583
  const existing = config.ignoreValues.find((entry) => `${entry.rule}\0${entry.value}` === key);
497
584
 
@@ -507,20 +594,20 @@ function addIgnoreValue(cwd, args) {
507
594
  config.ignoreValues.push(entry);
508
595
  }
509
596
 
510
- const target = writeConfig(cwd, config, { local });
511
- const scope = local ? 'local ignoreValues' : 'shared ignoreValues';
597
+ const target = writeDetectorConfig(cwd, config, { local });
598
+ const scope = local ? 'local detector.ignoreValues' : 'shared detector.ignoreValues';
512
599
  return `Added ${parsed.rule}=${parsed.value} to ${scope} (${path.relative(cwd, target) || target}).`;
513
600
  }
514
601
 
515
602
  function reset(cwd) {
516
603
  const removed = [];
517
604
  // Unified files may hold non-hook keys (e.g. updateCheck); strip only the
518
- // hook subtree and keep the rest, deleting the file only if nothing remains.
605
+ // hook/detector subtrees and keep the rest, deleting the file only if nothing remains.
519
606
  for (const filePath of [getConfigPath(cwd), getLocalConfigPath(cwd)]) {
520
607
  try {
521
608
  const raw = readRawConfigFile(filePath).raw;
522
- if (!raw || typeof raw !== 'object' || Array.isArray(raw) || !('hook' in raw)) continue;
523
- const { hook, ...rest } = raw;
609
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw) || (!('hook' in raw) && !('detector' in raw))) continue;
610
+ const { hook, detector, ...rest } = raw;
524
611
  if (Object.keys(rest).length === 0) {
525
612
  fs.unlinkSync(filePath);
526
613
  } else {
@@ -18,6 +18,8 @@ import {
18
18
  EDIT_COUNT_THRESHOLD,
19
19
  GENERATED_PATH,
20
20
  SENSITIVE_PATH,
21
+ appendDesignSystemNote,
22
+ designSystemOptions,
21
23
  filterFindings,
22
24
  loadDetector,
23
25
  matchesAnyGlob,
@@ -415,10 +417,11 @@ async function main() {
415
417
  if (!detector || typeof detector.detectText !== 'function') {
416
418
  return allow({ ...audit, skipped: 'detector-missing', durationMs: Date.now() - started });
417
419
  }
420
+ const scanOptions = designSystemOptions(config, detector, cwd);
418
421
 
419
422
  let findings = [];
420
423
  try {
421
- findings = await detector.detectText(content, filePath);
424
+ findings = await detector.detectText(content, filePath, scanOptions);
422
425
  } catch {
423
426
  return allow({ ...audit, error: 'detector-threw', durationMs: Date.now() - started });
424
427
  }
@@ -433,7 +436,7 @@ async function main() {
433
436
  });
434
437
  }
435
438
 
436
- const message = cursorBlockMessage(filtered, filePath, config, cwd);
439
+ const message = appendDesignSystemNote(cursorBlockMessage(filtered, filePath, config, cwd), scanOptions);
437
440
  const sessionId = event.session_id || event.conversation_id || 'unknown';
438
441
  const cache = readCache(cwd);
439
442
  const denial = bumpCursorDenial(cache, sessionId, filePath, filtered);