winter-super-cli 2026.5.31 → 2026.6.5

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 (3100) hide show
  1. package/README.md +9 -5
  2. package/bin/winter.js +39 -4
  3. package/package.json +22 -3
  4. package/resources/local/ecc/.agents/plugins/marketplace.json +21 -0
  5. package/resources/local/ecc/.agents/skills/agent-introspection-debugging/SKILL.md +152 -0
  6. package/resources/local/ecc/.agents/skills/agent-introspection-debugging/agents/openai.yaml +7 -0
  7. package/resources/local/ecc/.agents/skills/agent-sort/SKILL.md +214 -0
  8. package/resources/local/ecc/.agents/skills/agent-sort/agents/openai.yaml +7 -0
  9. package/resources/local/ecc/.agents/skills/api-design/SKILL.md +522 -0
  10. package/resources/local/ecc/.agents/skills/api-design/agents/openai.yaml +7 -0
  11. package/resources/local/ecc/.agents/skills/article-writing/SKILL.md +78 -0
  12. package/resources/local/ecc/.agents/skills/article-writing/agents/openai.yaml +7 -0
  13. package/resources/local/ecc/.agents/skills/backend-patterns/SKILL.md +597 -0
  14. package/resources/local/ecc/.agents/skills/backend-patterns/agents/openai.yaml +7 -0
  15. package/resources/local/ecc/.agents/skills/brand-voice/SKILL.md +96 -0
  16. package/resources/local/ecc/.agents/skills/brand-voice/agents/openai.yaml +7 -0
  17. package/resources/local/ecc/.agents/skills/brand-voice/references/voice-profile-schema.md +55 -0
  18. package/resources/local/ecc/.agents/skills/bun-runtime/SKILL.md +83 -0
  19. package/resources/local/ecc/.agents/skills/bun-runtime/agents/openai.yaml +7 -0
  20. package/resources/local/ecc/.agents/skills/coding-standards/SKILL.md +548 -0
  21. package/resources/local/ecc/.agents/skills/coding-standards/agents/openai.yaml +7 -0
  22. package/resources/local/ecc/.agents/skills/content-engine/SKILL.md +130 -0
  23. package/resources/local/ecc/.agents/skills/content-engine/agents/openai.yaml +7 -0
  24. package/resources/local/ecc/.agents/skills/crosspost/SKILL.md +110 -0
  25. package/resources/local/ecc/.agents/skills/crosspost/agents/openai.yaml +7 -0
  26. package/resources/local/ecc/.agents/skills/deep-research/SKILL.md +154 -0
  27. package/resources/local/ecc/.agents/skills/deep-research/agents/openai.yaml +7 -0
  28. package/resources/local/ecc/.agents/skills/dmux-workflows/SKILL.md +143 -0
  29. package/resources/local/ecc/.agents/skills/dmux-workflows/agents/openai.yaml +7 -0
  30. package/resources/local/ecc/.agents/skills/documentation-lookup/SKILL.md +89 -0
  31. package/resources/local/ecc/.agents/skills/documentation-lookup/agents/openai.yaml +7 -0
  32. package/resources/local/ecc/.agents/skills/e2e-testing/SKILL.md +325 -0
  33. package/resources/local/ecc/.agents/skills/e2e-testing/agents/openai.yaml +7 -0
  34. package/resources/local/ecc/.agents/skills/eval-harness/SKILL.md +235 -0
  35. package/resources/local/ecc/.agents/skills/eval-harness/agents/openai.yaml +7 -0
  36. package/resources/local/ecc/.agents/skills/everything-claude-code/SKILL.md +442 -0
  37. package/resources/local/ecc/.agents/skills/everything-claude-code/agents/openai.yaml +7 -0
  38. package/resources/local/ecc/.agents/skills/exa-search/SKILL.md +169 -0
  39. package/resources/local/ecc/.agents/skills/exa-search/agents/openai.yaml +7 -0
  40. package/resources/local/ecc/.agents/skills/fal-ai-media/SKILL.md +276 -0
  41. package/resources/local/ecc/.agents/skills/fal-ai-media/agents/openai.yaml +7 -0
  42. package/resources/local/ecc/.agents/skills/frontend-patterns/SKILL.md +647 -0
  43. package/resources/local/ecc/.agents/skills/frontend-patterns/agents/openai.yaml +7 -0
  44. package/resources/local/ecc/.agents/skills/frontend-slides/SKILL.md +183 -0
  45. package/resources/local/ecc/.agents/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  46. package/resources/local/ecc/.agents/skills/frontend-slides/agents/openai.yaml +7 -0
  47. package/resources/local/ecc/.agents/skills/investor-materials/SKILL.md +95 -0
  48. package/resources/local/ecc/.agents/skills/investor-materials/agents/openai.yaml +7 -0
  49. package/resources/local/ecc/.agents/skills/investor-outreach/SKILL.md +90 -0
  50. package/resources/local/ecc/.agents/skills/investor-outreach/agents/openai.yaml +7 -0
  51. package/resources/local/ecc/.agents/skills/market-research/SKILL.md +74 -0
  52. package/resources/local/ecc/.agents/skills/market-research/agents/openai.yaml +7 -0
  53. package/resources/local/ecc/.agents/skills/mcp-server-patterns/SKILL.md +66 -0
  54. package/resources/local/ecc/.agents/skills/mcp-server-patterns/agents/openai.yaml +7 -0
  55. package/resources/local/ecc/.agents/skills/mle-workflow/SKILL.md +346 -0
  56. package/resources/local/ecc/.agents/skills/mle-workflow/agents/openai.yaml +7 -0
  57. package/resources/local/ecc/.agents/skills/nextjs-turbopack/SKILL.md +43 -0
  58. package/resources/local/ecc/.agents/skills/nextjs-turbopack/agents/openai.yaml +7 -0
  59. package/resources/local/ecc/.agents/skills/product-capability/SKILL.md +140 -0
  60. package/resources/local/ecc/.agents/skills/product-capability/agents/openai.yaml +7 -0
  61. package/resources/local/ecc/.agents/skills/security-review/SKILL.md +494 -0
  62. package/resources/local/ecc/.agents/skills/security-review/agents/openai.yaml +7 -0
  63. package/resources/local/ecc/.agents/skills/strategic-compact/SKILL.md +102 -0
  64. package/resources/local/ecc/.agents/skills/strategic-compact/agents/openai.yaml +7 -0
  65. package/resources/local/ecc/.agents/skills/tdd-workflow/SKILL.md +409 -0
  66. package/resources/local/ecc/.agents/skills/tdd-workflow/agents/openai.yaml +7 -0
  67. package/resources/local/ecc/.agents/skills/verification-loop/SKILL.md +125 -0
  68. package/resources/local/ecc/.agents/skills/verification-loop/agents/openai.yaml +7 -0
  69. package/resources/local/ecc/.agents/skills/video-editing/SKILL.md +307 -0
  70. package/resources/local/ecc/.agents/skills/video-editing/agents/openai.yaml +7 -0
  71. package/resources/local/ecc/.agents/skills/x-api/SKILL.md +229 -0
  72. package/resources/local/ecc/.agents/skills/x-api/agents/openai.yaml +7 -0
  73. package/resources/local/ecc/.claude/commands/add-language-rules.md +39 -0
  74. package/resources/local/ecc/.claude/commands/database-migration.md +36 -0
  75. package/resources/local/ecc/.claude/commands/feature-development.md +38 -0
  76. package/resources/local/ecc/.claude/ecc-tools.json +334 -0
  77. package/resources/local/ecc/.claude/enterprise/controls.md +15 -0
  78. package/resources/local/ecc/.claude/homunculus/instincts/inherited/everything-claude-code-instincts.yaml +162 -0
  79. package/resources/local/ecc/.claude/identity.json +14 -0
  80. package/resources/local/ecc/.claude/package-manager.json +4 -0
  81. package/resources/local/ecc/.claude/research/everything-claude-code-research-playbook.md +21 -0
  82. package/resources/local/ecc/.claude/rules/everything-claude-code-guardrails.md +43 -0
  83. package/resources/local/ecc/.claude/rules/node.md +56 -0
  84. package/resources/local/ecc/.claude/skills/everything-claude-code/SKILL.md +442 -0
  85. package/resources/local/ecc/.claude/team/everything-claude-code-team-config.json +15 -0
  86. package/resources/local/ecc/.claude-plugin/README.md +17 -0
  87. package/resources/local/ecc/.claude-plugin/marketplace.json +47 -0
  88. package/resources/local/ecc/.claude-plugin/plugin.json +32 -0
  89. package/resources/local/ecc/.codebuddy/README.md +98 -0
  90. package/resources/local/ecc/.codebuddy/install.js +312 -0
  91. package/resources/local/ecc/.codebuddy/install.sh +231 -0
  92. package/resources/local/ecc/.codebuddy/uninstall.js +291 -0
  93. package/resources/local/ecc/.codebuddy/uninstall.sh +184 -0
  94. package/resources/local/ecc/.codex/AGENTS.md +102 -0
  95. package/resources/local/ecc/.codex/agents/docs-researcher.toml +9 -0
  96. package/resources/local/ecc/.codex/agents/explorer.toml +9 -0
  97. package/resources/local/ecc/.codex/agents/reviewer.toml +9 -0
  98. package/resources/local/ecc/.codex/config.toml +120 -0
  99. package/resources/local/ecc/.codex-plugin/README.md +64 -0
  100. package/resources/local/ecc/.codex-plugin/plugin.json +30 -0
  101. package/resources/local/ecc/.cursor/hooks/adapter.js +81 -0
  102. package/resources/local/ecc/.cursor/hooks/after-file-edit.js +19 -0
  103. package/resources/local/ecc/.cursor/hooks/after-mcp-execution.js +12 -0
  104. package/resources/local/ecc/.cursor/hooks/after-shell-execution.js +28 -0
  105. package/resources/local/ecc/.cursor/hooks/after-tab-file-edit.js +12 -0
  106. package/resources/local/ecc/.cursor/hooks/before-mcp-execution.js +11 -0
  107. package/resources/local/ecc/.cursor/hooks/before-read-file.js +13 -0
  108. package/resources/local/ecc/.cursor/hooks/before-shell-execution.js +41 -0
  109. package/resources/local/ecc/.cursor/hooks/before-submit-prompt.js +23 -0
  110. package/resources/local/ecc/.cursor/hooks/before-tab-file-read.js +13 -0
  111. package/resources/local/ecc/.cursor/hooks/pre-compact.js +7 -0
  112. package/resources/local/ecc/.cursor/hooks/session-end.js +10 -0
  113. package/resources/local/ecc/.cursor/hooks/session-start.js +10 -0
  114. package/resources/local/ecc/.cursor/hooks/stop.js +21 -0
  115. package/resources/local/ecc/.cursor/hooks/subagent-start.js +10 -0
  116. package/resources/local/ecc/.cursor/hooks/subagent-stop.js +10 -0
  117. package/resources/local/ecc/.cursor/hooks.json +115 -0
  118. package/resources/local/ecc/.cursor/rules/common-agents.md +53 -0
  119. package/resources/local/ecc/.cursor/rules/common-coding-style.md +52 -0
  120. package/resources/local/ecc/.cursor/rules/common-development-workflow.md +33 -0
  121. package/resources/local/ecc/.cursor/rules/common-git-workflow.md +28 -0
  122. package/resources/local/ecc/.cursor/rules/common-hooks.md +34 -0
  123. package/resources/local/ecc/.cursor/rules/common-patterns.md +35 -0
  124. package/resources/local/ecc/.cursor/rules/common-performance.md +59 -0
  125. package/resources/local/ecc/.cursor/rules/common-security.md +33 -0
  126. package/resources/local/ecc/.cursor/rules/common-testing.md +33 -0
  127. package/resources/local/ecc/.cursor/rules/golang-coding-style.md +31 -0
  128. package/resources/local/ecc/.cursor/rules/golang-hooks.md +16 -0
  129. package/resources/local/ecc/.cursor/rules/golang-patterns.md +44 -0
  130. package/resources/local/ecc/.cursor/rules/golang-security.md +33 -0
  131. package/resources/local/ecc/.cursor/rules/golang-testing.md +30 -0
  132. package/resources/local/ecc/.cursor/rules/kotlin-coding-style.md +39 -0
  133. package/resources/local/ecc/.cursor/rules/kotlin-hooks.md +16 -0
  134. package/resources/local/ecc/.cursor/rules/kotlin-patterns.md +50 -0
  135. package/resources/local/ecc/.cursor/rules/kotlin-security.md +58 -0
  136. package/resources/local/ecc/.cursor/rules/kotlin-testing.md +38 -0
  137. package/resources/local/ecc/.cursor/rules/php-coding-style.md +25 -0
  138. package/resources/local/ecc/.cursor/rules/php-hooks.md +21 -0
  139. package/resources/local/ecc/.cursor/rules/php-patterns.md +23 -0
  140. package/resources/local/ecc/.cursor/rules/php-security.md +24 -0
  141. package/resources/local/ecc/.cursor/rules/php-testing.md +26 -0
  142. package/resources/local/ecc/.cursor/rules/python-coding-style.md +42 -0
  143. package/resources/local/ecc/.cursor/rules/python-hooks.md +19 -0
  144. package/resources/local/ecc/.cursor/rules/python-patterns.md +39 -0
  145. package/resources/local/ecc/.cursor/rules/python-security.md +30 -0
  146. package/resources/local/ecc/.cursor/rules/python-testing.md +38 -0
  147. package/resources/local/ecc/.cursor/rules/swift-coding-style.md +47 -0
  148. package/resources/local/ecc/.cursor/rules/swift-hooks.md +20 -0
  149. package/resources/local/ecc/.cursor/rules/swift-patterns.md +66 -0
  150. package/resources/local/ecc/.cursor/rules/swift-security.md +33 -0
  151. package/resources/local/ecc/.cursor/rules/swift-testing.md +45 -0
  152. package/resources/local/ecc/.cursor/rules/typescript-coding-style.md +63 -0
  153. package/resources/local/ecc/.cursor/rules/typescript-hooks.md +20 -0
  154. package/resources/local/ecc/.cursor/rules/typescript-patterns.md +50 -0
  155. package/resources/local/ecc/.cursor/rules/typescript-security.md +26 -0
  156. package/resources/local/ecc/.cursor/rules/typescript-testing.md +16 -0
  157. package/resources/local/ecc/.cursor/skills/article-writing/SKILL.md +85 -0
  158. package/resources/local/ecc/.cursor/skills/bun-runtime/SKILL.md +84 -0
  159. package/resources/local/ecc/.cursor/skills/content-engine/SKILL.md +88 -0
  160. package/resources/local/ecc/.cursor/skills/documentation-lookup/SKILL.md +90 -0
  161. package/resources/local/ecc/.cursor/skills/frontend-slides/SKILL.md +184 -0
  162. package/resources/local/ecc/.cursor/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  163. package/resources/local/ecc/.cursor/skills/investor-materials/SKILL.md +96 -0
  164. package/resources/local/ecc/.cursor/skills/investor-outreach/SKILL.md +76 -0
  165. package/resources/local/ecc/.cursor/skills/market-research/SKILL.md +75 -0
  166. package/resources/local/ecc/.cursor/skills/mcp-server-patterns/SKILL.md +67 -0
  167. package/resources/local/ecc/.cursor/skills/nextjs-turbopack/SKILL.md +44 -0
  168. package/resources/local/ecc/.env.example +48 -0
  169. package/resources/local/ecc/.gemini/GEMINI.md +48 -0
  170. package/resources/local/ecc/.github/FUNDING.yml +2 -0
  171. package/resources/local/ecc/.github/ISSUE_TEMPLATE/copilot-task.md +17 -0
  172. package/resources/local/ecc/.github/PULL_REQUEST_TEMPLATE.md +33 -0
  173. package/resources/local/ecc/.github/copilot-instructions.md +115 -0
  174. package/resources/local/ecc/.github/dependabot.yml +21 -0
  175. package/resources/local/ecc/.github/prompts/build-fix.prompt.md +47 -0
  176. package/resources/local/ecc/.github/prompts/code-review.prompt.md +56 -0
  177. package/resources/local/ecc/.github/prompts/plan.prompt.md +52 -0
  178. package/resources/local/ecc/.github/prompts/refactor.prompt.md +50 -0
  179. package/resources/local/ecc/.github/prompts/security-review.prompt.md +70 -0
  180. package/resources/local/ecc/.github/prompts/tdd.prompt.md +47 -0
  181. package/resources/local/ecc/.github/release.yml +20 -0
  182. package/resources/local/ecc/.github/workflows/ci.yml +243 -0
  183. package/resources/local/ecc/.github/workflows/maintenance.yml +56 -0
  184. package/resources/local/ecc/.github/workflows/monthly-metrics.yml +192 -0
  185. package/resources/local/ecc/.github/workflows/release.yml +151 -0
  186. package/resources/local/ecc/.github/workflows/reusable-release.yml +169 -0
  187. package/resources/local/ecc/.github/workflows/reusable-test.yml +95 -0
  188. package/resources/local/ecc/.github/workflows/reusable-validate.yml +55 -0
  189. package/resources/local/ecc/.github/workflows/supply-chain-watch.yml +65 -0
  190. package/resources/local/ecc/.kiro/README.md +607 -0
  191. package/resources/local/ecc/.kiro/agents/architect.json +16 -0
  192. package/resources/local/ecc/.kiro/agents/architect.md +212 -0
  193. package/resources/local/ecc/.kiro/agents/build-error-resolver.json +17 -0
  194. package/resources/local/ecc/.kiro/agents/build-error-resolver.md +116 -0
  195. package/resources/local/ecc/.kiro/agents/chief-of-staff.json +17 -0
  196. package/resources/local/ecc/.kiro/agents/chief-of-staff.md +153 -0
  197. package/resources/local/ecc/.kiro/agents/code-reviewer.json +16 -0
  198. package/resources/local/ecc/.kiro/agents/code-reviewer.md +238 -0
  199. package/resources/local/ecc/.kiro/agents/database-reviewer.json +16 -0
  200. package/resources/local/ecc/.kiro/agents/database-reviewer.md +92 -0
  201. package/resources/local/ecc/.kiro/agents/doc-updater.json +16 -0
  202. package/resources/local/ecc/.kiro/agents/doc-updater.md +108 -0
  203. package/resources/local/ecc/.kiro/agents/e2e-runner.json +17 -0
  204. package/resources/local/ecc/.kiro/agents/e2e-runner.md +109 -0
  205. package/resources/local/ecc/.kiro/agents/go-build-resolver.json +17 -0
  206. package/resources/local/ecc/.kiro/agents/go-build-resolver.md +96 -0
  207. package/resources/local/ecc/.kiro/agents/go-reviewer.json +16 -0
  208. package/resources/local/ecc/.kiro/agents/go-reviewer.md +77 -0
  209. package/resources/local/ecc/.kiro/agents/harness-optimizer.json +15 -0
  210. package/resources/local/ecc/.kiro/agents/harness-optimizer.md +34 -0
  211. package/resources/local/ecc/.kiro/agents/loop-operator.json +16 -0
  212. package/resources/local/ecc/.kiro/agents/loop-operator.md +36 -0
  213. package/resources/local/ecc/.kiro/agents/planner.json +15 -0
  214. package/resources/local/ecc/.kiro/agents/planner.md +212 -0
  215. package/resources/local/ecc/.kiro/agents/python-reviewer.json +16 -0
  216. package/resources/local/ecc/.kiro/agents/python-reviewer.md +99 -0
  217. package/resources/local/ecc/.kiro/agents/refactor-cleaner.json +17 -0
  218. package/resources/local/ecc/.kiro/agents/refactor-cleaner.md +87 -0
  219. package/resources/local/ecc/.kiro/agents/security-reviewer.json +16 -0
  220. package/resources/local/ecc/.kiro/agents/security-reviewer.md +109 -0
  221. package/resources/local/ecc/.kiro/agents/tdd-guide.json +17 -0
  222. package/resources/local/ecc/.kiro/agents/tdd-guide.md +93 -0
  223. package/resources/local/ecc/.kiro/docs/longform-guide.md +301 -0
  224. package/resources/local/ecc/.kiro/docs/security-guide.md +496 -0
  225. package/resources/local/ecc/.kiro/docs/shortform-guide.md +360 -0
  226. package/resources/local/ecc/.kiro/hooks/README.md +93 -0
  227. package/resources/local/ecc/.kiro/hooks/auto-format.kiro.hook +14 -0
  228. package/resources/local/ecc/.kiro/hooks/code-review-on-write.kiro.hook +14 -0
  229. package/resources/local/ecc/.kiro/hooks/console-log-check.kiro.hook +14 -0
  230. package/resources/local/ecc/.kiro/hooks/doc-file-warning.kiro.hook +14 -0
  231. package/resources/local/ecc/.kiro/hooks/extract-patterns.kiro.hook +13 -0
  232. package/resources/local/ecc/.kiro/hooks/git-push-review.kiro.hook +14 -0
  233. package/resources/local/ecc/.kiro/hooks/quality-gate.kiro.hook +13 -0
  234. package/resources/local/ecc/.kiro/hooks/session-summary.kiro.hook +13 -0
  235. package/resources/local/ecc/.kiro/hooks/tdd-reminder.kiro.hook +14 -0
  236. package/resources/local/ecc/.kiro/hooks/typecheck-on-edit.kiro.hook +14 -0
  237. package/resources/local/ecc/.kiro/install.sh +143 -0
  238. package/resources/local/ecc/.kiro/scripts/format.sh +70 -0
  239. package/resources/local/ecc/.kiro/scripts/quality-gate.sh +120 -0
  240. package/resources/local/ecc/.kiro/settings/mcp.json.example +50 -0
  241. package/resources/local/ecc/.kiro/skills/agentic-engineering/SKILL.md +135 -0
  242. package/resources/local/ecc/.kiro/skills/api-design/SKILL.md +525 -0
  243. package/resources/local/ecc/.kiro/skills/backend-patterns/SKILL.md +600 -0
  244. package/resources/local/ecc/.kiro/skills/coding-standards/SKILL.md +532 -0
  245. package/resources/local/ecc/.kiro/skills/database-migrations/SKILL.md +348 -0
  246. package/resources/local/ecc/.kiro/skills/deployment-patterns/SKILL.md +440 -0
  247. package/resources/local/ecc/.kiro/skills/docker-patterns/SKILL.md +376 -0
  248. package/resources/local/ecc/.kiro/skills/e2e-testing/SKILL.md +328 -0
  249. package/resources/local/ecc/.kiro/skills/frontend-patterns/SKILL.md +644 -0
  250. package/resources/local/ecc/.kiro/skills/golang-patterns/SKILL.md +227 -0
  251. package/resources/local/ecc/.kiro/skills/golang-testing/SKILL.md +332 -0
  252. package/resources/local/ecc/.kiro/skills/postgres-patterns/SKILL.md +161 -0
  253. package/resources/local/ecc/.kiro/skills/python-patterns/SKILL.md +428 -0
  254. package/resources/local/ecc/.kiro/skills/python-testing/SKILL.md +497 -0
  255. package/resources/local/ecc/.kiro/skills/search-first/SKILL.md +179 -0
  256. package/resources/local/ecc/.kiro/skills/security-review/SKILL.md +497 -0
  257. package/resources/local/ecc/.kiro/skills/tdd-workflow/SKILL.md +414 -0
  258. package/resources/local/ecc/.kiro/skills/verification-loop/SKILL.md +128 -0
  259. package/resources/local/ecc/.kiro/steering/coding-style.md +53 -0
  260. package/resources/local/ecc/.kiro/steering/dev-mode.md +44 -0
  261. package/resources/local/ecc/.kiro/steering/development-workflow.md +34 -0
  262. package/resources/local/ecc/.kiro/steering/git-workflow.md +29 -0
  263. package/resources/local/ecc/.kiro/steering/golang-patterns.md +45 -0
  264. package/resources/local/ecc/.kiro/steering/lessons-learned.md +84 -0
  265. package/resources/local/ecc/.kiro/steering/patterns.md +36 -0
  266. package/resources/local/ecc/.kiro/steering/performance.md +54 -0
  267. package/resources/local/ecc/.kiro/steering/python-patterns.md +40 -0
  268. package/resources/local/ecc/.kiro/steering/research-mode.md +62 -0
  269. package/resources/local/ecc/.kiro/steering/review-mode.md +56 -0
  270. package/resources/local/ecc/.kiro/steering/security.md +34 -0
  271. package/resources/local/ecc/.kiro/steering/swift-patterns.md +67 -0
  272. package/resources/local/ecc/.kiro/steering/testing.md +34 -0
  273. package/resources/local/ecc/.kiro/steering/typescript-patterns.md +51 -0
  274. package/resources/local/ecc/.kiro/steering/typescript-security.md +98 -0
  275. package/resources/local/ecc/.markdownlint.json +19 -0
  276. package/resources/local/ecc/.mcp.json +28 -0
  277. package/resources/local/ecc/.opencode/MIGRATION.md +368 -0
  278. package/resources/local/ecc/.opencode/README.md +204 -0
  279. package/resources/local/ecc/.opencode/commands/build-fix.md +56 -0
  280. package/resources/local/ecc/.opencode/commands/checkpoint.md +67 -0
  281. package/resources/local/ecc/.opencode/commands/code-review.md +68 -0
  282. package/resources/local/ecc/.opencode/commands/e2e.md +105 -0
  283. package/resources/local/ecc/.opencode/commands/eval.md +88 -0
  284. package/resources/local/ecc/.opencode/commands/evolve.md +36 -0
  285. package/resources/local/ecc/.opencode/commands/go-build.md +87 -0
  286. package/resources/local/ecc/.opencode/commands/go-review.md +71 -0
  287. package/resources/local/ecc/.opencode/commands/go-test.md +131 -0
  288. package/resources/local/ecc/.opencode/commands/harness-audit.md +77 -0
  289. package/resources/local/ecc/.opencode/commands/instinct-export.md +93 -0
  290. package/resources/local/ecc/.opencode/commands/instinct-import.md +88 -0
  291. package/resources/local/ecc/.opencode/commands/instinct-status.md +29 -0
  292. package/resources/local/ecc/.opencode/commands/learn.md +61 -0
  293. package/resources/local/ecc/.opencode/commands/loop-start.md +32 -0
  294. package/resources/local/ecc/.opencode/commands/loop-status.md +24 -0
  295. package/resources/local/ecc/.opencode/commands/model-route.md +26 -0
  296. package/resources/local/ecc/.opencode/commands/orchestrate.md +88 -0
  297. package/resources/local/ecc/.opencode/commands/plan.md +49 -0
  298. package/resources/local/ecc/.opencode/commands/projects.md +23 -0
  299. package/resources/local/ecc/.opencode/commands/promote.md +23 -0
  300. package/resources/local/ecc/.opencode/commands/quality-gate.md +29 -0
  301. package/resources/local/ecc/.opencode/commands/refactor-clean.md +102 -0
  302. package/resources/local/ecc/.opencode/commands/rust-build.md +78 -0
  303. package/resources/local/ecc/.opencode/commands/rust-review.md +65 -0
  304. package/resources/local/ecc/.opencode/commands/rust-test.md +104 -0
  305. package/resources/local/ecc/.opencode/commands/security-scan.md +92 -0
  306. package/resources/local/ecc/.opencode/commands/security.md +89 -0
  307. package/resources/local/ecc/.opencode/commands/setup-pm.md +67 -0
  308. package/resources/local/ecc/.opencode/commands/skill-create.md +117 -0
  309. package/resources/local/ecc/.opencode/commands/tdd.md +66 -0
  310. package/resources/local/ecc/.opencode/commands/test-coverage.md +80 -0
  311. package/resources/local/ecc/.opencode/commands/update-codemaps.md +81 -0
  312. package/resources/local/ecc/.opencode/commands/update-docs.md +67 -0
  313. package/resources/local/ecc/.opencode/commands/verify.md +67 -0
  314. package/resources/local/ecc/.opencode/index.ts +80 -0
  315. package/resources/local/ecc/.opencode/instructions/INSTRUCTIONS.md +337 -0
  316. package/resources/local/ecc/.opencode/opencode.json +467 -0
  317. package/resources/local/ecc/.opencode/package-lock.json +169 -0
  318. package/resources/local/ecc/.opencode/package.json +70 -0
  319. package/resources/local/ecc/.opencode/plugins/ecc-hooks.ts +520 -0
  320. package/resources/local/ecc/.opencode/plugins/index.ts +12 -0
  321. package/resources/local/ecc/.opencode/plugins/lib/changed-files-store.ts +98 -0
  322. package/resources/local/ecc/.opencode/prompts/agents/architect.txt +175 -0
  323. package/resources/local/ecc/.opencode/prompts/agents/build-error-resolver.txt +233 -0
  324. package/resources/local/ecc/.opencode/prompts/agents/code-reviewer.txt +103 -0
  325. package/resources/local/ecc/.opencode/prompts/agents/cpp-build-resolver.txt +81 -0
  326. package/resources/local/ecc/.opencode/prompts/agents/cpp-reviewer.txt +65 -0
  327. package/resources/local/ecc/.opencode/prompts/agents/database-reviewer.txt +247 -0
  328. package/resources/local/ecc/.opencode/prompts/agents/doc-updater.txt +192 -0
  329. package/resources/local/ecc/.opencode/prompts/agents/docs-lookup.txt +57 -0
  330. package/resources/local/ecc/.opencode/prompts/agents/e2e-runner.txt +305 -0
  331. package/resources/local/ecc/.opencode/prompts/agents/go-build-resolver.txt +325 -0
  332. package/resources/local/ecc/.opencode/prompts/agents/go-reviewer.txt +241 -0
  333. package/resources/local/ecc/.opencode/prompts/agents/harness-optimizer.txt +27 -0
  334. package/resources/local/ecc/.opencode/prompts/agents/java-build-resolver.txt +125 -0
  335. package/resources/local/ecc/.opencode/prompts/agents/java-reviewer.txt +99 -0
  336. package/resources/local/ecc/.opencode/prompts/agents/kotlin-build-resolver.txt +120 -0
  337. package/resources/local/ecc/.opencode/prompts/agents/kotlin-reviewer.txt +127 -0
  338. package/resources/local/ecc/.opencode/prompts/agents/loop-operator.txt +39 -0
  339. package/resources/local/ecc/.opencode/prompts/agents/planner.txt +112 -0
  340. package/resources/local/ecc/.opencode/prompts/agents/python-reviewer.txt +85 -0
  341. package/resources/local/ecc/.opencode/prompts/agents/refactor-cleaner.txt +241 -0
  342. package/resources/local/ecc/.opencode/prompts/agents/rust-build-resolver.txt +93 -0
  343. package/resources/local/ecc/.opencode/prompts/agents/rust-reviewer.txt +61 -0
  344. package/resources/local/ecc/.opencode/prompts/agents/security-reviewer.txt +207 -0
  345. package/resources/local/ecc/.opencode/prompts/agents/tdd-guide.txt +211 -0
  346. package/resources/local/ecc/.opencode/tools/changed-files.ts +83 -0
  347. package/resources/local/ecc/.opencode/tools/check-coverage.ts +172 -0
  348. package/resources/local/ecc/.opencode/tools/format-code.ts +70 -0
  349. package/resources/local/ecc/.opencode/tools/git-summary.ts +56 -0
  350. package/resources/local/ecc/.opencode/tools/index.ts +14 -0
  351. package/resources/local/ecc/.opencode/tools/lint-check.ts +87 -0
  352. package/resources/local/ecc/.opencode/tools/run-tests.ts +141 -0
  353. package/resources/local/ecc/.opencode/tools/security-audit.ts +279 -0
  354. package/resources/local/ecc/.opencode/tsconfig.json +30 -0
  355. package/resources/local/ecc/.prettierrc +8 -0
  356. package/resources/local/ecc/.qwen/QWEN.md +25 -0
  357. package/resources/local/ecc/.tool-versions +6 -0
  358. package/resources/local/ecc/.trae/README.md +184 -0
  359. package/resources/local/ecc/.trae/install.sh +234 -0
  360. package/resources/local/ecc/.trae/uninstall.sh +194 -0
  361. package/resources/local/ecc/.vscode/settings.json +17 -0
  362. package/resources/local/ecc/.yarnrc.yml +1 -0
  363. package/resources/local/ecc/.zed/settings.json +41 -0
  364. package/resources/local/ecc/AGENTS.md +170 -0
  365. package/resources/local/ecc/CHANGELOG.md +203 -0
  366. package/resources/local/ecc/CLAUDE.md +81 -0
  367. package/resources/local/ecc/CODE_OF_CONDUCT.md +128 -0
  368. package/resources/local/ecc/COMMANDS-QUICK-REF.md +159 -0
  369. package/resources/local/ecc/CONTRIBUTING.md +507 -0
  370. package/resources/local/ecc/EVALUATION.md +122 -0
  371. package/resources/local/ecc/LICENSE +21 -0
  372. package/resources/local/ecc/README.md +1760 -0
  373. package/resources/local/ecc/REPO-ASSESSMENT.md +196 -0
  374. package/resources/local/ecc/RULES.md +38 -0
  375. package/resources/local/ecc/SECURITY.md +101 -0
  376. package/resources/local/ecc/SOUL.md +17 -0
  377. package/resources/local/ecc/SPONSORING.md +43 -0
  378. package/resources/local/ecc/SPONSORS.md +76 -0
  379. package/resources/local/ecc/TROUBLESHOOTING.md +432 -0
  380. package/resources/local/ecc/VERSION +1 -0
  381. package/resources/local/ecc/WORKING-CONTEXT.md +179 -0
  382. package/resources/local/ecc/agent.yaml +238 -0
  383. package/resources/local/ecc/agents/a11y-architect.md +149 -0
  384. package/resources/local/ecc/agents/architect.md +220 -0
  385. package/resources/local/ecc/agents/build-error-resolver.md +123 -0
  386. package/resources/local/ecc/agents/chief-of-staff.md +160 -0
  387. package/resources/local/ecc/agents/code-architect.md +80 -0
  388. package/resources/local/ecc/agents/code-explorer.md +78 -0
  389. package/resources/local/ecc/agents/code-reviewer.md +323 -0
  390. package/resources/local/ecc/agents/code-simplifier.md +56 -0
  391. package/resources/local/ecc/agents/comment-analyzer.md +54 -0
  392. package/resources/local/ecc/agents/conversation-analyzer.md +61 -0
  393. package/resources/local/ecc/agents/cpp-build-resolver.md +99 -0
  394. package/resources/local/ecc/agents/cpp-reviewer.md +81 -0
  395. package/resources/local/ecc/agents/csharp-reviewer.md +110 -0
  396. package/resources/local/ecc/agents/dart-build-resolver.md +210 -0
  397. package/resources/local/ecc/agents/database-reviewer.md +100 -0
  398. package/resources/local/ecc/agents/django-build-resolver.md +252 -0
  399. package/resources/local/ecc/agents/django-reviewer.md +169 -0
  400. package/resources/local/ecc/agents/doc-updater.md +116 -0
  401. package/resources/local/ecc/agents/docs-lookup.md +77 -0
  402. package/resources/local/ecc/agents/e2e-runner.md +116 -0
  403. package/resources/local/ecc/agents/fastapi-reviewer.md +79 -0
  404. package/resources/local/ecc/agents/flutter-reviewer.md +252 -0
  405. package/resources/local/ecc/agents/fsharp-reviewer.md +109 -0
  406. package/resources/local/ecc/agents/gan-evaluator.md +218 -0
  407. package/resources/local/ecc/agents/gan-generator.md +140 -0
  408. package/resources/local/ecc/agents/gan-planner.md +108 -0
  409. package/resources/local/ecc/agents/go-build-resolver.md +103 -0
  410. package/resources/local/ecc/agents/go-reviewer.md +85 -0
  411. package/resources/local/ecc/agents/harmonyos-app-resolver.md +182 -0
  412. package/resources/local/ecc/agents/harness-optimizer.md +44 -0
  413. package/resources/local/ecc/agents/healthcare-reviewer.md +92 -0
  414. package/resources/local/ecc/agents/homelab-architect.md +107 -0
  415. package/resources/local/ecc/agents/java-build-resolver.md +275 -0
  416. package/resources/local/ecc/agents/java-reviewer.md +190 -0
  417. package/resources/local/ecc/agents/kotlin-build-resolver.md +127 -0
  418. package/resources/local/ecc/agents/kotlin-reviewer.md +168 -0
  419. package/resources/local/ecc/agents/loop-operator.md +45 -0
  420. package/resources/local/ecc/agents/mle-reviewer.md +162 -0
  421. package/resources/local/ecc/agents/network-architect.md +106 -0
  422. package/resources/local/ecc/agents/network-config-reviewer.md +106 -0
  423. package/resources/local/ecc/agents/network-troubleshooter.md +128 -0
  424. package/resources/local/ecc/agents/opensource-forker.md +207 -0
  425. package/resources/local/ecc/agents/opensource-packager.md +258 -0
  426. package/resources/local/ecc/agents/opensource-sanitizer.md +197 -0
  427. package/resources/local/ecc/agents/performance-optimizer.md +455 -0
  428. package/resources/local/ecc/agents/planner.md +221 -0
  429. package/resources/local/ecc/agents/pr-test-analyzer.md +54 -0
  430. package/resources/local/ecc/agents/python-reviewer.md +107 -0
  431. package/resources/local/ecc/agents/pytorch-build-resolver.md +129 -0
  432. package/resources/local/ecc/agents/refactor-cleaner.md +94 -0
  433. package/resources/local/ecc/agents/rust-build-resolver.md +157 -0
  434. package/resources/local/ecc/agents/rust-reviewer.md +103 -0
  435. package/resources/local/ecc/agents/security-reviewer.md +117 -0
  436. package/resources/local/ecc/agents/seo-specialist.md +71 -0
  437. package/resources/local/ecc/agents/silent-failure-hunter.md +59 -0
  438. package/resources/local/ecc/agents/swift-build-resolver.md +170 -0
  439. package/resources/local/ecc/agents/swift-reviewer.md +116 -0
  440. package/resources/local/ecc/agents/tdd-guide.md +100 -0
  441. package/resources/local/ecc/agents/type-design-analyzer.md +50 -0
  442. package/resources/local/ecc/agents/typescript-reviewer.md +121 -0
  443. package/resources/local/ecc/assets/hero.png +0 -0
  444. package/resources/local/ecc/assets/images/ecc-logo.png +0 -0
  445. package/resources/local/ecc/assets/images/guides/longform-guide.png +0 -0
  446. package/resources/local/ecc/assets/images/guides/shorthand-guide.png +0 -0
  447. package/resources/local/ecc/assets/images/longform/01-header.png +0 -0
  448. package/resources/local/ecc/assets/images/longform/02-shortform-reference.png +0 -0
  449. package/resources/local/ecc/assets/images/longform/03-session-storage.png +0 -0
  450. package/resources/local/ecc/assets/images/longform/03b-session-storage-alt.png +0 -0
  451. package/resources/local/ecc/assets/images/longform/04-model-selection.png +0 -0
  452. package/resources/local/ecc/assets/images/longform/05-pricing-table.png +0 -0
  453. package/resources/local/ecc/assets/images/longform/06-mgrep-benchmark.png +0 -0
  454. package/resources/local/ecc/assets/images/longform/07-boris-parallel.png +0 -0
  455. package/resources/local/ecc/assets/images/longform/08-two-terminals.png +0 -0
  456. package/resources/local/ecc/assets/images/longform/09-25k-stars.png +0 -0
  457. package/resources/local/ecc/assets/images/security/attack-chain.png +0 -0
  458. package/resources/local/ecc/assets/images/security/attack-vectors.png +0 -0
  459. package/resources/local/ecc/assets/images/security/ghostyy-overflow.jpeg +0 -0
  460. package/resources/local/ecc/assets/images/security/observability.png +0 -0
  461. package/resources/local/ecc/assets/images/security/sandboxing-brain.png +0 -0
  462. package/resources/local/ecc/assets/images/security/sandboxing-comparison.png +0 -0
  463. package/resources/local/ecc/assets/images/security/sandboxing.png +0 -0
  464. package/resources/local/ecc/assets/images/security/sanitization-utility.png +0 -0
  465. package/resources/local/ecc/assets/images/security/sanitization.png +0 -0
  466. package/resources/local/ecc/assets/images/security/security-guide-header.png +0 -0
  467. package/resources/local/ecc/assets/images/shortform/00-header.png +0 -0
  468. package/resources/local/ecc/assets/images/shortform/01-hackathon-tweet.png +0 -0
  469. package/resources/local/ecc/assets/images/shortform/02-chaining-commands.jpeg +0 -0
  470. package/resources/local/ecc/assets/images/shortform/03-posttooluse-hook.png +0 -0
  471. package/resources/local/ecc/assets/images/shortform/04-supabase-mcp.jpeg +0 -0
  472. package/resources/local/ecc/assets/images/shortform/05-plugins-interface.jpeg +0 -0
  473. package/resources/local/ecc/assets/images/shortform/06-marketplaces-mgrep.jpeg +0 -0
  474. package/resources/local/ecc/assets/images/shortform/07-tmux-video.mp4 +0 -0
  475. package/resources/local/ecc/assets/images/shortform/08-github-pr-review.jpeg +0 -0
  476. package/resources/local/ecc/assets/images/shortform/09-zed-editor.jpeg +0 -0
  477. package/resources/local/ecc/assets/images/shortform/10-vscode-extension.jpeg +0 -0
  478. package/resources/local/ecc/assets/images/shortform/11-statusline.jpeg +0 -0
  479. package/resources/local/ecc/commands/aside.md +164 -0
  480. package/resources/local/ecc/commands/auto-update.md +28 -0
  481. package/resources/local/ecc/commands/build-fix.md +66 -0
  482. package/resources/local/ecc/commands/checkpoint.md +78 -0
  483. package/resources/local/ecc/commands/code-review.md +289 -0
  484. package/resources/local/ecc/commands/cost-report.md +107 -0
  485. package/resources/local/ecc/commands/cpp-build.md +173 -0
  486. package/resources/local/ecc/commands/cpp-review.md +132 -0
  487. package/resources/local/ecc/commands/cpp-test.md +251 -0
  488. package/resources/local/ecc/commands/ecc-guide.md +93 -0
  489. package/resources/local/ecc/commands/evolve.md +178 -0
  490. package/resources/local/ecc/commands/fastapi-review.md +39 -0
  491. package/resources/local/ecc/commands/feature-dev.md +49 -0
  492. package/resources/local/ecc/commands/flutter-build.md +164 -0
  493. package/resources/local/ecc/commands/flutter-review.md +116 -0
  494. package/resources/local/ecc/commands/flutter-test.md +144 -0
  495. package/resources/local/ecc/commands/gan-build.md +103 -0
  496. package/resources/local/ecc/commands/gan-design.md +39 -0
  497. package/resources/local/ecc/commands/go-build.md +183 -0
  498. package/resources/local/ecc/commands/go-review.md +148 -0
  499. package/resources/local/ecc/commands/go-test.md +268 -0
  500. package/resources/local/ecc/commands/gradle-build.md +70 -0
  501. package/resources/local/ecc/commands/harness-audit.md +77 -0
  502. package/resources/local/ecc/commands/hookify-configure.md +14 -0
  503. package/resources/local/ecc/commands/hookify-help.md +46 -0
  504. package/resources/local/ecc/commands/hookify-list.md +21 -0
  505. package/resources/local/ecc/commands/hookify.md +50 -0
  506. package/resources/local/ecc/commands/instinct-export.md +66 -0
  507. package/resources/local/ecc/commands/instinct-import.md +114 -0
  508. package/resources/local/ecc/commands/instinct-status.md +59 -0
  509. package/resources/local/ecc/commands/jira.md +106 -0
  510. package/resources/local/ecc/commands/kotlin-build.md +174 -0
  511. package/resources/local/ecc/commands/kotlin-review.md +140 -0
  512. package/resources/local/ecc/commands/kotlin-test.md +312 -0
  513. package/resources/local/ecc/commands/learn-eval.md +116 -0
  514. package/resources/local/ecc/commands/learn.md +74 -0
  515. package/resources/local/ecc/commands/loop-start.md +36 -0
  516. package/resources/local/ecc/commands/loop-status.md +77 -0
  517. package/resources/local/ecc/commands/model-route.md +30 -0
  518. package/resources/local/ecc/commands/multi-backend.md +162 -0
  519. package/resources/local/ecc/commands/multi-execute.md +319 -0
  520. package/resources/local/ecc/commands/multi-frontend.md +162 -0
  521. package/resources/local/ecc/commands/multi-plan.md +272 -0
  522. package/resources/local/ecc/commands/multi-workflow.md +195 -0
  523. package/resources/local/ecc/commands/plan-prd.md +160 -0
  524. package/resources/local/ecc/commands/plan.md +200 -0
  525. package/resources/local/ecc/commands/pm2.md +276 -0
  526. package/resources/local/ecc/commands/pr.md +184 -0
  527. package/resources/local/ecc/commands/project-init.md +86 -0
  528. package/resources/local/ecc/commands/projects.md +39 -0
  529. package/resources/local/ecc/commands/promote.md +41 -0
  530. package/resources/local/ecc/commands/prp-commit.md +112 -0
  531. package/resources/local/ecc/commands/prp-implement.md +385 -0
  532. package/resources/local/ecc/commands/prp-plan.md +502 -0
  533. package/resources/local/ecc/commands/prp-pr.md +184 -0
  534. package/resources/local/ecc/commands/prp-prd.md +447 -0
  535. package/resources/local/ecc/commands/prune.md +31 -0
  536. package/resources/local/ecc/commands/python-review.md +297 -0
  537. package/resources/local/ecc/commands/quality-gate.md +33 -0
  538. package/resources/local/ecc/commands/refactor-clean.md +84 -0
  539. package/resources/local/ecc/commands/resume-session.md +156 -0
  540. package/resources/local/ecc/commands/review-pr.md +37 -0
  541. package/resources/local/ecc/commands/rust-build.md +187 -0
  542. package/resources/local/ecc/commands/rust-review.md +142 -0
  543. package/resources/local/ecc/commands/rust-test.md +308 -0
  544. package/resources/local/ecc/commands/santa-loop.md +175 -0
  545. package/resources/local/ecc/commands/save-session.md +275 -0
  546. package/resources/local/ecc/commands/security-scan.md +92 -0
  547. package/resources/local/ecc/commands/sessions.md +339 -0
  548. package/resources/local/ecc/commands/setup-pm.md +80 -0
  549. package/resources/local/ecc/commands/skill-create.md +174 -0
  550. package/resources/local/ecc/commands/skill-health.md +54 -0
  551. package/resources/local/ecc/commands/test-coverage.md +73 -0
  552. package/resources/local/ecc/commands/update-codemaps.md +76 -0
  553. package/resources/local/ecc/commands/update-docs.md +88 -0
  554. package/resources/local/ecc/commitlint.config.js +11 -0
  555. package/resources/local/ecc/config/project-stack-mappings.json +539 -0
  556. package/resources/local/ecc/contexts/dev.md +20 -0
  557. package/resources/local/ecc/contexts/research.md +26 -0
  558. package/resources/local/ecc/contexts/review.md +22 -0
  559. package/resources/local/ecc/docs/ANTIGRAVITY-GUIDE.md +156 -0
  560. package/resources/local/ecc/docs/ARCHITECTURE-IMPROVEMENTS.md +146 -0
  561. package/resources/local/ecc/docs/COMMAND-AGENT-MAP.md +67 -0
  562. package/resources/local/ecc/docs/COMMAND-REGISTRY.json +898 -0
  563. package/resources/local/ecc/docs/ECC-2.0-GA-ROADMAP.md +1026 -0
  564. package/resources/local/ecc/docs/ECC-2.0-REFERENCE-ARCHITECTURE.md +246 -0
  565. package/resources/local/ecc/docs/ECC-2.0-SESSION-ADAPTER-DISCOVERY.md +322 -0
  566. package/resources/local/ecc/docs/HERMES-OPENCLAW-MIGRATION.md +239 -0
  567. package/resources/local/ecc/docs/HERMES-SETUP.md +125 -0
  568. package/resources/local/ecc/docs/JOYCODE-GUIDE.md +55 -0
  569. package/resources/local/ecc/docs/MANUAL-ADAPTATION-GUIDE.md +214 -0
  570. package/resources/local/ecc/docs/MEGA-PLAN-REPO-PROMPTS-2026-03-12.md +286 -0
  571. package/resources/local/ecc/docs/PHASE1-ISSUE-BUNDLE-2026-03-12.md +272 -0
  572. package/resources/local/ecc/docs/PLAN-PRD-PATTERN.md +154 -0
  573. package/resources/local/ecc/docs/PR-399-REVIEW-2026-03-12.md +59 -0
  574. package/resources/local/ecc/docs/PR-QUEUE-TRIAGE-2026-03-13.md +355 -0
  575. package/resources/local/ecc/docs/QWEN-GUIDE.md +54 -0
  576. package/resources/local/ecc/docs/SELECTIVE-INSTALL-ARCHITECTURE.md +933 -0
  577. package/resources/local/ecc/docs/SELECTIVE-INSTALL-DESIGN.md +489 -0
  578. package/resources/local/ecc/docs/SESSION-ADAPTER-CONTRACT.md +293 -0
  579. package/resources/local/ecc/docs/SKILL-DEVELOPMENT-GUIDE.md +919 -0
  580. package/resources/local/ecc/docs/SKILL-PLACEMENT-POLICY.md +104 -0
  581. package/resources/local/ecc/docs/TROUBLESHOOTING.md +75 -0
  582. package/resources/local/ecc/docs/architecture/agentshield-enterprise-research-roadmap.md +373 -0
  583. package/resources/local/ecc/docs/architecture/cross-harness.md +133 -0
  584. package/resources/local/ecc/docs/architecture/discussion-response-playbook.md +90 -0
  585. package/resources/local/ecc/docs/architecture/evaluator-rag-prototype.md +158 -0
  586. package/resources/local/ecc/docs/architecture/harness-adapter-compliance.md +105 -0
  587. package/resources/local/ecc/docs/architecture/hud-status-session-control.md +80 -0
  588. package/resources/local/ecc/docs/architecture/observability-readiness.md +85 -0
  589. package/resources/local/ecc/docs/architecture/progress-sync-contract.md +67 -0
  590. package/resources/local/ecc/docs/business/metrics-and-sponsorship.md +74 -0
  591. package/resources/local/ecc/docs/business/social-launch-copy.md +72 -0
  592. package/resources/local/ecc/docs/capability-surface-selection.md +140 -0
  593. package/resources/local/ecc/docs/continuous-learning-v2-spec.md +14 -0
  594. package/resources/local/ecc/docs/drafts/release-1.10.1-announcement.md +63 -0
  595. package/resources/local/ecc/docs/examples/product-capability-template.md +84 -0
  596. package/resources/local/ecc/docs/examples/project-guidelines-template.md +347 -0
  597. package/resources/local/ecc/docs/fixes/HOOK-FIX-20260421-ADDENDUM.md +109 -0
  598. package/resources/local/ecc/docs/fixes/HOOK-FIX-20260421.md +144 -0
  599. package/resources/local/ecc/docs/fixes/INSTALL-HOOK-WRAPPER-FIX-20260422.md +66 -0
  600. package/resources/local/ecc/docs/fixes/PATCH-SETTINGS-SIMPLE-FIX-20260422.md +78 -0
  601. package/resources/local/ecc/docs/fixes/apply-hook-fix.sh +60 -0
  602. package/resources/local/ecc/docs/fixes/install_hook_wrapper.ps1 +167 -0
  603. package/resources/local/ecc/docs/fixes/patch_settings_cl_v2_simple.ps1 +187 -0
  604. package/resources/local/ecc/docs/hook-bug-workarounds.md +74 -0
  605. package/resources/local/ecc/docs/ja-JP/AGENTS.md +170 -0
  606. package/resources/local/ecc/docs/ja-JP/CHANGELOG.md +203 -0
  607. package/resources/local/ecc/docs/ja-JP/CLAUDE.md +81 -0
  608. package/resources/local/ecc/docs/ja-JP/CODE_OF_CONDUCT.md +82 -0
  609. package/resources/local/ecc/docs/ja-JP/COMMANDS-QUICK-REF.md +159 -0
  610. package/resources/local/ecc/docs/ja-JP/CONTRIBUTING.md +430 -0
  611. package/resources/local/ecc/docs/ja-JP/EVALUATION.md +122 -0
  612. package/resources/local/ecc/docs/ja-JP/GLOSSARY.md +53 -0
  613. package/resources/local/ecc/docs/ja-JP/README.md +799 -0
  614. package/resources/local/ecc/docs/ja-JP/RULES.md +38 -0
  615. package/resources/local/ecc/docs/ja-JP/SECURITY.md +101 -0
  616. package/resources/local/ecc/docs/ja-JP/SOUL.md +17 -0
  617. package/resources/local/ecc/docs/ja-JP/SPONSORING.md +43 -0
  618. package/resources/local/ecc/docs/ja-JP/SPONSORS.md +59 -0
  619. package/resources/local/ecc/docs/ja-JP/TROUBLESHOOTING.md +433 -0
  620. package/resources/local/ecc/docs/ja-JP/agents/a11y-architect.md +149 -0
  621. package/resources/local/ecc/docs/ja-JP/agents/architect.md +211 -0
  622. package/resources/local/ecc/docs/ja-JP/agents/build-error-resolver.md +534 -0
  623. package/resources/local/ecc/docs/ja-JP/agents/chief-of-staff.md +160 -0
  624. package/resources/local/ecc/docs/ja-JP/agents/code-architect.md +80 -0
  625. package/resources/local/ecc/docs/ja-JP/agents/code-explorer.md +78 -0
  626. package/resources/local/ecc/docs/ja-JP/agents/code-reviewer.md +104 -0
  627. package/resources/local/ecc/docs/ja-JP/agents/code-simplifier.md +56 -0
  628. package/resources/local/ecc/docs/ja-JP/agents/comment-analyzer.md +54 -0
  629. package/resources/local/ecc/docs/ja-JP/agents/conversation-analyzer.md +61 -0
  630. package/resources/local/ecc/docs/ja-JP/agents/cpp-build-resolver.md +99 -0
  631. package/resources/local/ecc/docs/ja-JP/agents/cpp-reviewer.md +81 -0
  632. package/resources/local/ecc/docs/ja-JP/agents/csharp-reviewer.md +110 -0
  633. package/resources/local/ecc/docs/ja-JP/agents/dart-build-resolver.md +210 -0
  634. package/resources/local/ecc/docs/ja-JP/agents/database-reviewer.md +654 -0
  635. package/resources/local/ecc/docs/ja-JP/agents/django-build-resolver.md +252 -0
  636. package/resources/local/ecc/docs/ja-JP/agents/django-reviewer.md +169 -0
  637. package/resources/local/ecc/docs/ja-JP/agents/doc-updater.md +452 -0
  638. package/resources/local/ecc/docs/ja-JP/agents/docs-lookup.md +77 -0
  639. package/resources/local/ecc/docs/ja-JP/agents/e2e-runner.md +636 -0
  640. package/resources/local/ecc/docs/ja-JP/agents/fastapi-reviewer.md +79 -0
  641. package/resources/local/ecc/docs/ja-JP/agents/flutter-reviewer.md +143 -0
  642. package/resources/local/ecc/docs/ja-JP/agents/fsharp-reviewer.md +100 -0
  643. package/resources/local/ecc/docs/ja-JP/agents/gan-evaluator.md +149 -0
  644. package/resources/local/ecc/docs/ja-JP/agents/gan-generator.md +93 -0
  645. package/resources/local/ecc/docs/ja-JP/agents/gan-planner.md +108 -0
  646. package/resources/local/ecc/docs/ja-JP/agents/go-build-resolver.md +368 -0
  647. package/resources/local/ecc/docs/ja-JP/agents/go-reviewer.md +269 -0
  648. package/resources/local/ecc/docs/ja-JP/agents/harmonyos-app-resolver.md +85 -0
  649. package/resources/local/ecc/docs/ja-JP/agents/harness-optimizer.md +44 -0
  650. package/resources/local/ecc/docs/ja-JP/agents/healthcare-reviewer.md +92 -0
  651. package/resources/local/ecc/docs/ja-JP/agents/homelab-architect.md +73 -0
  652. package/resources/local/ecc/docs/ja-JP/agents/java-build-resolver.md +87 -0
  653. package/resources/local/ecc/docs/ja-JP/agents/java-reviewer.md +73 -0
  654. package/resources/local/ecc/docs/ja-JP/agents/kotlin-build-resolver.md +70 -0
  655. package/resources/local/ecc/docs/ja-JP/agents/kotlin-reviewer.md +85 -0
  656. package/resources/local/ecc/docs/ja-JP/agents/loop-operator.md +45 -0
  657. package/resources/local/ecc/docs/ja-JP/agents/mle-reviewer.md +162 -0
  658. package/resources/local/ecc/docs/ja-JP/agents/network-architect.md +90 -0
  659. package/resources/local/ecc/docs/ja-JP/agents/network-config-reviewer.md +95 -0
  660. package/resources/local/ecc/docs/ja-JP/agents/network-troubleshooter.md +120 -0
  661. package/resources/local/ecc/docs/ja-JP/agents/opensource-forker.md +207 -0
  662. package/resources/local/ecc/docs/ja-JP/agents/opensource-packager.md +258 -0
  663. package/resources/local/ecc/docs/ja-JP/agents/opensource-sanitizer.md +197 -0
  664. package/resources/local/ecc/docs/ja-JP/agents/performance-optimizer.md +455 -0
  665. package/resources/local/ecc/docs/ja-JP/agents/planner.md +119 -0
  666. package/resources/local/ecc/docs/ja-JP/agents/pr-test-analyzer.md +54 -0
  667. package/resources/local/ecc/docs/ja-JP/agents/python-reviewer.md +469 -0
  668. package/resources/local/ecc/docs/ja-JP/agents/pytorch-build-resolver.md +125 -0
  669. package/resources/local/ecc/docs/ja-JP/agents/refactor-cleaner.md +306 -0
  670. package/resources/local/ecc/docs/ja-JP/agents/rust-build-resolver.md +157 -0
  671. package/resources/local/ecc/docs/ja-JP/agents/rust-reviewer.md +103 -0
  672. package/resources/local/ecc/docs/ja-JP/agents/security-reviewer.md +545 -0
  673. package/resources/local/ecc/docs/ja-JP/agents/seo-specialist.md +71 -0
  674. package/resources/local/ecc/docs/ja-JP/agents/silent-failure-hunter.md +59 -0
  675. package/resources/local/ecc/docs/ja-JP/agents/swift-build-resolver.md +170 -0
  676. package/resources/local/ecc/docs/ja-JP/agents/swift-reviewer.md +116 -0
  677. package/resources/local/ecc/docs/ja-JP/agents/tdd-guide.md +280 -0
  678. package/resources/local/ecc/docs/ja-JP/agents/type-design-analyzer.md +50 -0
  679. package/resources/local/ecc/docs/ja-JP/agents/typescript-reviewer.md +121 -0
  680. package/resources/local/ecc/docs/ja-JP/commands/README.md +113 -0
  681. package/resources/local/ecc/docs/ja-JP/commands/aside.md +166 -0
  682. package/resources/local/ecc/docs/ja-JP/commands/auto-update.md +28 -0
  683. package/resources/local/ecc/docs/ja-JP/commands/build-fix.md +29 -0
  684. package/resources/local/ecc/docs/ja-JP/commands/checkpoint.md +78 -0
  685. package/resources/local/ecc/docs/ja-JP/commands/claw.md +51 -0
  686. package/resources/local/ecc/docs/ja-JP/commands/code-review.md +43 -0
  687. package/resources/local/ecc/docs/ja-JP/commands/context-budget.md +29 -0
  688. package/resources/local/ecc/docs/ja-JP/commands/cost-report.md +99 -0
  689. package/resources/local/ecc/docs/ja-JP/commands/cpp-build.md +78 -0
  690. package/resources/local/ecc/docs/ja-JP/commands/cpp-review.md +82 -0
  691. package/resources/local/ecc/docs/ja-JP/commands/cpp-test.md +128 -0
  692. package/resources/local/ecc/docs/ja-JP/commands/devfleet.md +93 -0
  693. package/resources/local/ecc/docs/ja-JP/commands/docs.md +32 -0
  694. package/resources/local/ecc/docs/ja-JP/commands/e2e.md +370 -0
  695. package/resources/local/ecc/docs/ja-JP/commands/ecc-guide.md +93 -0
  696. package/resources/local/ecc/docs/ja-JP/commands/eval.md +120 -0
  697. package/resources/local/ecc/docs/ja-JP/commands/evolve.md +193 -0
  698. package/resources/local/ecc/docs/ja-JP/commands/fastapi-review.md +39 -0
  699. package/resources/local/ecc/docs/ja-JP/commands/feature-dev.md +49 -0
  700. package/resources/local/ecc/docs/ja-JP/commands/flutter-build.md +79 -0
  701. package/resources/local/ecc/docs/ja-JP/commands/flutter-review.md +116 -0
  702. package/resources/local/ecc/docs/ja-JP/commands/flutter-test.md +144 -0
  703. package/resources/local/ecc/docs/ja-JP/commands/gan-build.md +103 -0
  704. package/resources/local/ecc/docs/ja-JP/commands/gan-design.md +39 -0
  705. package/resources/local/ecc/docs/ja-JP/commands/go-build.md +183 -0
  706. package/resources/local/ecc/docs/ja-JP/commands/go-review.md +148 -0
  707. package/resources/local/ecc/docs/ja-JP/commands/go-test.md +268 -0
  708. package/resources/local/ecc/docs/ja-JP/commands/gradle-build.md +70 -0
  709. package/resources/local/ecc/docs/ja-JP/commands/harness-audit.md +77 -0
  710. package/resources/local/ecc/docs/ja-JP/commands/hookify-configure.md +14 -0
  711. package/resources/local/ecc/docs/ja-JP/commands/hookify-help.md +46 -0
  712. package/resources/local/ecc/docs/ja-JP/commands/hookify-list.md +21 -0
  713. package/resources/local/ecc/docs/ja-JP/commands/hookify.md +50 -0
  714. package/resources/local/ecc/docs/ja-JP/commands/instinct-export.md +91 -0
  715. package/resources/local/ecc/docs/ja-JP/commands/instinct-import.md +142 -0
  716. package/resources/local/ecc/docs/ja-JP/commands/instinct-status.md +86 -0
  717. package/resources/local/ecc/docs/ja-JP/commands/jira.md +106 -0
  718. package/resources/local/ecc/docs/ja-JP/commands/kotlin-build.md +174 -0
  719. package/resources/local/ecc/docs/ja-JP/commands/kotlin-review.md +140 -0
  720. package/resources/local/ecc/docs/ja-JP/commands/kotlin-test.md +312 -0
  721. package/resources/local/ecc/docs/ja-JP/commands/learn-eval.md +116 -0
  722. package/resources/local/ecc/docs/ja-JP/commands/learn.md +70 -0
  723. package/resources/local/ecc/docs/ja-JP/commands/loop-start.md +36 -0
  724. package/resources/local/ecc/docs/ja-JP/commands/loop-status.md +58 -0
  725. package/resources/local/ecc/docs/ja-JP/commands/model-route.md +30 -0
  726. package/resources/local/ecc/docs/ja-JP/commands/multi-backend.md +158 -0
  727. package/resources/local/ecc/docs/ja-JP/commands/multi-execute.md +315 -0
  728. package/resources/local/ecc/docs/ja-JP/commands/multi-frontend.md +158 -0
  729. package/resources/local/ecc/docs/ja-JP/commands/multi-plan.md +268 -0
  730. package/resources/local/ecc/docs/ja-JP/commands/multi-workflow.md +183 -0
  731. package/resources/local/ecc/docs/ja-JP/commands/orchestrate.md +172 -0
  732. package/resources/local/ecc/docs/ja-JP/commands/plan-prd.md +160 -0
  733. package/resources/local/ecc/docs/ja-JP/commands/plan.md +200 -0
  734. package/resources/local/ecc/docs/ja-JP/commands/pm2.md +272 -0
  735. package/resources/local/ecc/docs/ja-JP/commands/pr.md +184 -0
  736. package/resources/local/ecc/docs/ja-JP/commands/project-init.md +86 -0
  737. package/resources/local/ecc/docs/ja-JP/commands/projects.md +39 -0
  738. package/resources/local/ecc/docs/ja-JP/commands/promote.md +41 -0
  739. package/resources/local/ecc/docs/ja-JP/commands/prompt-optimize.md +37 -0
  740. package/resources/local/ecc/docs/ja-JP/commands/prp-commit.md +112 -0
  741. package/resources/local/ecc/docs/ja-JP/commands/prp-implement.md +385 -0
  742. package/resources/local/ecc/docs/ja-JP/commands/prp-plan.md +502 -0
  743. package/resources/local/ecc/docs/ja-JP/commands/prp-pr.md +184 -0
  744. package/resources/local/ecc/docs/ja-JP/commands/prp-prd.md +447 -0
  745. package/resources/local/ecc/docs/ja-JP/commands/prune.md +31 -0
  746. package/resources/local/ecc/docs/ja-JP/commands/python-review.md +297 -0
  747. package/resources/local/ecc/docs/ja-JP/commands/quality-gate.md +33 -0
  748. package/resources/local/ecc/docs/ja-JP/commands/refactor-clean.md +28 -0
  749. package/resources/local/ecc/docs/ja-JP/commands/resume-session.md +156 -0
  750. package/resources/local/ecc/docs/ja-JP/commands/review-pr.md +37 -0
  751. package/resources/local/ecc/docs/ja-JP/commands/rules-distill.md +11 -0
  752. package/resources/local/ecc/docs/ja-JP/commands/rust-build.md +187 -0
  753. package/resources/local/ecc/docs/ja-JP/commands/rust-review.md +142 -0
  754. package/resources/local/ecc/docs/ja-JP/commands/rust-test.md +308 -0
  755. package/resources/local/ecc/docs/ja-JP/commands/santa-loop.md +175 -0
  756. package/resources/local/ecc/docs/ja-JP/commands/save-session.md +276 -0
  757. package/resources/local/ecc/docs/ja-JP/commands/security-scan.md +92 -0
  758. package/resources/local/ecc/docs/ja-JP/commands/sessions.md +305 -0
  759. package/resources/local/ecc/docs/ja-JP/commands/setup-pm.md +80 -0
  760. package/resources/local/ecc/docs/ja-JP/commands/skill-create.md +174 -0
  761. package/resources/local/ecc/docs/ja-JP/commands/skill-health.md +54 -0
  762. package/resources/local/ecc/docs/ja-JP/commands/tdd.md +326 -0
  763. package/resources/local/ecc/docs/ja-JP/commands/test-coverage.md +27 -0
  764. package/resources/local/ecc/docs/ja-JP/commands/update-codemaps.md +17 -0
  765. package/resources/local/ecc/docs/ja-JP/commands/update-docs.md +31 -0
  766. package/resources/local/ecc/docs/ja-JP/commands/verify.md +59 -0
  767. package/resources/local/ecc/docs/ja-JP/contexts/dev.md +20 -0
  768. package/resources/local/ecc/docs/ja-JP/contexts/research.md +26 -0
  769. package/resources/local/ecc/docs/ja-JP/contexts/review.md +22 -0
  770. package/resources/local/ecc/docs/ja-JP/examples/CLAUDE.md +109 -0
  771. package/resources/local/ecc/docs/ja-JP/examples/django-api-CLAUDE.md +308 -0
  772. package/resources/local/ecc/docs/ja-JP/examples/go-microservice-CLAUDE.md +267 -0
  773. package/resources/local/ecc/docs/ja-JP/examples/harmonyos-app-CLAUDE.md +88 -0
  774. package/resources/local/ecc/docs/ja-JP/examples/laravel-api-CLAUDE.md +311 -0
  775. package/resources/local/ecc/docs/ja-JP/examples/rust-api-CLAUDE.md +285 -0
  776. package/resources/local/ecc/docs/ja-JP/examples/saas-nextjs-CLAUDE.md +166 -0
  777. package/resources/local/ecc/docs/ja-JP/examples/user-CLAUDE.md +109 -0
  778. package/resources/local/ecc/docs/ja-JP/hooks/README.md +249 -0
  779. package/resources/local/ecc/docs/ja-JP/plugins/README.md +87 -0
  780. package/resources/local/ecc/docs/ja-JP/rules/README.md +81 -0
  781. package/resources/local/ecc/docs/ja-JP/rules/angular/coding-style.md +182 -0
  782. package/resources/local/ecc/docs/ja-JP/rules/angular/hooks.md +25 -0
  783. package/resources/local/ecc/docs/ja-JP/rules/angular/patterns.md +249 -0
  784. package/resources/local/ecc/docs/ja-JP/rules/angular/security.md +87 -0
  785. package/resources/local/ecc/docs/ja-JP/rules/angular/testing.md +164 -0
  786. package/resources/local/ecc/docs/ja-JP/rules/arkts/coding-style.md +153 -0
  787. package/resources/local/ecc/docs/ja-JP/rules/arkts/hooks.md +135 -0
  788. package/resources/local/ecc/docs/ja-JP/rules/arkts/patterns.md +236 -0
  789. package/resources/local/ecc/docs/ja-JP/rules/arkts/security.md +141 -0
  790. package/resources/local/ecc/docs/ja-JP/rules/arkts/testing.md +126 -0
  791. package/resources/local/ecc/docs/ja-JP/rules/common/agents.md +49 -0
  792. package/resources/local/ecc/docs/ja-JP/rules/common/code-review.md +124 -0
  793. package/resources/local/ecc/docs/ja-JP/rules/common/coding-style.md +48 -0
  794. package/resources/local/ecc/docs/ja-JP/rules/common/development-workflow.md +44 -0
  795. package/resources/local/ecc/docs/ja-JP/rules/common/git-workflow.md +45 -0
  796. package/resources/local/ecc/docs/ja-JP/rules/common/hooks.md +30 -0
  797. package/resources/local/ecc/docs/ja-JP/rules/common/patterns.md +31 -0
  798. package/resources/local/ecc/docs/ja-JP/rules/common/performance.md +55 -0
  799. package/resources/local/ecc/docs/ja-JP/rules/common/security.md +29 -0
  800. package/resources/local/ecc/docs/ja-JP/rules/common/testing.md +29 -0
  801. package/resources/local/ecc/docs/ja-JP/rules/cpp/coding-style.md +44 -0
  802. package/resources/local/ecc/docs/ja-JP/rules/cpp/hooks.md +39 -0
  803. package/resources/local/ecc/docs/ja-JP/rules/cpp/patterns.md +51 -0
  804. package/resources/local/ecc/docs/ja-JP/rules/cpp/security.md +51 -0
  805. package/resources/local/ecc/docs/ja-JP/rules/cpp/testing.md +44 -0
  806. package/resources/local/ecc/docs/ja-JP/rules/csharp/coding-style.md +72 -0
  807. package/resources/local/ecc/docs/ja-JP/rules/csharp/hooks.md +25 -0
  808. package/resources/local/ecc/docs/ja-JP/rules/csharp/patterns.md +50 -0
  809. package/resources/local/ecc/docs/ja-JP/rules/csharp/security.md +58 -0
  810. package/resources/local/ecc/docs/ja-JP/rules/csharp/testing.md +46 -0
  811. package/resources/local/ecc/docs/ja-JP/rules/dart/coding-style.md +159 -0
  812. package/resources/local/ecc/docs/ja-JP/rules/dart/hooks.md +66 -0
  813. package/resources/local/ecc/docs/ja-JP/rules/dart/patterns.md +261 -0
  814. package/resources/local/ecc/docs/ja-JP/rules/dart/security.md +135 -0
  815. package/resources/local/ecc/docs/ja-JP/rules/dart/testing.md +215 -0
  816. package/resources/local/ecc/docs/ja-JP/rules/fsharp/coding-style.md +112 -0
  817. package/resources/local/ecc/docs/ja-JP/rules/fsharp/hooks.md +26 -0
  818. package/resources/local/ecc/docs/ja-JP/rules/fsharp/patterns.md +111 -0
  819. package/resources/local/ecc/docs/ja-JP/rules/fsharp/security.md +76 -0
  820. package/resources/local/ecc/docs/ja-JP/rules/fsharp/testing.md +62 -0
  821. package/resources/local/ecc/docs/ja-JP/rules/golang/coding-style.md +32 -0
  822. package/resources/local/ecc/docs/ja-JP/rules/golang/hooks.md +17 -0
  823. package/resources/local/ecc/docs/ja-JP/rules/golang/patterns.md +45 -0
  824. package/resources/local/ecc/docs/ja-JP/rules/golang/security.md +34 -0
  825. package/resources/local/ecc/docs/ja-JP/rules/golang/testing.md +31 -0
  826. package/resources/local/ecc/docs/ja-JP/rules/java/coding-style.md +114 -0
  827. package/resources/local/ecc/docs/ja-JP/rules/java/hooks.md +18 -0
  828. package/resources/local/ecc/docs/ja-JP/rules/java/patterns.md +147 -0
  829. package/resources/local/ecc/docs/ja-JP/rules/java/security.md +101 -0
  830. package/resources/local/ecc/docs/ja-JP/rules/java/testing.md +133 -0
  831. package/resources/local/ecc/docs/ja-JP/rules/kotlin/coding-style.md +86 -0
  832. package/resources/local/ecc/docs/ja-JP/rules/kotlin/hooks.md +17 -0
  833. package/resources/local/ecc/docs/ja-JP/rules/kotlin/patterns.md +146 -0
  834. package/resources/local/ecc/docs/ja-JP/rules/kotlin/security.md +82 -0
  835. package/resources/local/ecc/docs/ja-JP/rules/kotlin/testing.md +128 -0
  836. package/resources/local/ecc/docs/ja-JP/rules/perl/coding-style.md +46 -0
  837. package/resources/local/ecc/docs/ja-JP/rules/perl/hooks.md +22 -0
  838. package/resources/local/ecc/docs/ja-JP/rules/perl/patterns.md +76 -0
  839. package/resources/local/ecc/docs/ja-JP/rules/perl/security.md +69 -0
  840. package/resources/local/ecc/docs/ja-JP/rules/perl/testing.md +54 -0
  841. package/resources/local/ecc/docs/ja-JP/rules/php/coding-style.md +40 -0
  842. package/resources/local/ecc/docs/ja-JP/rules/php/hooks.md +24 -0
  843. package/resources/local/ecc/docs/ja-JP/rules/php/patterns.md +33 -0
  844. package/resources/local/ecc/docs/ja-JP/rules/php/security.md +37 -0
  845. package/resources/local/ecc/docs/ja-JP/rules/php/testing.md +39 -0
  846. package/resources/local/ecc/docs/ja-JP/rules/python/coding-style.md +42 -0
  847. package/resources/local/ecc/docs/ja-JP/rules/python/fastapi.md +58 -0
  848. package/resources/local/ecc/docs/ja-JP/rules/python/hooks.md +19 -0
  849. package/resources/local/ecc/docs/ja-JP/rules/python/patterns.md +39 -0
  850. package/resources/local/ecc/docs/ja-JP/rules/python/security.md +30 -0
  851. package/resources/local/ecc/docs/ja-JP/rules/python/testing.md +38 -0
  852. package/resources/local/ecc/docs/ja-JP/rules/ruby/coding-style.md +46 -0
  853. package/resources/local/ecc/docs/ja-JP/rules/ruby/hooks.md +37 -0
  854. package/resources/local/ecc/docs/ja-JP/rules/ruby/patterns.md +44 -0
  855. package/resources/local/ecc/docs/ja-JP/rules/ruby/security.md +51 -0
  856. package/resources/local/ecc/docs/ja-JP/rules/ruby/testing.md +51 -0
  857. package/resources/local/ecc/docs/ja-JP/rules/rust/coding-style.md +151 -0
  858. package/resources/local/ecc/docs/ja-JP/rules/rust/hooks.md +16 -0
  859. package/resources/local/ecc/docs/ja-JP/rules/rust/patterns.md +168 -0
  860. package/resources/local/ecc/docs/ja-JP/rules/rust/security.md +141 -0
  861. package/resources/local/ecc/docs/ja-JP/rules/rust/testing.md +154 -0
  862. package/resources/local/ecc/docs/ja-JP/rules/swift/coding-style.md +47 -0
  863. package/resources/local/ecc/docs/ja-JP/rules/swift/hooks.md +20 -0
  864. package/resources/local/ecc/docs/ja-JP/rules/swift/patterns.md +66 -0
  865. package/resources/local/ecc/docs/ja-JP/rules/swift/security.md +33 -0
  866. package/resources/local/ecc/docs/ja-JP/rules/swift/testing.md +45 -0
  867. package/resources/local/ecc/docs/ja-JP/rules/typescript/coding-style.md +199 -0
  868. package/resources/local/ecc/docs/ja-JP/rules/typescript/hooks.md +22 -0
  869. package/resources/local/ecc/docs/ja-JP/rules/typescript/patterns.md +52 -0
  870. package/resources/local/ecc/docs/ja-JP/rules/typescript/security.md +28 -0
  871. package/resources/local/ecc/docs/ja-JP/rules/typescript/testing.md +18 -0
  872. package/resources/local/ecc/docs/ja-JP/rules/web/coding-style.md +96 -0
  873. package/resources/local/ecc/docs/ja-JP/rules/web/design-quality.md +63 -0
  874. package/resources/local/ecc/docs/ja-JP/rules/web/hooks.md +129 -0
  875. package/resources/local/ecc/docs/ja-JP/rules/web/patterns.md +79 -0
  876. package/resources/local/ecc/docs/ja-JP/rules/web/performance.md +64 -0
  877. package/resources/local/ecc/docs/ja-JP/rules/web/security.md +57 -0
  878. package/resources/local/ecc/docs/ja-JP/rules/web/testing.md +55 -0
  879. package/resources/local/ecc/docs/ja-JP/skills/README.md +109 -0
  880. package/resources/local/ecc/docs/ja-JP/skills/accessibility/SKILL.md +145 -0
  881. package/resources/local/ecc/docs/ja-JP/skills/agent-architecture-audit/SKILL.md +256 -0
  882. package/resources/local/ecc/docs/ja-JP/skills/agent-eval/SKILL.md +145 -0
  883. package/resources/local/ecc/docs/ja-JP/skills/agent-harness-construction/SKILL.md +73 -0
  884. package/resources/local/ecc/docs/ja-JP/skills/agent-introspection-debugging/SKILL.md +153 -0
  885. package/resources/local/ecc/docs/ja-JP/skills/agent-payment-x402/SKILL.md +224 -0
  886. package/resources/local/ecc/docs/ja-JP/skills/agent-sort/SKILL.md +215 -0
  887. package/resources/local/ecc/docs/ja-JP/skills/agentic-engineering/SKILL.md +63 -0
  888. package/resources/local/ecc/docs/ja-JP/skills/agentic-os/SKILL.md +387 -0
  889. package/resources/local/ecc/docs/ja-JP/skills/ai-first-engineering/SKILL.md +51 -0
  890. package/resources/local/ecc/docs/ja-JP/skills/ai-regression-testing/SKILL.md +385 -0
  891. package/resources/local/ecc/docs/ja-JP/skills/android-clean-architecture/SKILL.md +339 -0
  892. package/resources/local/ecc/docs/ja-JP/skills/angular-developer/SKILL.md +154 -0
  893. package/resources/local/ecc/docs/ja-JP/skills/api-connector-builder/SKILL.md +120 -0
  894. package/resources/local/ecc/docs/ja-JP/skills/api-design/SKILL.md +457 -0
  895. package/resources/local/ecc/docs/ja-JP/skills/architecture-decision-records/SKILL.md +179 -0
  896. package/resources/local/ecc/docs/ja-JP/skills/article-writing/SKILL.md +79 -0
  897. package/resources/local/ecc/docs/ja-JP/skills/automation-audit-ops/SKILL.md +142 -0
  898. package/resources/local/ecc/docs/ja-JP/skills/autonomous-agent-harness/SKILL.md +103 -0
  899. package/resources/local/ecc/docs/ja-JP/skills/autonomous-loops/SKILL.md +77 -0
  900. package/resources/local/ecc/docs/ja-JP/skills/backend-patterns/SKILL.md +587 -0
  901. package/resources/local/ecc/docs/ja-JP/skills/benchmark/SKILL.md +93 -0
  902. package/resources/local/ecc/docs/ja-JP/skills/blueprint/SKILL.md +61 -0
  903. package/resources/local/ecc/docs/ja-JP/skills/brand-voice/SKILL.md +79 -0
  904. package/resources/local/ecc/docs/ja-JP/skills/browser-qa/SKILL.md +84 -0
  905. package/resources/local/ecc/docs/ja-JP/skills/bun-runtime/SKILL.md +70 -0
  906. package/resources/local/ecc/docs/ja-JP/skills/canary-watch/SKILL.md +96 -0
  907. package/resources/local/ecc/docs/ja-JP/skills/carrier-relationship-management/SKILL.md +60 -0
  908. package/resources/local/ecc/docs/ja-JP/skills/cisco-ios-patterns/SKILL.md +92 -0
  909. package/resources/local/ecc/docs/ja-JP/skills/ck/SKILL.md +99 -0
  910. package/resources/local/ecc/docs/ja-JP/skills/claude-devfleet/SKILL.md +69 -0
  911. package/resources/local/ecc/docs/ja-JP/skills/click-path-audit/SKILL.md +85 -0
  912. package/resources/local/ecc/docs/ja-JP/skills/clickhouse-io/SKILL.md +429 -0
  913. package/resources/local/ecc/docs/ja-JP/skills/code-tour/SKILL.md +57 -0
  914. package/resources/local/ecc/docs/ja-JP/skills/codebase-onboarding/SKILL.md +58 -0
  915. package/resources/local/ecc/docs/ja-JP/skills/coding-standards/SKILL.md +527 -0
  916. package/resources/local/ecc/docs/ja-JP/skills/compose-multiplatform-patterns/SKILL.md +299 -0
  917. package/resources/local/ecc/docs/ja-JP/skills/configure-ecc/SKILL.md +313 -0
  918. package/resources/local/ecc/docs/ja-JP/skills/connections-optimizer/SKILL.md +189 -0
  919. package/resources/local/ecc/docs/ja-JP/skills/content-engine/SKILL.md +131 -0
  920. package/resources/local/ecc/docs/ja-JP/skills/content-hash-cache-pattern/SKILL.md +161 -0
  921. package/resources/local/ecc/docs/ja-JP/skills/context-budget/SKILL.md +135 -0
  922. package/resources/local/ecc/docs/ja-JP/skills/continuous-agent-loop/SKILL.md +45 -0
  923. package/resources/local/ecc/docs/ja-JP/skills/continuous-learning/SKILL.md +110 -0
  924. package/resources/local/ecc/docs/ja-JP/skills/continuous-learning-v2/SKILL.md +268 -0
  925. package/resources/local/ecc/docs/ja-JP/skills/continuous-learning-v2/agents/observer.md +137 -0
  926. package/resources/local/ecc/docs/ja-JP/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
  927. package/resources/local/ecc/docs/ja-JP/skills/cost-tracking/SKILL.md +137 -0
  928. package/resources/local/ecc/docs/ja-JP/skills/council/SKILL.md +203 -0
  929. package/resources/local/ecc/docs/ja-JP/skills/cpp-coding-standards/SKILL.md +49 -0
  930. package/resources/local/ecc/docs/ja-JP/skills/cpp-testing/SKILL.md +322 -0
  931. package/resources/local/ecc/docs/ja-JP/skills/crosspost/SKILL.md +111 -0
  932. package/resources/local/ecc/docs/ja-JP/skills/csharp-testing/SKILL.md +321 -0
  933. package/resources/local/ecc/docs/ja-JP/skills/customer-billing-ops/SKILL.md +140 -0
  934. package/resources/local/ecc/docs/ja-JP/skills/customs-trade-compliance/SKILL.md +46 -0
  935. package/resources/local/ecc/docs/ja-JP/skills/dart-flutter-patterns/SKILL.md +53 -0
  936. package/resources/local/ecc/docs/ja-JP/skills/dashboard-builder/SKILL.md +58 -0
  937. package/resources/local/ecc/docs/ja-JP/skills/data-scraper-agent/SKILL.md +57 -0
  938. package/resources/local/ecc/docs/ja-JP/skills/database-migrations/SKILL.md +54 -0
  939. package/resources/local/ecc/docs/ja-JP/skills/deep-research/SKILL.md +33 -0
  940. package/resources/local/ecc/docs/ja-JP/skills/defi-amm-security/SKILL.md +46 -0
  941. package/resources/local/ecc/docs/ja-JP/skills/deployment-patterns/SKILL.md +50 -0
  942. package/resources/local/ecc/docs/ja-JP/skills/design-system/SKILL.md +53 -0
  943. package/resources/local/ecc/docs/ja-JP/skills/django-celery/SKILL.md +72 -0
  944. package/resources/local/ecc/docs/ja-JP/skills/django-patterns/SKILL.md +733 -0
  945. package/resources/local/ecc/docs/ja-JP/skills/django-security/SKILL.md +592 -0
  946. package/resources/local/ecc/docs/ja-JP/skills/django-tdd/SKILL.md +728 -0
  947. package/resources/local/ecc/docs/ja-JP/skills/django-verification/SKILL.md +460 -0
  948. package/resources/local/ecc/docs/ja-JP/skills/dmux-workflows/SKILL.md +68 -0
  949. package/resources/local/ecc/docs/ja-JP/skills/docker-patterns/SKILL.md +93 -0
  950. package/resources/local/ecc/docs/ja-JP/skills/documentation-lookup/SKILL.md +77 -0
  951. package/resources/local/ecc/docs/ja-JP/skills/dotnet-patterns/SKILL.md +321 -0
  952. package/resources/local/ecc/docs/ja-JP/skills/e2e-testing/SKILL.md +326 -0
  953. package/resources/local/ecc/docs/ja-JP/skills/ecc-guide/SKILL.md +189 -0
  954. package/resources/local/ecc/docs/ja-JP/skills/ecc-tools-cost-audit/SKILL.md +160 -0
  955. package/resources/local/ecc/docs/ja-JP/skills/email-ops/SKILL.md +121 -0
  956. package/resources/local/ecc/docs/ja-JP/skills/energy-procurement/SKILL.md +228 -0
  957. package/resources/local/ecc/docs/ja-JP/skills/enterprise-agent-ops/SKILL.md +50 -0
  958. package/resources/local/ecc/docs/ja-JP/skills/error-handling/SKILL.md +376 -0
  959. package/resources/local/ecc/docs/ja-JP/skills/eval-harness/SKILL.md +227 -0
  960. package/resources/local/ecc/docs/ja-JP/skills/evm-token-decimals/SKILL.md +130 -0
  961. package/resources/local/ecc/docs/ja-JP/skills/exa-search/SKILL.md +105 -0
  962. package/resources/local/ecc/docs/ja-JP/skills/fal-ai-media/SKILL.md +286 -0
  963. package/resources/local/ecc/docs/ja-JP/skills/fastapi-patterns/SKILL.md +327 -0
  964. package/resources/local/ecc/docs/ja-JP/skills/finance-billing-ops/SKILL.md +127 -0
  965. package/resources/local/ecc/docs/ja-JP/skills/flox-environments/SKILL.md +496 -0
  966. package/resources/local/ecc/docs/ja-JP/skills/flutter-dart-code-review/SKILL.md +435 -0
  967. package/resources/local/ecc/docs/ja-JP/skills/foundation-models-on-device/SKILL.md +243 -0
  968. package/resources/local/ecc/docs/ja-JP/skills/frontend-design-direction/SKILL.md +92 -0
  969. package/resources/local/ecc/docs/ja-JP/skills/frontend-patterns/SKILL.md +631 -0
  970. package/resources/local/ecc/docs/ja-JP/skills/frontend-slides/SKILL.md +184 -0
  971. package/resources/local/ecc/docs/ja-JP/skills/frontend-slides/STYLE_PRESETS.md +333 -0
  972. package/resources/local/ecc/docs/ja-JP/skills/fsharp-testing/SKILL.md +280 -0
  973. package/resources/local/ecc/docs/ja-JP/skills/gan-style-harness/SKILL.md +278 -0
  974. package/resources/local/ecc/docs/ja-JP/skills/gateguard/SKILL.md +125 -0
  975. package/resources/local/ecc/docs/ja-JP/skills/git-workflow/SKILL.md +715 -0
  976. package/resources/local/ecc/docs/ja-JP/skills/github-ops/SKILL.md +144 -0
  977. package/resources/local/ecc/docs/ja-JP/skills/golang-patterns/SKILL.md +673 -0
  978. package/resources/local/ecc/docs/ja-JP/skills/golang-testing/SKILL.md +959 -0
  979. package/resources/local/ecc/docs/ja-JP/skills/google-workspace-ops/SKILL.md +95 -0
  980. package/resources/local/ecc/docs/ja-JP/skills/healthcare-cdss-patterns/SKILL.md +245 -0
  981. package/resources/local/ecc/docs/ja-JP/skills/healthcare-emr-patterns/SKILL.md +159 -0
  982. package/resources/local/ecc/docs/ja-JP/skills/healthcare-eval-harness/SKILL.md +207 -0
  983. package/resources/local/ecc/docs/ja-JP/skills/healthcare-phi-compliance/SKILL.md +145 -0
  984. package/resources/local/ecc/docs/ja-JP/skills/hermes-imports/SKILL.md +88 -0
  985. package/resources/local/ecc/docs/ja-JP/skills/hexagonal-architecture/SKILL.md +276 -0
  986. package/resources/local/ecc/docs/ja-JP/skills/hipaa-compliance/SKILL.md +78 -0
  987. package/resources/local/ecc/docs/ja-JP/skills/homelab-network-readiness/SKILL.md +169 -0
  988. package/resources/local/ecc/docs/ja-JP/skills/homelab-network-setup/SKILL.md +129 -0
  989. package/resources/local/ecc/docs/ja-JP/skills/homelab-pihole-dns/SKILL.md +274 -0
  990. package/resources/local/ecc/docs/ja-JP/skills/homelab-vlan-segmentation/SKILL.md +311 -0
  991. package/resources/local/ecc/docs/ja-JP/skills/homelab-wireguard-vpn/SKILL.md +305 -0
  992. package/resources/local/ecc/docs/ja-JP/skills/hookify-rules/SKILL.md +128 -0
  993. package/resources/local/ecc/docs/ja-JP/skills/inventory-demand-planning/SKILL.md +247 -0
  994. package/resources/local/ecc/docs/ja-JP/skills/investor-materials/SKILL.md +96 -0
  995. package/resources/local/ecc/docs/ja-JP/skills/investor-outreach/SKILL.md +91 -0
  996. package/resources/local/ecc/docs/ja-JP/skills/ios-icon-gen/SKILL.md +157 -0
  997. package/resources/local/ecc/docs/ja-JP/skills/iterative-retrieval/SKILL.md +202 -0
  998. package/resources/local/ecc/docs/ja-JP/skills/java-coding-standards/SKILL.md +138 -0
  999. package/resources/local/ecc/docs/ja-JP/skills/jira-integration/SKILL.md +293 -0
  1000. package/resources/local/ecc/docs/ja-JP/skills/jpa-patterns/SKILL.md +141 -0
  1001. package/resources/local/ecc/docs/ja-JP/skills/knowledge-ops/SKILL.md +154 -0
  1002. package/resources/local/ecc/docs/ja-JP/skills/kotlin-coroutines-flows/SKILL.md +284 -0
  1003. package/resources/local/ecc/docs/ja-JP/skills/kotlin-exposed-patterns/SKILL.md +719 -0
  1004. package/resources/local/ecc/docs/ja-JP/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  1005. package/resources/local/ecc/docs/ja-JP/skills/kotlin-patterns/SKILL.md +711 -0
  1006. package/resources/local/ecc/docs/ja-JP/skills/kotlin-testing/SKILL.md +824 -0
  1007. package/resources/local/ecc/docs/ja-JP/skills/laravel-patterns/SKILL.md +415 -0
  1008. package/resources/local/ecc/docs/ja-JP/skills/laravel-plugin-discovery/SKILL.md +229 -0
  1009. package/resources/local/ecc/docs/ja-JP/skills/laravel-security/SKILL.md +285 -0
  1010. package/resources/local/ecc/docs/ja-JP/skills/laravel-tdd/SKILL.md +283 -0
  1011. package/resources/local/ecc/docs/ja-JP/skills/laravel-verification/SKILL.md +11 -0
  1012. package/resources/local/ecc/docs/ja-JP/skills/lead-intelligence/SKILL.md +11 -0
  1013. package/resources/local/ecc/docs/ja-JP/skills/liquid-glass-design/SKILL.md +11 -0
  1014. package/resources/local/ecc/docs/ja-JP/skills/llm-trading-agent-security/SKILL.md +11 -0
  1015. package/resources/local/ecc/docs/ja-JP/skills/logistics-exception-management/SKILL.md +11 -0
  1016. package/resources/local/ecc/docs/ja-JP/skills/make-interfaces-feel-better/SKILL.md +11 -0
  1017. package/resources/local/ecc/docs/ja-JP/skills/manim-video/SKILL.md +11 -0
  1018. package/resources/local/ecc/docs/ja-JP/skills/market-research/SKILL.md +11 -0
  1019. package/resources/local/ecc/docs/ja-JP/skills/mcp-server-patterns/SKILL.md +11 -0
  1020. package/resources/local/ecc/docs/ja-JP/skills/messages-ops/SKILL.md +11 -0
  1021. package/resources/local/ecc/docs/ja-JP/skills/mle-workflow/SKILL.md +11 -0
  1022. package/resources/local/ecc/docs/ja-JP/skills/motion-advanced/SKILL.md +11 -0
  1023. package/resources/local/ecc/docs/ja-JP/skills/motion-foundations/SKILL.md +11 -0
  1024. package/resources/local/ecc/docs/ja-JP/skills/motion-patterns/SKILL.md +11 -0
  1025. package/resources/local/ecc/docs/ja-JP/skills/motion-ui/SKILL.md +11 -0
  1026. package/resources/local/ecc/docs/ja-JP/skills/mysql-patterns/SKILL.md +11 -0
  1027. package/resources/local/ecc/docs/ja-JP/skills/nanoclaw-repl/SKILL.md +11 -0
  1028. package/resources/local/ecc/docs/ja-JP/skills/nestjs-patterns/SKILL.md +11 -0
  1029. package/resources/local/ecc/docs/ja-JP/skills/netmiko-ssh-automation/SKILL.md +11 -0
  1030. package/resources/local/ecc/docs/ja-JP/skills/network-bgp-diagnostics/SKILL.md +11 -0
  1031. package/resources/local/ecc/docs/ja-JP/skills/network-config-validation/SKILL.md +11 -0
  1032. package/resources/local/ecc/docs/ja-JP/skills/network-interface-health/SKILL.md +143 -0
  1033. package/resources/local/ecc/docs/ja-JP/skills/nextjs-turbopack/SKILL.md +44 -0
  1034. package/resources/local/ecc/docs/ja-JP/skills/nodejs-keccak256/SKILL.md +102 -0
  1035. package/resources/local/ecc/docs/ja-JP/skills/nutrient-document-processing/SKILL.md +164 -0
  1036. package/resources/local/ecc/docs/ja-JP/skills/nuxt4-patterns/SKILL.md +100 -0
  1037. package/resources/local/ecc/docs/ja-JP/skills/openclaw-persona-forge/SKILL.md +288 -0
  1038. package/resources/local/ecc/docs/ja-JP/skills/opensource-pipeline/SKILL.md +255 -0
  1039. package/resources/local/ecc/docs/ja-JP/skills/perl-patterns/SKILL.md +504 -0
  1040. package/resources/local/ecc/docs/ja-JP/skills/perl-security/SKILL.md +503 -0
  1041. package/resources/local/ecc/docs/ja-JP/skills/perl-testing/SKILL.md +11 -0
  1042. package/resources/local/ecc/docs/ja-JP/skills/plan-orchestrate/SKILL.md +11 -0
  1043. package/resources/local/ecc/docs/ja-JP/skills/plankton-code-quality/SKILL.md +11 -0
  1044. package/resources/local/ecc/docs/ja-JP/skills/postgres-patterns/SKILL.md +146 -0
  1045. package/resources/local/ecc/docs/ja-JP/skills/product-capability/SKILL.md +11 -0
  1046. package/resources/local/ecc/docs/ja-JP/skills/product-lens/SKILL.md +11 -0
  1047. package/resources/local/ecc/docs/ja-JP/skills/production-audit/SKILL.md +11 -0
  1048. package/resources/local/ecc/docs/ja-JP/skills/production-scheduling/SKILL.md +11 -0
  1049. package/resources/local/ecc/docs/ja-JP/skills/project-flow-ops/SKILL.md +11 -0
  1050. package/resources/local/ecc/docs/ja-JP/skills/project-guidelines-example/SKILL.md +345 -0
  1051. package/resources/local/ecc/docs/ja-JP/skills/prompt-optimizer/SKILL.md +11 -0
  1052. package/resources/local/ecc/docs/ja-JP/skills/python-patterns/SKILL.md +749 -0
  1053. package/resources/local/ecc/docs/ja-JP/skills/python-testing/SKILL.md +815 -0
  1054. package/resources/local/ecc/docs/ja-JP/skills/pytorch-patterns/SKILL.md +11 -0
  1055. package/resources/local/ecc/docs/ja-JP/skills/quality-nonconformance/SKILL.md +11 -0
  1056. package/resources/local/ecc/docs/ja-JP/skills/quarkus-patterns/SKILL.md +11 -0
  1057. package/resources/local/ecc/docs/ja-JP/skills/quarkus-security/SKILL.md +466 -0
  1058. package/resources/local/ecc/docs/ja-JP/skills/quarkus-tdd/SKILL.md +811 -0
  1059. package/resources/local/ecc/docs/ja-JP/skills/quarkus-verification/SKILL.md +479 -0
  1060. package/resources/local/ecc/docs/ja-JP/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
  1061. package/resources/local/ecc/docs/ja-JP/skills/redis-patterns/SKILL.md +403 -0
  1062. package/resources/local/ecc/docs/ja-JP/skills/regex-vs-llm-structured-text/SKILL.md +217 -0
  1063. package/resources/local/ecc/docs/ja-JP/skills/remotion-video-creation/SKILL.md +43 -0
  1064. package/resources/local/ecc/docs/ja-JP/skills/repo-scan/SKILL.md +79 -0
  1065. package/resources/local/ecc/docs/ja-JP/skills/research-ops/SKILL.md +112 -0
  1066. package/resources/local/ecc/docs/ja-JP/skills/returns-reverse-logistics/SKILL.md +225 -0
  1067. package/resources/local/ecc/docs/ja-JP/skills/rules-distill/SKILL.md +264 -0
  1068. package/resources/local/ecc/docs/ja-JP/skills/rust-patterns/SKILL.md +499 -0
  1069. package/resources/local/ecc/docs/ja-JP/skills/rust-testing/SKILL.md +502 -0
  1070. package/resources/local/ecc/docs/ja-JP/skills/safety-guard/SKILL.md +75 -0
  1071. package/resources/local/ecc/docs/ja-JP/skills/santa-method/SKILL.md +306 -0
  1072. package/resources/local/ecc/docs/ja-JP/skills/scientific-db-pubmed-database/SKILL.md +168 -0
  1073. package/resources/local/ecc/docs/ja-JP/skills/scientific-db-uspto-database/SKILL.md +158 -0
  1074. package/resources/local/ecc/docs/ja-JP/skills/scientific-pkg-gget/SKILL.md +154 -0
  1075. package/resources/local/ecc/docs/ja-JP/skills/scientific-thinking-literature-review/SKILL.md +184 -0
  1076. package/resources/local/ecc/docs/ja-JP/skills/scientific-thinking-scholar-evaluation/SKILL.md +159 -0
  1077. package/resources/local/ecc/docs/ja-JP/skills/search-first/SKILL.md +181 -0
  1078. package/resources/local/ecc/docs/ja-JP/skills/security-bounty-hunter/SKILL.md +99 -0
  1079. package/resources/local/ecc/docs/ja-JP/skills/security-review/SKILL.md +494 -0
  1080. package/resources/local/ecc/docs/ja-JP/skills/security-review/cloud-infrastructure-security.md +361 -0
  1081. package/resources/local/ecc/docs/ja-JP/skills/security-scan/SKILL.md +164 -0
  1082. package/resources/local/ecc/docs/ja-JP/skills/seo/SKILL.md +154 -0
  1083. package/resources/local/ecc/docs/ja-JP/skills/skill-comply/SKILL.md +60 -0
  1084. package/resources/local/ecc/docs/ja-JP/skills/skill-scout/SKILL.md +131 -0
  1085. package/resources/local/ecc/docs/ja-JP/skills/skill-stocktake/SKILL.md +194 -0
  1086. package/resources/local/ecc/docs/ja-JP/skills/social-graph-ranker/SKILL.md +154 -0
  1087. package/resources/local/ecc/docs/ja-JP/skills/springboot-patterns/SKILL.md +304 -0
  1088. package/resources/local/ecc/docs/ja-JP/skills/springboot-security/SKILL.md +119 -0
  1089. package/resources/local/ecc/docs/ja-JP/skills/springboot-tdd/SKILL.md +157 -0
  1090. package/resources/local/ecc/docs/ja-JP/skills/springboot-verification/SKILL.md +100 -0
  1091. package/resources/local/ecc/docs/ja-JP/skills/strategic-compact/SKILL.md +66 -0
  1092. package/resources/local/ecc/docs/ja-JP/skills/swift-actor-persistence/SKILL.md +157 -0
  1093. package/resources/local/ecc/docs/ja-JP/skills/swift-concurrency-6-2/SKILL.md +217 -0
  1094. package/resources/local/ecc/docs/ja-JP/skills/swift-protocol-di-testing/SKILL.md +190 -0
  1095. package/resources/local/ecc/docs/ja-JP/skills/swiftui-patterns/SKILL.md +259 -0
  1096. package/resources/local/ecc/docs/ja-JP/skills/tdd-workflow/SKILL.md +409 -0
  1097. package/resources/local/ecc/docs/ja-JP/skills/team-builder/SKILL.md +165 -0
  1098. package/resources/local/ecc/docs/ja-JP/skills/terminal-ops/SKILL.md +109 -0
  1099. package/resources/local/ecc/docs/ja-JP/skills/tinystruct-patterns/SKILL.md +104 -0
  1100. package/resources/local/ecc/docs/ja-JP/skills/token-budget-advisor/SKILL.md +121 -0
  1101. package/resources/local/ecc/docs/ja-JP/skills/ui-demo/SKILL.md +465 -0
  1102. package/resources/local/ecc/docs/ja-JP/skills/ui-to-vue/SKILL.md +86 -0
  1103. package/resources/local/ecc/docs/ja-JP/skills/unified-notifications-ops/SKILL.md +197 -0
  1104. package/resources/local/ecc/docs/ja-JP/skills/verification-loop/SKILL.md +120 -0
  1105. package/resources/local/ecc/docs/ja-JP/skills/video-editing/SKILL.md +317 -0
  1106. package/resources/local/ecc/docs/ja-JP/skills/videodb/SKILL.md +386 -0
  1107. package/resources/local/ecc/docs/ja-JP/skills/videodb/reference/api-reference.md +550 -0
  1108. package/resources/local/ecc/docs/ja-JP/skills/videodb/reference/capture-reference.md +416 -0
  1109. package/resources/local/ecc/docs/ja-JP/skills/videodb/reference/capture.md +104 -0
  1110. package/resources/local/ecc/docs/ja-JP/skills/videodb/reference/editor.md +443 -0
  1111. package/resources/local/ecc/docs/ja-JP/skills/videodb/reference/generative.md +331 -0
  1112. package/resources/local/ecc/docs/ja-JP/skills/videodb/reference/rtstream-reference.md +567 -0
  1113. package/resources/local/ecc/docs/ja-JP/skills/videodb/reference/rtstream.md +59 -0
  1114. package/resources/local/ecc/docs/ja-JP/skills/videodb/reference/search.md +230 -0
  1115. package/resources/local/ecc/docs/ja-JP/skills/videodb/reference/streaming.md +406 -0
  1116. package/resources/local/ecc/docs/ja-JP/skills/videodb/reference/use-cases.md +142 -0
  1117. package/resources/local/ecc/docs/ja-JP/skills/visa-doc-translate/README.md +91 -0
  1118. package/resources/local/ecc/docs/ja-JP/skills/visa-doc-translate/SKILL.md +119 -0
  1119. package/resources/local/ecc/docs/ja-JP/skills/vite-patterns/SKILL.md +449 -0
  1120. package/resources/local/ecc/docs/ja-JP/skills/windows-desktop-e2e/SKILL.md +784 -0
  1121. package/resources/local/ecc/docs/ja-JP/skills/workspace-surface-audit/SKILL.md +125 -0
  1122. package/resources/local/ecc/docs/ja-JP/skills/x-api/SKILL.md +210 -0
  1123. package/resources/local/ecc/docs/ja-JP/the-longform-guide.md +354 -0
  1124. package/resources/local/ecc/docs/ja-JP/the-openclaw-guide.md +471 -0
  1125. package/resources/local/ecc/docs/ja-JP/the-security-guide.md +257 -0
  1126. package/resources/local/ecc/docs/ja-JP/the-shortform-guide.md +429 -0
  1127. package/resources/local/ecc/docs/ko-KR/CONTRIBUTING.md +453 -0
  1128. package/resources/local/ecc/docs/ko-KR/README.md +731 -0
  1129. package/resources/local/ecc/docs/ko-KR/TERMINOLOGY.md +104 -0
  1130. package/resources/local/ecc/docs/ko-KR/agents/architect.md +211 -0
  1131. package/resources/local/ecc/docs/ko-KR/agents/build-error-resolver.md +114 -0
  1132. package/resources/local/ecc/docs/ko-KR/agents/code-reviewer.md +237 -0
  1133. package/resources/local/ecc/docs/ko-KR/agents/database-reviewer.md +87 -0
  1134. package/resources/local/ecc/docs/ko-KR/agents/doc-updater.md +107 -0
  1135. package/resources/local/ecc/docs/ko-KR/agents/e2e-runner.md +103 -0
  1136. package/resources/local/ecc/docs/ko-KR/agents/go-build-resolver.md +92 -0
  1137. package/resources/local/ecc/docs/ko-KR/agents/go-reviewer.md +74 -0
  1138. package/resources/local/ecc/docs/ko-KR/agents/planner.md +209 -0
  1139. package/resources/local/ecc/docs/ko-KR/agents/refactor-cleaner.md +85 -0
  1140. package/resources/local/ecc/docs/ko-KR/agents/security-reviewer.md +104 -0
  1141. package/resources/local/ecc/docs/ko-KR/agents/tdd-guide.md +101 -0
  1142. package/resources/local/ecc/docs/ko-KR/commands/build-fix.md +68 -0
  1143. package/resources/local/ecc/docs/ko-KR/commands/checkpoint.md +79 -0
  1144. package/resources/local/ecc/docs/ko-KR/commands/code-review.md +40 -0
  1145. package/resources/local/ecc/docs/ko-KR/commands/e2e.md +334 -0
  1146. package/resources/local/ecc/docs/ko-KR/commands/eval.md +120 -0
  1147. package/resources/local/ecc/docs/ko-KR/commands/go-build.md +183 -0
  1148. package/resources/local/ecc/docs/ko-KR/commands/go-review.md +148 -0
  1149. package/resources/local/ecc/docs/ko-KR/commands/go-test.md +268 -0
  1150. package/resources/local/ecc/docs/ko-KR/commands/learn.md +70 -0
  1151. package/resources/local/ecc/docs/ko-KR/commands/orchestrate.md +172 -0
  1152. package/resources/local/ecc/docs/ko-KR/commands/plan.md +113 -0
  1153. package/resources/local/ecc/docs/ko-KR/commands/refactor-clean.md +80 -0
  1154. package/resources/local/ecc/docs/ko-KR/commands/setup-pm.md +80 -0
  1155. package/resources/local/ecc/docs/ko-KR/commands/tdd.md +326 -0
  1156. package/resources/local/ecc/docs/ko-KR/commands/test-coverage.md +74 -0
  1157. package/resources/local/ecc/docs/ko-KR/commands/update-codemaps.md +79 -0
  1158. package/resources/local/ecc/docs/ko-KR/commands/update-docs.md +89 -0
  1159. package/resources/local/ecc/docs/ko-KR/commands/verify.md +63 -0
  1160. package/resources/local/ecc/docs/ko-KR/examples/CLAUDE.md +109 -0
  1161. package/resources/local/ecc/docs/ko-KR/examples/django-api-CLAUDE.md +308 -0
  1162. package/resources/local/ecc/docs/ko-KR/examples/go-microservice-CLAUDE.md +267 -0
  1163. package/resources/local/ecc/docs/ko-KR/examples/rust-api-CLAUDE.md +291 -0
  1164. package/resources/local/ecc/docs/ko-KR/examples/saas-nextjs-CLAUDE.md +166 -0
  1165. package/resources/local/ecc/docs/ko-KR/examples/statusline.json +19 -0
  1166. package/resources/local/ecc/docs/ko-KR/examples/user-CLAUDE.md +109 -0
  1167. package/resources/local/ecc/docs/ko-KR/rules/agents.md +52 -0
  1168. package/resources/local/ecc/docs/ko-KR/rules/coding-style.md +48 -0
  1169. package/resources/local/ecc/docs/ko-KR/rules/git-workflow.md +24 -0
  1170. package/resources/local/ecc/docs/ko-KR/rules/hooks.md +30 -0
  1171. package/resources/local/ecc/docs/ko-KR/rules/patterns.md +31 -0
  1172. package/resources/local/ecc/docs/ko-KR/rules/performance.md +55 -0
  1173. package/resources/local/ecc/docs/ko-KR/rules/security.md +29 -0
  1174. package/resources/local/ecc/docs/ko-KR/rules/testing.md +29 -0
  1175. package/resources/local/ecc/docs/ko-KR/skills/backend-patterns/SKILL.md +599 -0
  1176. package/resources/local/ecc/docs/ko-KR/skills/clickhouse-io/SKILL.md +447 -0
  1177. package/resources/local/ecc/docs/ko-KR/skills/coding-standards/SKILL.md +530 -0
  1178. package/resources/local/ecc/docs/ko-KR/skills/continuous-learning/SKILL.md +148 -0
  1179. package/resources/local/ecc/docs/ko-KR/skills/continuous-learning-v2/SKILL.md +346 -0
  1180. package/resources/local/ecc/docs/ko-KR/skills/eval-harness/SKILL.md +270 -0
  1181. package/resources/local/ecc/docs/ko-KR/skills/frontend-patterns/SKILL.md +652 -0
  1182. package/resources/local/ecc/docs/ko-KR/skills/golang-patterns/SKILL.md +675 -0
  1183. package/resources/local/ecc/docs/ko-KR/skills/golang-testing/SKILL.md +720 -0
  1184. package/resources/local/ecc/docs/ko-KR/skills/iterative-retrieval/SKILL.md +211 -0
  1185. package/resources/local/ecc/docs/ko-KR/skills/postgres-patterns/SKILL.md +147 -0
  1186. package/resources/local/ecc/docs/ko-KR/skills/security-review/SKILL.md +504 -0
  1187. package/resources/local/ecc/docs/ko-KR/skills/security-review/cloud-infrastructure-security.md +361 -0
  1188. package/resources/local/ecc/docs/ko-KR/skills/strategic-compact/SKILL.md +105 -0
  1189. package/resources/local/ecc/docs/ko-KR/skills/tdd-workflow/SKILL.md +408 -0
  1190. package/resources/local/ecc/docs/ko-KR/skills/verification-loop/SKILL.md +127 -0
  1191. package/resources/local/ecc/docs/legacy-artifact-inventory.md +112 -0
  1192. package/resources/local/ecc/docs/pt-BR/CONTRIBUTING.md +426 -0
  1193. package/resources/local/ecc/docs/pt-BR/README.md +518 -0
  1194. package/resources/local/ecc/docs/pt-BR/TERMINOLOGY.md +102 -0
  1195. package/resources/local/ecc/docs/pt-BR/agents/architect.md +80 -0
  1196. package/resources/local/ecc/docs/pt-BR/agents/build-error-resolver.md +80 -0
  1197. package/resources/local/ecc/docs/pt-BR/agents/code-reviewer.md +86 -0
  1198. package/resources/local/ecc/docs/pt-BR/agents/database-reviewer.md +91 -0
  1199. package/resources/local/ecc/docs/pt-BR/agents/doc-updater.md +99 -0
  1200. package/resources/local/ecc/docs/pt-BR/agents/e2e-runner.md +99 -0
  1201. package/resources/local/ecc/docs/pt-BR/agents/go-build-resolver.md +80 -0
  1202. package/resources/local/ecc/docs/pt-BR/agents/go-reviewer.md +76 -0
  1203. package/resources/local/ecc/docs/pt-BR/agents/planner.md +81 -0
  1204. package/resources/local/ecc/docs/pt-BR/agents/refactor-cleaner.md +85 -0
  1205. package/resources/local/ecc/docs/pt-BR/agents/security-reviewer.md +108 -0
  1206. package/resources/local/ecc/docs/pt-BR/agents/tdd-guide.md +80 -0
  1207. package/resources/local/ecc/docs/pt-BR/commands/build-fix.md +62 -0
  1208. package/resources/local/ecc/docs/pt-BR/commands/checkpoint.md +74 -0
  1209. package/resources/local/ecc/docs/pt-BR/commands/code-review.md +40 -0
  1210. package/resources/local/ecc/docs/pt-BR/commands/e2e.md +365 -0
  1211. package/resources/local/ecc/docs/pt-BR/commands/eval.md +120 -0
  1212. package/resources/local/ecc/docs/pt-BR/commands/go-build.md +183 -0
  1213. package/resources/local/ecc/docs/pt-BR/commands/go-review.md +147 -0
  1214. package/resources/local/ecc/docs/pt-BR/commands/go-test.md +268 -0
  1215. package/resources/local/ecc/docs/pt-BR/commands/learn.md +70 -0
  1216. package/resources/local/ecc/docs/pt-BR/commands/orchestrate.md +230 -0
  1217. package/resources/local/ecc/docs/pt-BR/commands/plan.md +113 -0
  1218. package/resources/local/ecc/docs/pt-BR/commands/refactor-clean.md +80 -0
  1219. package/resources/local/ecc/docs/pt-BR/commands/setup-pm.md +80 -0
  1220. package/resources/local/ecc/docs/pt-BR/commands/tdd.md +328 -0
  1221. package/resources/local/ecc/docs/pt-BR/commands/test-coverage.md +69 -0
  1222. package/resources/local/ecc/docs/pt-BR/commands/update-codemaps.md +72 -0
  1223. package/resources/local/ecc/docs/pt-BR/commands/update-docs.md +84 -0
  1224. package/resources/local/ecc/docs/pt-BR/commands/verify.md +59 -0
  1225. package/resources/local/ecc/docs/pt-BR/examples/CLAUDE.md +109 -0
  1226. package/resources/local/ecc/docs/pt-BR/examples/django-api-CLAUDE.md +308 -0
  1227. package/resources/local/ecc/docs/pt-BR/examples/go-microservice-CLAUDE.md +267 -0
  1228. package/resources/local/ecc/docs/pt-BR/examples/rust-api-CLAUDE.md +285 -0
  1229. package/resources/local/ecc/docs/pt-BR/examples/saas-nextjs-CLAUDE.md +166 -0
  1230. package/resources/local/ecc/docs/pt-BR/examples/user-CLAUDE.md +109 -0
  1231. package/resources/local/ecc/docs/pt-BR/rules/agents.md +50 -0
  1232. package/resources/local/ecc/docs/pt-BR/rules/coding-style.md +48 -0
  1233. package/resources/local/ecc/docs/pt-BR/rules/git-workflow.md +24 -0
  1234. package/resources/local/ecc/docs/pt-BR/rules/hooks.md +30 -0
  1235. package/resources/local/ecc/docs/pt-BR/rules/patterns.md +31 -0
  1236. package/resources/local/ecc/docs/pt-BR/rules/performance.md +55 -0
  1237. package/resources/local/ecc/docs/pt-BR/rules/security.md +29 -0
  1238. package/resources/local/ecc/docs/pt-BR/rules/testing.md +29 -0
  1239. package/resources/local/ecc/docs/releases/1.10.0/discussion-announcement.md +55 -0
  1240. package/resources/local/ecc/docs/releases/1.10.0/release-notes.md +70 -0
  1241. package/resources/local/ecc/docs/releases/1.10.0/x-thread.md +45 -0
  1242. package/resources/local/ecc/docs/releases/1.8.0/linkedin-post.md +13 -0
  1243. package/resources/local/ecc/docs/releases/1.8.0/reference-attribution.md +16 -0
  1244. package/resources/local/ecc/docs/releases/1.8.0/release-notes.md +20 -0
  1245. package/resources/local/ecc/docs/releases/1.8.0/x-quote-eval-skills.md +5 -0
  1246. package/resources/local/ecc/docs/releases/1.8.0/x-quote-plankton-deslop.md +5 -0
  1247. package/resources/local/ecc/docs/releases/1.8.0/x-thread.md +11 -0
  1248. package/resources/local/ecc/docs/releases/2.0.0-rc.1/article-outline.md +78 -0
  1249. package/resources/local/ecc/docs/releases/2.0.0-rc.1/demo-prompts.md +42 -0
  1250. package/resources/local/ecc/docs/releases/2.0.0-rc.1/launch-checklist.md +56 -0
  1251. package/resources/local/ecc/docs/releases/2.0.0-rc.1/linkedin-post.md +42 -0
  1252. package/resources/local/ecc/docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md +159 -0
  1253. package/resources/local/ecc/docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-15.md +55 -0
  1254. package/resources/local/ecc/docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-17.md +51 -0
  1255. package/resources/local/ecc/docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-18.md +51 -0
  1256. package/resources/local/ecc/docs/releases/2.0.0-rc.1/owner-queue-cleanup-2026-05-18.md +65 -0
  1257. package/resources/local/ecc/docs/releases/2.0.0-rc.1/preview-pack-manifest.md +110 -0
  1258. package/resources/local/ecc/docs/releases/2.0.0-rc.1/publication-evidence-2026-05-12.md +103 -0
  1259. package/resources/local/ecc/docs/releases/2.0.0-rc.1/publication-evidence-2026-05-13-post-hardening.md +98 -0
  1260. package/resources/local/ecc/docs/releases/2.0.0-rc.1/publication-evidence-2026-05-13.md +60 -0
  1261. package/resources/local/ecc/docs/releases/2.0.0-rc.1/publication-evidence-2026-05-15.md +187 -0
  1262. package/resources/local/ecc/docs/releases/2.0.0-rc.1/publication-evidence-2026-05-16.md +86 -0
  1263. package/resources/local/ecc/docs/releases/2.0.0-rc.1/publication-evidence-2026-05-17.md +113 -0
  1264. package/resources/local/ecc/docs/releases/2.0.0-rc.1/publication-evidence-2026-05-18.md +150 -0
  1265. package/resources/local/ecc/docs/releases/2.0.0-rc.1/publication-readiness.md +138 -0
  1266. package/resources/local/ecc/docs/releases/2.0.0-rc.1/quickstart.md +70 -0
  1267. package/resources/local/ecc/docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md +116 -0
  1268. package/resources/local/ecc/docs/releases/2.0.0-rc.1/release-notes.md +106 -0
  1269. package/resources/local/ecc/docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md +55 -0
  1270. package/resources/local/ecc/docs/releases/2.0.0-rc.1/telegram-handoff.md +30 -0
  1271. package/resources/local/ecc/docs/releases/2.0.0-rc.1/x-thread.md +83 -0
  1272. package/resources/local/ecc/docs/ru/README.md +1613 -0
  1273. package/resources/local/ecc/docs/security/supply-chain-incident-response.md +188 -0
  1274. package/resources/local/ecc/docs/skill-adaptation-policy.md +73 -0
  1275. package/resources/local/ecc/docs/stale-pr-salvage-ledger.md +173 -0
  1276. package/resources/local/ecc/docs/th/README.md +263 -0
  1277. package/resources/local/ecc/docs/token-optimization.md +156 -0
  1278. package/resources/local/ecc/docs/tr/AGENTS.md +160 -0
  1279. package/resources/local/ecc/docs/tr/CHANGELOG.md +189 -0
  1280. package/resources/local/ecc/docs/tr/CLAUDE.md +69 -0
  1281. package/resources/local/ecc/docs/tr/CODE_OF_CONDUCT.md +104 -0
  1282. package/resources/local/ecc/docs/tr/CONTRIBUTING.md +461 -0
  1283. package/resources/local/ecc/docs/tr/README.md +466 -0
  1284. package/resources/local/ecc/docs/tr/SECURITY.md +53 -0
  1285. package/resources/local/ecc/docs/tr/SPONSORING.md +43 -0
  1286. package/resources/local/ecc/docs/tr/SPONSORS.md +59 -0
  1287. package/resources/local/ecc/docs/tr/TERMINOLOGY.md +184 -0
  1288. package/resources/local/ecc/docs/tr/TROUBLESHOOTING.md +422 -0
  1289. package/resources/local/ecc/docs/tr/agents/architect.md +211 -0
  1290. package/resources/local/ecc/docs/tr/agents/build-error-resolver.md +114 -0
  1291. package/resources/local/ecc/docs/tr/agents/chief-of-staff.md +151 -0
  1292. package/resources/local/ecc/docs/tr/agents/code-reviewer.md +237 -0
  1293. package/resources/local/ecc/docs/tr/agents/cpp-build-resolver.md +90 -0
  1294. package/resources/local/ecc/docs/tr/agents/cpp-reviewer.md +72 -0
  1295. package/resources/local/ecc/docs/tr/agents/database-reviewer.md +91 -0
  1296. package/resources/local/ecc/docs/tr/agents/doc-updater.md +107 -0
  1297. package/resources/local/ecc/docs/tr/agents/docs-lookup.md +68 -0
  1298. package/resources/local/ecc/docs/tr/agents/e2e-runner.md +107 -0
  1299. package/resources/local/ecc/docs/tr/agents/flutter-reviewer.md +243 -0
  1300. package/resources/local/ecc/docs/tr/agents/go-build-resolver.md +94 -0
  1301. package/resources/local/ecc/docs/tr/agents/go-reviewer.md +76 -0
  1302. package/resources/local/ecc/docs/tr/agents/harness-optimizer.md +35 -0
  1303. package/resources/local/ecc/docs/tr/agents/java-build-resolver.md +155 -0
  1304. package/resources/local/ecc/docs/tr/agents/java-reviewer.md +94 -0
  1305. package/resources/local/ecc/docs/tr/agents/kotlin-build-resolver.md +118 -0
  1306. package/resources/local/ecc/docs/tr/agents/kotlin-reviewer.md +159 -0
  1307. package/resources/local/ecc/docs/tr/agents/loop-operator.md +36 -0
  1308. package/resources/local/ecc/docs/tr/agents/planner.md +212 -0
  1309. package/resources/local/ecc/docs/tr/agents/python-reviewer.md +98 -0
  1310. package/resources/local/ecc/docs/tr/agents/pytorch-build-resolver.md +120 -0
  1311. package/resources/local/ecc/docs/tr/agents/refactor-cleaner.md +85 -0
  1312. package/resources/local/ecc/docs/tr/agents/rust-build-resolver.md +148 -0
  1313. package/resources/local/ecc/docs/tr/agents/rust-reviewer.md +94 -0
  1314. package/resources/local/ecc/docs/tr/agents/security-reviewer.md +108 -0
  1315. package/resources/local/ecc/docs/tr/agents/tdd-guide.md +91 -0
  1316. package/resources/local/ecc/docs/tr/agents/typescript-reviewer.md +112 -0
  1317. package/resources/local/ecc/docs/tr/commands/build-fix.md +62 -0
  1318. package/resources/local/ecc/docs/tr/commands/checkpoint.md +74 -0
  1319. package/resources/local/ecc/docs/tr/commands/code-review.md +40 -0
  1320. package/resources/local/ecc/docs/tr/commands/e2e.md +365 -0
  1321. package/resources/local/ecc/docs/tr/commands/eval.md +120 -0
  1322. package/resources/local/ecc/docs/tr/commands/evolve.md +178 -0
  1323. package/resources/local/ecc/docs/tr/commands/go-build.md +183 -0
  1324. package/resources/local/ecc/docs/tr/commands/go-review.md +148 -0
  1325. package/resources/local/ecc/docs/tr/commands/go-test.md +268 -0
  1326. package/resources/local/ecc/docs/tr/commands/instinct-export.md +66 -0
  1327. package/resources/local/ecc/docs/tr/commands/instinct-import.md +114 -0
  1328. package/resources/local/ecc/docs/tr/commands/instinct-status.md +59 -0
  1329. package/resources/local/ecc/docs/tr/commands/learn-eval.md +116 -0
  1330. package/resources/local/ecc/docs/tr/commands/learn.md +70 -0
  1331. package/resources/local/ecc/docs/tr/commands/multi-backend.md +158 -0
  1332. package/resources/local/ecc/docs/tr/commands/multi-execute.md +315 -0
  1333. package/resources/local/ecc/docs/tr/commands/multi-frontend.md +158 -0
  1334. package/resources/local/ecc/docs/tr/commands/multi-plan.md +268 -0
  1335. package/resources/local/ecc/docs/tr/commands/multi-workflow.md +191 -0
  1336. package/resources/local/ecc/docs/tr/commands/orchestrate.md +231 -0
  1337. package/resources/local/ecc/docs/tr/commands/plan.md +115 -0
  1338. package/resources/local/ecc/docs/tr/commands/pm2.md +272 -0
  1339. package/resources/local/ecc/docs/tr/commands/refactor-clean.md +80 -0
  1340. package/resources/local/ecc/docs/tr/commands/sessions.md +293 -0
  1341. package/resources/local/ecc/docs/tr/commands/setup-pm.md +80 -0
  1342. package/resources/local/ecc/docs/tr/commands/skill-create.md +174 -0
  1343. package/resources/local/ecc/docs/tr/commands/tdd.md +328 -0
  1344. package/resources/local/ecc/docs/tr/commands/test-coverage.md +69 -0
  1345. package/resources/local/ecc/docs/tr/commands/update-docs.md +84 -0
  1346. package/resources/local/ecc/docs/tr/commands/verify.md +59 -0
  1347. package/resources/local/ecc/docs/tr/contexts/dev.md +20 -0
  1348. package/resources/local/ecc/docs/tr/contexts/research.md +26 -0
  1349. package/resources/local/ecc/docs/tr/contexts/review.md +22 -0
  1350. package/resources/local/ecc/docs/tr/examples/CLAUDE.md +109 -0
  1351. package/resources/local/ecc/docs/tr/examples/README.md +80 -0
  1352. package/resources/local/ecc/docs/tr/examples/statusline.json +19 -0
  1353. package/resources/local/ecc/docs/tr/examples/user-CLAUDE.md +109 -0
  1354. package/resources/local/ecc/docs/tr/rules/README.md +61 -0
  1355. package/resources/local/ecc/docs/tr/rules/common/agents.md +50 -0
  1356. package/resources/local/ecc/docs/tr/rules/common/coding-style.md +48 -0
  1357. package/resources/local/ecc/docs/tr/rules/common/development-workflow.md +38 -0
  1358. package/resources/local/ecc/docs/tr/rules/common/git-workflow.md +24 -0
  1359. package/resources/local/ecc/docs/tr/rules/common/hooks.md +30 -0
  1360. package/resources/local/ecc/docs/tr/rules/common/patterns.md +31 -0
  1361. package/resources/local/ecc/docs/tr/rules/common/performance.md +55 -0
  1362. package/resources/local/ecc/docs/tr/rules/common/security.md +29 -0
  1363. package/resources/local/ecc/docs/tr/rules/common/testing.md +29 -0
  1364. package/resources/local/ecc/docs/tr/rules/golang/coding-style.md +32 -0
  1365. package/resources/local/ecc/docs/tr/rules/golang/hooks.md +17 -0
  1366. package/resources/local/ecc/docs/tr/rules/golang/patterns.md +45 -0
  1367. package/resources/local/ecc/docs/tr/rules/golang/security.md +34 -0
  1368. package/resources/local/ecc/docs/tr/rules/golang/testing.md +31 -0
  1369. package/resources/local/ecc/docs/tr/rules/python/coding-style.md +42 -0
  1370. package/resources/local/ecc/docs/tr/rules/python/hooks.md +19 -0
  1371. package/resources/local/ecc/docs/tr/rules/python/patterns.md +39 -0
  1372. package/resources/local/ecc/docs/tr/rules/python/security.md +30 -0
  1373. package/resources/local/ecc/docs/tr/rules/python/testing.md +38 -0
  1374. package/resources/local/ecc/docs/tr/rules/typescript/coding-style.md +199 -0
  1375. package/resources/local/ecc/docs/tr/rules/typescript/hooks.md +22 -0
  1376. package/resources/local/ecc/docs/tr/rules/typescript/patterns.md +52 -0
  1377. package/resources/local/ecc/docs/tr/rules/typescript/security.md +28 -0
  1378. package/resources/local/ecc/docs/tr/rules/typescript/testing.md +18 -0
  1379. package/resources/local/ecc/docs/tr/skills/api-design/SKILL.md +523 -0
  1380. package/resources/local/ecc/docs/tr/skills/backend-patterns/SKILL.md +598 -0
  1381. package/resources/local/ecc/docs/tr/skills/coding-standards/SKILL.md +530 -0
  1382. package/resources/local/ecc/docs/tr/skills/continuous-learning/SKILL.md +119 -0
  1383. package/resources/local/ecc/docs/tr/skills/continuous-learning-v2/SKILL.md +347 -0
  1384. package/resources/local/ecc/docs/tr/skills/database-migrations/SKILL.md +319 -0
  1385. package/resources/local/ecc/docs/tr/skills/deployment-patterns/SKILL.md +427 -0
  1386. package/resources/local/ecc/docs/tr/skills/django-patterns/SKILL.md +734 -0
  1387. package/resources/local/ecc/docs/tr/skills/docker-patterns/SKILL.md +364 -0
  1388. package/resources/local/ecc/docs/tr/skills/e2e-testing/SKILL.md +326 -0
  1389. package/resources/local/ecc/docs/tr/skills/eval-harness/SKILL.md +270 -0
  1390. package/resources/local/ecc/docs/tr/skills/frontend-patterns/SKILL.md +642 -0
  1391. package/resources/local/ecc/docs/tr/skills/golang-patterns/SKILL.md +674 -0
  1392. package/resources/local/ecc/docs/tr/skills/golang-testing/SKILL.md +720 -0
  1393. package/resources/local/ecc/docs/tr/skills/jpa-patterns/SKILL.md +151 -0
  1394. package/resources/local/ecc/docs/tr/skills/kotlin-patterns/SKILL.md +535 -0
  1395. package/resources/local/ecc/docs/tr/skills/kotlin-testing/SKILL.md +578 -0
  1396. package/resources/local/ecc/docs/tr/skills/laravel-patterns/SKILL.md +415 -0
  1397. package/resources/local/ecc/docs/tr/skills/laravel-security/SKILL.md +285 -0
  1398. package/resources/local/ecc/docs/tr/skills/laravel-tdd/SKILL.md +283 -0
  1399. package/resources/local/ecc/docs/tr/skills/laravel-verification/SKILL.md +179 -0
  1400. package/resources/local/ecc/docs/tr/skills/nextjs-turbopack/SKILL.md +44 -0
  1401. package/resources/local/ecc/docs/tr/skills/postgres-patterns/SKILL.md +147 -0
  1402. package/resources/local/ecc/docs/tr/skills/python-patterns/SKILL.md +750 -0
  1403. package/resources/local/ecc/docs/tr/skills/python-testing/SKILL.md +816 -0
  1404. package/resources/local/ecc/docs/tr/skills/quarkus-patterns/SKILL.md +778 -0
  1405. package/resources/local/ecc/docs/tr/skills/quarkus-security/SKILL.md +474 -0
  1406. package/resources/local/ecc/docs/tr/skills/quarkus-tdd/SKILL.md +916 -0
  1407. package/resources/local/ecc/docs/tr/skills/quarkus-verification/SKILL.md +479 -0
  1408. package/resources/local/ecc/docs/tr/skills/rust-patterns/SKILL.md +499 -0
  1409. package/resources/local/ecc/docs/tr/skills/rust-testing/SKILL.md +500 -0
  1410. package/resources/local/ecc/docs/tr/skills/security-review/SKILL.md +495 -0
  1411. package/resources/local/ecc/docs/tr/skills/springboot-patterns/SKILL.md +312 -0
  1412. package/resources/local/ecc/docs/tr/skills/springboot-security/SKILL.md +272 -0
  1413. package/resources/local/ecc/docs/tr/skills/springboot-tdd/SKILL.md +158 -0
  1414. package/resources/local/ecc/docs/tr/skills/springboot-verification/SKILL.md +231 -0
  1415. package/resources/local/ecc/docs/tr/skills/tdd-workflow/SKILL.md +410 -0
  1416. package/resources/local/ecc/docs/tr/skills/verification-loop/SKILL.md +126 -0
  1417. package/resources/local/ecc/docs/tr/the-longform-guide.md +354 -0
  1418. package/resources/local/ecc/docs/tr/the-security-guide.md +455 -0
  1419. package/resources/local/ecc/docs/tr/the-shortform-guide.md +431 -0
  1420. package/resources/local/ecc/docs/vi-VN/README.md +179 -0
  1421. package/resources/local/ecc/docs/zh-CN/AGENTS.md +165 -0
  1422. package/resources/local/ecc/docs/zh-CN/CHANGELOG.md +189 -0
  1423. package/resources/local/ecc/docs/zh-CN/CLAUDE.md +70 -0
  1424. package/resources/local/ecc/docs/zh-CN/CODE_OF_CONDUCT.md +83 -0
  1425. package/resources/local/ecc/docs/zh-CN/CONTRIBUTING.md +465 -0
  1426. package/resources/local/ecc/docs/zh-CN/README.md +1415 -0
  1427. package/resources/local/ecc/docs/zh-CN/SECURITY.md +53 -0
  1428. package/resources/local/ecc/docs/zh-CN/SPONSORING.md +43 -0
  1429. package/resources/local/ecc/docs/zh-CN/SPONSORS.md +59 -0
  1430. package/resources/local/ecc/docs/zh-CN/TROUBLESHOOTING.md +446 -0
  1431. package/resources/local/ecc/docs/zh-CN/agents/architect.md +232 -0
  1432. package/resources/local/ecc/docs/zh-CN/agents/build-error-resolver.md +119 -0
  1433. package/resources/local/ecc/docs/zh-CN/agents/chief-of-staff.md +155 -0
  1434. package/resources/local/ecc/docs/zh-CN/agents/code-architect.md +71 -0
  1435. package/resources/local/ecc/docs/zh-CN/agents/code-explorer.md +69 -0
  1436. package/resources/local/ecc/docs/zh-CN/agents/code-reviewer.md +238 -0
  1437. package/resources/local/ecc/docs/zh-CN/agents/code-simplifier.md +47 -0
  1438. package/resources/local/ecc/docs/zh-CN/agents/comment-analyzer.md +45 -0
  1439. package/resources/local/ecc/docs/zh-CN/agents/conversation-analyzer.md +56 -0
  1440. package/resources/local/ecc/docs/zh-CN/agents/cpp-build-resolver.md +91 -0
  1441. package/resources/local/ecc/docs/zh-CN/agents/cpp-reviewer.md +79 -0
  1442. package/resources/local/ecc/docs/zh-CN/agents/csharp-reviewer.md +109 -0
  1443. package/resources/local/ecc/docs/zh-CN/agents/dart-build-resolver.md +202 -0
  1444. package/resources/local/ecc/docs/zh-CN/agents/database-reviewer.md +94 -0
  1445. package/resources/local/ecc/docs/zh-CN/agents/doc-updater.md +110 -0
  1446. package/resources/local/ecc/docs/zh-CN/agents/docs-lookup.md +68 -0
  1447. package/resources/local/ecc/docs/zh-CN/agents/e2e-runner.md +110 -0
  1448. package/resources/local/ecc/docs/zh-CN/agents/flutter-reviewer.md +250 -0
  1449. package/resources/local/ecc/docs/zh-CN/agents/gan-evaluator.md +223 -0
  1450. package/resources/local/ecc/docs/zh-CN/agents/gan-generator.md +139 -0
  1451. package/resources/local/ecc/docs/zh-CN/agents/gan-planner.md +99 -0
  1452. package/resources/local/ecc/docs/zh-CN/agents/go-build-resolver.md +95 -0
  1453. package/resources/local/ecc/docs/zh-CN/agents/go-reviewer.md +83 -0
  1454. package/resources/local/ecc/docs/zh-CN/agents/harness-optimizer.md +35 -0
  1455. package/resources/local/ecc/docs/zh-CN/agents/healthcare-reviewer.md +83 -0
  1456. package/resources/local/ecc/docs/zh-CN/agents/java-build-resolver.md +156 -0
  1457. package/resources/local/ecc/docs/zh-CN/agents/java-reviewer.md +107 -0
  1458. package/resources/local/ecc/docs/zh-CN/agents/kotlin-build-resolver.md +119 -0
  1459. package/resources/local/ecc/docs/zh-CN/agents/kotlin-reviewer.md +161 -0
  1460. package/resources/local/ecc/docs/zh-CN/agents/loop-operator.md +37 -0
  1461. package/resources/local/ecc/docs/zh-CN/agents/opensource-forker.md +203 -0
  1462. package/resources/local/ecc/docs/zh-CN/agents/opensource-packager.md +255 -0
  1463. package/resources/local/ecc/docs/zh-CN/agents/opensource-sanitizer.md +191 -0
  1464. package/resources/local/ecc/docs/zh-CN/agents/performance-optimizer.md +446 -0
  1465. package/resources/local/ecc/docs/zh-CN/agents/planner.md +215 -0
  1466. package/resources/local/ecc/docs/zh-CN/agents/pr-test-analyzer.md +45 -0
  1467. package/resources/local/ecc/docs/zh-CN/agents/python-reviewer.md +106 -0
  1468. package/resources/local/ecc/docs/zh-CN/agents/pytorch-build-resolver.md +122 -0
  1469. package/resources/local/ecc/docs/zh-CN/agents/refactor-cleaner.md +92 -0
  1470. package/resources/local/ecc/docs/zh-CN/agents/rust-build-resolver.md +149 -0
  1471. package/resources/local/ecc/docs/zh-CN/agents/rust-reviewer.md +95 -0
  1472. package/resources/local/ecc/docs/zh-CN/agents/security-reviewer.md +112 -0
  1473. package/resources/local/ecc/docs/zh-CN/agents/seo-specialist.md +63 -0
  1474. package/resources/local/ecc/docs/zh-CN/agents/silent-failure-hunter.md +50 -0
  1475. package/resources/local/ecc/docs/zh-CN/agents/tdd-guide.md +96 -0
  1476. package/resources/local/ecc/docs/zh-CN/agents/type-design-analyzer.md +41 -0
  1477. package/resources/local/ecc/docs/zh-CN/agents/typescript-reviewer.md +122 -0
  1478. package/resources/local/ecc/docs/zh-CN/commands/aside.md +173 -0
  1479. package/resources/local/ecc/docs/zh-CN/commands/auto-update.md +28 -0
  1480. package/resources/local/ecc/docs/zh-CN/commands/build-fix.md +64 -0
  1481. package/resources/local/ecc/docs/zh-CN/commands/checkpoint.md +78 -0
  1482. package/resources/local/ecc/docs/zh-CN/commands/claw.md +51 -0
  1483. package/resources/local/ecc/docs/zh-CN/commands/code-review.md +43 -0
  1484. package/resources/local/ecc/docs/zh-CN/commands/context-budget.md +29 -0
  1485. package/resources/local/ecc/docs/zh-CN/commands/cpp-build.md +173 -0
  1486. package/resources/local/ecc/docs/zh-CN/commands/cpp-review.md +140 -0
  1487. package/resources/local/ecc/docs/zh-CN/commands/cpp-test.md +257 -0
  1488. package/resources/local/ecc/docs/zh-CN/commands/devfleet.md +93 -0
  1489. package/resources/local/ecc/docs/zh-CN/commands/docs.md +32 -0
  1490. package/resources/local/ecc/docs/zh-CN/commands/e2e.md +374 -0
  1491. package/resources/local/ecc/docs/zh-CN/commands/eval.md +122 -0
  1492. package/resources/local/ecc/docs/zh-CN/commands/evolve.md +194 -0
  1493. package/resources/local/ecc/docs/zh-CN/commands/feature-dev.md +49 -0
  1494. package/resources/local/ecc/docs/zh-CN/commands/flutter-build.md +166 -0
  1495. package/resources/local/ecc/docs/zh-CN/commands/flutter-review.md +118 -0
  1496. package/resources/local/ecc/docs/zh-CN/commands/flutter-test.md +145 -0
  1497. package/resources/local/ecc/docs/zh-CN/commands/gan-build.md +109 -0
  1498. package/resources/local/ecc/docs/zh-CN/commands/gan-design.md +45 -0
  1499. package/resources/local/ecc/docs/zh-CN/commands/go-build.md +183 -0
  1500. package/resources/local/ecc/docs/zh-CN/commands/go-review.md +156 -0
  1501. package/resources/local/ecc/docs/zh-CN/commands/go-test.md +274 -0
  1502. package/resources/local/ecc/docs/zh-CN/commands/gradle-build.md +72 -0
  1503. package/resources/local/ecc/docs/zh-CN/commands/harness-audit.md +72 -0
  1504. package/resources/local/ecc/docs/zh-CN/commands/hookify-configure.md +14 -0
  1505. package/resources/local/ecc/docs/zh-CN/commands/hookify-help.md +46 -0
  1506. package/resources/local/ecc/docs/zh-CN/commands/hookify-list.md +21 -0
  1507. package/resources/local/ecc/docs/zh-CN/commands/hookify.md +50 -0
  1508. package/resources/local/ecc/docs/zh-CN/commands/instinct-export.md +67 -0
  1509. package/resources/local/ecc/docs/zh-CN/commands/instinct-import.md +117 -0
  1510. package/resources/local/ecc/docs/zh-CN/commands/instinct-status.md +59 -0
  1511. package/resources/local/ecc/docs/zh-CN/commands/jira.md +108 -0
  1512. package/resources/local/ecc/docs/zh-CN/commands/kotlin-build.md +176 -0
  1513. package/resources/local/ecc/docs/zh-CN/commands/kotlin-review.md +144 -0
  1514. package/resources/local/ecc/docs/zh-CN/commands/kotlin-test.md +315 -0
  1515. package/resources/local/ecc/docs/zh-CN/commands/learn-eval.md +117 -0
  1516. package/resources/local/ecc/docs/zh-CN/commands/learn.md +70 -0
  1517. package/resources/local/ecc/docs/zh-CN/commands/loop-start.md +33 -0
  1518. package/resources/local/ecc/docs/zh-CN/commands/loop-status.md +25 -0
  1519. package/resources/local/ecc/docs/zh-CN/commands/model-route.md +27 -0
  1520. package/resources/local/ecc/docs/zh-CN/commands/multi-backend.md +162 -0
  1521. package/resources/local/ecc/docs/zh-CN/commands/multi-execute.md +321 -0
  1522. package/resources/local/ecc/docs/zh-CN/commands/multi-frontend.md +162 -0
  1523. package/resources/local/ecc/docs/zh-CN/commands/multi-plan.md +278 -0
  1524. package/resources/local/ecc/docs/zh-CN/commands/multi-workflow.md +197 -0
  1525. package/resources/local/ecc/docs/zh-CN/commands/orchestrate.md +242 -0
  1526. package/resources/local/ecc/docs/zh-CN/commands/plan.md +118 -0
  1527. package/resources/local/ecc/docs/zh-CN/commands/pm2.md +283 -0
  1528. package/resources/local/ecc/docs/zh-CN/commands/projects.md +39 -0
  1529. package/resources/local/ecc/docs/zh-CN/commands/promote.md +41 -0
  1530. package/resources/local/ecc/docs/zh-CN/commands/prompt-optimize.md +37 -0
  1531. package/resources/local/ecc/docs/zh-CN/commands/prp-commit.md +115 -0
  1532. package/resources/local/ecc/docs/zh-CN/commands/prp-implement.md +394 -0
  1533. package/resources/local/ecc/docs/zh-CN/commands/prp-plan.md +506 -0
  1534. package/resources/local/ecc/docs/zh-CN/commands/prp-pr.md +188 -0
  1535. package/resources/local/ecc/docs/zh-CN/commands/prp-prd.md +453 -0
  1536. package/resources/local/ecc/docs/zh-CN/commands/prune.md +31 -0
  1537. package/resources/local/ecc/docs/zh-CN/commands/python-review.md +319 -0
  1538. package/resources/local/ecc/docs/zh-CN/commands/quality-gate.md +30 -0
  1539. package/resources/local/ecc/docs/zh-CN/commands/refactor-clean.md +83 -0
  1540. package/resources/local/ecc/docs/zh-CN/commands/resume-session.md +154 -0
  1541. package/resources/local/ecc/docs/zh-CN/commands/review-pr.md +37 -0
  1542. package/resources/local/ecc/docs/zh-CN/commands/rules-distill.md +11 -0
  1543. package/resources/local/ecc/docs/zh-CN/commands/rust-build.md +189 -0
  1544. package/resources/local/ecc/docs/zh-CN/commands/rust-review.md +146 -0
  1545. package/resources/local/ecc/docs/zh-CN/commands/rust-test.md +311 -0
  1546. package/resources/local/ecc/docs/zh-CN/commands/santa-loop.md +180 -0
  1547. package/resources/local/ecc/docs/zh-CN/commands/save-session.md +252 -0
  1548. package/resources/local/ecc/docs/zh-CN/commands/sessions.md +340 -0
  1549. package/resources/local/ecc/docs/zh-CN/commands/setup-pm.md +83 -0
  1550. package/resources/local/ecc/docs/zh-CN/commands/skill-create.md +176 -0
  1551. package/resources/local/ecc/docs/zh-CN/commands/skill-health.md +54 -0
  1552. package/resources/local/ecc/docs/zh-CN/commands/tdd.md +330 -0
  1553. package/resources/local/ecc/docs/zh-CN/commands/test-coverage.md +69 -0
  1554. package/resources/local/ecc/docs/zh-CN/commands/update-codemaps.md +73 -0
  1555. package/resources/local/ecc/docs/zh-CN/commands/update-docs.md +86 -0
  1556. package/resources/local/ecc/docs/zh-CN/commands/verify.md +60 -0
  1557. package/resources/local/ecc/docs/zh-CN/contexts/dev.md +23 -0
  1558. package/resources/local/ecc/docs/zh-CN/contexts/research.md +30 -0
  1559. package/resources/local/ecc/docs/zh-CN/contexts/review.md +25 -0
  1560. package/resources/local/ecc/docs/zh-CN/examples/CLAUDE.md +109 -0
  1561. package/resources/local/ecc/docs/zh-CN/examples/django-api-CLAUDE.md +308 -0
  1562. package/resources/local/ecc/docs/zh-CN/examples/go-microservice-CLAUDE.md +267 -0
  1563. package/resources/local/ecc/docs/zh-CN/examples/laravel-api-CLAUDE.md +311 -0
  1564. package/resources/local/ecc/docs/zh-CN/examples/rust-api-CLAUDE.md +285 -0
  1565. package/resources/local/ecc/docs/zh-CN/examples/saas-nextjs-CLAUDE.md +166 -0
  1566. package/resources/local/ecc/docs/zh-CN/examples/user-CLAUDE.md +118 -0
  1567. package/resources/local/ecc/docs/zh-CN/hooks/README.md +220 -0
  1568. package/resources/local/ecc/docs/zh-CN/plugins/README.md +89 -0
  1569. package/resources/local/ecc/docs/zh-CN/rules/README.md +105 -0
  1570. package/resources/local/ecc/docs/zh-CN/rules/common/agents.md +53 -0
  1571. package/resources/local/ecc/docs/zh-CN/rules/common/coding-style.md +52 -0
  1572. package/resources/local/ecc/docs/zh-CN/rules/common/development-workflow.md +38 -0
  1573. package/resources/local/ecc/docs/zh-CN/rules/common/git-workflow.md +26 -0
  1574. package/resources/local/ecc/docs/zh-CN/rules/common/hooks.md +33 -0
  1575. package/resources/local/ecc/docs/zh-CN/rules/common/patterns.md +34 -0
  1576. package/resources/local/ecc/docs/zh-CN/rules/common/performance.md +63 -0
  1577. package/resources/local/ecc/docs/zh-CN/rules/common/security.md +31 -0
  1578. package/resources/local/ecc/docs/zh-CN/rules/common/testing.md +31 -0
  1579. package/resources/local/ecc/docs/zh-CN/rules/cpp/coding-style.md +45 -0
  1580. package/resources/local/ecc/docs/zh-CN/rules/cpp/hooks.md +40 -0
  1581. package/resources/local/ecc/docs/zh-CN/rules/cpp/patterns.md +52 -0
  1582. package/resources/local/ecc/docs/zh-CN/rules/cpp/security.md +52 -0
  1583. package/resources/local/ecc/docs/zh-CN/rules/cpp/testing.md +45 -0
  1584. package/resources/local/ecc/docs/zh-CN/rules/csharp/coding-style.md +73 -0
  1585. package/resources/local/ecc/docs/zh-CN/rules/csharp/hooks.md +26 -0
  1586. package/resources/local/ecc/docs/zh-CN/rules/csharp/patterns.md +51 -0
  1587. package/resources/local/ecc/docs/zh-CN/rules/csharp/security.md +59 -0
  1588. package/resources/local/ecc/docs/zh-CN/rules/csharp/testing.md +47 -0
  1589. package/resources/local/ecc/docs/zh-CN/rules/golang/coding-style.md +33 -0
  1590. package/resources/local/ecc/docs/zh-CN/rules/golang/hooks.md +18 -0
  1591. package/resources/local/ecc/docs/zh-CN/rules/golang/patterns.md +46 -0
  1592. package/resources/local/ecc/docs/zh-CN/rules/golang/security.md +35 -0
  1593. package/resources/local/ecc/docs/zh-CN/rules/golang/testing.md +32 -0
  1594. package/resources/local/ecc/docs/zh-CN/rules/java/coding-style.md +117 -0
  1595. package/resources/local/ecc/docs/zh-CN/rules/java/hooks.md +19 -0
  1596. package/resources/local/ecc/docs/zh-CN/rules/java/patterns.md +148 -0
  1597. package/resources/local/ecc/docs/zh-CN/rules/java/security.md +102 -0
  1598. package/resources/local/ecc/docs/zh-CN/rules/java/testing.md +135 -0
  1599. package/resources/local/ecc/docs/zh-CN/rules/kotlin/coding-style.md +90 -0
  1600. package/resources/local/ecc/docs/zh-CN/rules/kotlin/hooks.md +18 -0
  1601. package/resources/local/ecc/docs/zh-CN/rules/kotlin/patterns.md +147 -0
  1602. package/resources/local/ecc/docs/zh-CN/rules/kotlin/security.md +83 -0
  1603. package/resources/local/ecc/docs/zh-CN/rules/kotlin/testing.md +129 -0
  1604. package/resources/local/ecc/docs/zh-CN/rules/perl/coding-style.md +47 -0
  1605. package/resources/local/ecc/docs/zh-CN/rules/perl/hooks.md +23 -0
  1606. package/resources/local/ecc/docs/zh-CN/rules/perl/patterns.md +77 -0
  1607. package/resources/local/ecc/docs/zh-CN/rules/perl/security.md +70 -0
  1608. package/resources/local/ecc/docs/zh-CN/rules/perl/testing.md +55 -0
  1609. package/resources/local/ecc/docs/zh-CN/rules/php/coding-style.md +41 -0
  1610. package/resources/local/ecc/docs/zh-CN/rules/php/hooks.md +25 -0
  1611. package/resources/local/ecc/docs/zh-CN/rules/php/patterns.md +34 -0
  1612. package/resources/local/ecc/docs/zh-CN/rules/php/security.md +38 -0
  1613. package/resources/local/ecc/docs/zh-CN/rules/php/testing.md +40 -0
  1614. package/resources/local/ecc/docs/zh-CN/rules/python/coding-style.md +43 -0
  1615. package/resources/local/ecc/docs/zh-CN/rules/python/hooks.md +20 -0
  1616. package/resources/local/ecc/docs/zh-CN/rules/python/patterns.md +40 -0
  1617. package/resources/local/ecc/docs/zh-CN/rules/python/security.md +31 -0
  1618. package/resources/local/ecc/docs/zh-CN/rules/python/testing.md +39 -0
  1619. package/resources/local/ecc/docs/zh-CN/rules/rust/coding-style.md +153 -0
  1620. package/resources/local/ecc/docs/zh-CN/rules/rust/hooks.md +17 -0
  1621. package/resources/local/ecc/docs/zh-CN/rules/rust/patterns.md +169 -0
  1622. package/resources/local/ecc/docs/zh-CN/rules/rust/security.md +142 -0
  1623. package/resources/local/ecc/docs/zh-CN/rules/rust/testing.md +156 -0
  1624. package/resources/local/ecc/docs/zh-CN/rules/swift/coding-style.md +48 -0
  1625. package/resources/local/ecc/docs/zh-CN/rules/swift/hooks.md +21 -0
  1626. package/resources/local/ecc/docs/zh-CN/rules/swift/patterns.md +67 -0
  1627. package/resources/local/ecc/docs/zh-CN/rules/swift/security.md +34 -0
  1628. package/resources/local/ecc/docs/zh-CN/rules/swift/testing.md +46 -0
  1629. package/resources/local/ecc/docs/zh-CN/rules/typescript/coding-style.md +200 -0
  1630. package/resources/local/ecc/docs/zh-CN/rules/typescript/hooks.md +23 -0
  1631. package/resources/local/ecc/docs/zh-CN/rules/typescript/patterns.md +53 -0
  1632. package/resources/local/ecc/docs/zh-CN/rules/typescript/security.md +29 -0
  1633. package/resources/local/ecc/docs/zh-CN/rules/typescript/testing.md +19 -0
  1634. package/resources/local/ecc/docs/zh-CN/skills/accessibility/SKILL.md +145 -0
  1635. package/resources/local/ecc/docs/zh-CN/skills/agent-eval/SKILL.md +149 -0
  1636. package/resources/local/ecc/docs/zh-CN/skills/agent-harness-construction/SKILL.md +77 -0
  1637. package/resources/local/ecc/docs/zh-CN/skills/agent-introspection-debugging/SKILL.md +161 -0
  1638. package/resources/local/ecc/docs/zh-CN/skills/agent-payment-x402/SKILL.md +182 -0
  1639. package/resources/local/ecc/docs/zh-CN/skills/agent-sort/SKILL.md +215 -0
  1640. package/resources/local/ecc/docs/zh-CN/skills/agentic-engineering/SKILL.md +66 -0
  1641. package/resources/local/ecc/docs/zh-CN/skills/ai-first-engineering/SKILL.md +55 -0
  1642. package/resources/local/ecc/docs/zh-CN/skills/ai-regression-testing/SKILL.md +387 -0
  1643. package/resources/local/ecc/docs/zh-CN/skills/android-clean-architecture/SKILL.md +339 -0
  1644. package/resources/local/ecc/docs/zh-CN/skills/api-connector-builder/SKILL.md +120 -0
  1645. package/resources/local/ecc/docs/zh-CN/skills/api-design/SKILL.md +523 -0
  1646. package/resources/local/ecc/docs/zh-CN/skills/architecture-decision-records/SKILL.md +183 -0
  1647. package/resources/local/ecc/docs/zh-CN/skills/article-writing/SKILL.md +92 -0
  1648. package/resources/local/ecc/docs/zh-CN/skills/automation-audit-ops/SKILL.md +142 -0
  1649. package/resources/local/ecc/docs/zh-CN/skills/autonomous-agent-harness/SKILL.md +279 -0
  1650. package/resources/local/ecc/docs/zh-CN/skills/autonomous-loops/SKILL.md +619 -0
  1651. package/resources/local/ecc/docs/zh-CN/skills/backend-patterns/SKILL.md +598 -0
  1652. package/resources/local/ecc/docs/zh-CN/skills/benchmark/SKILL.md +94 -0
  1653. package/resources/local/ecc/docs/zh-CN/skills/blueprint/SKILL.md +96 -0
  1654. package/resources/local/ecc/docs/zh-CN/skills/brand-voice/SKILL.md +97 -0
  1655. package/resources/local/ecc/docs/zh-CN/skills/browser-qa/SKILL.md +81 -0
  1656. package/resources/local/ecc/docs/zh-CN/skills/bun-runtime/SKILL.md +84 -0
  1657. package/resources/local/ecc/docs/zh-CN/skills/canary-watch/SKILL.md +104 -0
  1658. package/resources/local/ecc/docs/zh-CN/skills/carrier-relationship-management/SKILL.md +199 -0
  1659. package/resources/local/ecc/docs/zh-CN/skills/ck/SKILL.md +171 -0
  1660. package/resources/local/ecc/docs/zh-CN/skills/claude-devfleet/SKILL.md +104 -0
  1661. package/resources/local/ecc/docs/zh-CN/skills/click-path-audit/SKILL.md +257 -0
  1662. package/resources/local/ecc/docs/zh-CN/skills/clickhouse-io/SKILL.md +445 -0
  1663. package/resources/local/ecc/docs/zh-CN/skills/code-tour/SKILL.md +244 -0
  1664. package/resources/local/ecc/docs/zh-CN/skills/codebase-onboarding/SKILL.md +243 -0
  1665. package/resources/local/ecc/docs/zh-CN/skills/coding-standards/SKILL.md +537 -0
  1666. package/resources/local/ecc/docs/zh-CN/skills/compose-multiplatform-patterns/SKILL.md +299 -0
  1667. package/resources/local/ecc/docs/zh-CN/skills/configure-ecc/SKILL.md +400 -0
  1668. package/resources/local/ecc/docs/zh-CN/skills/connections-optimizer/SKILL.md +189 -0
  1669. package/resources/local/ecc/docs/zh-CN/skills/content-engine/SKILL.md +97 -0
  1670. package/resources/local/ecc/docs/zh-CN/skills/content-hash-cache-pattern/SKILL.md +161 -0
  1671. package/resources/local/ecc/docs/zh-CN/skills/context-budget/SKILL.md +143 -0
  1672. package/resources/local/ecc/docs/zh-CN/skills/continuous-agent-loop/SKILL.md +46 -0
  1673. package/resources/local/ecc/docs/zh-CN/skills/continuous-learning/SKILL.md +120 -0
  1674. package/resources/local/ecc/docs/zh-CN/skills/continuous-learning-v2/SKILL.md +355 -0
  1675. package/resources/local/ecc/docs/zh-CN/skills/continuous-learning-v2/agents/observer.md +214 -0
  1676. package/resources/local/ecc/docs/zh-CN/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
  1677. package/resources/local/ecc/docs/zh-CN/skills/council/SKILL.md +216 -0
  1678. package/resources/local/ecc/docs/zh-CN/skills/cpp-coding-standards/SKILL.md +723 -0
  1679. package/resources/local/ecc/docs/zh-CN/skills/cpp-testing/SKILL.md +324 -0
  1680. package/resources/local/ecc/docs/zh-CN/skills/crosspost/SKILL.md +207 -0
  1681. package/resources/local/ecc/docs/zh-CN/skills/csharp-testing/SKILL.md +321 -0
  1682. package/resources/local/ecc/docs/zh-CN/skills/customer-billing-ops/SKILL.md +140 -0
  1683. package/resources/local/ecc/docs/zh-CN/skills/customs-trade-compliance/SKILL.md +256 -0
  1684. package/resources/local/ecc/docs/zh-CN/skills/dart-flutter-patterns/SKILL.md +565 -0
  1685. package/resources/local/ecc/docs/zh-CN/skills/dashboard-builder/SKILL.md +108 -0
  1686. package/resources/local/ecc/docs/zh-CN/skills/data-scraper-agent/SKILL.md +772 -0
  1687. package/resources/local/ecc/docs/zh-CN/skills/database-migrations/SKILL.md +335 -0
  1688. package/resources/local/ecc/docs/zh-CN/skills/deep-research/SKILL.md +163 -0
  1689. package/resources/local/ecc/docs/zh-CN/skills/defi-amm-security/SKILL.md +166 -0
  1690. package/resources/local/ecc/docs/zh-CN/skills/deployment-patterns/SKILL.md +432 -0
  1691. package/resources/local/ecc/docs/zh-CN/skills/design-system/SKILL.md +85 -0
  1692. package/resources/local/ecc/docs/zh-CN/skills/django-patterns/SKILL.md +734 -0
  1693. package/resources/local/ecc/docs/zh-CN/skills/django-security/SKILL.md +593 -0
  1694. package/resources/local/ecc/docs/zh-CN/skills/django-tdd/SKILL.md +729 -0
  1695. package/resources/local/ecc/docs/zh-CN/skills/django-verification/SKILL.md +475 -0
  1696. package/resources/local/ecc/docs/zh-CN/skills/dmux-workflows/SKILL.md +193 -0
  1697. package/resources/local/ecc/docs/zh-CN/skills/docker-patterns/SKILL.md +365 -0
  1698. package/resources/local/ecc/docs/zh-CN/skills/documentation-lookup/SKILL.md +90 -0
  1699. package/resources/local/ecc/docs/zh-CN/skills/dotnet-patterns/SKILL.md +321 -0
  1700. package/resources/local/ecc/docs/zh-CN/skills/e2e-testing/SKILL.md +329 -0
  1701. package/resources/local/ecc/docs/zh-CN/skills/ecc-tools-cost-audit/SKILL.md +160 -0
  1702. package/resources/local/ecc/docs/zh-CN/skills/email-ops/SKILL.md +121 -0
  1703. package/resources/local/ecc/docs/zh-CN/skills/energy-procurement/SKILL.md +220 -0
  1704. package/resources/local/ecc/docs/zh-CN/skills/enterprise-agent-ops/SKILL.md +52 -0
  1705. package/resources/local/ecc/docs/zh-CN/skills/eval-harness/SKILL.md +304 -0
  1706. package/resources/local/ecc/docs/zh-CN/skills/evm-token-decimals/SKILL.md +130 -0
  1707. package/resources/local/ecc/docs/zh-CN/skills/exa-search/SKILL.md +109 -0
  1708. package/resources/local/ecc/docs/zh-CN/skills/fal-ai-media/SKILL.md +296 -0
  1709. package/resources/local/ecc/docs/zh-CN/skills/finance-billing-ops/SKILL.md +127 -0
  1710. package/resources/local/ecc/docs/zh-CN/skills/flutter-dart-code-review/SKILL.md +480 -0
  1711. package/resources/local/ecc/docs/zh-CN/skills/foundation-models-on-device/SKILL.md +244 -0
  1712. package/resources/local/ecc/docs/zh-CN/skills/frontend-patterns/SKILL.md +642 -0
  1713. package/resources/local/ecc/docs/zh-CN/skills/frontend-slides/SKILL.md +195 -0
  1714. package/resources/local/ecc/docs/zh-CN/skills/frontend-slides/STYLE_PRESETS.md +333 -0
  1715. package/resources/local/ecc/docs/zh-CN/skills/gan-style-harness/SKILL.md +284 -0
  1716. package/resources/local/ecc/docs/zh-CN/skills/gateguard/SKILL.md +123 -0
  1717. package/resources/local/ecc/docs/zh-CN/skills/git-workflow/SKILL.md +720 -0
  1718. package/resources/local/ecc/docs/zh-CN/skills/github-ops/SKILL.md +145 -0
  1719. package/resources/local/ecc/docs/zh-CN/skills/golang-patterns/SKILL.md +674 -0
  1720. package/resources/local/ecc/docs/zh-CN/skills/golang-testing/SKILL.md +722 -0
  1721. package/resources/local/ecc/docs/zh-CN/skills/google-workspace-ops/SKILL.md +95 -0
  1722. package/resources/local/ecc/docs/zh-CN/skills/healthcare-cdss-patterns/SKILL.md +245 -0
  1723. package/resources/local/ecc/docs/zh-CN/skills/healthcare-emr-patterns/SKILL.md +161 -0
  1724. package/resources/local/ecc/docs/zh-CN/skills/healthcare-eval-harness/SKILL.md +207 -0
  1725. package/resources/local/ecc/docs/zh-CN/skills/healthcare-phi-compliance/SKILL.md +146 -0
  1726. package/resources/local/ecc/docs/zh-CN/skills/hermes-imports/SKILL.md +88 -0
  1727. package/resources/local/ecc/docs/zh-CN/skills/hexagonal-architecture/SKILL.md +276 -0
  1728. package/resources/local/ecc/docs/zh-CN/skills/hipaa-compliance/SKILL.md +78 -0
  1729. package/resources/local/ecc/docs/zh-CN/skills/hookify-rules/SKILL.md +139 -0
  1730. package/resources/local/ecc/docs/zh-CN/skills/inventory-demand-planning/SKILL.md +233 -0
  1731. package/resources/local/ecc/docs/zh-CN/skills/investor-materials/SKILL.md +104 -0
  1732. package/resources/local/ecc/docs/zh-CN/skills/investor-outreach/SKILL.md +81 -0
  1733. package/resources/local/ecc/docs/zh-CN/skills/iterative-retrieval/SKILL.md +215 -0
  1734. package/resources/local/ecc/docs/zh-CN/skills/java-coding-standards/SKILL.md +147 -0
  1735. package/resources/local/ecc/docs/zh-CN/skills/jira-integration/SKILL.md +302 -0
  1736. package/resources/local/ecc/docs/zh-CN/skills/jpa-patterns/SKILL.md +155 -0
  1737. package/resources/local/ecc/docs/zh-CN/skills/knowledge-ops/SKILL.md +177 -0
  1738. package/resources/local/ecc/docs/zh-CN/skills/kotlin-coroutines-flows/SKILL.md +284 -0
  1739. package/resources/local/ecc/docs/zh-CN/skills/kotlin-exposed-patterns/SKILL.md +719 -0
  1740. package/resources/local/ecc/docs/zh-CN/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  1741. package/resources/local/ecc/docs/zh-CN/skills/kotlin-patterns/SKILL.md +714 -0
  1742. package/resources/local/ecc/docs/zh-CN/skills/kotlin-testing/SKILL.md +826 -0
  1743. package/resources/local/ecc/docs/zh-CN/skills/laravel-patterns/SKILL.md +415 -0
  1744. package/resources/local/ecc/docs/zh-CN/skills/laravel-plugin-discovery/SKILL.md +235 -0
  1745. package/resources/local/ecc/docs/zh-CN/skills/laravel-security/SKILL.md +285 -0
  1746. package/resources/local/ecc/docs/zh-CN/skills/laravel-tdd/SKILL.md +283 -0
  1747. package/resources/local/ecc/docs/zh-CN/skills/laravel-verification/SKILL.md +179 -0
  1748. package/resources/local/ecc/docs/zh-CN/skills/lead-intelligence/SKILL.md +323 -0
  1749. package/resources/local/ecc/docs/zh-CN/skills/liquid-glass-design/SKILL.md +280 -0
  1750. package/resources/local/ecc/docs/zh-CN/skills/llm-trading-agent-security/SKILL.md +146 -0
  1751. package/resources/local/ecc/docs/zh-CN/skills/logistics-exception-management/SKILL.md +218 -0
  1752. package/resources/local/ecc/docs/zh-CN/skills/manim-video/SKILL.md +89 -0
  1753. package/resources/local/ecc/docs/zh-CN/skills/market-research/SKILL.md +85 -0
  1754. package/resources/local/ecc/docs/zh-CN/skills/mcp-server-patterns/SKILL.md +67 -0
  1755. package/resources/local/ecc/docs/zh-CN/skills/messages-ops/SKILL.md +104 -0
  1756. package/resources/local/ecc/docs/zh-CN/skills/nanoclaw-repl/SKILL.md +33 -0
  1757. package/resources/local/ecc/docs/zh-CN/skills/nestjs-patterns/SKILL.md +230 -0
  1758. package/resources/local/ecc/docs/zh-CN/skills/nextjs-turbopack/SKILL.md +44 -0
  1759. package/resources/local/ecc/docs/zh-CN/skills/nodejs-keccak256/SKILL.md +102 -0
  1760. package/resources/local/ecc/docs/zh-CN/skills/nutrient-document-processing/SKILL.md +165 -0
  1761. package/resources/local/ecc/docs/zh-CN/skills/nuxt4-patterns/SKILL.md +100 -0
  1762. package/resources/local/ecc/docs/zh-CN/skills/opensource-pipeline/SKILL.md +258 -0
  1763. package/resources/local/ecc/docs/zh-CN/skills/perl-patterns/SKILL.md +504 -0
  1764. package/resources/local/ecc/docs/zh-CN/skills/perl-security/SKILL.md +503 -0
  1765. package/resources/local/ecc/docs/zh-CN/skills/perl-testing/SKILL.md +475 -0
  1766. package/resources/local/ecc/docs/zh-CN/skills/plankton-code-quality/SKILL.md +243 -0
  1767. package/resources/local/ecc/docs/zh-CN/skills/postgres-patterns/SKILL.md +154 -0
  1768. package/resources/local/ecc/docs/zh-CN/skills/product-capability/SKILL.md +141 -0
  1769. package/resources/local/ecc/docs/zh-CN/skills/product-lens/SKILL.md +93 -0
  1770. package/resources/local/ecc/docs/zh-CN/skills/production-scheduling/SKILL.md +230 -0
  1771. package/resources/local/ecc/docs/zh-CN/skills/project-flow-ops/SKILL.md +111 -0
  1772. package/resources/local/ecc/docs/zh-CN/skills/prompt-optimizer/SKILL.md +380 -0
  1773. package/resources/local/ecc/docs/zh-CN/skills/python-patterns/SKILL.md +750 -0
  1774. package/resources/local/ecc/docs/zh-CN/skills/python-testing/SKILL.md +816 -0
  1775. package/resources/local/ecc/docs/zh-CN/skills/pytorch-patterns/SKILL.md +396 -0
  1776. package/resources/local/ecc/docs/zh-CN/skills/quality-nonconformance/SKILL.md +252 -0
  1777. package/resources/local/ecc/docs/zh-CN/skills/ralphinho-rfc-pipeline/SKILL.md +69 -0
  1778. package/resources/local/ecc/docs/zh-CN/skills/regex-vs-llm-structured-text/SKILL.md +217 -0
  1779. package/resources/local/ecc/docs/zh-CN/skills/remotion-video-creation/SKILL.md +43 -0
  1780. package/resources/local/ecc/docs/zh-CN/skills/repo-scan/SKILL.md +79 -0
  1781. package/resources/local/ecc/docs/zh-CN/skills/research-ops/SKILL.md +112 -0
  1782. package/resources/local/ecc/docs/zh-CN/skills/returns-reverse-logistics/SKILL.md +225 -0
  1783. package/resources/local/ecc/docs/zh-CN/skills/rules-distill/SKILL.md +264 -0
  1784. package/resources/local/ecc/docs/zh-CN/skills/rust-patterns/SKILL.md +499 -0
  1785. package/resources/local/ecc/docs/zh-CN/skills/rust-testing/SKILL.md +502 -0
  1786. package/resources/local/ecc/docs/zh-CN/skills/safety-guard/SKILL.md +75 -0
  1787. package/resources/local/ecc/docs/zh-CN/skills/santa-method/SKILL.md +310 -0
  1788. package/resources/local/ecc/docs/zh-CN/skills/search-first/SKILL.md +175 -0
  1789. package/resources/local/ecc/docs/zh-CN/skills/security-bounty-hunter/SKILL.md +99 -0
  1790. package/resources/local/ecc/docs/zh-CN/skills/security-review/SKILL.md +527 -0
  1791. package/resources/local/ecc/docs/zh-CN/skills/security-review/cloud-infrastructure-security.md +361 -0
  1792. package/resources/local/ecc/docs/zh-CN/skills/security-scan/SKILL.md +172 -0
  1793. package/resources/local/ecc/docs/zh-CN/skills/seo/SKILL.md +155 -0
  1794. package/resources/local/ecc/docs/zh-CN/skills/skill-comply/SKILL.md +60 -0
  1795. package/resources/local/ecc/docs/zh-CN/skills/skill-stocktake/SKILL.md +194 -0
  1796. package/resources/local/ecc/docs/zh-CN/skills/social-graph-ranker/SKILL.md +154 -0
  1797. package/resources/local/ecc/docs/zh-CN/skills/springboot-patterns/SKILL.md +313 -0
  1798. package/resources/local/ecc/docs/zh-CN/skills/springboot-security/SKILL.md +272 -0
  1799. package/resources/local/ecc/docs/zh-CN/skills/springboot-tdd/SKILL.md +160 -0
  1800. package/resources/local/ecc/docs/zh-CN/skills/springboot-verification/SKILL.md +235 -0
  1801. package/resources/local/ecc/docs/zh-CN/skills/strategic-compact/SKILL.md +140 -0
  1802. package/resources/local/ecc/docs/zh-CN/skills/swift-actor-persistence/SKILL.md +143 -0
  1803. package/resources/local/ecc/docs/zh-CN/skills/swift-concurrency-6-2/SKILL.md +217 -0
  1804. package/resources/local/ecc/docs/zh-CN/skills/swift-protocol-di-testing/SKILL.md +190 -0
  1805. package/resources/local/ecc/docs/zh-CN/skills/swiftui-patterns/SKILL.md +259 -0
  1806. package/resources/local/ecc/docs/zh-CN/skills/tdd-workflow/SKILL.md +440 -0
  1807. package/resources/local/ecc/docs/zh-CN/skills/team-builder/SKILL.md +165 -0
  1808. package/resources/local/ecc/docs/zh-CN/skills/terminal-ops/SKILL.md +109 -0
  1809. package/resources/local/ecc/docs/zh-CN/skills/token-budget-advisor/SKILL.md +121 -0
  1810. package/resources/local/ecc/docs/zh-CN/skills/ui-demo/SKILL.md +465 -0
  1811. package/resources/local/ecc/docs/zh-CN/skills/unified-notifications-ops/SKILL.md +197 -0
  1812. package/resources/local/ecc/docs/zh-CN/skills/verification-loop/SKILL.md +136 -0
  1813. package/resources/local/ecc/docs/zh-CN/skills/video-editing/SKILL.md +316 -0
  1814. package/resources/local/ecc/docs/zh-CN/skills/videodb/SKILL.md +386 -0
  1815. package/resources/local/ecc/docs/zh-CN/skills/videodb/reference/api-reference.md +550 -0
  1816. package/resources/local/ecc/docs/zh-CN/skills/videodb/reference/capture-reference.md +416 -0
  1817. package/resources/local/ecc/docs/zh-CN/skills/videodb/reference/capture.md +104 -0
  1818. package/resources/local/ecc/docs/zh-CN/skills/videodb/reference/editor.md +443 -0
  1819. package/resources/local/ecc/docs/zh-CN/skills/videodb/reference/generative.md +331 -0
  1820. package/resources/local/ecc/docs/zh-CN/skills/videodb/reference/rtstream-reference.md +567 -0
  1821. package/resources/local/ecc/docs/zh-CN/skills/videodb/reference/rtstream.md +59 -0
  1822. package/resources/local/ecc/docs/zh-CN/skills/videodb/reference/search.md +230 -0
  1823. package/resources/local/ecc/docs/zh-CN/skills/videodb/reference/streaming.md +406 -0
  1824. package/resources/local/ecc/docs/zh-CN/skills/videodb/reference/use-cases.md +142 -0
  1825. package/resources/local/ecc/docs/zh-CN/skills/visa-doc-translate/README.md +91 -0
  1826. package/resources/local/ecc/docs/zh-CN/skills/visa-doc-translate/SKILL.md +119 -0
  1827. package/resources/local/ecc/docs/zh-CN/skills/workspace-surface-audit/SKILL.md +125 -0
  1828. package/resources/local/ecc/docs/zh-CN/skills/x-api/SKILL.md +210 -0
  1829. package/resources/local/ecc/docs/zh-CN/the-longform-guide.md +358 -0
  1830. package/resources/local/ecc/docs/zh-CN/the-openclaw-guide.md +471 -0
  1831. package/resources/local/ecc/docs/zh-CN/the-security-guide.md +206 -0
  1832. package/resources/local/ecc/docs/zh-CN/the-shortform-guide.md +432 -0
  1833. package/resources/local/ecc/docs/zh-TW/CONTRIBUTING.md +191 -0
  1834. package/resources/local/ecc/docs/zh-TW/README.md +482 -0
  1835. package/resources/local/ecc/docs/zh-TW/TERMINOLOGY.md +104 -0
  1836. package/resources/local/ecc/docs/zh-TW/agents/architect.md +211 -0
  1837. package/resources/local/ecc/docs/zh-TW/agents/build-error-resolver.md +300 -0
  1838. package/resources/local/ecc/docs/zh-TW/agents/code-reviewer.md +104 -0
  1839. package/resources/local/ecc/docs/zh-TW/agents/database-reviewer.md +378 -0
  1840. package/resources/local/ecc/docs/zh-TW/agents/doc-updater.md +310 -0
  1841. package/resources/local/ecc/docs/zh-TW/agents/e2e-runner.md +303 -0
  1842. package/resources/local/ecc/docs/zh-TW/agents/go-build-resolver.md +368 -0
  1843. package/resources/local/ecc/docs/zh-TW/agents/go-reviewer.md +267 -0
  1844. package/resources/local/ecc/docs/zh-TW/agents/planner.md +119 -0
  1845. package/resources/local/ecc/docs/zh-TW/agents/refactor-cleaner.md +273 -0
  1846. package/resources/local/ecc/docs/zh-TW/agents/security-reviewer.md +378 -0
  1847. package/resources/local/ecc/docs/zh-TW/agents/tdd-guide.md +280 -0
  1848. package/resources/local/ecc/docs/zh-TW/commands/build-fix.md +29 -0
  1849. package/resources/local/ecc/docs/zh-TW/commands/checkpoint.md +74 -0
  1850. package/resources/local/ecc/docs/zh-TW/commands/code-review.md +40 -0
  1851. package/resources/local/ecc/docs/zh-TW/commands/e2e.md +115 -0
  1852. package/resources/local/ecc/docs/zh-TW/commands/eval.md +120 -0
  1853. package/resources/local/ecc/docs/zh-TW/commands/go-build.md +81 -0
  1854. package/resources/local/ecc/docs/zh-TW/commands/go-review.md +87 -0
  1855. package/resources/local/ecc/docs/zh-TW/commands/go-test.md +132 -0
  1856. package/resources/local/ecc/docs/zh-TW/commands/learn.md +70 -0
  1857. package/resources/local/ecc/docs/zh-TW/commands/orchestrate.md +140 -0
  1858. package/resources/local/ecc/docs/zh-TW/commands/plan.md +113 -0
  1859. package/resources/local/ecc/docs/zh-TW/commands/refactor-clean.md +28 -0
  1860. package/resources/local/ecc/docs/zh-TW/commands/setup-pm.md +80 -0
  1861. package/resources/local/ecc/docs/zh-TW/commands/tdd.md +100 -0
  1862. package/resources/local/ecc/docs/zh-TW/commands/test-coverage.md +27 -0
  1863. package/resources/local/ecc/docs/zh-TW/commands/update-codemaps.md +17 -0
  1864. package/resources/local/ecc/docs/zh-TW/commands/update-docs.md +31 -0
  1865. package/resources/local/ecc/docs/zh-TW/commands/verify.md +59 -0
  1866. package/resources/local/ecc/docs/zh-TW/rules/agents.md +49 -0
  1867. package/resources/local/ecc/docs/zh-TW/rules/coding-style.md +70 -0
  1868. package/resources/local/ecc/docs/zh-TW/rules/git-workflow.md +45 -0
  1869. package/resources/local/ecc/docs/zh-TW/rules/hooks.md +46 -0
  1870. package/resources/local/ecc/docs/zh-TW/rules/patterns.md +55 -0
  1871. package/resources/local/ecc/docs/zh-TW/rules/performance.md +47 -0
  1872. package/resources/local/ecc/docs/zh-TW/rules/security.md +36 -0
  1873. package/resources/local/ecc/docs/zh-TW/rules/testing.md +30 -0
  1874. package/resources/local/ecc/docs/zh-TW/skills/backend-patterns/SKILL.md +587 -0
  1875. package/resources/local/ecc/docs/zh-TW/skills/clickhouse-io/SKILL.md +429 -0
  1876. package/resources/local/ecc/docs/zh-TW/skills/coding-standards/SKILL.md +520 -0
  1877. package/resources/local/ecc/docs/zh-TW/skills/continuous-learning/SKILL.md +110 -0
  1878. package/resources/local/ecc/docs/zh-TW/skills/continuous-learning-v2/SKILL.md +263 -0
  1879. package/resources/local/ecc/docs/zh-TW/skills/eval-harness/SKILL.md +227 -0
  1880. package/resources/local/ecc/docs/zh-TW/skills/frontend-patterns/SKILL.md +631 -0
  1881. package/resources/local/ecc/docs/zh-TW/skills/golang-patterns/SKILL.md +673 -0
  1882. package/resources/local/ecc/docs/zh-TW/skills/golang-testing/SKILL.md +710 -0
  1883. package/resources/local/ecc/docs/zh-TW/skills/iterative-retrieval/SKILL.md +202 -0
  1884. package/resources/local/ecc/docs/zh-TW/skills/postgres-patterns/SKILL.md +146 -0
  1885. package/resources/local/ecc/docs/zh-TW/skills/project-guidelines-example/SKILL.md +345 -0
  1886. package/resources/local/ecc/docs/zh-TW/skills/security-review/SKILL.md +494 -0
  1887. package/resources/local/ecc/docs/zh-TW/skills/security-review/cloud-infrastructure-security.md +361 -0
  1888. package/resources/local/ecc/docs/zh-TW/skills/strategic-compact/SKILL.md +66 -0
  1889. package/resources/local/ecc/docs/zh-TW/skills/tdd-workflow/SKILL.md +409 -0
  1890. package/resources/local/ecc/docs/zh-TW/skills/verification-loop/SKILL.md +120 -0
  1891. package/resources/local/ecc/ecc2/Cargo.lock +2992 -0
  1892. package/resources/local/ecc/ecc2/Cargo.toml +61 -0
  1893. package/resources/local/ecc/ecc2/README.md +99 -0
  1894. package/resources/local/ecc/ecc2/src/comms/mod.rs +156 -0
  1895. package/resources/local/ecc/ecc2/src/config/mod.rs +1806 -0
  1896. package/resources/local/ecc/ecc2/src/main.rs +12595 -0
  1897. package/resources/local/ecc/ecc2/src/notifications.rs +635 -0
  1898. package/resources/local/ecc/ecc2/src/observability/mod.rs +423 -0
  1899. package/resources/local/ecc/ecc2/src/session/daemon.rs +1322 -0
  1900. package/resources/local/ecc/ecc2/src/session/manager.rs +8190 -0
  1901. package/resources/local/ecc/ecc2/src/session/mod.rs +984 -0
  1902. package/resources/local/ecc/ecc2/src/session/output.rs +172 -0
  1903. package/resources/local/ecc/ecc2/src/session/runtime.rs +379 -0
  1904. package/resources/local/ecc/ecc2/src/session/store.rs +7109 -0
  1905. package/resources/local/ecc/ecc2/src/tui/app.rs +151 -0
  1906. package/resources/local/ecc/ecc2/src/tui/dashboard.rs +15162 -0
  1907. package/resources/local/ecc/ecc2/src/tui/mod.rs +3 -0
  1908. package/resources/local/ecc/ecc2/src/tui/widgets.rs +382 -0
  1909. package/resources/local/ecc/ecc2/src/worktree/mod.rs +2672 -0
  1910. package/resources/local/ecc/ecc_dashboard.py +932 -0
  1911. package/resources/local/ecc/eslint.config.js +34 -0
  1912. package/resources/local/ecc/examples/CLAUDE.md +109 -0
  1913. package/resources/local/ecc/examples/django-api-CLAUDE.md +308 -0
  1914. package/resources/local/ecc/examples/evaluator-rag-prototype/agentshield-policy-exception/candidate-playbook.md +49 -0
  1915. package/resources/local/ecc/examples/evaluator-rag-prototype/agentshield-policy-exception/report.json +35 -0
  1916. package/resources/local/ecc/examples/evaluator-rag-prototype/agentshield-policy-exception/scenario.json +62 -0
  1917. package/resources/local/ecc/examples/evaluator-rag-prototype/agentshield-policy-exception/trace.json +45 -0
  1918. package/resources/local/ecc/examples/evaluator-rag-prototype/agentshield-policy-exception/verifier-result.json +35 -0
  1919. package/resources/local/ecc/examples/evaluator-rag-prototype/billing-marketplace-readiness/candidate-playbook.md +41 -0
  1920. package/resources/local/ecc/examples/evaluator-rag-prototype/billing-marketplace-readiness/report.json +35 -0
  1921. package/resources/local/ecc/examples/evaluator-rag-prototype/billing-marketplace-readiness/scenario.json +55 -0
  1922. package/resources/local/ecc/examples/evaluator-rag-prototype/billing-marketplace-readiness/trace.json +45 -0
  1923. package/resources/local/ecc/examples/evaluator-rag-prototype/billing-marketplace-readiness/verifier-result.json +35 -0
  1924. package/resources/local/ecc/examples/evaluator-rag-prototype/candidate-playbook.md +41 -0
  1925. package/resources/local/ecc/examples/evaluator-rag-prototype/ci-failure-diagnosis/candidate-playbook.md +46 -0
  1926. package/resources/local/ecc/examples/evaluator-rag-prototype/ci-failure-diagnosis/report.json +35 -0
  1927. package/resources/local/ecc/examples/evaluator-rag-prototype/ci-failure-diagnosis/scenario.json +57 -0
  1928. package/resources/local/ecc/examples/evaluator-rag-prototype/ci-failure-diagnosis/trace.json +45 -0
  1929. package/resources/local/ecc/examples/evaluator-rag-prototype/ci-failure-diagnosis/verifier-result.json +35 -0
  1930. package/resources/local/ecc/examples/evaluator-rag-prototype/deep-analyzer-evidence/candidate-playbook.md +60 -0
  1931. package/resources/local/ecc/examples/evaluator-rag-prototype/deep-analyzer-evidence/report.json +35 -0
  1932. package/resources/local/ecc/examples/evaluator-rag-prototype/deep-analyzer-evidence/scenario.json +57 -0
  1933. package/resources/local/ecc/examples/evaluator-rag-prototype/deep-analyzer-evidence/trace.json +45 -0
  1934. package/resources/local/ecc/examples/evaluator-rag-prototype/deep-analyzer-evidence/verifier-result.json +35 -0
  1935. package/resources/local/ecc/examples/evaluator-rag-prototype/harness-config-quality/candidate-playbook.md +49 -0
  1936. package/resources/local/ecc/examples/evaluator-rag-prototype/harness-config-quality/report.json +35 -0
  1937. package/resources/local/ecc/examples/evaluator-rag-prototype/harness-config-quality/scenario.json +57 -0
  1938. package/resources/local/ecc/examples/evaluator-rag-prototype/harness-config-quality/trace.json +45 -0
  1939. package/resources/local/ecc/examples/evaluator-rag-prototype/harness-config-quality/verifier-result.json +35 -0
  1940. package/resources/local/ecc/examples/evaluator-rag-prototype/report.json +35 -0
  1941. package/resources/local/ecc/examples/evaluator-rag-prototype/scenario.json +56 -0
  1942. package/resources/local/ecc/examples/evaluator-rag-prototype/skill-quality-evidence/candidate-playbook.md +57 -0
  1943. package/resources/local/ecc/examples/evaluator-rag-prototype/skill-quality-evidence/report.json +35 -0
  1944. package/resources/local/ecc/examples/evaluator-rag-prototype/skill-quality-evidence/scenario.json +57 -0
  1945. package/resources/local/ecc/examples/evaluator-rag-prototype/skill-quality-evidence/trace.json +46 -0
  1946. package/resources/local/ecc/examples/evaluator-rag-prototype/skill-quality-evidence/verifier-result.json +35 -0
  1947. package/resources/local/ecc/examples/evaluator-rag-prototype/trace.json +46 -0
  1948. package/resources/local/ecc/examples/evaluator-rag-prototype/verifier-result.json +35 -0
  1949. package/resources/local/ecc/examples/gan-harness/README.md +126 -0
  1950. package/resources/local/ecc/examples/go-microservice-CLAUDE.md +267 -0
  1951. package/resources/local/ecc/examples/harmonyos-app-CLAUDE.md +88 -0
  1952. package/resources/local/ecc/examples/hud-status-contract.json +117 -0
  1953. package/resources/local/ecc/examples/laravel-api-CLAUDE.md +311 -0
  1954. package/resources/local/ecc/examples/rust-api-CLAUDE.md +285 -0
  1955. package/resources/local/ecc/examples/saas-nextjs-CLAUDE.md +166 -0
  1956. package/resources/local/ecc/examples/statusline.json +20 -0
  1957. package/resources/local/ecc/examples/user-CLAUDE.md +109 -0
  1958. package/resources/local/ecc/hooks/README.md +258 -0
  1959. package/resources/local/ecc/hooks/hooks.json +354 -0
  1960. package/resources/local/ecc/hooks/memory-persistence/README.md +44 -0
  1961. package/resources/local/ecc/hooks/memory-persistence/hooks.json +47 -0
  1962. package/resources/local/ecc/install.ps1 +53 -0
  1963. package/resources/local/ecc/install.sh +32 -0
  1964. package/resources/local/ecc/legacy-command-shims/README.md +7 -0
  1965. package/resources/local/ecc/legacy-command-shims/commands/agent-sort.md +23 -0
  1966. package/resources/local/ecc/legacy-command-shims/commands/claw.md +23 -0
  1967. package/resources/local/ecc/legacy-command-shims/commands/context-budget.md +23 -0
  1968. package/resources/local/ecc/legacy-command-shims/commands/devfleet.md +23 -0
  1969. package/resources/local/ecc/legacy-command-shims/commands/docs.md +23 -0
  1970. package/resources/local/ecc/legacy-command-shims/commands/e2e.md +268 -0
  1971. package/resources/local/ecc/legacy-command-shims/commands/eval.md +23 -0
  1972. package/resources/local/ecc/legacy-command-shims/commands/orchestrate.md +135 -0
  1973. package/resources/local/ecc/legacy-command-shims/commands/prompt-optimize.md +23 -0
  1974. package/resources/local/ecc/legacy-command-shims/commands/rules-distill.md +20 -0
  1975. package/resources/local/ecc/legacy-command-shims/commands/tdd.md +231 -0
  1976. package/resources/local/ecc/legacy-command-shims/commands/verify.md +23 -0
  1977. package/resources/local/ecc/manifests/install-components.json +594 -0
  1978. package/resources/local/ecc/manifests/install-modules.json +819 -0
  1979. package/resources/local/ecc/manifests/install-profiles.json +92 -0
  1980. package/resources/local/ecc/mcp-configs/mcp-servers.json +181 -0
  1981. package/resources/local/ecc/nul +2 -0
  1982. package/resources/local/ecc/package-lock.json +2906 -0
  1983. package/resources/local/ecc/package.json +347 -0
  1984. package/resources/local/ecc/plugins/README.md +85 -0
  1985. package/resources/local/ecc/pyproject.toml +78 -0
  1986. package/resources/local/ecc/research/ecc2-codebase-analysis.md +172 -0
  1987. package/resources/local/ecc/rules/README.md +135 -0
  1988. package/resources/local/ecc/rules/angular/coding-style.md +182 -0
  1989. package/resources/local/ecc/rules/angular/hooks.md +25 -0
  1990. package/resources/local/ecc/rules/angular/patterns.md +249 -0
  1991. package/resources/local/ecc/rules/angular/security.md +87 -0
  1992. package/resources/local/ecc/rules/angular/testing.md +164 -0
  1993. package/resources/local/ecc/rules/arkts/coding-style.md +153 -0
  1994. package/resources/local/ecc/rules/arkts/hooks.md +135 -0
  1995. package/resources/local/ecc/rules/arkts/patterns.md +236 -0
  1996. package/resources/local/ecc/rules/arkts/security.md +141 -0
  1997. package/resources/local/ecc/rules/arkts/testing.md +126 -0
  1998. package/resources/local/ecc/rules/common/agents.md +51 -0
  1999. package/resources/local/ecc/rules/common/code-review.md +124 -0
  2000. package/resources/local/ecc/rules/common/coding-style.md +90 -0
  2001. package/resources/local/ecc/rules/common/development-workflow.md +44 -0
  2002. package/resources/local/ecc/rules/common/git-workflow.md +24 -0
  2003. package/resources/local/ecc/rules/common/hooks.md +30 -0
  2004. package/resources/local/ecc/rules/common/patterns.md +31 -0
  2005. package/resources/local/ecc/rules/common/performance.md +55 -0
  2006. package/resources/local/ecc/rules/common/security.md +29 -0
  2007. package/resources/local/ecc/rules/common/testing.md +57 -0
  2008. package/resources/local/ecc/rules/cpp/coding-style.md +44 -0
  2009. package/resources/local/ecc/rules/cpp/hooks.md +39 -0
  2010. package/resources/local/ecc/rules/cpp/patterns.md +51 -0
  2011. package/resources/local/ecc/rules/cpp/security.md +51 -0
  2012. package/resources/local/ecc/rules/cpp/testing.md +44 -0
  2013. package/resources/local/ecc/rules/csharp/coding-style.md +72 -0
  2014. package/resources/local/ecc/rules/csharp/hooks.md +25 -0
  2015. package/resources/local/ecc/rules/csharp/patterns.md +50 -0
  2016. package/resources/local/ecc/rules/csharp/security.md +58 -0
  2017. package/resources/local/ecc/rules/csharp/testing.md +46 -0
  2018. package/resources/local/ecc/rules/dart/coding-style.md +159 -0
  2019. package/resources/local/ecc/rules/dart/hooks.md +66 -0
  2020. package/resources/local/ecc/rules/dart/patterns.md +261 -0
  2021. package/resources/local/ecc/rules/dart/security.md +135 -0
  2022. package/resources/local/ecc/rules/dart/testing.md +215 -0
  2023. package/resources/local/ecc/rules/fsharp/coding-style.md +112 -0
  2024. package/resources/local/ecc/rules/fsharp/hooks.md +26 -0
  2025. package/resources/local/ecc/rules/fsharp/patterns.md +111 -0
  2026. package/resources/local/ecc/rules/fsharp/security.md +76 -0
  2027. package/resources/local/ecc/rules/fsharp/testing.md +62 -0
  2028. package/resources/local/ecc/rules/golang/coding-style.md +32 -0
  2029. package/resources/local/ecc/rules/golang/hooks.md +17 -0
  2030. package/resources/local/ecc/rules/golang/patterns.md +45 -0
  2031. package/resources/local/ecc/rules/golang/security.md +34 -0
  2032. package/resources/local/ecc/rules/golang/testing.md +31 -0
  2033. package/resources/local/ecc/rules/java/coding-style.md +114 -0
  2034. package/resources/local/ecc/rules/java/hooks.md +18 -0
  2035. package/resources/local/ecc/rules/java/patterns.md +147 -0
  2036. package/resources/local/ecc/rules/java/security.md +101 -0
  2037. package/resources/local/ecc/rules/java/testing.md +133 -0
  2038. package/resources/local/ecc/rules/kotlin/coding-style.md +86 -0
  2039. package/resources/local/ecc/rules/kotlin/hooks.md +17 -0
  2040. package/resources/local/ecc/rules/kotlin/patterns.md +146 -0
  2041. package/resources/local/ecc/rules/kotlin/security.md +82 -0
  2042. package/resources/local/ecc/rules/kotlin/testing.md +128 -0
  2043. package/resources/local/ecc/rules/perl/coding-style.md +46 -0
  2044. package/resources/local/ecc/rules/perl/hooks.md +22 -0
  2045. package/resources/local/ecc/rules/perl/patterns.md +76 -0
  2046. package/resources/local/ecc/rules/perl/security.md +69 -0
  2047. package/resources/local/ecc/rules/perl/testing.md +54 -0
  2048. package/resources/local/ecc/rules/php/coding-style.md +40 -0
  2049. package/resources/local/ecc/rules/php/hooks.md +24 -0
  2050. package/resources/local/ecc/rules/php/patterns.md +33 -0
  2051. package/resources/local/ecc/rules/php/security.md +37 -0
  2052. package/resources/local/ecc/rules/php/testing.md +39 -0
  2053. package/resources/local/ecc/rules/python/coding-style.md +42 -0
  2054. package/resources/local/ecc/rules/python/fastapi.md +58 -0
  2055. package/resources/local/ecc/rules/python/hooks.md +19 -0
  2056. package/resources/local/ecc/rules/python/patterns.md +39 -0
  2057. package/resources/local/ecc/rules/python/security.md +30 -0
  2058. package/resources/local/ecc/rules/python/testing.md +38 -0
  2059. package/resources/local/ecc/rules/ruby/coding-style.md +46 -0
  2060. package/resources/local/ecc/rules/ruby/hooks.md +37 -0
  2061. package/resources/local/ecc/rules/ruby/patterns.md +44 -0
  2062. package/resources/local/ecc/rules/ruby/security.md +51 -0
  2063. package/resources/local/ecc/rules/ruby/testing.md +51 -0
  2064. package/resources/local/ecc/rules/rust/coding-style.md +151 -0
  2065. package/resources/local/ecc/rules/rust/hooks.md +16 -0
  2066. package/resources/local/ecc/rules/rust/patterns.md +168 -0
  2067. package/resources/local/ecc/rules/rust/security.md +141 -0
  2068. package/resources/local/ecc/rules/rust/testing.md +154 -0
  2069. package/resources/local/ecc/rules/swift/coding-style.md +47 -0
  2070. package/resources/local/ecc/rules/swift/hooks.md +20 -0
  2071. package/resources/local/ecc/rules/swift/patterns.md +66 -0
  2072. package/resources/local/ecc/rules/swift/security.md +33 -0
  2073. package/resources/local/ecc/rules/swift/testing.md +45 -0
  2074. package/resources/local/ecc/rules/typescript/coding-style.md +199 -0
  2075. package/resources/local/ecc/rules/typescript/hooks.md +22 -0
  2076. package/resources/local/ecc/rules/typescript/patterns.md +52 -0
  2077. package/resources/local/ecc/rules/typescript/security.md +28 -0
  2078. package/resources/local/ecc/rules/typescript/testing.md +18 -0
  2079. package/resources/local/ecc/rules/web/coding-style.md +96 -0
  2080. package/resources/local/ecc/rules/web/design-quality.md +63 -0
  2081. package/resources/local/ecc/rules/web/hooks.md +129 -0
  2082. package/resources/local/ecc/rules/web/patterns.md +79 -0
  2083. package/resources/local/ecc/rules/web/performance.md +64 -0
  2084. package/resources/local/ecc/rules/web/security.md +57 -0
  2085. package/resources/local/ecc/rules/web/testing.md +55 -0
  2086. package/resources/local/ecc/rules/zh/README.md +108 -0
  2087. package/resources/local/ecc/rules/zh/agents.md +50 -0
  2088. package/resources/local/ecc/rules/zh/code-review.md +124 -0
  2089. package/resources/local/ecc/rules/zh/coding-style.md +48 -0
  2090. package/resources/local/ecc/rules/zh/development-workflow.md +44 -0
  2091. package/resources/local/ecc/rules/zh/git-workflow.md +24 -0
  2092. package/resources/local/ecc/rules/zh/hooks.md +30 -0
  2093. package/resources/local/ecc/rules/zh/patterns.md +31 -0
  2094. package/resources/local/ecc/rules/zh/performance.md +55 -0
  2095. package/resources/local/ecc/rules/zh/security.md +29 -0
  2096. package/resources/local/ecc/rules/zh/testing.md +29 -0
  2097. package/resources/local/ecc/schemas/ecc-install-config.schema.json +63 -0
  2098. package/resources/local/ecc/schemas/hooks.schema.json +197 -0
  2099. package/resources/local/ecc/schemas/install-components.schema.json +59 -0
  2100. package/resources/local/ecc/schemas/install-modules.schema.json +111 -0
  2101. package/resources/local/ecc/schemas/install-profiles.schema.json +45 -0
  2102. package/resources/local/ecc/schemas/install-state.schema.json +210 -0
  2103. package/resources/local/ecc/schemas/package-manager.schema.json +23 -0
  2104. package/resources/local/ecc/schemas/plugin.schema.json +70 -0
  2105. package/resources/local/ecc/schemas/provenance.schema.json +31 -0
  2106. package/resources/local/ecc/schemas/state-store.schema.json +382 -0
  2107. package/resources/local/ecc/scripts/auto-update.js +361 -0
  2108. package/resources/local/ecc/scripts/build-opencode.js +26 -0
  2109. package/resources/local/ecc/scripts/catalog.js +186 -0
  2110. package/resources/local/ecc/scripts/ci/catalog.js +828 -0
  2111. package/resources/local/ecc/scripts/ci/check-unicode-safety.js +272 -0
  2112. package/resources/local/ecc/scripts/ci/generate-command-registry.js +318 -0
  2113. package/resources/local/ecc/scripts/ci/scan-supply-chain-iocs.js +847 -0
  2114. package/resources/local/ecc/scripts/ci/supply-chain-advisory-sources.js +469 -0
  2115. package/resources/local/ecc/scripts/ci/validate-agents.js +96 -0
  2116. package/resources/local/ecc/scripts/ci/validate-commands.js +188 -0
  2117. package/resources/local/ecc/scripts/ci/validate-hooks.js +239 -0
  2118. package/resources/local/ecc/scripts/ci/validate-install-manifests.js +218 -0
  2119. package/resources/local/ecc/scripts/ci/validate-no-personal-paths.js +107 -0
  2120. package/resources/local/ecc/scripts/ci/validate-rules.js +81 -0
  2121. package/resources/local/ecc/scripts/ci/validate-skills.js +210 -0
  2122. package/resources/local/ecc/scripts/ci/validate-workflow-security.js +278 -0
  2123. package/resources/local/ecc/scripts/claw.js +473 -0
  2124. package/resources/local/ecc/scripts/codemaps/generate.ts +330 -0
  2125. package/resources/local/ecc/scripts/codex/check-codex-global-state.sh +250 -0
  2126. package/resources/local/ecc/scripts/codex/install-global-git-hooks.sh +65 -0
  2127. package/resources/local/ecc/scripts/codex/merge-codex-config.js +317 -0
  2128. package/resources/local/ecc/scripts/codex/merge-mcp-config.js +335 -0
  2129. package/resources/local/ecc/scripts/codex-git-hooks/pre-commit +77 -0
  2130. package/resources/local/ecc/scripts/codex-git-hooks/pre-push +124 -0
  2131. package/resources/local/ecc/scripts/consult.js +497 -0
  2132. package/resources/local/ecc/scripts/discussion-audit.js +350 -0
  2133. package/resources/local/ecc/scripts/doctor.js +111 -0
  2134. package/resources/local/ecc/scripts/ecc.js +255 -0
  2135. package/resources/local/ecc/scripts/gan-harness.sh +299 -0
  2136. package/resources/local/ecc/scripts/gemini-adapt-agents.js +189 -0
  2137. package/resources/local/ecc/scripts/harness-adapter-compliance.js +149 -0
  2138. package/resources/local/ecc/scripts/harness-audit.js +869 -0
  2139. package/resources/local/ecc/scripts/hooks/auto-tmux-dev.js +107 -0
  2140. package/resources/local/ecc/scripts/hooks/bash-hook-dispatcher.js +177 -0
  2141. package/resources/local/ecc/scripts/hooks/block-no-verify.js +546 -0
  2142. package/resources/local/ecc/scripts/hooks/check-console-log.js +71 -0
  2143. package/resources/local/ecc/scripts/hooks/check-hook-enabled.js +12 -0
  2144. package/resources/local/ecc/scripts/hooks/config-protection.js +169 -0
  2145. package/resources/local/ecc/scripts/hooks/cost-tracker.js +157 -0
  2146. package/resources/local/ecc/scripts/hooks/design-quality-check.js +131 -0
  2147. package/resources/local/ecc/scripts/hooks/desktop-notify.js +245 -0
  2148. package/resources/local/ecc/scripts/hooks/doc-file-warning.js +90 -0
  2149. package/resources/local/ecc/scripts/hooks/ecc-context-monitor.js +258 -0
  2150. package/resources/local/ecc/scripts/hooks/ecc-metrics-bridge.js +263 -0
  2151. package/resources/local/ecc/scripts/hooks/ecc-statusline.js +168 -0
  2152. package/resources/local/ecc/scripts/hooks/evaluate-session.js +100 -0
  2153. package/resources/local/ecc/scripts/hooks/gateguard-fact-force.js +832 -0
  2154. package/resources/local/ecc/scripts/hooks/governance-capture.js +334 -0
  2155. package/resources/local/ecc/scripts/hooks/insaits-security-monitor.py +269 -0
  2156. package/resources/local/ecc/scripts/hooks/insaits-security-wrapper.js +119 -0
  2157. package/resources/local/ecc/scripts/hooks/mcp-health-check.js +720 -0
  2158. package/resources/local/ecc/scripts/hooks/observe-runner.js +196 -0
  2159. package/resources/local/ecc/scripts/hooks/plugin-hook-bootstrap.js +153 -0
  2160. package/resources/local/ecc/scripts/hooks/post-bash-build-complete.js +49 -0
  2161. package/resources/local/ecc/scripts/hooks/post-bash-command-log.js +80 -0
  2162. package/resources/local/ecc/scripts/hooks/post-bash-dispatcher.js +24 -0
  2163. package/resources/local/ecc/scripts/hooks/post-bash-pr-created.js +60 -0
  2164. package/resources/local/ecc/scripts/hooks/post-edit-accumulator.js +78 -0
  2165. package/resources/local/ecc/scripts/hooks/post-edit-console-warn.js +54 -0
  2166. package/resources/local/ecc/scripts/hooks/post-edit-format.js +109 -0
  2167. package/resources/local/ecc/scripts/hooks/post-edit-typecheck.js +96 -0
  2168. package/resources/local/ecc/scripts/hooks/pre-bash-commit-quality.js +447 -0
  2169. package/resources/local/ecc/scripts/hooks/pre-bash-dev-server-block.js +225 -0
  2170. package/resources/local/ecc/scripts/hooks/pre-bash-dispatcher.js +24 -0
  2171. package/resources/local/ecc/scripts/hooks/pre-bash-git-push-reminder.js +52 -0
  2172. package/resources/local/ecc/scripts/hooks/pre-bash-tmux-reminder.js +57 -0
  2173. package/resources/local/ecc/scripts/hooks/pre-compact.js +48 -0
  2174. package/resources/local/ecc/scripts/hooks/pre-write-doc-warn.js +9 -0
  2175. package/resources/local/ecc/scripts/hooks/quality-gate.js +168 -0
  2176. package/resources/local/ecc/scripts/hooks/run-with-flags-shell.sh +36 -0
  2177. package/resources/local/ecc/scripts/hooks/run-with-flags.js +190 -0
  2178. package/resources/local/ecc/scripts/hooks/session-activity-tracker.js +639 -0
  2179. package/resources/local/ecc/scripts/hooks/session-end-marker.js +67 -0
  2180. package/resources/local/ecc/scripts/hooks/session-end.js +328 -0
  2181. package/resources/local/ecc/scripts/hooks/session-start-bootstrap.js +161 -0
  2182. package/resources/local/ecc/scripts/hooks/session-start.js +706 -0
  2183. package/resources/local/ecc/scripts/hooks/stop-format-typecheck.js +209 -0
  2184. package/resources/local/ecc/scripts/hooks/suggest-compact.js +108 -0
  2185. package/resources/local/ecc/scripts/install-apply.js +167 -0
  2186. package/resources/local/ecc/scripts/install-plan.js +276 -0
  2187. package/resources/local/ecc/scripts/lib/agent-compress.js +244 -0
  2188. package/resources/local/ecc/scripts/lib/cost-estimate.js +32 -0
  2189. package/resources/local/ecc/scripts/lib/cursor-agent-names.js +26 -0
  2190. package/resources/local/ecc/scripts/lib/ecc_dashboard_runtime.py +70 -0
  2191. package/resources/local/ecc/scripts/lib/github-discussions.js +159 -0
  2192. package/resources/local/ecc/scripts/lib/harness-adapter-compliance.js +453 -0
  2193. package/resources/local/ecc/scripts/lib/hook-flags.js +74 -0
  2194. package/resources/local/ecc/scripts/lib/inspection.js +212 -0
  2195. package/resources/local/ecc/scripts/lib/install/apply.js +174 -0
  2196. package/resources/local/ecc/scripts/lib/install/config.js +89 -0
  2197. package/resources/local/ecc/scripts/lib/install/request.js +157 -0
  2198. package/resources/local/ecc/scripts/lib/install/runtime.js +56 -0
  2199. package/resources/local/ecc/scripts/lib/install-executor.js +738 -0
  2200. package/resources/local/ecc/scripts/lib/install-lifecycle.js +1226 -0
  2201. package/resources/local/ecc/scripts/lib/install-manifests.js +644 -0
  2202. package/resources/local/ecc/scripts/lib/install-state.js +313 -0
  2203. package/resources/local/ecc/scripts/lib/install-targets/antigravity-project.js +85 -0
  2204. package/resources/local/ecc/scripts/lib/install-targets/claude-home.js +91 -0
  2205. package/resources/local/ecc/scripts/lib/install-targets/codebuddy-project.js +50 -0
  2206. package/resources/local/ecc/scripts/lib/install-targets/codex-home.js +10 -0
  2207. package/resources/local/ecc/scripts/lib/install-targets/cursor-project.js +210 -0
  2208. package/resources/local/ecc/scripts/lib/install-targets/gemini-project.js +10 -0
  2209. package/resources/local/ecc/scripts/lib/install-targets/helpers.js +368 -0
  2210. package/resources/local/ecc/scripts/lib/install-targets/joycode-project.js +50 -0
  2211. package/resources/local/ecc/scripts/lib/install-targets/opencode-home.js +10 -0
  2212. package/resources/local/ecc/scripts/lib/install-targets/qwen-home.js +10 -0
  2213. package/resources/local/ecc/scripts/lib/install-targets/registry.js +76 -0
  2214. package/resources/local/ecc/scripts/lib/install-targets/zed-project.js +50 -0
  2215. package/resources/local/ecc/scripts/lib/mcp-config.js +56 -0
  2216. package/resources/local/ecc/scripts/lib/observer-sessions.js +212 -0
  2217. package/resources/local/ecc/scripts/lib/orchestration-session.js +299 -0
  2218. package/resources/local/ecc/scripts/lib/package-manager.d.ts +119 -0
  2219. package/resources/local/ecc/scripts/lib/package-manager.js +431 -0
  2220. package/resources/local/ecc/scripts/lib/project-detect.js +438 -0
  2221. package/resources/local/ecc/scripts/lib/resolve-ecc-root.js +118 -0
  2222. package/resources/local/ecc/scripts/lib/resolve-formatter.js +185 -0
  2223. package/resources/local/ecc/scripts/lib/session-adapters/canonical-session.js +531 -0
  2224. package/resources/local/ecc/scripts/lib/session-adapters/claude-history.js +160 -0
  2225. package/resources/local/ecc/scripts/lib/session-adapters/dmux-tmux.js +90 -0
  2226. package/resources/local/ecc/scripts/lib/session-adapters/registry.js +127 -0
  2227. package/resources/local/ecc/scripts/lib/session-aliases.d.ts +136 -0
  2228. package/resources/local/ecc/scripts/lib/session-aliases.js +481 -0
  2229. package/resources/local/ecc/scripts/lib/session-bridge.js +81 -0
  2230. package/resources/local/ecc/scripts/lib/session-manager.d.ts +132 -0
  2231. package/resources/local/ecc/scripts/lib/session-manager.js +533 -0
  2232. package/resources/local/ecc/scripts/lib/shell-split.js +86 -0
  2233. package/resources/local/ecc/scripts/lib/shell-substitution.js +494 -0
  2234. package/resources/local/ecc/scripts/lib/skill-evolution/dashboard.js +401 -0
  2235. package/resources/local/ecc/scripts/lib/skill-evolution/health.js +263 -0
  2236. package/resources/local/ecc/scripts/lib/skill-evolution/index.js +20 -0
  2237. package/resources/local/ecc/scripts/lib/skill-evolution/provenance.js +187 -0
  2238. package/resources/local/ecc/scripts/lib/skill-evolution/tracker.js +146 -0
  2239. package/resources/local/ecc/scripts/lib/skill-evolution/versioning.js +237 -0
  2240. package/resources/local/ecc/scripts/lib/skill-improvement/amendify.js +89 -0
  2241. package/resources/local/ecc/scripts/lib/skill-improvement/evaluate.js +59 -0
  2242. package/resources/local/ecc/scripts/lib/skill-improvement/health.js +118 -0
  2243. package/resources/local/ecc/scripts/lib/skill-improvement/observations.js +108 -0
  2244. package/resources/local/ecc/scripts/lib/state-store/index.js +191 -0
  2245. package/resources/local/ecc/scripts/lib/state-store/migrations.js +209 -0
  2246. package/resources/local/ecc/scripts/lib/state-store/queries.js +906 -0
  2247. package/resources/local/ecc/scripts/lib/state-store/schema.js +93 -0
  2248. package/resources/local/ecc/scripts/lib/tmux-worktree-orchestrator.js +598 -0
  2249. package/resources/local/ecc/scripts/lib/utils.d.ts +196 -0
  2250. package/resources/local/ecc/scripts/lib/utils.js +629 -0
  2251. package/resources/local/ecc/scripts/list-installed.js +91 -0
  2252. package/resources/local/ecc/scripts/loop-status.js +820 -0
  2253. package/resources/local/ecc/scripts/observability-readiness.js +462 -0
  2254. package/resources/local/ecc/scripts/operator-readiness-dashboard.js +979 -0
  2255. package/resources/local/ecc/scripts/orchestrate-codex-worker.sh +107 -0
  2256. package/resources/local/ecc/scripts/orchestrate-worktrees.js +108 -0
  2257. package/resources/local/ecc/scripts/orchestration-status.js +62 -0
  2258. package/resources/local/ecc/scripts/platform-audit.js +749 -0
  2259. package/resources/local/ecc/scripts/preview-pack-smoke.js +353 -0
  2260. package/resources/local/ecc/scripts/repair.js +98 -0
  2261. package/resources/local/ecc/scripts/session-inspect.js +150 -0
  2262. package/resources/local/ecc/scripts/sessions-cli.js +178 -0
  2263. package/resources/local/ecc/scripts/setup-package-manager.js +204 -0
  2264. package/resources/local/ecc/scripts/skill-create-output.js +244 -0
  2265. package/resources/local/ecc/scripts/skills-health.js +132 -0
  2266. package/resources/local/ecc/scripts/status.js +394 -0
  2267. package/resources/local/ecc/scripts/sync-ecc-to-codex.sh +534 -0
  2268. package/resources/local/ecc/scripts/uninstall.js +97 -0
  2269. package/resources/local/ecc/scripts/work-items.js +510 -0
  2270. package/resources/local/ecc/skills/accessibility/SKILL.md +146 -0
  2271. package/resources/local/ecc/skills/agent-architecture-audit/SKILL.md +256 -0
  2272. package/resources/local/ecc/skills/agent-eval/SKILL.md +145 -0
  2273. package/resources/local/ecc/skills/agent-harness-construction/SKILL.md +73 -0
  2274. package/resources/local/ecc/skills/agent-introspection-debugging/SKILL.md +153 -0
  2275. package/resources/local/ecc/skills/agent-payment-x402/SKILL.md +224 -0
  2276. package/resources/local/ecc/skills/agent-sort/SKILL.md +215 -0
  2277. package/resources/local/ecc/skills/agentic-engineering/SKILL.md +63 -0
  2278. package/resources/local/ecc/skills/agentic-os/SKILL.md +387 -0
  2279. package/resources/local/ecc/skills/ai-first-engineering/SKILL.md +51 -0
  2280. package/resources/local/ecc/skills/ai-regression-testing/SKILL.md +385 -0
  2281. package/resources/local/ecc/skills/android-clean-architecture/SKILL.md +339 -0
  2282. package/resources/local/ecc/skills/angular-developer/SKILL.md +154 -0
  2283. package/resources/local/ecc/skills/angular-developer/references/angular-animations.md +160 -0
  2284. package/resources/local/ecc/skills/angular-developer/references/angular-aria.md +410 -0
  2285. package/resources/local/ecc/skills/angular-developer/references/cli.md +86 -0
  2286. package/resources/local/ecc/skills/angular-developer/references/component-harnesses.md +59 -0
  2287. package/resources/local/ecc/skills/angular-developer/references/component-styling.md +91 -0
  2288. package/resources/local/ecc/skills/angular-developer/references/components.md +117 -0
  2289. package/resources/local/ecc/skills/angular-developer/references/creating-services.md +97 -0
  2290. package/resources/local/ecc/skills/angular-developer/references/data-resolvers.md +69 -0
  2291. package/resources/local/ecc/skills/angular-developer/references/define-routes.md +67 -0
  2292. package/resources/local/ecc/skills/angular-developer/references/defining-providers.md +72 -0
  2293. package/resources/local/ecc/skills/angular-developer/references/di-fundamentals.md +120 -0
  2294. package/resources/local/ecc/skills/angular-developer/references/e2e-testing.md +56 -0
  2295. package/resources/local/ecc/skills/angular-developer/references/effects.md +83 -0
  2296. package/resources/local/ecc/skills/angular-developer/references/hierarchical-injectors.md +43 -0
  2297. package/resources/local/ecc/skills/angular-developer/references/host-elements.md +80 -0
  2298. package/resources/local/ecc/skills/angular-developer/references/injection-context.md +63 -0
  2299. package/resources/local/ecc/skills/angular-developer/references/inputs.md +101 -0
  2300. package/resources/local/ecc/skills/angular-developer/references/linked-signal.md +59 -0
  2301. package/resources/local/ecc/skills/angular-developer/references/loading-strategies.md +61 -0
  2302. package/resources/local/ecc/skills/angular-developer/references/mcp.md +108 -0
  2303. package/resources/local/ecc/skills/angular-developer/references/navigate-to-routes.md +69 -0
  2304. package/resources/local/ecc/skills/angular-developer/references/outputs.md +86 -0
  2305. package/resources/local/ecc/skills/angular-developer/references/reactive-forms.md +122 -0
  2306. package/resources/local/ecc/skills/angular-developer/references/rendering-strategies.md +44 -0
  2307. package/resources/local/ecc/skills/angular-developer/references/resource.md +77 -0
  2308. package/resources/local/ecc/skills/angular-developer/references/route-animations.md +56 -0
  2309. package/resources/local/ecc/skills/angular-developer/references/route-guards.md +52 -0
  2310. package/resources/local/ecc/skills/angular-developer/references/router-lifecycle.md +45 -0
  2311. package/resources/local/ecc/skills/angular-developer/references/router-testing.md +87 -0
  2312. package/resources/local/ecc/skills/angular-developer/references/show-routes-with-outlets.md +68 -0
  2313. package/resources/local/ecc/skills/angular-developer/references/signal-forms.md +795 -0
  2314. package/resources/local/ecc/skills/angular-developer/references/signals-overview.md +94 -0
  2315. package/resources/local/ecc/skills/angular-developer/references/tailwind-css.md +69 -0
  2316. package/resources/local/ecc/skills/angular-developer/references/template-driven-forms.md +114 -0
  2317. package/resources/local/ecc/skills/angular-developer/references/testing-fundamentals.md +65 -0
  2318. package/resources/local/ecc/skills/api-connector-builder/SKILL.md +120 -0
  2319. package/resources/local/ecc/skills/api-design/SKILL.md +523 -0
  2320. package/resources/local/ecc/skills/architecture-decision-records/SKILL.md +179 -0
  2321. package/resources/local/ecc/skills/article-writing/SKILL.md +79 -0
  2322. package/resources/local/ecc/skills/automation-audit-ops/SKILL.md +142 -0
  2323. package/resources/local/ecc/skills/autonomous-agent-harness/SKILL.md +273 -0
  2324. package/resources/local/ecc/skills/autonomous-loops/SKILL.md +610 -0
  2325. package/resources/local/ecc/skills/backend-patterns/SKILL.md +561 -0
  2326. package/resources/local/ecc/skills/benchmark/SKILL.md +93 -0
  2327. package/resources/local/ecc/skills/blender-motion-state-inspection/SKILL.md +164 -0
  2328. package/resources/local/ecc/skills/blueprint/SKILL.md +105 -0
  2329. package/resources/local/ecc/skills/brand-voice/SKILL.md +97 -0
  2330. package/resources/local/ecc/skills/brand-voice/references/voice-profile-schema.md +55 -0
  2331. package/resources/local/ecc/skills/browser-qa/SKILL.md +87 -0
  2332. package/resources/local/ecc/skills/bun-runtime/SKILL.md +84 -0
  2333. package/resources/local/ecc/skills/canary-watch/SKILL.md +107 -0
  2334. package/resources/local/ecc/skills/carrier-relationship-management/SKILL.md +212 -0
  2335. package/resources/local/ecc/skills/cisco-ios-patterns/SKILL.md +163 -0
  2336. package/resources/local/ecc/skills/ck/SKILL.md +147 -0
  2337. package/resources/local/ecc/skills/ck/commands/forget.mjs +44 -0
  2338. package/resources/local/ecc/skills/ck/commands/info.mjs +24 -0
  2339. package/resources/local/ecc/skills/ck/commands/init.mjs +143 -0
  2340. package/resources/local/ecc/skills/ck/commands/list.mjs +40 -0
  2341. package/resources/local/ecc/skills/ck/commands/migrate.mjs +202 -0
  2342. package/resources/local/ecc/skills/ck/commands/resume.mjs +36 -0
  2343. package/resources/local/ecc/skills/ck/commands/save.mjs +210 -0
  2344. package/resources/local/ecc/skills/ck/commands/shared.mjs +387 -0
  2345. package/resources/local/ecc/skills/ck/hooks/session-start.mjs +224 -0
  2346. package/resources/local/ecc/skills/claude-devfleet/SKILL.md +103 -0
  2347. package/resources/local/ecc/skills/click-path-audit/SKILL.md +244 -0
  2348. package/resources/local/ecc/skills/clickhouse-io/SKILL.md +439 -0
  2349. package/resources/local/ecc/skills/code-tour/SKILL.md +236 -0
  2350. package/resources/local/ecc/skills/codebase-onboarding/SKILL.md +233 -0
  2351. package/resources/local/ecc/skills/coding-standards/SKILL.md +549 -0
  2352. package/resources/local/ecc/skills/compose-multiplatform-patterns/SKILL.md +299 -0
  2353. package/resources/local/ecc/skills/configure-ecc/SKILL.md +384 -0
  2354. package/resources/local/ecc/skills/connections-optimizer/SKILL.md +189 -0
  2355. package/resources/local/ecc/skills/content-engine/SKILL.md +131 -0
  2356. package/resources/local/ecc/skills/content-hash-cache-pattern/SKILL.md +161 -0
  2357. package/resources/local/ecc/skills/context-budget/SKILL.md +135 -0
  2358. package/resources/local/ecc/skills/continuous-agent-loop/SKILL.md +45 -0
  2359. package/resources/local/ecc/skills/continuous-learning/SKILL.md +131 -0
  2360. package/resources/local/ecc/skills/continuous-learning/config.json +18 -0
  2361. package/resources/local/ecc/skills/continuous-learning/evaluate-session.sh +69 -0
  2362. package/resources/local/ecc/skills/continuous-learning-v2/SKILL.md +360 -0
  2363. package/resources/local/ecc/skills/continuous-learning-v2/agents/observer-loop.sh +322 -0
  2364. package/resources/local/ecc/skills/continuous-learning-v2/agents/observer.md +198 -0
  2365. package/resources/local/ecc/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
  2366. package/resources/local/ecc/skills/continuous-learning-v2/agents/start-observer.sh +248 -0
  2367. package/resources/local/ecc/skills/continuous-learning-v2/config.json +8 -0
  2368. package/resources/local/ecc/skills/continuous-learning-v2/hooks/observe.sh +492 -0
  2369. package/resources/local/ecc/skills/continuous-learning-v2/scripts/detect-project.sh +288 -0
  2370. package/resources/local/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +1519 -0
  2371. package/resources/local/ecc/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +31 -0
  2372. package/resources/local/ecc/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +62 -0
  2373. package/resources/local/ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +1018 -0
  2374. package/resources/local/ecc/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
  2375. package/resources/local/ecc/skills/cost-tracking/SKILL.md +147 -0
  2376. package/resources/local/ecc/skills/council/SKILL.md +203 -0
  2377. package/resources/local/ecc/skills/cpp-coding-standards/SKILL.md +723 -0
  2378. package/resources/local/ecc/skills/cpp-testing/SKILL.md +324 -0
  2379. package/resources/local/ecc/skills/crosspost/SKILL.md +111 -0
  2380. package/resources/local/ecc/skills/csharp-testing/SKILL.md +321 -0
  2381. package/resources/local/ecc/skills/customer-billing-ops/SKILL.md +140 -0
  2382. package/resources/local/ecc/skills/customs-trade-compliance/SKILL.md +263 -0
  2383. package/resources/local/ecc/skills/dart-flutter-patterns/SKILL.md +563 -0
  2384. package/resources/local/ecc/skills/dashboard-builder/SKILL.md +108 -0
  2385. package/resources/local/ecc/skills/data-scraper-agent/SKILL.md +764 -0
  2386. package/resources/local/ecc/skills/database-migrations/SKILL.md +429 -0
  2387. package/resources/local/ecc/skills/deep-research/SKILL.md +159 -0
  2388. package/resources/local/ecc/skills/defi-amm-security/SKILL.md +166 -0
  2389. package/resources/local/ecc/skills/deployment-patterns/SKILL.md +427 -0
  2390. package/resources/local/ecc/skills/design-system/SKILL.md +82 -0
  2391. package/resources/local/ecc/skills/django-celery/SKILL.md +457 -0
  2392. package/resources/local/ecc/skills/django-patterns/SKILL.md +734 -0
  2393. package/resources/local/ecc/skills/django-security/SKILL.md +593 -0
  2394. package/resources/local/ecc/skills/django-tdd/SKILL.md +729 -0
  2395. package/resources/local/ecc/skills/django-verification/SKILL.md +469 -0
  2396. package/resources/local/ecc/skills/dmux-workflows/SKILL.md +191 -0
  2397. package/resources/local/ecc/skills/docker-patterns/SKILL.md +364 -0
  2398. package/resources/local/ecc/skills/documentation-lookup/SKILL.md +90 -0
  2399. package/resources/local/ecc/skills/dotnet-patterns/SKILL.md +321 -0
  2400. package/resources/local/ecc/skills/e2e-testing/SKILL.md +326 -0
  2401. package/resources/local/ecc/skills/ecc-guide/SKILL.md +189 -0
  2402. package/resources/local/ecc/skills/ecc-tools-cost-audit/SKILL.md +160 -0
  2403. package/resources/local/ecc/skills/email-ops/SKILL.md +121 -0
  2404. package/resources/local/ecc/skills/energy-procurement/SKILL.md +228 -0
  2405. package/resources/local/ecc/skills/enterprise-agent-ops/SKILL.md +50 -0
  2406. package/resources/local/ecc/skills/error-handling/SKILL.md +376 -0
  2407. package/resources/local/ecc/skills/eval-harness/SKILL.md +270 -0
  2408. package/resources/local/ecc/skills/evm-token-decimals/SKILL.md +130 -0
  2409. package/resources/local/ecc/skills/exa-search/SKILL.md +107 -0
  2410. package/resources/local/ecc/skills/fal-ai-media/SKILL.md +288 -0
  2411. package/resources/local/ecc/skills/fastapi-patterns/SKILL.md +327 -0
  2412. package/resources/local/ecc/skills/finance-billing-ops/SKILL.md +127 -0
  2413. package/resources/local/ecc/skills/flox-environments/SKILL.md +496 -0
  2414. package/resources/local/ecc/skills/flutter-dart-code-review/SKILL.md +435 -0
  2415. package/resources/local/ecc/skills/foundation-models-on-device/SKILL.md +243 -0
  2416. package/resources/local/ecc/skills/frontend-design-direction/SKILL.md +92 -0
  2417. package/resources/local/ecc/skills/frontend-patterns/SKILL.md +642 -0
  2418. package/resources/local/ecc/skills/frontend-slides/SKILL.md +184 -0
  2419. package/resources/local/ecc/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  2420. package/resources/local/ecc/skills/frontend-slides/animation-patterns.md +122 -0
  2421. package/resources/local/ecc/skills/frontend-slides/html-template.md +419 -0
  2422. package/resources/local/ecc/skills/frontend-slides/scripts/export-pdf.sh +418 -0
  2423. package/resources/local/ecc/skills/frontend-slides/scripts/extract-pptx.py +96 -0
  2424. package/resources/local/ecc/skills/frontend-slides/viewport-base.css +153 -0
  2425. package/resources/local/ecc/skills/fsharp-testing/SKILL.md +280 -0
  2426. package/resources/local/ecc/skills/gan-style-harness/SKILL.md +278 -0
  2427. package/resources/local/ecc/skills/gateguard/SKILL.md +125 -0
  2428. package/resources/local/ecc/skills/git-workflow/SKILL.md +715 -0
  2429. package/resources/local/ecc/skills/github-ops/SKILL.md +144 -0
  2430. package/resources/local/ecc/skills/golang-patterns/SKILL.md +674 -0
  2431. package/resources/local/ecc/skills/golang-testing/SKILL.md +720 -0
  2432. package/resources/local/ecc/skills/google-workspace-ops/SKILL.md +95 -0
  2433. package/resources/local/ecc/skills/healthcare-cdss-patterns/SKILL.md +245 -0
  2434. package/resources/local/ecc/skills/healthcare-emr-patterns/SKILL.md +159 -0
  2435. package/resources/local/ecc/skills/healthcare-eval-harness/SKILL.md +207 -0
  2436. package/resources/local/ecc/skills/healthcare-phi-compliance/SKILL.md +145 -0
  2437. package/resources/local/ecc/skills/hermes-imports/SKILL.md +88 -0
  2438. package/resources/local/ecc/skills/hexagonal-architecture/SKILL.md +276 -0
  2439. package/resources/local/ecc/skills/hipaa-compliance/SKILL.md +78 -0
  2440. package/resources/local/ecc/skills/homelab-network-readiness/SKILL.md +169 -0
  2441. package/resources/local/ecc/skills/homelab-network-setup/SKILL.md +129 -0
  2442. package/resources/local/ecc/skills/homelab-pihole-dns/SKILL.md +274 -0
  2443. package/resources/local/ecc/skills/homelab-vlan-segmentation/SKILL.md +311 -0
  2444. package/resources/local/ecc/skills/homelab-wireguard-vpn/SKILL.md +305 -0
  2445. package/resources/local/ecc/skills/hookify-rules/SKILL.md +128 -0
  2446. package/resources/local/ecc/skills/inventory-demand-planning/SKILL.md +247 -0
  2447. package/resources/local/ecc/skills/investor-materials/SKILL.md +96 -0
  2448. package/resources/local/ecc/skills/investor-outreach/SKILL.md +91 -0
  2449. package/resources/local/ecc/skills/ios-icon-gen/SKILL.md +157 -0
  2450. package/resources/local/ecc/skills/ios-icon-gen/scripts/generate_icons.swift +258 -0
  2451. package/resources/local/ecc/skills/ios-icon-gen/scripts/iconify_gen.sh +235 -0
  2452. package/resources/local/ecc/skills/iterative-retrieval/SKILL.md +211 -0
  2453. package/resources/local/ecc/skills/java-coding-standards/SKILL.md +383 -0
  2454. package/resources/local/ecc/skills/jira-integration/SKILL.md +293 -0
  2455. package/resources/local/ecc/skills/jpa-patterns/SKILL.md +151 -0
  2456. package/resources/local/ecc/skills/knowledge-ops/SKILL.md +154 -0
  2457. package/resources/local/ecc/skills/kotlin-coroutines-flows/SKILL.md +284 -0
  2458. package/resources/local/ecc/skills/kotlin-exposed-patterns/SKILL.md +719 -0
  2459. package/resources/local/ecc/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  2460. package/resources/local/ecc/skills/kotlin-patterns/SKILL.md +711 -0
  2461. package/resources/local/ecc/skills/kotlin-testing/SKILL.md +824 -0
  2462. package/resources/local/ecc/skills/laravel-patterns/SKILL.md +415 -0
  2463. package/resources/local/ecc/skills/laravel-plugin-discovery/SKILL.md +229 -0
  2464. package/resources/local/ecc/skills/laravel-security/SKILL.md +285 -0
  2465. package/resources/local/ecc/skills/laravel-tdd/SKILL.md +283 -0
  2466. package/resources/local/ecc/skills/laravel-verification/SKILL.md +179 -0
  2467. package/resources/local/ecc/skills/lead-intelligence/SKILL.md +321 -0
  2468. package/resources/local/ecc/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
  2469. package/resources/local/ecc/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
  2470. package/resources/local/ecc/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
  2471. package/resources/local/ecc/skills/lead-intelligence/agents/signal-scorer.md +60 -0
  2472. package/resources/local/ecc/skills/liquid-glass-design/SKILL.md +279 -0
  2473. package/resources/local/ecc/skills/llm-trading-agent-security/SKILL.md +146 -0
  2474. package/resources/local/ecc/skills/logistics-exception-management/SKILL.md +222 -0
  2475. package/resources/local/ecc/skills/make-interfaces-feel-better/SKILL.md +151 -0
  2476. package/resources/local/ecc/skills/manim-video/SKILL.md +89 -0
  2477. package/resources/local/ecc/skills/manim-video/assets/network_graph_scene.py +52 -0
  2478. package/resources/local/ecc/skills/market-research/SKILL.md +75 -0
  2479. package/resources/local/ecc/skills/mcp-server-patterns/SKILL.md +69 -0
  2480. package/resources/local/ecc/skills/messages-ops/SKILL.md +104 -0
  2481. package/resources/local/ecc/skills/mle-workflow/SKILL.md +346 -0
  2482. package/resources/local/ecc/skills/motion-advanced/SKILL.md +596 -0
  2483. package/resources/local/ecc/skills/motion-foundations/SKILL.md +299 -0
  2484. package/resources/local/ecc/skills/motion-patterns/SKILL.md +435 -0
  2485. package/resources/local/ecc/skills/motion-ui/SKILL.md +575 -0
  2486. package/resources/local/ecc/skills/mysql-patterns/SKILL.md +412 -0
  2487. package/resources/local/ecc/skills/nanoclaw-repl/SKILL.md +33 -0
  2488. package/resources/local/ecc/skills/nestjs-patterns/SKILL.md +230 -0
  2489. package/resources/local/ecc/skills/netmiko-ssh-automation/SKILL.md +173 -0
  2490. package/resources/local/ecc/skills/network-bgp-diagnostics/SKILL.md +167 -0
  2491. package/resources/local/ecc/skills/network-config-validation/SKILL.md +210 -0
  2492. package/resources/local/ecc/skills/network-interface-health/SKILL.md +152 -0
  2493. package/resources/local/ecc/skills/nextjs-turbopack/SKILL.md +44 -0
  2494. package/resources/local/ecc/skills/nodejs-keccak256/SKILL.md +102 -0
  2495. package/resources/local/ecc/skills/nutrient-document-processing/SKILL.md +167 -0
  2496. package/resources/local/ecc/skills/nuxt4-patterns/SKILL.md +100 -0
  2497. package/resources/local/ecc/skills/openclaw-persona-forge/SKILL.md +288 -0
  2498. package/resources/local/ecc/skills/openclaw-persona-forge/gacha.py +224 -0
  2499. package/resources/local/ecc/skills/openclaw-persona-forge/gacha.sh +5 -0
  2500. package/resources/local/ecc/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
  2501. package/resources/local/ecc/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
  2502. package/resources/local/ecc/skills/openclaw-persona-forge/references/error-handling.md +53 -0
  2503. package/resources/local/ecc/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
  2504. package/resources/local/ecc/skills/openclaw-persona-forge/references/naming-system.md +39 -0
  2505. package/resources/local/ecc/skills/openclaw-persona-forge/references/output-template.md +166 -0
  2506. package/resources/local/ecc/skills/opensource-pipeline/SKILL.md +255 -0
  2507. package/resources/local/ecc/skills/perl-patterns/SKILL.md +504 -0
  2508. package/resources/local/ecc/skills/perl-security/SKILL.md +503 -0
  2509. package/resources/local/ecc/skills/perl-testing/SKILL.md +475 -0
  2510. package/resources/local/ecc/skills/plan-orchestrate/SKILL.md +262 -0
  2511. package/resources/local/ecc/skills/plankton-code-quality/SKILL.md +236 -0
  2512. package/resources/local/ecc/skills/postgres-patterns/SKILL.md +147 -0
  2513. package/resources/local/ecc/skills/prisma-patterns/SKILL.md +371 -0
  2514. package/resources/local/ecc/skills/product-capability/SKILL.md +141 -0
  2515. package/resources/local/ecc/skills/product-lens/SKILL.md +92 -0
  2516. package/resources/local/ecc/skills/production-audit/SKILL.md +206 -0
  2517. package/resources/local/ecc/skills/production-scheduling/SKILL.md +238 -0
  2518. package/resources/local/ecc/skills/project-flow-ops/SKILL.md +111 -0
  2519. package/resources/local/ecc/skills/prompt-optimizer/SKILL.md +398 -0
  2520. package/resources/local/ecc/skills/python-patterns/SKILL.md +750 -0
  2521. package/resources/local/ecc/skills/python-testing/SKILL.md +816 -0
  2522. package/resources/local/ecc/skills/pytorch-patterns/SKILL.md +396 -0
  2523. package/resources/local/ecc/skills/quality-nonconformance/SKILL.md +260 -0
  2524. package/resources/local/ecc/skills/quarkus-patterns/SKILL.md +722 -0
  2525. package/resources/local/ecc/skills/quarkus-security/SKILL.md +467 -0
  2526. package/resources/local/ecc/skills/quarkus-tdd/SKILL.md +811 -0
  2527. package/resources/local/ecc/skills/quarkus-verification/SKILL.md +479 -0
  2528. package/resources/local/ecc/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
  2529. package/resources/local/ecc/skills/recsys-pipeline-architect/SKILL.md +114 -0
  2530. package/resources/local/ecc/skills/redis-patterns/SKILL.md +403 -0
  2531. package/resources/local/ecc/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
  2532. package/resources/local/ecc/skills/remotion-video-creation/SKILL.md +43 -0
  2533. package/resources/local/ecc/skills/remotion-video-creation/rules/3d.md +86 -0
  2534. package/resources/local/ecc/skills/remotion-video-creation/rules/animations.md +29 -0
  2535. package/resources/local/ecc/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
  2536. package/resources/local/ecc/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
  2537. package/resources/local/ecc/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
  2538. package/resources/local/ecc/skills/remotion-video-creation/rules/assets.md +78 -0
  2539. package/resources/local/ecc/skills/remotion-video-creation/rules/audio.md +172 -0
  2540. package/resources/local/ecc/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
  2541. package/resources/local/ecc/skills/remotion-video-creation/rules/can-decode.md +75 -0
  2542. package/resources/local/ecc/skills/remotion-video-creation/rules/charts.md +58 -0
  2543. package/resources/local/ecc/skills/remotion-video-creation/rules/compositions.md +146 -0
  2544. package/resources/local/ecc/skills/remotion-video-creation/rules/display-captions.md +126 -0
  2545. package/resources/local/ecc/skills/remotion-video-creation/rules/extract-frames.md +229 -0
  2546. package/resources/local/ecc/skills/remotion-video-creation/rules/fonts.md +152 -0
  2547. package/resources/local/ecc/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
  2548. package/resources/local/ecc/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
  2549. package/resources/local/ecc/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
  2550. package/resources/local/ecc/skills/remotion-video-creation/rules/gifs.md +138 -0
  2551. package/resources/local/ecc/skills/remotion-video-creation/rules/images.md +130 -0
  2552. package/resources/local/ecc/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
  2553. package/resources/local/ecc/skills/remotion-video-creation/rules/lottie.md +67 -0
  2554. package/resources/local/ecc/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
  2555. package/resources/local/ecc/skills/remotion-video-creation/rules/measuring-text.md +143 -0
  2556. package/resources/local/ecc/skills/remotion-video-creation/rules/sequencing.md +106 -0
  2557. package/resources/local/ecc/skills/remotion-video-creation/rules/tailwind.md +11 -0
  2558. package/resources/local/ecc/skills/remotion-video-creation/rules/text-animations.md +20 -0
  2559. package/resources/local/ecc/skills/remotion-video-creation/rules/timing.md +179 -0
  2560. package/resources/local/ecc/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
  2561. package/resources/local/ecc/skills/remotion-video-creation/rules/transitions.md +122 -0
  2562. package/resources/local/ecc/skills/remotion-video-creation/rules/trimming.md +52 -0
  2563. package/resources/local/ecc/skills/remotion-video-creation/rules/videos.md +171 -0
  2564. package/resources/local/ecc/skills/repo-scan/SKILL.md +78 -0
  2565. package/resources/local/ecc/skills/research-ops/SKILL.md +112 -0
  2566. package/resources/local/ecc/skills/returns-reverse-logistics/SKILL.md +240 -0
  2567. package/resources/local/ecc/skills/rules-distill/SKILL.md +264 -0
  2568. package/resources/local/ecc/skills/rules-distill/scripts/scan-rules.sh +58 -0
  2569. package/resources/local/ecc/skills/rules-distill/scripts/scan-skills.sh +129 -0
  2570. package/resources/local/ecc/skills/rust-patterns/SKILL.md +499 -0
  2571. package/resources/local/ecc/skills/rust-testing/SKILL.md +500 -0
  2572. package/resources/local/ecc/skills/safety-guard/SKILL.md +75 -0
  2573. package/resources/local/ecc/skills/santa-method/SKILL.md +306 -0
  2574. package/resources/local/ecc/skills/scientific-db-pubmed-database/SKILL.md +175 -0
  2575. package/resources/local/ecc/skills/scientific-db-uspto-database/SKILL.md +177 -0
  2576. package/resources/local/ecc/skills/scientific-pkg-gget/SKILL.md +166 -0
  2577. package/resources/local/ecc/skills/scientific-thinking-literature-review/SKILL.md +192 -0
  2578. package/resources/local/ecc/skills/scientific-thinking-scholar-evaluation/SKILL.md +160 -0
  2579. package/resources/local/ecc/skills/search-first/SKILL.md +182 -0
  2580. package/resources/local/ecc/skills/security-bounty-hunter/SKILL.md +99 -0
  2581. package/resources/local/ecc/skills/security-review/SKILL.md +503 -0
  2582. package/resources/local/ecc/skills/security-review/cloud-infrastructure-security.md +361 -0
  2583. package/resources/local/ecc/skills/security-scan/SKILL.md +165 -0
  2584. package/resources/local/ecc/skills/seo/SKILL.md +154 -0
  2585. package/resources/local/ecc/skills/skill-comply/SKILL.md +58 -0
  2586. package/resources/local/ecc/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
  2587. package/resources/local/ecc/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
  2588. package/resources/local/ecc/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
  2589. package/resources/local/ecc/skills/skill-comply/prompts/classifier.md +24 -0
  2590. package/resources/local/ecc/skills/skill-comply/prompts/scenario_generator.md +62 -0
  2591. package/resources/local/ecc/skills/skill-comply/prompts/spec_generator.md +42 -0
  2592. package/resources/local/ecc/skills/skill-comply/pyproject.toml +15 -0
  2593. package/resources/local/ecc/skills/skill-comply/scripts/__init__.py +0 -0
  2594. package/resources/local/ecc/skills/skill-comply/scripts/classifier.py +85 -0
  2595. package/resources/local/ecc/skills/skill-comply/scripts/grader.py +124 -0
  2596. package/resources/local/ecc/skills/skill-comply/scripts/parser.py +107 -0
  2597. package/resources/local/ecc/skills/skill-comply/scripts/report.py +170 -0
  2598. package/resources/local/ecc/skills/skill-comply/scripts/run.py +127 -0
  2599. package/resources/local/ecc/skills/skill-comply/scripts/runner.py +186 -0
  2600. package/resources/local/ecc/skills/skill-comply/scripts/scenario_generator.py +70 -0
  2601. package/resources/local/ecc/skills/skill-comply/scripts/spec_generator.py +72 -0
  2602. package/resources/local/ecc/skills/skill-comply/scripts/utils.py +13 -0
  2603. package/resources/local/ecc/skills/skill-comply/tests/test_grader.py +197 -0
  2604. package/resources/local/ecc/skills/skill-comply/tests/test_parser.py +90 -0
  2605. package/resources/local/ecc/skills/skill-comply/tests/test_runner.py +172 -0
  2606. package/resources/local/ecc/skills/skill-scout/SKILL.md +140 -0
  2607. package/resources/local/ecc/skills/skill-stocktake/SKILL.md +194 -0
  2608. package/resources/local/ecc/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
  2609. package/resources/local/ecc/skills/skill-stocktake/scripts/save-results.sh +56 -0
  2610. package/resources/local/ecc/skills/skill-stocktake/scripts/scan.sh +170 -0
  2611. package/resources/local/ecc/skills/social-graph-ranker/SKILL.md +154 -0
  2612. package/resources/local/ecc/skills/springboot-patterns/SKILL.md +314 -0
  2613. package/resources/local/ecc/skills/springboot-security/SKILL.md +272 -0
  2614. package/resources/local/ecc/skills/springboot-tdd/SKILL.md +158 -0
  2615. package/resources/local/ecc/skills/springboot-verification/SKILL.md +231 -0
  2616. package/resources/local/ecc/skills/strategic-compact/SKILL.md +131 -0
  2617. package/resources/local/ecc/skills/swift-actor-persistence/SKILL.md +143 -0
  2618. package/resources/local/ecc/skills/swift-concurrency-6-2/SKILL.md +216 -0
  2619. package/resources/local/ecc/skills/swift-protocol-di-testing/SKILL.md +190 -0
  2620. package/resources/local/ecc/skills/swiftui-patterns/SKILL.md +259 -0
  2621. package/resources/local/ecc/skills/tdd-workflow/SKILL.md +463 -0
  2622. package/resources/local/ecc/skills/team-builder/SKILL.md +168 -0
  2623. package/resources/local/ecc/skills/terminal-ops/SKILL.md +109 -0
  2624. package/resources/local/ecc/skills/tinystruct-patterns/SKILL.md +203 -0
  2625. package/resources/local/ecc/skills/tinystruct-patterns/references/architecture.md +90 -0
  2626. package/resources/local/ecc/skills/tinystruct-patterns/references/data-handling.md +60 -0
  2627. package/resources/local/ecc/skills/tinystruct-patterns/references/database.md +99 -0
  2628. package/resources/local/ecc/skills/tinystruct-patterns/references/routing.md +64 -0
  2629. package/resources/local/ecc/skills/tinystruct-patterns/references/system-usage.md +97 -0
  2630. package/resources/local/ecc/skills/tinystruct-patterns/references/testing.md +72 -0
  2631. package/resources/local/ecc/skills/token-budget-advisor/SKILL.md +133 -0
  2632. package/resources/local/ecc/skills/ui-demo/SKILL.md +465 -0
  2633. package/resources/local/ecc/skills/ui-to-vue/SKILL.md +134 -0
  2634. package/resources/local/ecc/skills/uncloud/SKILL.md +343 -0
  2635. package/resources/local/ecc/skills/unified-notifications-ops/SKILL.md +187 -0
  2636. package/resources/local/ecc/skills/verification-loop/SKILL.md +126 -0
  2637. package/resources/local/ecc/skills/video-editing/SKILL.md +310 -0
  2638. package/resources/local/ecc/skills/videodb/SKILL.md +374 -0
  2639. package/resources/local/ecc/skills/videodb/reference/api-reference.md +550 -0
  2640. package/resources/local/ecc/skills/videodb/reference/capture-reference.md +407 -0
  2641. package/resources/local/ecc/skills/videodb/reference/capture.md +101 -0
  2642. package/resources/local/ecc/skills/videodb/reference/editor.md +443 -0
  2643. package/resources/local/ecc/skills/videodb/reference/generative.md +331 -0
  2644. package/resources/local/ecc/skills/videodb/reference/rtstream-reference.md +564 -0
  2645. package/resources/local/ecc/skills/videodb/reference/rtstream.md +65 -0
  2646. package/resources/local/ecc/skills/videodb/reference/search.md +230 -0
  2647. package/resources/local/ecc/skills/videodb/reference/streaming.md +406 -0
  2648. package/resources/local/ecc/skills/videodb/reference/use-cases.md +118 -0
  2649. package/resources/local/ecc/skills/videodb/scripts/ws_listener.py +282 -0
  2650. package/resources/local/ecc/skills/visa-doc-translate/README.md +86 -0
  2651. package/resources/local/ecc/skills/visa-doc-translate/SKILL.md +117 -0
  2652. package/resources/local/ecc/skills/vite-patterns/SKILL.md +449 -0
  2653. package/resources/local/ecc/skills/windows-desktop-e2e/SKILL.md +887 -0
  2654. package/resources/local/ecc/skills/workspace-surface-audit/SKILL.md +125 -0
  2655. package/resources/local/ecc/skills/x-api/SKILL.md +234 -0
  2656. package/resources/local/ecc/src/llm/__init__.py +33 -0
  2657. package/resources/local/ecc/src/llm/__main__.py +7 -0
  2658. package/resources/local/ecc/src/llm/cli/__init__.py +0 -0
  2659. package/resources/local/ecc/src/llm/cli/selector.py +154 -0
  2660. package/resources/local/ecc/src/llm/core/__init__.py +1 -0
  2661. package/resources/local/ecc/src/llm/core/interface.py +60 -0
  2662. package/resources/local/ecc/src/llm/core/types.py +166 -0
  2663. package/resources/local/ecc/src/llm/prompt/__init__.py +23 -0
  2664. package/resources/local/ecc/src/llm/prompt/builder.py +125 -0
  2665. package/resources/local/ecc/src/llm/prompt/templates/__init__.py +41 -0
  2666. package/resources/local/ecc/src/llm/providers/__init__.py +17 -0
  2667. package/resources/local/ecc/src/llm/providers/astraflow.py +151 -0
  2668. package/resources/local/ecc/src/llm/providers/claude.py +117 -0
  2669. package/resources/local/ecc/src/llm/providers/constants.py +3 -0
  2670. package/resources/local/ecc/src/llm/providers/ollama.py +112 -0
  2671. package/resources/local/ecc/src/llm/providers/openai.py +125 -0
  2672. package/resources/local/ecc/src/llm/providers/resolver.py +78 -0
  2673. package/resources/local/ecc/src/llm/tools/__init__.py +9 -0
  2674. package/resources/local/ecc/src/llm/tools/executor.py +116 -0
  2675. package/resources/local/ecc/tests/__init__.py +0 -0
  2676. package/resources/local/ecc/tests/ci/agent-instruction-safety.test.js +98 -0
  2677. package/resources/local/ecc/tests/ci/agent-yaml-surface.test.js +131 -0
  2678. package/resources/local/ecc/tests/ci/catalog.test.js +294 -0
  2679. package/resources/local/ecc/tests/ci/code-reviewer-false-positive-guard.test.js +82 -0
  2680. package/resources/local/ecc/tests/ci/codex-skill-surface.test.js +125 -0
  2681. package/resources/local/ecc/tests/ci/command-registry.test.js +176 -0
  2682. package/resources/local/ecc/tests/ci/mle-workflow-coverage.test.js +223 -0
  2683. package/resources/local/ecc/tests/ci/no-personal-paths.test.js +211 -0
  2684. package/resources/local/ecc/tests/ci/scan-supply-chain-iocs.test.js +447 -0
  2685. package/resources/local/ecc/tests/ci/supply-chain-advisory-sources.test.js +290 -0
  2686. package/resources/local/ecc/tests/ci/supply-chain-watch-workflow.test.js +77 -0
  2687. package/resources/local/ecc/tests/ci/validate-workflow-security.test.js +289 -0
  2688. package/resources/local/ecc/tests/ci/validators.test.js +3139 -0
  2689. package/resources/local/ecc/tests/codex-config.test.js +117 -0
  2690. package/resources/local/ecc/tests/commands/command-frontmatter.test.js +61 -0
  2691. package/resources/local/ecc/tests/commands/plan-command.test.js +76 -0
  2692. package/resources/local/ecc/tests/conftest.py +10 -0
  2693. package/resources/local/ecc/tests/docs/canary-watch.test.js +45 -0
  2694. package/resources/local/ecc/tests/docs/configure-ecc-install-paths.test.js +69 -0
  2695. package/resources/local/ecc/tests/docs/continuous-learning-v2-docs.test.js +64 -0
  2696. package/resources/local/ecc/tests/docs/copilot-support.test.js +110 -0
  2697. package/resources/local/ecc/tests/docs/ecc2-release-surface.test.js +374 -0
  2698. package/resources/local/ecc/tests/docs/evaluator-rag-prototype.test.js +417 -0
  2699. package/resources/local/ecc/tests/docs/harness-adapter-compliance.test.js +154 -0
  2700. package/resources/local/ecc/tests/docs/install-identifiers.test.js +104 -0
  2701. package/resources/local/ecc/tests/docs/legacy-artifact-inventory.test.js +155 -0
  2702. package/resources/local/ecc/tests/docs/mcp-management-docs.test.js +77 -0
  2703. package/resources/local/ecc/tests/docs/stale-pr-salvage-ledger.test.js +158 -0
  2704. package/resources/local/ecc/tests/hooks/auto-tmux-dev.test.js +145 -0
  2705. package/resources/local/ecc/tests/hooks/bash-hook-dispatcher.test.js +114 -0
  2706. package/resources/local/ecc/tests/hooks/block-no-verify.test.js +203 -0
  2707. package/resources/local/ecc/tests/hooks/check-hook-enabled.test.js +108 -0
  2708. package/resources/local/ecc/tests/hooks/config-protection.test.js +322 -0
  2709. package/resources/local/ecc/tests/hooks/continuous-learning-observe-runner.test.js +194 -0
  2710. package/resources/local/ecc/tests/hooks/cost-tracker.test.js +222 -0
  2711. package/resources/local/ecc/tests/hooks/design-quality-check.test.js +82 -0
  2712. package/resources/local/ecc/tests/hooks/detect-project-worktree.test.js +260 -0
  2713. package/resources/local/ecc/tests/hooks/doc-file-warning.test.js +215 -0
  2714. package/resources/local/ecc/tests/hooks/ecc-context-monitor.test.js +301 -0
  2715. package/resources/local/ecc/tests/hooks/ecc-metrics-bridge.test.js +430 -0
  2716. package/resources/local/ecc/tests/hooks/ecc-statusline.test.js +213 -0
  2717. package/resources/local/ecc/tests/hooks/evaluate-session.test.js +419 -0
  2718. package/resources/local/ecc/tests/hooks/gateguard-fact-force.test.js +1407 -0
  2719. package/resources/local/ecc/tests/hooks/governance-capture.test.js +360 -0
  2720. package/resources/local/ecc/tests/hooks/hook-flags.test.js +397 -0
  2721. package/resources/local/ecc/tests/hooks/hooks.test.js +6041 -0
  2722. package/resources/local/ecc/tests/hooks/insaits-security-monitor.test.js +219 -0
  2723. package/resources/local/ecc/tests/hooks/insaits-security-wrapper.test.js +199 -0
  2724. package/resources/local/ecc/tests/hooks/mcp-health-check.test.js +1131 -0
  2725. package/resources/local/ecc/tests/hooks/observe-subdirectory-detection.test.js +279 -0
  2726. package/resources/local/ecc/tests/hooks/observer-memory.test.js +475 -0
  2727. package/resources/local/ecc/tests/hooks/plugin-hook-bootstrap.test.js +254 -0
  2728. package/resources/local/ecc/tests/hooks/post-bash-hooks.test.js +207 -0
  2729. package/resources/local/ecc/tests/hooks/pre-bash-commit-quality.test.js +293 -0
  2730. package/resources/local/ecc/tests/hooks/pre-bash-dev-server-block.test.js +225 -0
  2731. package/resources/local/ecc/tests/hooks/pre-bash-reminders.test.js +104 -0
  2732. package/resources/local/ecc/tests/hooks/quality-gate.test.js +159 -0
  2733. package/resources/local/ecc/tests/hooks/session-activity-tracker.test.js +668 -0
  2734. package/resources/local/ecc/tests/hooks/stop-format-typecheck.test.js +248 -0
  2735. package/resources/local/ecc/tests/hooks/suggest-compact.test.js +460 -0
  2736. package/resources/local/ecc/tests/hooks/test_insaits_security_monitor.py +272 -0
  2737. package/resources/local/ecc/tests/integration/hooks.test.js +1018 -0
  2738. package/resources/local/ecc/tests/lib/agent-compress.test.js +271 -0
  2739. package/resources/local/ecc/tests/lib/changed-files-store.test.js +163 -0
  2740. package/resources/local/ecc/tests/lib/command-plugin-root.test.js +48 -0
  2741. package/resources/local/ecc/tests/lib/cost-estimate.test.js +114 -0
  2742. package/resources/local/ecc/tests/lib/inspection.test.js +232 -0
  2743. package/resources/local/ecc/tests/lib/install-config.test.js +144 -0
  2744. package/resources/local/ecc/tests/lib/install-executor.test.js +435 -0
  2745. package/resources/local/ecc/tests/lib/install-lifecycle.test.js +1608 -0
  2746. package/resources/local/ecc/tests/lib/install-manifests.test.js +882 -0
  2747. package/resources/local/ecc/tests/lib/install-request.test.js +249 -0
  2748. package/resources/local/ecc/tests/lib/install-state.test.js +234 -0
  2749. package/resources/local/ecc/tests/lib/install-targets.test.js +872 -0
  2750. package/resources/local/ecc/tests/lib/locale-install.test.js +172 -0
  2751. package/resources/local/ecc/tests/lib/mcp-config.test.js +62 -0
  2752. package/resources/local/ecc/tests/lib/observer-sessions.test.js +134 -0
  2753. package/resources/local/ecc/tests/lib/orchestration-session.test.js +225 -0
  2754. package/resources/local/ecc/tests/lib/package-manager.test.js +1698 -0
  2755. package/resources/local/ecc/tests/lib/project-detect.test.js +447 -0
  2756. package/resources/local/ecc/tests/lib/resolve-ecc-root.test.js +351 -0
  2757. package/resources/local/ecc/tests/lib/resolve-formatter.test.js +277 -0
  2758. package/resources/local/ecc/tests/lib/selective-install.test.js +836 -0
  2759. package/resources/local/ecc/tests/lib/session-adapters.test.js +970 -0
  2760. package/resources/local/ecc/tests/lib/session-aliases.test.js +1830 -0
  2761. package/resources/local/ecc/tests/lib/session-bridge.test.js +174 -0
  2762. package/resources/local/ecc/tests/lib/session-manager.test.js +2650 -0
  2763. package/resources/local/ecc/tests/lib/shell-split.test.js +114 -0
  2764. package/resources/local/ecc/tests/lib/skill-dashboard.test.js +574 -0
  2765. package/resources/local/ecc/tests/lib/skill-evolution.test.js +656 -0
  2766. package/resources/local/ecc/tests/lib/skill-improvement.test.js +186 -0
  2767. package/resources/local/ecc/tests/lib/state-store.test.js +1002 -0
  2768. package/resources/local/ecc/tests/lib/tmux-worktree-orchestrator.test.js +423 -0
  2769. package/resources/local/ecc/tests/lib/utils.test.js +2648 -0
  2770. package/resources/local/ecc/tests/opencode-config.test.js +103 -0
  2771. package/resources/local/ecc/tests/opencode-plugin-hooks.test.js +183 -0
  2772. package/resources/local/ecc/tests/plugin-manifest.test.js +545 -0
  2773. package/resources/local/ecc/tests/run-all.js +118 -0
  2774. package/resources/local/ecc/tests/scripts/auto-update.test.js +395 -0
  2775. package/resources/local/ecc/tests/scripts/build-opencode.test.js +123 -0
  2776. package/resources/local/ecc/tests/scripts/catalog.test.js +104 -0
  2777. package/resources/local/ecc/tests/scripts/check-unicode-safety.test.js +203 -0
  2778. package/resources/local/ecc/tests/scripts/claw.test.js +325 -0
  2779. package/resources/local/ecc/tests/scripts/codex-hooks.test.js +508 -0
  2780. package/resources/local/ecc/tests/scripts/consult.test.js +194 -0
  2781. package/resources/local/ecc/tests/scripts/discussion-audit.test.js +302 -0
  2782. package/resources/local/ecc/tests/scripts/doctor.test.js +190 -0
  2783. package/resources/local/ecc/tests/scripts/ecc-dashboard.test.js +142 -0
  2784. package/resources/local/ecc/tests/scripts/ecc.test.js +258 -0
  2785. package/resources/local/ecc/tests/scripts/gemini-adapt-agents.test.js +136 -0
  2786. package/resources/local/ecc/tests/scripts/harness-audit.test.js +477 -0
  2787. package/resources/local/ecc/tests/scripts/install-apply.test.js +904 -0
  2788. package/resources/local/ecc/tests/scripts/install-plan.test.js +194 -0
  2789. package/resources/local/ecc/tests/scripts/install-ps1.test.js +128 -0
  2790. package/resources/local/ecc/tests/scripts/install-readme-clarity.test.js +170 -0
  2791. package/resources/local/ecc/tests/scripts/install-sh.test.js +102 -0
  2792. package/resources/local/ecc/tests/scripts/list-installed.test.js +139 -0
  2793. package/resources/local/ecc/tests/scripts/loop-status.test.js +749 -0
  2794. package/resources/local/ecc/tests/scripts/manual-hook-install-docs.test.js +71 -0
  2795. package/resources/local/ecc/tests/scripts/npm-publish-surface.test.js +188 -0
  2796. package/resources/local/ecc/tests/scripts/observability-readiness.test.js +331 -0
  2797. package/resources/local/ecc/tests/scripts/openclaw-persona-forge-gacha.test.js +92 -0
  2798. package/resources/local/ecc/tests/scripts/operator-readiness-dashboard.test.js +640 -0
  2799. package/resources/local/ecc/tests/scripts/orchestrate-codex-worker.test.js +63 -0
  2800. package/resources/local/ecc/tests/scripts/orchestration-status.test.js +76 -0
  2801. package/resources/local/ecc/tests/scripts/platform-audit.test.js +432 -0
  2802. package/resources/local/ecc/tests/scripts/post-bash-command-log.test.js +105 -0
  2803. package/resources/local/ecc/tests/scripts/preview-pack-smoke.test.js +260 -0
  2804. package/resources/local/ecc/tests/scripts/release-publish.test.js +79 -0
  2805. package/resources/local/ecc/tests/scripts/release.test.js +150 -0
  2806. package/resources/local/ecc/tests/scripts/repair.test.js +326 -0
  2807. package/resources/local/ecc/tests/scripts/session-inspect.test.js +300 -0
  2808. package/resources/local/ecc/tests/scripts/setup-package-manager.test.js +397 -0
  2809. package/resources/local/ecc/tests/scripts/skill-create-output.test.js +533 -0
  2810. package/resources/local/ecc/tests/scripts/sync-ecc-to-codex.test.js +90 -0
  2811. package/resources/local/ecc/tests/scripts/trae-install.test.js +179 -0
  2812. package/resources/local/ecc/tests/scripts/uninstall.test.js +287 -0
  2813. package/resources/local/ecc/tests/test_astraflow_provider.py +141 -0
  2814. package/resources/local/ecc/tests/test_builder.py +84 -0
  2815. package/resources/local/ecc/tests/test_claude_provider.py +111 -0
  2816. package/resources/local/ecc/tests/test_executor.py +86 -0
  2817. package/resources/local/ecc/tests/test_provider_tools.py +130 -0
  2818. package/resources/local/ecc/tests/test_resolver.py +88 -0
  2819. package/resources/local/ecc/tests/test_templates.py +71 -0
  2820. package/resources/local/ecc/tests/test_types.py +150 -0
  2821. package/resources/local/ecc/the-longform-guide.md +354 -0
  2822. package/resources/local/ecc/the-security-guide.md +455 -0
  2823. package/resources/local/ecc/the-shortform-guide.md +431 -0
  2824. package/resources/local/ecc/yarn.lock +2259 -0
  2825. package/resources/local/manifest.json +12 -0
  2826. package/resources/local/page-agent/.agents/skills/git-cleanup/SKILL.md +64 -0
  2827. package/resources/local/page-agent/.agents/skills/pre-impl-discussion/SKILL.md +104 -0
  2828. package/resources/local/page-agent/.agents/skills/submit-pr-from-current-changes/SKILL.md +102 -0
  2829. package/resources/local/page-agent/.agents/skills/update-changelog/SKILL.md +109 -0
  2830. package/resources/local/page-agent/.github/ISSUE_TEMPLATE/bug_report.yml +59 -0
  2831. package/resources/local/page-agent/.github/ISSUE_TEMPLATE/config.yml +8 -0
  2832. package/resources/local/page-agent/.github/ISSUE_TEMPLATE/feature_request.yml +42 -0
  2833. package/resources/local/page-agent/.github/PULL_REQUEST_TEMPLATE.md +24 -0
  2834. package/resources/local/page-agent/.github/dependabot.yml +39 -0
  2835. package/resources/local/page-agent/.github/workflows/ci.yml +33 -0
  2836. package/resources/local/page-agent/.github/workflows/deploy-demo.yml +40 -0
  2837. package/resources/local/page-agent/.github/workflows/release.yml +43 -0
  2838. package/resources/local/page-agent/.prettierignore +8 -0
  2839. package/resources/local/page-agent/.vscode/extensions.json +3 -0
  2840. package/resources/local/page-agent/.vscode/settings.json +43 -0
  2841. package/resources/local/page-agent/AGENTS.md +135 -0
  2842. package/resources/local/page-agent/CLAUDE.md +1 -0
  2843. package/resources/local/page-agent/CONTRIBUTING.md +47 -0
  2844. package/resources/local/page-agent/LICENSE +22 -0
  2845. package/resources/local/page-agent/README.md +121 -0
  2846. package/resources/local/page-agent/WINTER.md +101 -0
  2847. package/resources/local/page-agent/docs/CHANGELOG.md +250 -0
  2848. package/resources/local/page-agent/docs/CODE_OF_CONDUCT.md +127 -0
  2849. package/resources/local/page-agent/docs/README-zh.md +110 -0
  2850. package/resources/local/page-agent/docs/SECURITY.md +50 -0
  2851. package/resources/local/page-agent/docs/developer-guide.md +105 -0
  2852. package/resources/local/page-agent/docs/terms-and-privacy.md +85 -0
  2853. package/resources/local/page-agent/eslint.config.js +62 -0
  2854. package/resources/local/page-agent/package-lock.json +11184 -0
  2855. package/resources/local/page-agent/package.json +129 -0
  2856. package/resources/local/page-agent/packages/core/package.json +66 -0
  2857. package/resources/local/page-agent/packages/core/src/PageAgentCore.ts +641 -0
  2858. package/resources/local/page-agent/packages/core/src/env.d.ts +6 -0
  2859. package/resources/local/page-agent/packages/core/src/prompts/system_prompt.md +153 -0
  2860. package/resources/local/page-agent/packages/core/src/tools/index.ts +190 -0
  2861. package/resources/local/page-agent/packages/core/src/types.ts +289 -0
  2862. package/resources/local/page-agent/packages/core/src/utils/autoFixer.ts +216 -0
  2863. package/resources/local/page-agent/packages/core/src/utils/index.ts +111 -0
  2864. package/resources/local/page-agent/packages/core/tsconfig.json +8 -0
  2865. package/resources/local/page-agent/packages/core/vite.config.js +50 -0
  2866. package/resources/local/page-agent/packages/extension/PRIVACY.md +5 -0
  2867. package/resources/local/page-agent/packages/extension/components.json +24 -0
  2868. package/resources/local/page-agent/packages/extension/docs/extension_api.md +224 -0
  2869. package/resources/local/page-agent/packages/extension/package.json +51 -0
  2870. package/resources/local/page-agent/packages/extension/public/_locales/en/messages.json +11 -0
  2871. package/resources/local/page-agent/packages/extension/public/_locales/zh_CN/messages.json +11 -0
  2872. package/resources/local/page-agent/packages/extension/public/assets/page-agent-256.webp +0 -0
  2873. package/resources/local/page-agent/packages/extension/public/assets/page-agent-64.png +0 -0
  2874. package/resources/local/page-agent/packages/extension/src/agent/MultiPageAgent.ts +102 -0
  2875. package/resources/local/page-agent/packages/extension/src/agent/RemotePageController.background.ts +42 -0
  2876. package/resources/local/page-agent/packages/extension/src/agent/RemotePageController.content.ts +135 -0
  2877. package/resources/local/page-agent/packages/extension/src/agent/RemotePageController.ts +194 -0
  2878. package/resources/local/page-agent/packages/extension/src/agent/TabsController.background.ts +169 -0
  2879. package/resources/local/page-agent/packages/extension/src/agent/TabsController.ts +421 -0
  2880. package/resources/local/page-agent/packages/extension/src/agent/constants.ts +30 -0
  2881. package/resources/local/page-agent/packages/extension/src/agent/system_prompt.md +145 -0
  2882. package/resources/local/page-agent/packages/extension/src/agent/tabTools.ts +74 -0
  2883. package/resources/local/page-agent/packages/extension/src/agent/useAgent.ts +161 -0
  2884. package/resources/local/page-agent/packages/extension/src/assets/index.css +158 -0
  2885. package/resources/local/page-agent/packages/extension/src/assets/page-agent-64.png +0 -0
  2886. package/resources/local/page-agent/packages/extension/src/components/ConfigPanel.tsx +402 -0
  2887. package/resources/local/page-agent/packages/extension/src/components/ErrorBoundary.tsx +60 -0
  2888. package/resources/local/page-agent/packages/extension/src/components/HistoryDetail.tsx +79 -0
  2889. package/resources/local/page-agent/packages/extension/src/components/HistoryList.tsx +181 -0
  2890. package/resources/local/page-agent/packages/extension/src/components/cards.tsx +387 -0
  2891. package/resources/local/page-agent/packages/extension/src/components/misc.tsx +153 -0
  2892. package/resources/local/page-agent/packages/extension/src/components/ui/button.tsx +60 -0
  2893. package/resources/local/page-agent/packages/extension/src/components/ui/card.tsx +75 -0
  2894. package/resources/local/page-agent/packages/extension/src/components/ui/field.tsx +232 -0
  2895. package/resources/local/page-agent/packages/extension/src/components/ui/hover-card.tsx +36 -0
  2896. package/resources/local/page-agent/packages/extension/src/components/ui/input-group.tsx +157 -0
  2897. package/resources/local/page-agent/packages/extension/src/components/ui/input.tsx +21 -0
  2898. package/resources/local/page-agent/packages/extension/src/components/ui/item.tsx +172 -0
  2899. package/resources/local/page-agent/packages/extension/src/components/ui/label.tsx +19 -0
  2900. package/resources/local/page-agent/packages/extension/src/components/ui/separator.tsx +26 -0
  2901. package/resources/local/page-agent/packages/extension/src/components/ui/sonner.tsx +38 -0
  2902. package/resources/local/page-agent/packages/extension/src/components/ui/spinner.tsx +16 -0
  2903. package/resources/local/page-agent/packages/extension/src/components/ui/switch.tsx +26 -0
  2904. package/resources/local/page-agent/packages/extension/src/components/ui/textarea.tsx +18 -0
  2905. package/resources/local/page-agent/packages/extension/src/components/ui/typing-animation.tsx +164 -0
  2906. package/resources/local/page-agent/packages/extension/src/entrypoints/background.ts +63 -0
  2907. package/resources/local/page-agent/packages/extension/src/entrypoints/content.ts +164 -0
  2908. package/resources/local/page-agent/packages/extension/src/entrypoints/hub/App.tsx +250 -0
  2909. package/resources/local/page-agent/packages/extension/src/entrypoints/hub/hub-ws.ts +243 -0
  2910. package/resources/local/page-agent/packages/extension/src/entrypoints/hub/index.html +13 -0
  2911. package/resources/local/page-agent/packages/extension/src/entrypoints/hub/main.tsx +25 -0
  2912. package/resources/local/page-agent/packages/extension/src/entrypoints/main-world.ts +131 -0
  2913. package/resources/local/page-agent/packages/extension/src/entrypoints/sidepanel/App.tsx +235 -0
  2914. package/resources/local/page-agent/packages/extension/src/entrypoints/sidepanel/index.html +13 -0
  2915. package/resources/local/page-agent/packages/extension/src/entrypoints/sidepanel/main.tsx +26 -0
  2916. package/resources/local/page-agent/packages/extension/src/lib/db.ts +70 -0
  2917. package/resources/local/page-agent/packages/extension/src/lib/history-export.ts +60 -0
  2918. package/resources/local/page-agent/packages/extension/src/lib/utils.ts +6 -0
  2919. package/resources/local/page-agent/packages/extension/src/types/assets.d.ts +25 -0
  2920. package/resources/local/page-agent/packages/extension/src/types/globals.d.ts +1 -0
  2921. package/resources/local/page-agent/packages/extension/src/types/markdown.d.ts +4 -0
  2922. package/resources/local/page-agent/packages/extension/tsconfig.json +13 -0
  2923. package/resources/local/page-agent/packages/extension/wxt.config.js +69 -0
  2924. package/resources/local/page-agent/packages/llms/package.json +58 -0
  2925. package/resources/local/page-agent/packages/llms/src/OpenAIClient.ts +242 -0
  2926. package/resources/local/page-agent/packages/llms/src/constants.ts +3 -0
  2927. package/resources/local/page-agent/packages/llms/src/errors.ts +58 -0
  2928. package/resources/local/page-agent/packages/llms/src/index.ts +114 -0
  2929. package/resources/local/page-agent/packages/llms/src/types.ts +120 -0
  2930. package/resources/local/page-agent/packages/llms/src/utils.ts +152 -0
  2931. package/resources/local/page-agent/packages/llms/tsconfig.json +8 -0
  2932. package/resources/local/page-agent/packages/llms/vite.config.js +43 -0
  2933. package/resources/local/page-agent/packages/mcp/README.md +93 -0
  2934. package/resources/local/page-agent/packages/mcp/package.json +35 -0
  2935. package/resources/local/page-agent/packages/mcp/src/hub-bridge.js +139 -0
  2936. package/resources/local/page-agent/packages/mcp/src/index.js +100 -0
  2937. package/resources/local/page-agent/packages/mcp/src/launcher.html +245 -0
  2938. package/resources/local/page-agent/packages/page-agent/package.json +69 -0
  2939. package/resources/local/page-agent/packages/page-agent/src/PageAgent.ts +29 -0
  2940. package/resources/local/page-agent/packages/page-agent/src/demo.ts +55 -0
  2941. package/resources/local/page-agent/packages/page-agent/src/env.d.ts +9 -0
  2942. package/resources/local/page-agent/packages/page-agent/tsconfig.json +8 -0
  2943. package/resources/local/page-agent/packages/page-agent/vite.config.js +50 -0
  2944. package/resources/local/page-agent/packages/page-agent/vite.iife.config.js +49 -0
  2945. package/resources/local/page-agent/packages/page-controller/package.json +51 -0
  2946. package/resources/local/page-agent/packages/page-controller/src/PageController.ts +433 -0
  2947. package/resources/local/page-agent/packages/page-controller/src/actions.ts +552 -0
  2948. package/resources/local/page-agent/packages/page-controller/src/dom/dom_tree/index.d.ts +16 -0
  2949. package/resources/local/page-agent/packages/page-controller/src/dom/dom_tree/index.js +1753 -0
  2950. package/resources/local/page-agent/packages/page-controller/src/dom/dom_tree/type.ts +51 -0
  2951. package/resources/local/page-agent/packages/page-controller/src/dom/getPageInfo.ts +42 -0
  2952. package/resources/local/page-agent/packages/page-controller/src/dom/index.ts +569 -0
  2953. package/resources/local/page-agent/packages/page-controller/src/env.d.ts +6 -0
  2954. package/resources/local/page-agent/packages/page-controller/src/mask/SimulatorMask.module.css +13 -0
  2955. package/resources/local/page-agent/packages/page-controller/src/mask/SimulatorMask.ts +217 -0
  2956. package/resources/local/page-agent/packages/page-controller/src/mask/checkDarkMode.ts +115 -0
  2957. package/resources/local/page-agent/packages/page-controller/src/mask/cursor-border.svg +3 -0
  2958. package/resources/local/page-agent/packages/page-controller/src/mask/cursor-fill.svg +5 -0
  2959. package/resources/local/page-agent/packages/page-controller/src/mask/cursor.module.css +70 -0
  2960. package/resources/local/page-agent/packages/page-controller/src/patches/antd.ts +20 -0
  2961. package/resources/local/page-agent/packages/page-controller/src/patches/react.ts +16 -0
  2962. package/resources/local/page-agent/packages/page-controller/src/utils/index.ts +80 -0
  2963. package/resources/local/page-agent/packages/page-controller/tsconfig.json +8 -0
  2964. package/resources/local/page-agent/packages/page-controller/vite.config.js +50 -0
  2965. package/resources/local/page-agent/packages/ui/package.json +48 -0
  2966. package/resources/local/page-agent/packages/ui/src/env.d.ts +6 -0
  2967. package/resources/local/page-agent/packages/ui/src/i18n/index.ts +50 -0
  2968. package/resources/local/page-agent/packages/ui/src/i18n/locales.ts +122 -0
  2969. package/resources/local/page-agent/packages/ui/src/index.ts +2 -0
  2970. package/resources/local/page-agent/packages/ui/src/motion-css/createMotion.ts +64 -0
  2971. package/resources/local/page-agent/packages/ui/src/motion-css/motion.module.css +397 -0
  2972. package/resources/local/page-agent/packages/ui/src/motion-css/readme +5 -0
  2973. package/resources/local/page-agent/packages/ui/src/panel/Panel.module.css +601 -0
  2974. package/resources/local/page-agent/packages/ui/src/panel/Panel.ts +669 -0
  2975. package/resources/local/page-agent/packages/ui/src/panel/cards.ts +52 -0
  2976. package/resources/local/page-agent/packages/ui/src/panel/types.ts +76 -0
  2977. package/resources/local/page-agent/packages/ui/src/utils.ts +18 -0
  2978. package/resources/local/page-agent/packages/ui/tsconfig.json +8 -0
  2979. package/resources/local/page-agent/packages/ui/vite.config.js +46 -0
  2980. package/resources/local/page-agent/packages/website/AGENTS.md +127 -0
  2981. package/resources/local/page-agent/packages/website/components.json +24 -0
  2982. package/resources/local/page-agent/packages/website/index.html +95 -0
  2983. package/resources/local/page-agent/packages/website/package.json +34 -0
  2984. package/resources/local/page-agent/packages/website/public/robots.txt +4 -0
  2985. package/resources/local/page-agent/packages/website/src/components/APIReference.tsx +175 -0
  2986. package/resources/local/page-agent/packages/website/src/components/BetaNotice.tsx +25 -0
  2987. package/resources/local/page-agent/packages/website/src/components/CodeEditor.tsx +129 -0
  2988. package/resources/local/page-agent/packages/website/src/components/Footer.tsx +77 -0
  2989. package/resources/local/page-agent/packages/website/src/components/Header.tsx +188 -0
  2990. package/resources/local/page-agent/packages/website/src/components/Heading.tsx +46 -0
  2991. package/resources/local/page-agent/packages/website/src/components/HighlightSyntax.module.css +128 -0
  2992. package/resources/local/page-agent/packages/website/src/components/HighlightSyntax.tsx +175 -0
  2993. package/resources/local/page-agent/packages/website/src/components/JSConsole.module.css +164 -0
  2994. package/resources/local/page-agent/packages/website/src/components/JSConsole.tsx +371 -0
  2995. package/resources/local/page-agent/packages/website/src/components/LanguageSwitcher.tsx +114 -0
  2996. package/resources/local/page-agent/packages/website/src/components/ThemeSwitcher.tsx +134 -0
  2997. package/resources/local/page-agent/packages/website/src/components/ui/alert.tsx +60 -0
  2998. package/resources/local/page-agent/packages/website/src/components/ui/animated-gradient-text.tsx +37 -0
  2999. package/resources/local/page-agent/packages/website/src/components/ui/animated-shiny-text.tsx +38 -0
  3000. package/resources/local/page-agent/packages/website/src/components/ui/aurora-text.tsx +39 -0
  3001. package/resources/local/page-agent/packages/website/src/components/ui/badge.tsx +37 -0
  3002. package/resources/local/page-agent/packages/website/src/components/ui/bento-grid.tsx +91 -0
  3003. package/resources/local/page-agent/packages/website/src/components/ui/blur-fade.tsx +79 -0
  3004. package/resources/local/page-agent/packages/website/src/components/ui/button.tsx +60 -0
  3005. package/resources/local/page-agent/packages/website/src/components/ui/highlighter.tsx +92 -0
  3006. package/resources/local/page-agent/packages/website/src/components/ui/hyper-text.tsx +140 -0
  3007. package/resources/local/page-agent/packages/website/src/components/ui/kbd.tsx +28 -0
  3008. package/resources/local/page-agent/packages/website/src/components/ui/magic-card.tsx +101 -0
  3009. package/resources/local/page-agent/packages/website/src/components/ui/marquee.tsx +74 -0
  3010. package/resources/local/page-agent/packages/website/src/components/ui/neon-gradient-card.tsx +136 -0
  3011. package/resources/local/page-agent/packages/website/src/components/ui/particles.tsx +297 -0
  3012. package/resources/local/page-agent/packages/website/src/components/ui/separator.tsx +26 -0
  3013. package/resources/local/page-agent/packages/website/src/components/ui/sonner.tsx +38 -0
  3014. package/resources/local/page-agent/packages/website/src/components/ui/sparkles-text.tsx +150 -0
  3015. package/resources/local/page-agent/packages/website/src/components/ui/spinner.tsx +16 -0
  3016. package/resources/local/page-agent/packages/website/src/components/ui/switch.tsx +26 -0
  3017. package/resources/local/page-agent/packages/website/src/components/ui/text-animate.tsx +417 -0
  3018. package/resources/local/page-agent/packages/website/src/components/ui/tooltip.tsx +55 -0
  3019. package/resources/local/page-agent/packages/website/src/components/ui/typing-animation.tsx +164 -0
  3020. package/resources/local/page-agent/packages/website/src/constants.ts +10 -0
  3021. package/resources/local/page-agent/packages/website/src/env.d.ts +10 -0
  3022. package/resources/local/page-agent/packages/website/src/hooks/useGitHubStars.ts +27 -0
  3023. package/resources/local/page-agent/packages/website/src/i18n/context.tsx +34 -0
  3024. package/resources/local/page-agent/packages/website/src/index.css +471 -0
  3025. package/resources/local/page-agent/packages/website/src/lib/useDocumentTitle.ts +9 -0
  3026. package/resources/local/page-agent/packages/website/src/lib/utils.ts +6 -0
  3027. package/resources/local/page-agent/packages/website/src/main.tsx +22 -0
  3028. package/resources/local/page-agent/packages/website/src/pages/docs/Layout.tsx +140 -0
  3029. package/resources/local/page-agent/packages/website/src/pages/docs/advanced/custom-ui/page.tsx +271 -0
  3030. package/resources/local/page-agent/packages/website/src/pages/docs/advanced/page-agent/page.tsx +224 -0
  3031. package/resources/local/page-agent/packages/website/src/pages/docs/advanced/page-agent-core/page.tsx +492 -0
  3032. package/resources/local/page-agent/packages/website/src/pages/docs/advanced/page-controller/page.tsx +294 -0
  3033. package/resources/local/page-agent/packages/website/src/pages/docs/advanced/security-permissions/page.tsx +89 -0
  3034. package/resources/local/page-agent/packages/website/src/pages/docs/features/chrome-extension/page.tsx +314 -0
  3035. package/resources/local/page-agent/packages/website/src/pages/docs/features/custom-instructions/page.tsx +136 -0
  3036. package/resources/local/page-agent/packages/website/src/pages/docs/features/custom-tools/page.tsx +112 -0
  3037. package/resources/local/page-agent/packages/website/src/pages/docs/features/data-masking/page.tsx +74 -0
  3038. package/resources/local/page-agent/packages/website/src/pages/docs/features/mcp-server/page.tsx +70 -0
  3039. package/resources/local/page-agent/packages/website/src/pages/docs/features/models/page.tsx +457 -0
  3040. package/resources/local/page-agent/packages/website/src/pages/docs/features/third-party-agent/page.tsx +99 -0
  3041. package/resources/local/page-agent/packages/website/src/pages/docs/index.tsx +130 -0
  3042. package/resources/local/page-agent/packages/website/src/pages/docs/introduction/limitations/page.tsx +158 -0
  3043. package/resources/local/page-agent/packages/website/src/pages/docs/introduction/overview/page.tsx +233 -0
  3044. package/resources/local/page-agent/packages/website/src/pages/docs/introduction/quick-start/page.tsx +134 -0
  3045. package/resources/local/page-agent/packages/website/src/pages/docs/introduction/troubleshooting/page.tsx +430 -0
  3046. package/resources/local/page-agent/packages/website/src/pages/home/FeaturesSection.tsx +233 -0
  3047. package/resources/local/page-agent/packages/website/src/pages/home/HeroSection.tsx +417 -0
  3048. package/resources/local/page-agent/packages/website/src/pages/home/OneMoreThingSection.tsx +114 -0
  3049. package/resources/local/page-agent/packages/website/src/pages/home/ScenariosSection.tsx +165 -0
  3050. package/resources/local/page-agent/packages/website/src/pages/home/index.tsx +31 -0
  3051. package/resources/local/page-agent/packages/website/src/router.tsx +72 -0
  3052. package/resources/local/page-agent/packages/website/tailwind.config.js +3 -0
  3053. package/resources/local/page-agent/packages/website/tsconfig.json +11 -0
  3054. package/resources/local/page-agent/packages/website/vite.config.js +106 -0
  3055. package/resources/local/page-agent/scripts/build-libs.js +25 -0
  3056. package/resources/local/page-agent/scripts/build.js +45 -0
  3057. package/resources/local/page-agent/scripts/ci.js +55 -0
  3058. package/resources/local/page-agent/scripts/parallel-task.js +115 -0
  3059. package/resources/local/page-agent/scripts/post-publish.js +30 -0
  3060. package/resources/local/page-agent/scripts/pre-publish.js +42 -0
  3061. package/resources/local/page-agent/scripts/sync-version.js +144 -0
  3062. package/resources/local/page-agent/tsconfig.base.json +30 -0
  3063. package/resources/local/page-agent/tsconfig.typecheck.json +25 -0
  3064. package/scripts/audit-pack.js +47 -0
  3065. package/src/agent/agent-definitions.js +154 -0
  3066. package/src/agent/runtime.js +240 -0
  3067. package/src/ai/capability-scorecard.js +241 -0
  3068. package/src/ai/orchestrator.js +478 -0
  3069. package/src/ai/profile-blueprints.js +135 -0
  3070. package/src/ai/prompts/system-prompt.js +14 -4
  3071. package/src/ai/providers.js +73 -0
  3072. package/src/ai/small-model-amplifier.js +37 -0
  3073. package/src/ai/workflow-selector.js +154 -0
  3074. package/src/cli/at-context.js +269 -0
  3075. package/src/cli/commands.js +663 -0
  3076. package/src/cli/composer.js +361 -0
  3077. package/src/cli/config.js +12 -1
  3078. package/src/cli/context-loader.js +20 -3
  3079. package/src/cli/conversation-format.js +11 -210
  3080. package/src/cli/diagnostics.js +101 -0
  3081. package/src/cli/diff-view.js +341 -0
  3082. package/src/cli/ecc.js +274 -0
  3083. package/src/cli/input-controller.js +263 -0
  3084. package/src/cli/project-docs.js +2 -0
  3085. package/src/cli/prompt-builder.js +58 -13
  3086. package/src/cli/repl-commands.js +358 -10
  3087. package/src/cli/repl.js +1128 -389
  3088. package/src/cli/slash-commands.js +22 -1
  3089. package/src/cli/snowflake-logo.js +20 -10
  3090. package/src/cli/terminal-ui.js +92 -40
  3091. package/src/cli/tool-call-adapter.js +327 -0
  3092. package/src/cli/tool-runtime.js +115 -0
  3093. package/src/codebase-index/indexer.js +402 -0
  3094. package/src/codebase-index/search.js +176 -0
  3095. package/src/codebase-index/watcher.js +117 -0
  3096. package/src/context/token-juice.js +166 -0
  3097. package/src/context/wiki-memory.js +212 -0
  3098. package/src/integrations/htmlfx-manager.js +111 -0
  3099. package/src/mcp/inline-complete.js +226 -0
  3100. package/src/tools/executor.js +188 -1
@@ -0,0 +1,1806 @@
1
+ use anyhow::{Context, Result};
2
+ use crossterm::event::{KeyCode, KeyEvent, KeyModifiers};
3
+ use regex::Regex;
4
+ use serde::{Deserialize, Serialize};
5
+ use std::collections::BTreeMap;
6
+ use std::path::PathBuf;
7
+
8
+ use crate::notifications::{
9
+ CompletionSummaryConfig, DesktopNotificationConfig, WebhookNotificationConfig,
10
+ };
11
+
12
+ #[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
13
+ #[serde(rename_all = "snake_case")]
14
+ pub enum PaneLayout {
15
+ #[default]
16
+ Horizontal,
17
+ Vertical,
18
+ Grid,
19
+ }
20
+
21
+ #[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
22
+ #[serde(default)]
23
+ pub struct RiskThresholds {
24
+ pub review: f64,
25
+ pub confirm: f64,
26
+ pub block: f64,
27
+ }
28
+
29
+ #[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
30
+ #[serde(default)]
31
+ pub struct BudgetAlertThresholds {
32
+ pub advisory: f64,
33
+ pub warning: f64,
34
+ pub critical: f64,
35
+ }
36
+
37
+ #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
38
+ #[serde(rename_all = "snake_case")]
39
+ pub enum ConflictResolutionStrategy {
40
+ Escalate,
41
+ LastWriteWins,
42
+ Merge,
43
+ }
44
+
45
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
46
+ #[serde(default)]
47
+ pub struct ConflictResolutionConfig {
48
+ pub enabled: bool,
49
+ pub strategy: ConflictResolutionStrategy,
50
+ pub notify_lead: bool,
51
+ }
52
+
53
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
54
+ #[serde(default)]
55
+ pub struct ComputerUseDispatchConfig {
56
+ pub agent: Option<String>,
57
+ pub profile: Option<String>,
58
+ pub use_worktree: bool,
59
+ pub project: Option<String>,
60
+ pub task_group: Option<String>,
61
+ }
62
+
63
+ #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
64
+ #[serde(default)]
65
+ pub struct AgentProfileConfig {
66
+ pub inherits: Option<String>,
67
+ pub agent: Option<String>,
68
+ pub model: Option<String>,
69
+ pub allowed_tools: Vec<String>,
70
+ pub disallowed_tools: Vec<String>,
71
+ pub permission_mode: Option<String>,
72
+ pub add_dirs: Vec<PathBuf>,
73
+ pub max_budget_usd: Option<f64>,
74
+ pub token_budget: Option<u64>,
75
+ pub append_system_prompt: Option<String>,
76
+ }
77
+
78
+ #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
79
+ pub struct ResolvedAgentProfile {
80
+ pub profile_name: String,
81
+ pub agent: Option<String>,
82
+ pub model: Option<String>,
83
+ pub allowed_tools: Vec<String>,
84
+ pub disallowed_tools: Vec<String>,
85
+ pub permission_mode: Option<String>,
86
+ pub add_dirs: Vec<PathBuf>,
87
+ pub max_budget_usd: Option<f64>,
88
+ pub token_budget: Option<u64>,
89
+ pub append_system_prompt: Option<String>,
90
+ }
91
+
92
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
93
+ #[serde(default)]
94
+ pub struct HarnessRunnerConfig {
95
+ pub program: String,
96
+ pub base_args: Vec<String>,
97
+ pub project_markers: Vec<PathBuf>,
98
+ pub cwd_flag: Option<String>,
99
+ pub session_name_flag: Option<String>,
100
+ pub task_flag: Option<String>,
101
+ pub model_flag: Option<String>,
102
+ pub add_dir_flag: Option<String>,
103
+ pub include_directories_flag: Option<String>,
104
+ pub allowed_tools_flag: Option<String>,
105
+ pub disallowed_tools_flag: Option<String>,
106
+ pub permission_mode_flag: Option<String>,
107
+ pub max_budget_usd_flag: Option<String>,
108
+ pub append_system_prompt_flag: Option<String>,
109
+ pub inline_system_prompt_for_task: bool,
110
+ pub env: BTreeMap<String, String>,
111
+ }
112
+
113
+ #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
114
+ #[serde(default)]
115
+ pub struct OrchestrationTemplateConfig {
116
+ pub description: Option<String>,
117
+ pub project: Option<String>,
118
+ pub task_group: Option<String>,
119
+ pub agent: Option<String>,
120
+ pub profile: Option<String>,
121
+ pub worktree: Option<bool>,
122
+ pub steps: Vec<OrchestrationTemplateStepConfig>,
123
+ }
124
+
125
+ #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
126
+ #[serde(default)]
127
+ pub struct OrchestrationTemplateStepConfig {
128
+ pub name: Option<String>,
129
+ pub task: String,
130
+ pub agent: Option<String>,
131
+ pub profile: Option<String>,
132
+ pub worktree: Option<bool>,
133
+ pub project: Option<String>,
134
+ pub task_group: Option<String>,
135
+ }
136
+
137
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
138
+ #[serde(tag = "kind", rename_all = "snake_case")]
139
+ pub enum MemoryConnectorConfig {
140
+ JsonlFile(MemoryConnectorJsonlFileConfig),
141
+ JsonlDirectory(MemoryConnectorJsonlDirectoryConfig),
142
+ MarkdownFile(MemoryConnectorMarkdownFileConfig),
143
+ MarkdownDirectory(MemoryConnectorMarkdownDirectoryConfig),
144
+ DotenvFile(MemoryConnectorDotenvFileConfig),
145
+ }
146
+
147
+ #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
148
+ #[serde(default)]
149
+ pub struct MemoryConnectorJsonlFileConfig {
150
+ pub path: PathBuf,
151
+ pub session_id: Option<String>,
152
+ pub default_entity_type: Option<String>,
153
+ pub default_observation_type: Option<String>,
154
+ }
155
+
156
+ #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
157
+ #[serde(default)]
158
+ pub struct MemoryConnectorJsonlDirectoryConfig {
159
+ pub path: PathBuf,
160
+ pub recurse: bool,
161
+ pub session_id: Option<String>,
162
+ pub default_entity_type: Option<String>,
163
+ pub default_observation_type: Option<String>,
164
+ }
165
+
166
+ #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
167
+ #[serde(default)]
168
+ pub struct MemoryConnectorMarkdownFileConfig {
169
+ pub path: PathBuf,
170
+ pub session_id: Option<String>,
171
+ pub default_entity_type: Option<String>,
172
+ pub default_observation_type: Option<String>,
173
+ }
174
+
175
+ #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
176
+ #[serde(default)]
177
+ pub struct MemoryConnectorMarkdownDirectoryConfig {
178
+ pub path: PathBuf,
179
+ pub recurse: bool,
180
+ pub session_id: Option<String>,
181
+ pub default_entity_type: Option<String>,
182
+ pub default_observation_type: Option<String>,
183
+ }
184
+
185
+ #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
186
+ #[serde(default)]
187
+ pub struct MemoryConnectorDotenvFileConfig {
188
+ pub path: PathBuf,
189
+ pub session_id: Option<String>,
190
+ pub default_entity_type: Option<String>,
191
+ pub default_observation_type: Option<String>,
192
+ pub key_prefixes: Vec<String>,
193
+ pub include_keys: Vec<String>,
194
+ pub exclude_keys: Vec<String>,
195
+ pub include_safe_values: bool,
196
+ }
197
+
198
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
199
+ pub struct ResolvedOrchestrationTemplate {
200
+ pub template_name: String,
201
+ pub description: Option<String>,
202
+ pub project: Option<String>,
203
+ pub task_group: Option<String>,
204
+ pub steps: Vec<ResolvedOrchestrationTemplateStep>,
205
+ }
206
+
207
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
208
+ pub struct ResolvedOrchestrationTemplateStep {
209
+ pub name: String,
210
+ pub task: String,
211
+ pub agent: Option<String>,
212
+ pub profile: Option<String>,
213
+ pub worktree: bool,
214
+ pub project: Option<String>,
215
+ pub task_group: Option<String>,
216
+ }
217
+
218
+ #[derive(Debug, Clone, Serialize, Deserialize)]
219
+ #[serde(default)]
220
+ pub struct Config {
221
+ pub db_path: PathBuf,
222
+ pub worktree_root: PathBuf,
223
+ pub worktree_branch_prefix: String,
224
+ pub max_parallel_sessions: usize,
225
+ pub max_parallel_worktrees: usize,
226
+ pub worktree_retention_secs: u64,
227
+ pub session_timeout_secs: u64,
228
+ pub heartbeat_interval_secs: u64,
229
+ pub auto_terminate_stale_sessions: bool,
230
+ pub default_agent: String,
231
+ pub default_agent_profile: Option<String>,
232
+ pub harness_runners: BTreeMap<String, HarnessRunnerConfig>,
233
+ pub agent_profiles: BTreeMap<String, AgentProfileConfig>,
234
+ pub orchestration_templates: BTreeMap<String, OrchestrationTemplateConfig>,
235
+ pub memory_connectors: BTreeMap<String, MemoryConnectorConfig>,
236
+ pub computer_use_dispatch: ComputerUseDispatchConfig,
237
+ pub auto_dispatch_unread_handoffs: bool,
238
+ pub auto_dispatch_limit_per_session: usize,
239
+ pub auto_create_worktrees: bool,
240
+ pub auto_merge_ready_worktrees: bool,
241
+ pub desktop_notifications: DesktopNotificationConfig,
242
+ pub webhook_notifications: WebhookNotificationConfig,
243
+ pub completion_summary_notifications: CompletionSummaryConfig,
244
+ pub cost_budget_usd: f64,
245
+ pub token_budget: u64,
246
+ pub budget_alert_thresholds: BudgetAlertThresholds,
247
+ pub conflict_resolution: ConflictResolutionConfig,
248
+ pub theme: Theme,
249
+ pub pane_layout: PaneLayout,
250
+ pub pane_navigation: PaneNavigationConfig,
251
+ pub linear_pane_size_percent: u16,
252
+ pub grid_pane_size_percent: u16,
253
+ pub risk_thresholds: RiskThresholds,
254
+ }
255
+
256
+ #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
257
+ #[serde(default)]
258
+ pub struct PaneNavigationConfig {
259
+ pub focus_sessions: String,
260
+ pub focus_output: String,
261
+ pub focus_metrics: String,
262
+ pub focus_log: String,
263
+ pub move_left: String,
264
+ pub move_down: String,
265
+ pub move_up: String,
266
+ pub move_right: String,
267
+ }
268
+
269
+ #[derive(Debug, Clone, Copy, PartialEq, Eq)]
270
+ pub enum PaneNavigationAction {
271
+ FocusSlot(usize),
272
+ MoveLeft,
273
+ MoveDown,
274
+ MoveUp,
275
+ MoveRight,
276
+ }
277
+
278
+ #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
279
+ pub enum Theme {
280
+ Dark,
281
+ Light,
282
+ }
283
+
284
+ impl Default for Config {
285
+ fn default() -> Self {
286
+ let home = dirs::home_dir().unwrap_or_else(|| PathBuf::from("."));
287
+ Self {
288
+ db_path: home.join(".claude").join("ecc2.db"),
289
+ worktree_root: PathBuf::from("/tmp/ecc-worktrees"),
290
+ worktree_branch_prefix: "ecc".to_string(),
291
+ max_parallel_sessions: 8,
292
+ max_parallel_worktrees: 6,
293
+ worktree_retention_secs: 0,
294
+ session_timeout_secs: 3600,
295
+ heartbeat_interval_secs: 30,
296
+ auto_terminate_stale_sessions: false,
297
+ default_agent: "claude".to_string(),
298
+ default_agent_profile: None,
299
+ harness_runners: BTreeMap::new(),
300
+ agent_profiles: BTreeMap::new(),
301
+ orchestration_templates: BTreeMap::new(),
302
+ memory_connectors: BTreeMap::new(),
303
+ computer_use_dispatch: ComputerUseDispatchConfig::default(),
304
+ auto_dispatch_unread_handoffs: false,
305
+ auto_dispatch_limit_per_session: 5,
306
+ auto_create_worktrees: true,
307
+ auto_merge_ready_worktrees: false,
308
+ desktop_notifications: DesktopNotificationConfig::default(),
309
+ webhook_notifications: WebhookNotificationConfig::default(),
310
+ completion_summary_notifications: CompletionSummaryConfig::default(),
311
+ cost_budget_usd: 10.0,
312
+ token_budget: 500_000,
313
+ budget_alert_thresholds: Self::BUDGET_ALERT_THRESHOLDS,
314
+ conflict_resolution: ConflictResolutionConfig::default(),
315
+ theme: Theme::Dark,
316
+ pane_layout: PaneLayout::Horizontal,
317
+ pane_navigation: PaneNavigationConfig::default(),
318
+ linear_pane_size_percent: 35,
319
+ grid_pane_size_percent: 50,
320
+ risk_thresholds: Self::RISK_THRESHOLDS,
321
+ }
322
+ }
323
+ }
324
+
325
+ impl Config {
326
+ pub const RISK_THRESHOLDS: RiskThresholds = RiskThresholds {
327
+ review: 0.35,
328
+ confirm: 0.60,
329
+ block: 0.85,
330
+ };
331
+
332
+ pub const BUDGET_ALERT_THRESHOLDS: BudgetAlertThresholds = BudgetAlertThresholds {
333
+ advisory: 0.50,
334
+ warning: 0.75,
335
+ critical: 0.90,
336
+ };
337
+
338
+ pub fn config_path() -> PathBuf {
339
+ Self::config_root().join("ecc2").join("config.toml")
340
+ }
341
+
342
+ pub fn cost_metrics_path(&self) -> PathBuf {
343
+ self.db_path
344
+ .parent()
345
+ .unwrap_or_else(|| std::path::Path::new("."))
346
+ .join("metrics")
347
+ .join("costs.jsonl")
348
+ }
349
+
350
+ pub fn tool_activity_metrics_path(&self) -> PathBuf {
351
+ self.db_path
352
+ .parent()
353
+ .unwrap_or_else(|| std::path::Path::new("."))
354
+ .join("metrics")
355
+ .join("tool-usage.jsonl")
356
+ }
357
+
358
+ pub fn effective_budget_alert_thresholds(&self) -> BudgetAlertThresholds {
359
+ self.budget_alert_thresholds.sanitized()
360
+ }
361
+
362
+ pub fn computer_use_dispatch_defaults(&self) -> ResolvedComputerUseDispatchConfig {
363
+ let agent = self
364
+ .computer_use_dispatch
365
+ .agent
366
+ .clone()
367
+ .unwrap_or_else(|| self.default_agent.clone());
368
+ let profile = self
369
+ .computer_use_dispatch
370
+ .profile
371
+ .clone()
372
+ .or_else(|| self.default_agent_profile.clone());
373
+ ResolvedComputerUseDispatchConfig {
374
+ agent,
375
+ profile,
376
+ use_worktree: self.computer_use_dispatch.use_worktree,
377
+ project: self.computer_use_dispatch.project.clone(),
378
+ task_group: self.computer_use_dispatch.task_group.clone(),
379
+ }
380
+ }
381
+
382
+ pub fn resolve_agent_profile(&self, name: &str) -> Result<ResolvedAgentProfile> {
383
+ let mut chain = Vec::new();
384
+ self.resolve_agent_profile_inner(name, &mut chain)
385
+ }
386
+
387
+ pub fn harness_runner(&self, harness: &str) -> Option<&HarnessRunnerConfig> {
388
+ let key = harness.trim().to_ascii_lowercase();
389
+ self.harness_runners.get(&key)
390
+ }
391
+
392
+ pub fn resolve_orchestration_template(
393
+ &self,
394
+ name: &str,
395
+ vars: &BTreeMap<String, String>,
396
+ ) -> Result<ResolvedOrchestrationTemplate> {
397
+ let template = self
398
+ .orchestration_templates
399
+ .get(name)
400
+ .ok_or_else(|| anyhow::anyhow!("Unknown orchestration template: {name}"))?;
401
+
402
+ if template.steps.is_empty() {
403
+ anyhow::bail!("orchestration template {name} has no steps");
404
+ }
405
+
406
+ let description = interpolate_optional_string(template.description.as_deref(), vars)?;
407
+ let project = interpolate_optional_string(template.project.as_deref(), vars)?;
408
+ let task_group = interpolate_optional_string(template.task_group.as_deref(), vars)?;
409
+ let default_agent = interpolate_optional_string(template.agent.as_deref(), vars)?;
410
+ let default_profile = interpolate_optional_string(template.profile.as_deref(), vars)?;
411
+ if let Some(profile_name) = default_profile.as_deref() {
412
+ self.resolve_agent_profile(profile_name)?;
413
+ }
414
+
415
+ let mut steps = Vec::with_capacity(template.steps.len());
416
+ for (index, step) in template.steps.iter().enumerate() {
417
+ let task = interpolate_required_string(&step.task, vars).with_context(|| {
418
+ format!(
419
+ "resolve task for orchestration template {name} step {}",
420
+ index + 1
421
+ )
422
+ })?;
423
+ let step_name = interpolate_optional_string(step.name.as_deref(), vars)?
424
+ .unwrap_or_else(|| format!("step {}", index + 1));
425
+ let agent = interpolate_optional_string(
426
+ step.agent.as_deref().or(default_agent.as_deref()),
427
+ vars,
428
+ )?;
429
+ let profile = interpolate_optional_string(
430
+ step.profile.as_deref().or(default_profile.as_deref()),
431
+ vars,
432
+ )?;
433
+ if let Some(profile_name) = profile.as_deref() {
434
+ self.resolve_agent_profile(profile_name)?;
435
+ }
436
+
437
+ steps.push(ResolvedOrchestrationTemplateStep {
438
+ name: step_name,
439
+ task,
440
+ agent,
441
+ profile,
442
+ worktree: step
443
+ .worktree
444
+ .or(template.worktree)
445
+ .unwrap_or(self.auto_create_worktrees),
446
+ project: interpolate_optional_string(
447
+ step.project.as_deref().or(project.as_deref()),
448
+ vars,
449
+ )?,
450
+ task_group: interpolate_optional_string(
451
+ step.task_group.as_deref().or(task_group.as_deref()),
452
+ vars,
453
+ )?,
454
+ });
455
+ }
456
+
457
+ Ok(ResolvedOrchestrationTemplate {
458
+ template_name: name.to_string(),
459
+ description,
460
+ project,
461
+ task_group,
462
+ steps,
463
+ })
464
+ }
465
+
466
+ fn resolve_agent_profile_inner(
467
+ &self,
468
+ name: &str,
469
+ chain: &mut Vec<String>,
470
+ ) -> Result<ResolvedAgentProfile> {
471
+ if chain.iter().any(|existing| existing == name) {
472
+ chain.push(name.to_string());
473
+ anyhow::bail!("agent profile inheritance cycle: {}", chain.join(" -> "));
474
+ }
475
+
476
+ let profile = self
477
+ .agent_profiles
478
+ .get(name)
479
+ .ok_or_else(|| anyhow::anyhow!("Unknown agent profile: {name}"))?;
480
+
481
+ chain.push(name.to_string());
482
+ let mut resolved = if let Some(parent) = profile.inherits.as_deref() {
483
+ self.resolve_agent_profile_inner(parent, chain)?
484
+ } else {
485
+ ResolvedAgentProfile::default()
486
+ };
487
+ chain.pop();
488
+
489
+ resolved.apply(name, profile);
490
+ Ok(resolved)
491
+ }
492
+
493
+ pub fn load() -> Result<Self> {
494
+ let global_paths = Self::global_config_paths();
495
+ let project_paths = std::env::current_dir()
496
+ .ok()
497
+ .map(|cwd| Self::project_config_paths_from(&cwd))
498
+ .unwrap_or_default();
499
+ Self::load_from_paths(&global_paths, &project_paths)
500
+ }
501
+
502
+ fn load_from_paths(
503
+ global_paths: &[PathBuf],
504
+ project_override_paths: &[PathBuf],
505
+ ) -> Result<Self> {
506
+ let mut merged = toml::Value::try_from(Self::default())
507
+ .context("serialize default ECC 2.0 config for layered merge")?;
508
+
509
+ for path in global_paths.iter().chain(project_override_paths.iter()) {
510
+ if path.exists() {
511
+ Self::merge_config_file(&mut merged, path)?;
512
+ }
513
+ }
514
+
515
+ merged
516
+ .try_into()
517
+ .context("deserialize merged ECC 2.0 config")
518
+ }
519
+
520
+ fn config_root() -> PathBuf {
521
+ dirs::config_dir().unwrap_or_else(|| {
522
+ dirs::home_dir()
523
+ .unwrap_or_else(|| PathBuf::from("."))
524
+ .join(".config")
525
+ })
526
+ }
527
+
528
+ fn legacy_global_config_path() -> PathBuf {
529
+ dirs::home_dir()
530
+ .unwrap_or_else(|| PathBuf::from("."))
531
+ .join(".claude")
532
+ .join("ecc2.toml")
533
+ }
534
+
535
+ fn global_config_paths() -> Vec<PathBuf> {
536
+ let legacy = Self::legacy_global_config_path();
537
+ let primary = Self::config_path();
538
+
539
+ if legacy == primary {
540
+ vec![primary]
541
+ } else {
542
+ vec![legacy, primary]
543
+ }
544
+ }
545
+
546
+ fn project_config_paths_from(start: &std::path::Path) -> Vec<PathBuf> {
547
+ let global_paths = Self::global_config_paths();
548
+ let mut current = Some(start);
549
+
550
+ while let Some(path) = current {
551
+ let legacy = path.join(".claude").join("ecc2.toml");
552
+ let primary = path.join("ecc2.toml");
553
+ let mut matches = Vec::new();
554
+
555
+ if legacy.exists() && !global_paths.iter().any(|global| global == &legacy) {
556
+ matches.push(legacy);
557
+ }
558
+ if primary.exists() && !global_paths.iter().any(|global| global == &primary) {
559
+ matches.push(primary);
560
+ }
561
+
562
+ if !matches.is_empty() {
563
+ return matches;
564
+ }
565
+ current = path.parent();
566
+ }
567
+
568
+ Vec::new()
569
+ }
570
+
571
+ fn merge_config_file(base: &mut toml::Value, path: &std::path::Path) -> Result<()> {
572
+ let content = std::fs::read_to_string(path)
573
+ .with_context(|| format!("read ECC 2.0 config from {}", path.display()))?;
574
+ let overlay: toml::Value = toml::from_str(&content)
575
+ .with_context(|| format!("parse ECC 2.0 config from {}", path.display()))?;
576
+ Self::merge_toml_values(base, overlay);
577
+ Ok(())
578
+ }
579
+
580
+ fn merge_toml_values(base: &mut toml::Value, overlay: toml::Value) {
581
+ match (base, overlay) {
582
+ (toml::Value::Table(base_table), toml::Value::Table(overlay_table)) => {
583
+ for (key, overlay_value) in overlay_table {
584
+ if let Some(base_value) = base_table.get_mut(&key) {
585
+ Self::merge_toml_values(base_value, overlay_value);
586
+ } else {
587
+ base_table.insert(key, overlay_value);
588
+ }
589
+ }
590
+ }
591
+ (base_value, overlay_value) => *base_value = overlay_value,
592
+ }
593
+ }
594
+
595
+ pub fn save(&self) -> Result<()> {
596
+ self.save_to_path(&Self::config_path())
597
+ }
598
+
599
+ pub fn save_to_path(&self, path: &std::path::Path) -> Result<()> {
600
+ if let Some(parent) = path.parent() {
601
+ std::fs::create_dir_all(parent)?;
602
+ }
603
+
604
+ let content = toml::to_string_pretty(self)?;
605
+ std::fs::write(path, content)?;
606
+ Ok(())
607
+ }
608
+ }
609
+
610
+ impl Default for PaneNavigationConfig {
611
+ fn default() -> Self {
612
+ Self {
613
+ focus_sessions: "1".to_string(),
614
+ focus_output: "2".to_string(),
615
+ focus_metrics: "3".to_string(),
616
+ focus_log: "4".to_string(),
617
+ move_left: "ctrl-h".to_string(),
618
+ move_down: "ctrl-j".to_string(),
619
+ move_up: "ctrl-k".to_string(),
620
+ move_right: "ctrl-l".to_string(),
621
+ }
622
+ }
623
+ }
624
+
625
+ impl PaneNavigationConfig {
626
+ pub fn action_for_key(&self, key: KeyEvent) -> Option<PaneNavigationAction> {
627
+ [
628
+ (&self.focus_sessions, PaneNavigationAction::FocusSlot(1)),
629
+ (&self.focus_output, PaneNavigationAction::FocusSlot(2)),
630
+ (&self.focus_metrics, PaneNavigationAction::FocusSlot(3)),
631
+ (&self.focus_log, PaneNavigationAction::FocusSlot(4)),
632
+ (&self.move_left, PaneNavigationAction::MoveLeft),
633
+ (&self.move_down, PaneNavigationAction::MoveDown),
634
+ (&self.move_up, PaneNavigationAction::MoveUp),
635
+ (&self.move_right, PaneNavigationAction::MoveRight),
636
+ ]
637
+ .into_iter()
638
+ .find_map(|(binding, action)| shortcut_matches(binding, key).then_some(action))
639
+ }
640
+
641
+ pub fn focus_shortcuts_label(&self) -> String {
642
+ [
643
+ self.focus_sessions.as_str(),
644
+ self.focus_output.as_str(),
645
+ self.focus_metrics.as_str(),
646
+ self.focus_log.as_str(),
647
+ ]
648
+ .into_iter()
649
+ .map(shortcut_label)
650
+ .collect::<Vec<_>>()
651
+ .join("/")
652
+ }
653
+
654
+ pub fn movement_shortcuts_label(&self) -> String {
655
+ [
656
+ self.move_left.as_str(),
657
+ self.move_down.as_str(),
658
+ self.move_up.as_str(),
659
+ self.move_right.as_str(),
660
+ ]
661
+ .into_iter()
662
+ .map(shortcut_label)
663
+ .collect::<Vec<_>>()
664
+ .join("/")
665
+ }
666
+ }
667
+
668
+ fn shortcut_matches(spec: &str, key: KeyEvent) -> bool {
669
+ parse_shortcut(spec)
670
+ .is_some_and(|(modifiers, code)| key.modifiers == modifiers && key.code == code)
671
+ }
672
+
673
+ fn parse_shortcut(spec: &str) -> Option<(KeyModifiers, KeyCode)> {
674
+ let normalized = spec.trim().to_ascii_lowercase().replace('+', "-");
675
+ if normalized.is_empty() {
676
+ return None;
677
+ }
678
+
679
+ if normalized == "tab" {
680
+ return Some((KeyModifiers::NONE, KeyCode::Tab));
681
+ }
682
+
683
+ if normalized == "shift-tab" || normalized == "s-tab" {
684
+ return Some((KeyModifiers::SHIFT, KeyCode::BackTab));
685
+ }
686
+
687
+ if let Some(rest) = normalized
688
+ .strip_prefix("ctrl-")
689
+ .or_else(|| normalized.strip_prefix("c-"))
690
+ {
691
+ return parse_single_char(rest).map(|ch| (KeyModifiers::CONTROL, KeyCode::Char(ch)));
692
+ }
693
+
694
+ parse_single_char(&normalized).map(|ch| (KeyModifiers::NONE, KeyCode::Char(ch)))
695
+ }
696
+
697
+ fn parse_single_char(value: &str) -> Option<char> {
698
+ let mut chars = value.chars();
699
+ let ch = chars.next()?;
700
+ (chars.next().is_none()).then_some(ch)
701
+ }
702
+
703
+ fn shortcut_label(spec: &str) -> String {
704
+ let normalized = spec.trim().to_ascii_lowercase().replace('+', "-");
705
+ if normalized == "tab" {
706
+ return "Tab".to_string();
707
+ }
708
+ if normalized == "shift-tab" || normalized == "s-tab" {
709
+ return "S-Tab".to_string();
710
+ }
711
+ if let Some(rest) = normalized
712
+ .strip_prefix("ctrl-")
713
+ .or_else(|| normalized.strip_prefix("c-"))
714
+ {
715
+ if let Some(ch) = parse_single_char(rest) {
716
+ return format!("Ctrl+{ch}");
717
+ }
718
+ }
719
+ normalized
720
+ }
721
+
722
+ impl Default for RiskThresholds {
723
+ fn default() -> Self {
724
+ Config::RISK_THRESHOLDS
725
+ }
726
+ }
727
+
728
+ impl Default for BudgetAlertThresholds {
729
+ fn default() -> Self {
730
+ Config::BUDGET_ALERT_THRESHOLDS
731
+ }
732
+ }
733
+
734
+ impl Default for ConflictResolutionStrategy {
735
+ fn default() -> Self {
736
+ Self::Escalate
737
+ }
738
+ }
739
+
740
+ impl Default for ConflictResolutionConfig {
741
+ fn default() -> Self {
742
+ Self {
743
+ enabled: true,
744
+ strategy: ConflictResolutionStrategy::Escalate,
745
+ notify_lead: true,
746
+ }
747
+ }
748
+ }
749
+
750
+ impl ResolvedAgentProfile {
751
+ fn apply(&mut self, profile_name: &str, config: &AgentProfileConfig) {
752
+ self.profile_name = profile_name.to_string();
753
+ if let Some(agent) = config.agent.as_ref() {
754
+ self.agent = Some(agent.clone());
755
+ }
756
+ if let Some(model) = config.model.as_ref() {
757
+ self.model = Some(model.clone());
758
+ }
759
+ merge_unique(&mut self.allowed_tools, &config.allowed_tools);
760
+ merge_unique(&mut self.disallowed_tools, &config.disallowed_tools);
761
+ if let Some(permission_mode) = config.permission_mode.as_ref() {
762
+ self.permission_mode = Some(permission_mode.clone());
763
+ }
764
+ merge_unique(&mut self.add_dirs, &config.add_dirs);
765
+ if let Some(max_budget_usd) = config.max_budget_usd {
766
+ self.max_budget_usd = Some(max_budget_usd);
767
+ }
768
+ if let Some(token_budget) = config.token_budget {
769
+ self.token_budget = Some(token_budget);
770
+ }
771
+ self.append_system_prompt = match (
772
+ self.append_system_prompt.take(),
773
+ config.append_system_prompt.as_ref(),
774
+ ) {
775
+ (Some(parent), Some(child)) => Some(format!("{parent}\n\n{child}")),
776
+ (Some(parent), None) => Some(parent),
777
+ (None, Some(child)) => Some(child.clone()),
778
+ (None, None) => None,
779
+ };
780
+ }
781
+ }
782
+
783
+ impl Default for HarnessRunnerConfig {
784
+ fn default() -> Self {
785
+ Self {
786
+ program: String::new(),
787
+ base_args: Vec::new(),
788
+ project_markers: Vec::new(),
789
+ cwd_flag: None,
790
+ session_name_flag: None,
791
+ task_flag: None,
792
+ model_flag: None,
793
+ add_dir_flag: None,
794
+ include_directories_flag: None,
795
+ allowed_tools_flag: None,
796
+ disallowed_tools_flag: None,
797
+ permission_mode_flag: None,
798
+ max_budget_usd_flag: None,
799
+ append_system_prompt_flag: None,
800
+ inline_system_prompt_for_task: true,
801
+ env: BTreeMap::new(),
802
+ }
803
+ }
804
+ }
805
+
806
+ impl Default for ComputerUseDispatchConfig {
807
+ fn default() -> Self {
808
+ Self {
809
+ agent: None,
810
+ profile: None,
811
+ use_worktree: false,
812
+ project: None,
813
+ task_group: None,
814
+ }
815
+ }
816
+ }
817
+
818
+ #[derive(Debug, Clone, Default, PartialEq, Eq)]
819
+ pub struct ResolvedComputerUseDispatchConfig {
820
+ pub agent: String,
821
+ pub profile: Option<String>,
822
+ pub use_worktree: bool,
823
+ pub project: Option<String>,
824
+ pub task_group: Option<String>,
825
+ }
826
+
827
+ fn merge_unique<T>(base: &mut Vec<T>, additions: &[T])
828
+ where
829
+ T: Clone + PartialEq,
830
+ {
831
+ for value in additions {
832
+ if !base.contains(value) {
833
+ base.push(value.clone());
834
+ }
835
+ }
836
+ }
837
+
838
+ fn interpolate_optional_string(
839
+ value: Option<&str>,
840
+ vars: &BTreeMap<String, String>,
841
+ ) -> Result<Option<String>> {
842
+ value
843
+ .map(|value| interpolate_required_string(value, vars))
844
+ .transpose()
845
+ .map(|value| {
846
+ value.and_then(|value| {
847
+ let trimmed = value.trim();
848
+ if trimmed.is_empty() {
849
+ None
850
+ } else {
851
+ Some(trimmed.to_string())
852
+ }
853
+ })
854
+ })
855
+ }
856
+
857
+ fn interpolate_required_string(value: &str, vars: &BTreeMap<String, String>) -> Result<String> {
858
+ let placeholder = Regex::new(r"\{\{\s*([A-Za-z0-9_-]+)\s*\}\}")
859
+ .expect("orchestration template placeholder regex");
860
+ let mut missing = Vec::new();
861
+ let rendered = placeholder.replace_all(value, |captures: &regex::Captures<'_>| {
862
+ let key = captures
863
+ .get(1)
864
+ .map(|capture| capture.as_str())
865
+ .unwrap_or_default();
866
+ match vars.get(key) {
867
+ Some(value) => value.to_string(),
868
+ None => {
869
+ missing.push(key.to_string());
870
+ String::new()
871
+ }
872
+ }
873
+ });
874
+
875
+ if !missing.is_empty() {
876
+ missing.sort();
877
+ missing.dedup();
878
+ anyhow::bail!(
879
+ "missing orchestration template variable(s): {}",
880
+ missing.join(", ")
881
+ );
882
+ }
883
+
884
+ Ok(rendered.into_owned())
885
+ }
886
+
887
+ impl BudgetAlertThresholds {
888
+ pub fn sanitized(self) -> Self {
889
+ let values = [self.advisory, self.warning, self.critical];
890
+ let valid = values.into_iter().all(f64::is_finite)
891
+ && self.advisory > 0.0
892
+ && self.advisory < self.warning
893
+ && self.warning < self.critical
894
+ && self.critical < 1.0;
895
+
896
+ if valid {
897
+ self
898
+ } else {
899
+ Self::default()
900
+ }
901
+ }
902
+ }
903
+
904
+ #[cfg(test)]
905
+ mod tests {
906
+ use super::{
907
+ BudgetAlertThresholds, ComputerUseDispatchConfig, Config, ConflictResolutionConfig,
908
+ ConflictResolutionStrategy, PaneLayout, ResolvedComputerUseDispatchConfig,
909
+ };
910
+ use crossterm::event::{KeyCode, KeyEvent, KeyModifiers};
911
+ use std::collections::BTreeMap;
912
+ use std::path::PathBuf;
913
+ use uuid::Uuid;
914
+
915
+ #[test]
916
+ fn default_includes_positive_budget_thresholds() {
917
+ let config = Config::default();
918
+
919
+ assert!(config.cost_budget_usd > 0.0);
920
+ assert!(config.token_budget > 0);
921
+ }
922
+
923
+ #[test]
924
+ fn missing_budget_fields_fall_back_to_defaults() {
925
+ let legacy_config = r#"
926
+ db_path = "/tmp/ecc2.db"
927
+ worktree_root = "/tmp/ecc-worktrees"
928
+ max_parallel_sessions = 8
929
+ max_parallel_worktrees = 6
930
+ worktree_retention_secs = 0
931
+ session_timeout_secs = 3600
932
+ heartbeat_interval_secs = 30
933
+ auto_terminate_stale_sessions = false
934
+ default_agent = "claude"
935
+ theme = "Dark"
936
+ "#;
937
+
938
+ let config: Config = toml::from_str(legacy_config).unwrap();
939
+ let defaults = Config::default();
940
+
941
+ assert_eq!(
942
+ config.worktree_branch_prefix,
943
+ defaults.worktree_branch_prefix
944
+ );
945
+ assert_eq!(
946
+ config.worktree_retention_secs,
947
+ defaults.worktree_retention_secs
948
+ );
949
+ assert_eq!(config.cost_budget_usd, defaults.cost_budget_usd);
950
+ assert_eq!(config.token_budget, defaults.token_budget);
951
+ assert_eq!(
952
+ config.budget_alert_thresholds,
953
+ defaults.budget_alert_thresholds
954
+ );
955
+ assert_eq!(config.conflict_resolution, defaults.conflict_resolution);
956
+ assert_eq!(config.pane_layout, defaults.pane_layout);
957
+ assert_eq!(config.pane_navigation, defaults.pane_navigation);
958
+ assert_eq!(
959
+ config.linear_pane_size_percent,
960
+ defaults.linear_pane_size_percent
961
+ );
962
+ assert_eq!(
963
+ config.grid_pane_size_percent,
964
+ defaults.grid_pane_size_percent
965
+ );
966
+ assert_eq!(config.risk_thresholds, defaults.risk_thresholds);
967
+ assert_eq!(
968
+ config.auto_dispatch_unread_handoffs,
969
+ defaults.auto_dispatch_unread_handoffs
970
+ );
971
+ assert_eq!(
972
+ config.auto_dispatch_limit_per_session,
973
+ defaults.auto_dispatch_limit_per_session
974
+ );
975
+ assert_eq!(config.auto_create_worktrees, defaults.auto_create_worktrees);
976
+ assert_eq!(
977
+ config.auto_merge_ready_worktrees,
978
+ defaults.auto_merge_ready_worktrees
979
+ );
980
+ assert_eq!(config.desktop_notifications, defaults.desktop_notifications);
981
+ assert_eq!(config.webhook_notifications, defaults.webhook_notifications);
982
+ assert_eq!(
983
+ config.auto_terminate_stale_sessions,
984
+ defaults.auto_terminate_stale_sessions
985
+ );
986
+ }
987
+
988
+ #[test]
989
+ fn default_pane_layout_is_horizontal() {
990
+ assert_eq!(Config::default().pane_layout, PaneLayout::Horizontal);
991
+ }
992
+
993
+ #[test]
994
+ fn default_pane_sizes_match_dashboard_defaults() {
995
+ let config = Config::default();
996
+
997
+ assert_eq!(config.linear_pane_size_percent, 35);
998
+ assert_eq!(config.grid_pane_size_percent, 50);
999
+ }
1000
+
1001
+ #[test]
1002
+ fn pane_layout_deserializes_from_toml() {
1003
+ let config: Config = toml::from_str(r#"pane_layout = "grid""#).unwrap();
1004
+
1005
+ assert_eq!(config.pane_layout, PaneLayout::Grid);
1006
+ }
1007
+
1008
+ #[test]
1009
+ fn worktree_branch_prefix_deserializes_from_toml() {
1010
+ let config: Config = toml::from_str(r#"worktree_branch_prefix = "bots/ecc""#).unwrap();
1011
+
1012
+ assert_eq!(config.worktree_branch_prefix, "bots/ecc");
1013
+ }
1014
+
1015
+ #[test]
1016
+ fn layered_config_merges_global_and_project_overrides() {
1017
+ let tempdir = std::env::temp_dir().join(format!("ecc2-config-{}", Uuid::new_v4()));
1018
+ let legacy_global_path = tempdir.join("legacy-global.toml");
1019
+ let global_path = tempdir.join("config.toml");
1020
+ let project_path = tempdir.join("ecc2.toml");
1021
+ std::fs::create_dir_all(&tempdir).unwrap();
1022
+ std::fs::write(
1023
+ &legacy_global_path,
1024
+ r#"
1025
+ max_parallel_worktrees = 6
1026
+ auto_create_worktrees = false
1027
+
1028
+ [desktop_notifications]
1029
+ enabled = true
1030
+ session_completed = false
1031
+ "#,
1032
+ )
1033
+ .unwrap();
1034
+ std::fs::write(
1035
+ &global_path,
1036
+ r#"
1037
+ auto_merge_ready_worktrees = true
1038
+
1039
+ [pane_navigation]
1040
+ focus_sessions = "q"
1041
+ move_right = "d"
1042
+ "#,
1043
+ )
1044
+ .unwrap();
1045
+ std::fs::write(
1046
+ &project_path,
1047
+ r#"
1048
+ max_parallel_worktrees = 2
1049
+ auto_dispatch_limit_per_session = 9
1050
+
1051
+ [desktop_notifications]
1052
+ approval_requests = false
1053
+
1054
+ [pane_navigation]
1055
+ focus_metrics = "e"
1056
+ "#,
1057
+ )
1058
+ .unwrap();
1059
+
1060
+ let config =
1061
+ Config::load_from_paths(&[legacy_global_path, global_path], &[project_path]).unwrap();
1062
+ assert_eq!(config.max_parallel_worktrees, 2);
1063
+ assert!(!config.auto_create_worktrees);
1064
+ assert!(config.auto_merge_ready_worktrees);
1065
+ assert_eq!(config.auto_dispatch_limit_per_session, 9);
1066
+ assert!(config.desktop_notifications.enabled);
1067
+ assert!(!config.desktop_notifications.session_completed);
1068
+ assert!(!config.desktop_notifications.approval_requests);
1069
+ assert_eq!(config.pane_navigation.focus_sessions, "q");
1070
+ assert_eq!(config.pane_navigation.focus_metrics, "e");
1071
+ assert_eq!(config.pane_navigation.move_right, "d");
1072
+
1073
+ let _ = std::fs::remove_dir_all(tempdir);
1074
+ }
1075
+
1076
+ #[test]
1077
+ fn project_config_discovery_prefers_nearest_directory_and_new_path() {
1078
+ let tempdir = std::env::temp_dir().join(format!("ecc2-config-{}", Uuid::new_v4()));
1079
+ let project_root = tempdir.join("project");
1080
+ let nested_dir = project_root.join("src").join("module");
1081
+ std::fs::create_dir_all(project_root.join(".claude")).unwrap();
1082
+ std::fs::create_dir_all(&nested_dir).unwrap();
1083
+ std::fs::write(project_root.join(".claude").join("ecc2.toml"), "").unwrap();
1084
+ std::fs::write(project_root.join("ecc2.toml"), "").unwrap();
1085
+
1086
+ let paths = Config::project_config_paths_from(&nested_dir);
1087
+ assert_eq!(
1088
+ paths,
1089
+ vec![
1090
+ project_root.join(".claude").join("ecc2.toml"),
1091
+ project_root.join("ecc2.toml")
1092
+ ]
1093
+ );
1094
+
1095
+ let _ = std::fs::remove_dir_all(tempdir);
1096
+ }
1097
+
1098
+ #[test]
1099
+ fn primary_config_path_uses_xdg_style_location() {
1100
+ let path = Config::config_path();
1101
+ assert!(path.ends_with("ecc2/config.toml"));
1102
+ }
1103
+
1104
+ #[test]
1105
+ fn pane_navigation_deserializes_from_toml() {
1106
+ let config: Config = toml::from_str(
1107
+ r#"
1108
+ [pane_navigation]
1109
+ focus_sessions = "q"
1110
+ focus_output = "w"
1111
+ focus_metrics = "e"
1112
+ focus_log = "r"
1113
+ move_left = "a"
1114
+ move_down = "s"
1115
+ move_up = "w"
1116
+ move_right = "d"
1117
+ "#,
1118
+ )
1119
+ .unwrap();
1120
+
1121
+ assert_eq!(config.pane_navigation.focus_sessions, "q");
1122
+ assert_eq!(config.pane_navigation.focus_output, "w");
1123
+ assert_eq!(config.pane_navigation.focus_metrics, "e");
1124
+ assert_eq!(config.pane_navigation.focus_log, "r");
1125
+ assert_eq!(config.pane_navigation.move_left, "a");
1126
+ assert_eq!(config.pane_navigation.move_down, "s");
1127
+ assert_eq!(config.pane_navigation.move_up, "w");
1128
+ assert_eq!(config.pane_navigation.move_right, "d");
1129
+ }
1130
+
1131
+ #[test]
1132
+ fn pane_navigation_matches_default_shortcuts() {
1133
+ let navigation = Config::default().pane_navigation;
1134
+
1135
+ assert_eq!(
1136
+ navigation.action_for_key(KeyEvent::new(KeyCode::Char('1'), KeyModifiers::NONE)),
1137
+ Some(super::PaneNavigationAction::FocusSlot(1))
1138
+ );
1139
+ assert_eq!(
1140
+ navigation.action_for_key(KeyEvent::new(KeyCode::Char('l'), KeyModifiers::CONTROL)),
1141
+ Some(super::PaneNavigationAction::MoveRight)
1142
+ );
1143
+ }
1144
+
1145
+ #[test]
1146
+ fn pane_navigation_matches_custom_shortcuts() {
1147
+ let navigation = super::PaneNavigationConfig {
1148
+ focus_sessions: "q".to_string(),
1149
+ focus_output: "w".to_string(),
1150
+ focus_metrics: "e".to_string(),
1151
+ focus_log: "r".to_string(),
1152
+ move_left: "a".to_string(),
1153
+ move_down: "s".to_string(),
1154
+ move_up: "w".to_string(),
1155
+ move_right: "d".to_string(),
1156
+ };
1157
+
1158
+ assert_eq!(
1159
+ navigation.action_for_key(KeyEvent::new(KeyCode::Char('e'), KeyModifiers::NONE)),
1160
+ Some(super::PaneNavigationAction::FocusSlot(3))
1161
+ );
1162
+ assert_eq!(
1163
+ navigation.action_for_key(KeyEvent::new(KeyCode::Char('d'), KeyModifiers::NONE)),
1164
+ Some(super::PaneNavigationAction::MoveRight)
1165
+ );
1166
+ }
1167
+
1168
+ #[test]
1169
+ fn default_risk_thresholds_are_applied() {
1170
+ assert_eq!(Config::default().risk_thresholds, Config::RISK_THRESHOLDS);
1171
+ }
1172
+
1173
+ #[test]
1174
+ fn default_budget_alert_thresholds_are_applied() {
1175
+ assert_eq!(
1176
+ Config::default().budget_alert_thresholds,
1177
+ Config::BUDGET_ALERT_THRESHOLDS
1178
+ );
1179
+ }
1180
+
1181
+ #[test]
1182
+ fn budget_alert_thresholds_deserialize_from_toml() {
1183
+ let config: Config = toml::from_str(
1184
+ r#"
1185
+ [budget_alert_thresholds]
1186
+ advisory = 0.40
1187
+ warning = 0.70
1188
+ critical = 0.85
1189
+ "#,
1190
+ )
1191
+ .unwrap();
1192
+
1193
+ assert_eq!(
1194
+ config.budget_alert_thresholds,
1195
+ BudgetAlertThresholds {
1196
+ advisory: 0.40,
1197
+ warning: 0.70,
1198
+ critical: 0.85,
1199
+ }
1200
+ );
1201
+ assert_eq!(
1202
+ config.effective_budget_alert_thresholds(),
1203
+ config.budget_alert_thresholds
1204
+ );
1205
+ }
1206
+
1207
+ #[test]
1208
+ fn desktop_notifications_deserialize_from_toml() {
1209
+ let config: Config = toml::from_str(
1210
+ r#"
1211
+ [desktop_notifications]
1212
+ enabled = true
1213
+ session_completed = false
1214
+ session_failed = true
1215
+ budget_alerts = true
1216
+ approval_requests = false
1217
+
1218
+ [desktop_notifications.quiet_hours]
1219
+ enabled = true
1220
+ start_hour = 21
1221
+ end_hour = 7
1222
+ "#,
1223
+ )
1224
+ .unwrap();
1225
+
1226
+ assert!(config.desktop_notifications.enabled);
1227
+ assert!(!config.desktop_notifications.session_completed);
1228
+ assert!(config.desktop_notifications.session_failed);
1229
+ assert!(config.desktop_notifications.budget_alerts);
1230
+ assert!(!config.desktop_notifications.approval_requests);
1231
+ assert!(config.desktop_notifications.quiet_hours.enabled);
1232
+ assert_eq!(config.desktop_notifications.quiet_hours.start_hour, 21);
1233
+ assert_eq!(config.desktop_notifications.quiet_hours.end_hour, 7);
1234
+ }
1235
+
1236
+ #[test]
1237
+ fn conflict_resolution_deserializes_from_toml() {
1238
+ let config: Config = toml::from_str(
1239
+ r#"
1240
+ [conflict_resolution]
1241
+ enabled = true
1242
+ strategy = "last_write_wins"
1243
+ notify_lead = false
1244
+ "#,
1245
+ )
1246
+ .unwrap();
1247
+
1248
+ assert_eq!(
1249
+ config.conflict_resolution,
1250
+ ConflictResolutionConfig {
1251
+ enabled: true,
1252
+ strategy: ConflictResolutionStrategy::LastWriteWins,
1253
+ notify_lead: false,
1254
+ }
1255
+ );
1256
+ }
1257
+
1258
+ #[test]
1259
+ fn computer_use_dispatch_deserializes_from_toml() {
1260
+ let config: Config = toml::from_str(
1261
+ r#"
1262
+ [computer_use_dispatch]
1263
+ agent = "codex"
1264
+ profile = "browser"
1265
+ use_worktree = true
1266
+ project = "ops"
1267
+ task_group = "remote browser"
1268
+ "#,
1269
+ )
1270
+ .unwrap();
1271
+
1272
+ assert_eq!(
1273
+ config.computer_use_dispatch,
1274
+ ComputerUseDispatchConfig {
1275
+ agent: Some("codex".to_string()),
1276
+ profile: Some("browser".to_string()),
1277
+ use_worktree: true,
1278
+ project: Some("ops".to_string()),
1279
+ task_group: Some("remote browser".to_string()),
1280
+ }
1281
+ );
1282
+ assert_eq!(
1283
+ config.computer_use_dispatch_defaults(),
1284
+ ResolvedComputerUseDispatchConfig {
1285
+ agent: "codex".to_string(),
1286
+ profile: Some("browser".to_string()),
1287
+ use_worktree: true,
1288
+ project: Some("ops".to_string()),
1289
+ task_group: Some("remote browser".to_string()),
1290
+ }
1291
+ );
1292
+ }
1293
+
1294
+ #[test]
1295
+ fn agent_profiles_resolve_inheritance_and_defaults() {
1296
+ let config: Config = toml::from_str(
1297
+ r#"
1298
+ default_agent_profile = "reviewer"
1299
+
1300
+ [agent_profiles.base]
1301
+ model = "sonnet"
1302
+ allowed_tools = ["Read"]
1303
+ permission_mode = "plan"
1304
+ add_dirs = ["docs"]
1305
+ append_system_prompt = "Be careful."
1306
+
1307
+ [agent_profiles.reviewer]
1308
+ inherits = "base"
1309
+ allowed_tools = ["Edit"]
1310
+ disallowed_tools = ["Bash"]
1311
+ token_budget = 1200
1312
+ append_system_prompt = "Review thoroughly."
1313
+ "#,
1314
+ )
1315
+ .unwrap();
1316
+
1317
+ let profile = config.resolve_agent_profile("reviewer").unwrap();
1318
+ assert_eq!(config.default_agent_profile.as_deref(), Some("reviewer"));
1319
+ assert_eq!(profile.profile_name, "reviewer");
1320
+ assert_eq!(profile.model.as_deref(), Some("sonnet"));
1321
+ assert_eq!(profile.allowed_tools, vec!["Read", "Edit"]);
1322
+ assert_eq!(profile.disallowed_tools, vec!["Bash"]);
1323
+ assert_eq!(profile.permission_mode.as_deref(), Some("plan"));
1324
+ assert_eq!(profile.add_dirs, vec![PathBuf::from("docs")]);
1325
+ assert_eq!(profile.token_budget, Some(1200));
1326
+ assert_eq!(
1327
+ profile.append_system_prompt.as_deref(),
1328
+ Some("Be careful.\n\nReview thoroughly.")
1329
+ );
1330
+ }
1331
+
1332
+ #[test]
1333
+ fn agent_profile_resolution_rejects_inheritance_cycles() {
1334
+ let config: Config = toml::from_str(
1335
+ r#"
1336
+ [agent_profiles.a]
1337
+ inherits = "b"
1338
+
1339
+ [agent_profiles.b]
1340
+ inherits = "a"
1341
+ "#,
1342
+ )
1343
+ .unwrap();
1344
+
1345
+ let error = config
1346
+ .resolve_agent_profile("a")
1347
+ .expect_err("profile inheritance cycles must fail");
1348
+ assert!(error
1349
+ .to_string()
1350
+ .contains("agent profile inheritance cycle"));
1351
+ }
1352
+
1353
+ #[test]
1354
+ fn harness_runners_deserialize_from_toml() {
1355
+ let config: Config = toml::from_str(
1356
+ r#"
1357
+ [harness_runners.cursor]
1358
+ program = "cursor-agent"
1359
+ base_args = ["run"]
1360
+ project_markers = [".cursor", ".cursor/rules"]
1361
+ cwd_flag = "--cwd"
1362
+ session_name_flag = "--name"
1363
+ task_flag = "--task"
1364
+ model_flag = "--model"
1365
+ permission_mode_flag = "--permission-mode"
1366
+ inline_system_prompt_for_task = true
1367
+
1368
+ [harness_runners.cursor.env]
1369
+ ECC_HARNESS = "cursor"
1370
+ "#,
1371
+ )
1372
+ .unwrap();
1373
+
1374
+ let runner = config.harness_runner("cursor").expect("cursor runner");
1375
+ assert_eq!(runner.program, "cursor-agent");
1376
+ assert_eq!(runner.base_args, vec!["run"]);
1377
+ assert_eq!(
1378
+ runner.project_markers,
1379
+ vec![PathBuf::from(".cursor"), PathBuf::from(".cursor/rules")]
1380
+ );
1381
+ assert_eq!(runner.cwd_flag.as_deref(), Some("--cwd"));
1382
+ assert_eq!(runner.session_name_flag.as_deref(), Some("--name"));
1383
+ assert_eq!(runner.task_flag.as_deref(), Some("--task"));
1384
+ assert_eq!(runner.model_flag.as_deref(), Some("--model"));
1385
+ assert_eq!(
1386
+ runner.permission_mode_flag.as_deref(),
1387
+ Some("--permission-mode")
1388
+ );
1389
+ assert!(runner.inline_system_prompt_for_task);
1390
+ assert_eq!(
1391
+ runner.env.get("ECC_HARNESS").map(String::as_str),
1392
+ Some("cursor")
1393
+ );
1394
+ }
1395
+
1396
+ #[test]
1397
+ fn orchestration_templates_resolve_steps_and_interpolate_variables() {
1398
+ let config: Config = toml::from_str(
1399
+ r#"
1400
+ default_agent = "claude"
1401
+ default_agent_profile = "reviewer"
1402
+
1403
+ [agent_profiles.reviewer]
1404
+ model = "sonnet"
1405
+
1406
+ [orchestration_templates.feature_development]
1407
+ description = "Ship {{task}}"
1408
+ project = "{{project}}"
1409
+ task_group = "{{task_group}}"
1410
+ profile = "reviewer"
1411
+ worktree = true
1412
+
1413
+ [[orchestration_templates.feature_development.steps]]
1414
+ name = "planner"
1415
+ task = "Plan {{task}}"
1416
+ agent = "claude"
1417
+
1418
+ [[orchestration_templates.feature_development.steps]]
1419
+ name = "reviewer"
1420
+ task = "Review {{task}} in {{component}}"
1421
+ profile = "reviewer"
1422
+ worktree = false
1423
+ "#,
1424
+ )
1425
+ .unwrap();
1426
+
1427
+ let vars = BTreeMap::from([
1428
+ ("task".to_string(), "stabilize auth callback".to_string()),
1429
+ ("project".to_string(), "ecc-core".to_string()),
1430
+ ("task_group".to_string(), "auth callback".to_string()),
1431
+ ("component".to_string(), "billing".to_string()),
1432
+ ]);
1433
+ let template = config
1434
+ .resolve_orchestration_template("feature_development", &vars)
1435
+ .unwrap();
1436
+
1437
+ assert_eq!(template.template_name, "feature_development");
1438
+ assert_eq!(
1439
+ template.description.as_deref(),
1440
+ Some("Ship stabilize auth callback")
1441
+ );
1442
+ assert_eq!(template.project.as_deref(), Some("ecc-core"));
1443
+ assert_eq!(template.task_group.as_deref(), Some("auth callback"));
1444
+ assert_eq!(template.steps.len(), 2);
1445
+ assert_eq!(template.steps[0].name, "planner");
1446
+ assert_eq!(template.steps[0].task, "Plan stabilize auth callback");
1447
+ assert_eq!(template.steps[0].agent.as_deref(), Some("claude"));
1448
+ assert_eq!(template.steps[0].profile.as_deref(), Some("reviewer"));
1449
+ assert!(template.steps[0].worktree);
1450
+ assert_eq!(
1451
+ template.steps[1].task,
1452
+ "Review stabilize auth callback in billing"
1453
+ );
1454
+ assert!(!template.steps[1].worktree);
1455
+ }
1456
+
1457
+ #[test]
1458
+ fn orchestration_templates_fail_when_required_variables_are_missing() {
1459
+ let config: Config = toml::from_str(
1460
+ r#"
1461
+ [orchestration_templates.feature_development]
1462
+ [[orchestration_templates.feature_development.steps]]
1463
+ task = "Plan {{task}} for {{component}}"
1464
+ "#,
1465
+ )
1466
+ .unwrap();
1467
+
1468
+ let error = config
1469
+ .resolve_orchestration_template(
1470
+ "feature_development",
1471
+ &BTreeMap::from([("task".to_string(), "fix retry".to_string())]),
1472
+ )
1473
+ .expect_err("missing template variables must fail");
1474
+ let error_text = format!("{error:#}");
1475
+ assert!(error_text
1476
+ .contains("resolve task for orchestration template feature_development step 1"));
1477
+ assert!(error_text.contains("missing orchestration template variable(s): component"));
1478
+ }
1479
+
1480
+ #[test]
1481
+ fn memory_connectors_deserialize_from_toml() {
1482
+ let config: Config = toml::from_str(
1483
+ r#"
1484
+ [memory_connectors.hermes_notes]
1485
+ kind = "jsonl_file"
1486
+ path = "/tmp/hermes-memory.jsonl"
1487
+ session_id = "latest"
1488
+ default_entity_type = "incident"
1489
+ default_observation_type = "external_note"
1490
+ "#,
1491
+ )
1492
+ .unwrap();
1493
+
1494
+ let connector = config
1495
+ .memory_connectors
1496
+ .get("hermes_notes")
1497
+ .expect("connector should deserialize");
1498
+ match connector {
1499
+ crate::config::MemoryConnectorConfig::JsonlFile(settings) => {
1500
+ assert_eq!(settings.path, PathBuf::from("/tmp/hermes-memory.jsonl"));
1501
+ assert_eq!(settings.session_id.as_deref(), Some("latest"));
1502
+ assert_eq!(settings.default_entity_type.as_deref(), Some("incident"));
1503
+ assert_eq!(
1504
+ settings.default_observation_type.as_deref(),
1505
+ Some("external_note")
1506
+ );
1507
+ }
1508
+ _ => panic!("expected jsonl_file connector"),
1509
+ }
1510
+ }
1511
+
1512
+ #[test]
1513
+ fn memory_jsonl_directory_connectors_deserialize_from_toml() {
1514
+ let config: Config = toml::from_str(
1515
+ r#"
1516
+ [memory_connectors.hermes_dir]
1517
+ kind = "jsonl_directory"
1518
+ path = "/tmp/hermes-memory"
1519
+ recurse = true
1520
+ default_entity_type = "incident"
1521
+ default_observation_type = "external_note"
1522
+ "#,
1523
+ )
1524
+ .unwrap();
1525
+
1526
+ let connector = config
1527
+ .memory_connectors
1528
+ .get("hermes_dir")
1529
+ .expect("connector should deserialize");
1530
+ match connector {
1531
+ crate::config::MemoryConnectorConfig::JsonlDirectory(settings) => {
1532
+ assert_eq!(settings.path, PathBuf::from("/tmp/hermes-memory"));
1533
+ assert!(settings.recurse);
1534
+ assert_eq!(settings.default_entity_type.as_deref(), Some("incident"));
1535
+ assert_eq!(
1536
+ settings.default_observation_type.as_deref(),
1537
+ Some("external_note")
1538
+ );
1539
+ }
1540
+ _ => panic!("expected jsonl_directory connector"),
1541
+ }
1542
+ }
1543
+
1544
+ #[test]
1545
+ fn memory_markdown_file_connectors_deserialize_from_toml() {
1546
+ let config: Config = toml::from_str(
1547
+ r#"
1548
+ [memory_connectors.workspace_note]
1549
+ kind = "markdown_file"
1550
+ path = "/tmp/hermes-memory.md"
1551
+ session_id = "latest"
1552
+ default_entity_type = "note_section"
1553
+ default_observation_type = "external_note"
1554
+ "#,
1555
+ )
1556
+ .unwrap();
1557
+
1558
+ let connector = config
1559
+ .memory_connectors
1560
+ .get("workspace_note")
1561
+ .expect("connector should deserialize");
1562
+ match connector {
1563
+ crate::config::MemoryConnectorConfig::MarkdownFile(settings) => {
1564
+ assert_eq!(settings.path, PathBuf::from("/tmp/hermes-memory.md"));
1565
+ assert_eq!(settings.session_id.as_deref(), Some("latest"));
1566
+ assert_eq!(
1567
+ settings.default_entity_type.as_deref(),
1568
+ Some("note_section")
1569
+ );
1570
+ assert_eq!(
1571
+ settings.default_observation_type.as_deref(),
1572
+ Some("external_note")
1573
+ );
1574
+ }
1575
+ _ => panic!("expected markdown_file connector"),
1576
+ }
1577
+ }
1578
+
1579
+ #[test]
1580
+ fn memory_markdown_directory_connectors_deserialize_from_toml() {
1581
+ let config: Config = toml::from_str(
1582
+ r#"
1583
+ [memory_connectors.workspace_notes]
1584
+ kind = "markdown_directory"
1585
+ path = "/tmp/hermes-memory"
1586
+ recurse = true
1587
+ session_id = "latest"
1588
+ default_entity_type = "note_section"
1589
+ default_observation_type = "external_note"
1590
+ "#,
1591
+ )
1592
+ .unwrap();
1593
+
1594
+ let connector = config
1595
+ .memory_connectors
1596
+ .get("workspace_notes")
1597
+ .expect("connector should deserialize");
1598
+ match connector {
1599
+ crate::config::MemoryConnectorConfig::MarkdownDirectory(settings) => {
1600
+ assert_eq!(settings.path, PathBuf::from("/tmp/hermes-memory"));
1601
+ assert!(settings.recurse);
1602
+ assert_eq!(settings.session_id.as_deref(), Some("latest"));
1603
+ assert_eq!(
1604
+ settings.default_entity_type.as_deref(),
1605
+ Some("note_section")
1606
+ );
1607
+ assert_eq!(
1608
+ settings.default_observation_type.as_deref(),
1609
+ Some("external_note")
1610
+ );
1611
+ }
1612
+ _ => panic!("expected markdown_directory connector"),
1613
+ }
1614
+ }
1615
+
1616
+ #[test]
1617
+ fn memory_dotenv_file_connectors_deserialize_from_toml() {
1618
+ let config: Config = toml::from_str(
1619
+ r#"
1620
+ [memory_connectors.hermes_env]
1621
+ kind = "dotenv_file"
1622
+ path = "/tmp/hermes.env"
1623
+ session_id = "latest"
1624
+ default_entity_type = "service_config"
1625
+ default_observation_type = "external_config"
1626
+ key_prefixes = ["STRIPE_", "PUBLIC_"]
1627
+ include_keys = ["PUBLIC_BASE_URL"]
1628
+ exclude_keys = ["STRIPE_WEBHOOK_SECRET"]
1629
+ include_safe_values = true
1630
+ "#,
1631
+ )
1632
+ .unwrap();
1633
+
1634
+ let connector = config
1635
+ .memory_connectors
1636
+ .get("hermes_env")
1637
+ .expect("connector should deserialize");
1638
+ match connector {
1639
+ crate::config::MemoryConnectorConfig::DotenvFile(settings) => {
1640
+ assert_eq!(settings.path, PathBuf::from("/tmp/hermes.env"));
1641
+ assert_eq!(settings.session_id.as_deref(), Some("latest"));
1642
+ assert_eq!(
1643
+ settings.default_entity_type.as_deref(),
1644
+ Some("service_config")
1645
+ );
1646
+ assert_eq!(
1647
+ settings.default_observation_type.as_deref(),
1648
+ Some("external_config")
1649
+ );
1650
+ assert_eq!(settings.key_prefixes, vec!["STRIPE_", "PUBLIC_"]);
1651
+ assert_eq!(settings.include_keys, vec!["PUBLIC_BASE_URL"]);
1652
+ assert_eq!(settings.exclude_keys, vec!["STRIPE_WEBHOOK_SECRET"]);
1653
+ assert!(settings.include_safe_values);
1654
+ }
1655
+ _ => panic!("expected dotenv_file connector"),
1656
+ }
1657
+ }
1658
+
1659
+ #[test]
1660
+ fn completion_summary_notifications_deserialize_from_toml() {
1661
+ let config: Config = toml::from_str(
1662
+ r#"
1663
+ [completion_summary_notifications]
1664
+ enabled = true
1665
+ delivery = "desktop_and_tui_popup"
1666
+ "#,
1667
+ )
1668
+ .unwrap();
1669
+
1670
+ assert!(config.completion_summary_notifications.enabled);
1671
+ assert_eq!(
1672
+ config.completion_summary_notifications.delivery,
1673
+ crate::notifications::CompletionSummaryDelivery::DesktopAndTuiPopup
1674
+ );
1675
+ }
1676
+
1677
+ #[test]
1678
+ fn webhook_notifications_deserialize_from_toml() {
1679
+ let config: Config = toml::from_str(
1680
+ r#"
1681
+ [webhook_notifications]
1682
+ enabled = true
1683
+ session_started = true
1684
+ session_completed = true
1685
+ session_failed = true
1686
+ budget_alerts = true
1687
+ approval_requests = false
1688
+
1689
+ [[webhook_notifications.targets]]
1690
+ provider = "slack"
1691
+ url = "https://hooks.slack.test/services/abc"
1692
+
1693
+ [[webhook_notifications.targets]]
1694
+ provider = "discord"
1695
+ url = "https://discord.test/api/webhooks/123"
1696
+ "#,
1697
+ )
1698
+ .unwrap();
1699
+
1700
+ assert!(config.webhook_notifications.enabled);
1701
+ assert!(config.webhook_notifications.session_started);
1702
+ assert_eq!(config.webhook_notifications.targets.len(), 2);
1703
+ assert_eq!(
1704
+ config.webhook_notifications.targets[0].provider,
1705
+ crate::notifications::WebhookProvider::Slack
1706
+ );
1707
+ assert_eq!(
1708
+ config.webhook_notifications.targets[1].provider,
1709
+ crate::notifications::WebhookProvider::Discord
1710
+ );
1711
+ }
1712
+
1713
+ #[test]
1714
+ fn invalid_budget_alert_thresholds_fall_back_to_defaults() {
1715
+ let config: Config = toml::from_str(
1716
+ r#"
1717
+ [budget_alert_thresholds]
1718
+ advisory = 0.80
1719
+ warning = 0.70
1720
+ critical = 1.10
1721
+ "#,
1722
+ )
1723
+ .unwrap();
1724
+
1725
+ assert_eq!(
1726
+ config.effective_budget_alert_thresholds(),
1727
+ Config::BUDGET_ALERT_THRESHOLDS
1728
+ );
1729
+ }
1730
+
1731
+ #[test]
1732
+ fn save_round_trips_automation_settings() {
1733
+ let path = std::env::temp_dir().join(format!("ecc2-config-{}.toml", Uuid::new_v4()));
1734
+ let mut config = Config::default();
1735
+ config.auto_dispatch_unread_handoffs = true;
1736
+ config.auto_dispatch_limit_per_session = 9;
1737
+ config.auto_create_worktrees = false;
1738
+ config.auto_merge_ready_worktrees = true;
1739
+ config.desktop_notifications.session_completed = false;
1740
+ config.webhook_notifications.enabled = true;
1741
+ config.webhook_notifications.targets = vec![crate::notifications::WebhookTarget {
1742
+ provider: crate::notifications::WebhookProvider::Slack,
1743
+ url: "https://hooks.slack.test/services/abc".to_string(),
1744
+ }];
1745
+ config.completion_summary_notifications.delivery =
1746
+ crate::notifications::CompletionSummaryDelivery::TuiPopup;
1747
+ config.desktop_notifications.quiet_hours.enabled = true;
1748
+ config.desktop_notifications.quiet_hours.start_hour = 21;
1749
+ config.desktop_notifications.quiet_hours.end_hour = 7;
1750
+ config.worktree_branch_prefix = "bots/ecc".to_string();
1751
+ config.budget_alert_thresholds = BudgetAlertThresholds {
1752
+ advisory: 0.45,
1753
+ warning: 0.70,
1754
+ critical: 0.88,
1755
+ };
1756
+ config.conflict_resolution.strategy = ConflictResolutionStrategy::Merge;
1757
+ config.conflict_resolution.notify_lead = false;
1758
+ config.pane_navigation.focus_metrics = "e".to_string();
1759
+ config.pane_navigation.move_right = "d".to_string();
1760
+ config.linear_pane_size_percent = 42;
1761
+ config.grid_pane_size_percent = 55;
1762
+
1763
+ config.save_to_path(&path).unwrap();
1764
+ let content = std::fs::read_to_string(&path).unwrap();
1765
+ let loaded: Config = toml::from_str(&content).unwrap();
1766
+
1767
+ assert!(loaded.auto_dispatch_unread_handoffs);
1768
+ assert_eq!(loaded.auto_dispatch_limit_per_session, 9);
1769
+ assert!(!loaded.auto_create_worktrees);
1770
+ assert!(loaded.auto_merge_ready_worktrees);
1771
+ assert!(!loaded.desktop_notifications.session_completed);
1772
+ assert!(loaded.webhook_notifications.enabled);
1773
+ assert_eq!(loaded.webhook_notifications.targets.len(), 1);
1774
+ assert_eq!(
1775
+ loaded.webhook_notifications.targets[0].provider,
1776
+ crate::notifications::WebhookProvider::Slack
1777
+ );
1778
+ assert_eq!(
1779
+ loaded.completion_summary_notifications.delivery,
1780
+ crate::notifications::CompletionSummaryDelivery::TuiPopup
1781
+ );
1782
+ assert!(loaded.desktop_notifications.quiet_hours.enabled);
1783
+ assert_eq!(loaded.desktop_notifications.quiet_hours.start_hour, 21);
1784
+ assert_eq!(loaded.desktop_notifications.quiet_hours.end_hour, 7);
1785
+ assert_eq!(loaded.worktree_branch_prefix, "bots/ecc");
1786
+ assert_eq!(
1787
+ loaded.budget_alert_thresholds,
1788
+ BudgetAlertThresholds {
1789
+ advisory: 0.45,
1790
+ warning: 0.70,
1791
+ critical: 0.88,
1792
+ }
1793
+ );
1794
+ assert_eq!(
1795
+ loaded.conflict_resolution.strategy,
1796
+ ConflictResolutionStrategy::Merge
1797
+ );
1798
+ assert!(!loaded.conflict_resolution.notify_lead);
1799
+ assert_eq!(loaded.pane_navigation.focus_metrics, "e");
1800
+ assert_eq!(loaded.pane_navigation.move_right, "d");
1801
+ assert_eq!(loaded.linear_pane_size_percent, 42);
1802
+ assert_eq!(loaded.grid_pane_size_percent, 55);
1803
+
1804
+ let _ = std::fs::remove_file(path);
1805
+ }
1806
+ }