winter-super-cli 2026.5.32 → 2026.6.6

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 (3103) hide show
  1. package/README.md +9 -5
  2. package/bin/winter.js +39 -4
  3. package/package.json +21 -2
  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 +243 -0
  3067. package/src/ai/capability-scorecard.js +241 -0
  3068. package/src/ai/model-capabilities.js +2 -1
  3069. package/src/ai/orchestrator.js +478 -0
  3070. package/src/ai/profile-blueprints.js +135 -0
  3071. package/src/ai/prompts/system-prompt.js +15 -46
  3072. package/src/ai/providers.js +120 -7
  3073. package/src/ai/small-model-amplifier.js +25 -0
  3074. package/src/ai/workflow-selector.js +154 -0
  3075. package/src/cli/at-context.js +269 -0
  3076. package/src/cli/commands.js +813 -0
  3077. package/src/cli/composer.js +361 -0
  3078. package/src/cli/config.js +12 -1
  3079. package/src/cli/context-loader.js +20 -3
  3080. package/src/cli/conversation-format.js +11 -210
  3081. package/src/cli/diagnostics.js +101 -0
  3082. package/src/cli/diff-view.js +341 -0
  3083. package/src/cli/ecc.js +274 -0
  3084. package/src/cli/input-controller.js +263 -0
  3085. package/src/cli/project-docs.js +2 -0
  3086. package/src/cli/prompt-builder.js +58 -13
  3087. package/src/cli/repl-commands.js +358 -10
  3088. package/src/cli/repl.js +1071 -331
  3089. package/src/cli/slash-commands.js +22 -1
  3090. package/src/cli/snowflake-logo.js +20 -10
  3091. package/src/cli/terminal-ui.js +92 -40
  3092. package/src/cli/tool-call-adapter.js +327 -0
  3093. package/src/cli/tool-runtime.js +115 -0
  3094. package/src/codebase-index/codegraph-adapter.js +154 -0
  3095. package/src/codebase-index/indexer.js +402 -0
  3096. package/src/codebase-index/search.js +205 -0
  3097. package/src/codebase-index/watcher.js +117 -0
  3098. package/src/context/router.js +4 -41
  3099. package/src/context/token-juice.js +166 -0
  3100. package/src/context/wiki-memory.js +212 -0
  3101. package/src/integrations/htmlfx-manager.js +111 -0
  3102. package/src/mcp/inline-complete.js +226 -0
  3103. package/src/tools/executor.js +188 -1
package/src/cli/repl.js CHANGED
@@ -1,13 +1,14 @@
1
1
  /**
2
- * ❄️ WINTER REPL ❄️
2
+ * WINTER REPL
3
3
  * Claude Code / Codex style interactive REPL
4
4
  */
5
5
 
6
6
  import readline from 'readline';
7
7
  import { promises as fs, watch as fsWatch } from 'fs';
8
8
  import { homedir } from 'os';
9
- import { welcomeBanner, colors } from './snowflake-logo.js';
10
- import { renderBox, terminalWidth, stripAnsi, visibleWidth, wrapText, padVisible } from './terminal-ui.js';
9
+ import { welcomeBanner, colors, applyColorTheme } from './snowflake-logo.js';
10
+ import { renderBox, supportsUnicodeUi, terminalWidth, stripAnsi, wrapText, padVisible } from './terminal-ui.js';
11
+ import { WinterInputController } from './input-controller.js';
11
12
  import { ToolExecutor } from '../tools/executor.js';
12
13
  import { SessionManager } from '../session/manager.js';
13
14
  import { AIProviderManager } from '../ai/providers.js';
@@ -16,13 +17,20 @@ import { PermissionManager } from '../tools/permission.js';
16
17
  import { compressConversation } from '../context/compress.js';
17
18
  import { getToolUsageSummary } from '../tools/analytics.js';
18
19
  import { SweAgent } from '../agent/swe-agent.js';
20
+ import { AgentDefinitionRegistry } from '../agent/agent-definitions.js';
21
+ import { AgentRuntime } from '../agent/runtime.js';
19
22
  import { SLASH_COMMANDS } from './slash-commands.js';
20
23
  import { formatMarkdown } from './markdown-format.js';
21
24
  import { Spinner } from './spinner.js';
22
25
  import { ContextLoader } from './context-loader.js';
23
26
  import { PromptBuilder } from './prompt-builder.js';
24
27
  import { buildProjectDocs, isWinterGeneratedProjectDoc } from './project-docs.js';
25
- import { classifyModelTier, isSmallModel } from '../ai/model-capabilities.js';
28
+ import {
29
+ buildPromptToolResult as buildPromptToolResultForModel,
30
+ buildPromptToolResultWithTokenJuice,
31
+ } from './tool-runtime.js';
32
+ import { TokenJuice } from '../context/token-juice.js';
33
+ import { classifyModelTier } from '../ai/model-capabilities.js';
26
34
  import {
27
35
  addUsage as mergeUsage,
28
36
  buildToolCallSignature as buildToolCallSignatureText,
@@ -39,7 +47,25 @@ import {
39
47
  parseToolArguments as parseArguments,
40
48
  summarizePromptList as summarizePrompts,
41
49
  } from './conversation-format.js';
50
+ import { CodebaseSearch } from '../codebase-index/search.js';
51
+ import { CodebaseWatcher } from '../codebase-index/watcher.js';
52
+ import { AtContextResolver } from './at-context.js';
53
+ import { DiffView } from './diff-view.js';
54
+ import { Composer } from './composer.js';
55
+ import { InlineComplete } from '../mcp/inline-complete.js';
56
+ import { Orchestrator } from '../ai/orchestrator.js';
57
+ import { ECCManager } from './ecc.js';
42
58
  import { handleSlashCommand } from './repl-commands.js';
59
+ import { selectWorkflow } from '../ai/workflow-selector.js';
60
+ import { buildSmallModelAmplification } from '../ai/small-model-amplifier.js';
61
+ import { getProfileBlueprint } from '../ai/profile-blueprints.js';
62
+ import {
63
+ getCapabilityScorecard as getCapabilityScorecardReport,
64
+ runFullDoctor as runFullDoctorDiagnostics,
65
+ runToolDoctor as runToolDoctorDiagnostics,
66
+ showCapabilityScorecard as showCapabilityScorecardDiagnostics,
67
+ showContextDiagnostics as showContextDiagnosticsReport,
68
+ } from './diagnostics.js';
43
69
  import path from 'path';
44
70
 
45
71
 
@@ -74,9 +100,307 @@ export class WinterREPL {
74
100
  compactText: (text, maxChars, label) => this.compactText(text, maxChars, label),
75
101
  summarizePrompts: (items, opts) => this.summarizePromptList(items, opts),
76
102
  });
103
+ this.codebaseSearcher = null;
104
+ this.codebaseWatcher = null;
105
+ this.atContext = null;
106
+ this.diffView = null;
107
+ this.composer = null;
108
+ this.inlineComplete = null;
109
+ this.eccManager = null;
110
+ this.orchestrator = null;
111
+ this.tokenJuice = new TokenJuice({ projectPath: this.projectPath });
112
+ this.agentRegistry = new AgentDefinitionRegistry({ projectPath: this.projectPath });
113
+ this.agentRuntime = new AgentRuntime(this);
114
+ this.useUnicodeUi = supportsUnicodeUi();
115
+ this.inputController = new WinterInputController(this);
77
116
  this.watchers = [];
78
117
  }
79
118
 
119
+ async initCodebaseSearch() {
120
+ if (this.codebaseSearcher) return;
121
+ this.codebaseSearcher = new CodebaseSearch({ projectPath: this.projectPath, enableCodeGraph: true });
122
+ await this.codebaseSearcher.init();
123
+ this.atContext = new AtContextResolver({
124
+ projectPath: this.projectPath,
125
+ codebaseSearch: this.codebaseSearcher,
126
+ tools: this.tools,
127
+ });
128
+ this.diffView = new DiffView({ projectPath: this.projectPath });
129
+ this.composer = new Composer({
130
+ repl: this,
131
+ projectPath: this.projectPath,
132
+ diffView: this.diffView,
133
+ });
134
+ this.inlineComplete = new InlineComplete({
135
+ repl: this,
136
+ projectPath: this.projectPath,
137
+ });
138
+ this.orchestrator = new Orchestrator({
139
+ ai: this.ai,
140
+ tools: this.tools,
141
+ projectPath: this.projectPath,
142
+ });
143
+ this.eccManager = new ECCManager({
144
+ projectPath: this.projectPath,
145
+ tools: this.tools,
146
+ config: this.config,
147
+ });
148
+ }
149
+
150
+ async startCodebaseWatcher() {
151
+ if (this.codebaseWatcher) return;
152
+ await this.initCodebaseSearch();
153
+ this.codebaseWatcher = new CodebaseWatcher({
154
+ projectPath: this.projectPath,
155
+ indexer: this.codebaseSearcher.indexer,
156
+ });
157
+ this.codebaseWatcher.onChange(({ filePath }) => {
158
+ // Re-index on change (handled by watcher internally)
159
+ });
160
+ this.codebaseWatcher.start({ debounce: true });
161
+ }
162
+
163
+ async codebaseIndex(full = false) {
164
+ await this.initCodebaseSearch();
165
+ if (full) {
166
+ await this.codebaseSearcher.clear();
167
+ }
168
+ const stats = await this.codebaseSearcher.reindex();
169
+ console.log(`${colors.green}✓ Codebase indexed:${colors.reset}`);
170
+ console.log(` ${colors.dim}Files: ${stats.totalFiles}, Chunks: ${stats.totalChunks}, Indexed: ${stats.indexedFiles}, Skipped: ${stats.skipped}${colors.reset}`);
171
+ }
172
+
173
+ async codebaseSearch(query) {
174
+ await this.initCodebaseSearch();
175
+ this.spinner = new Spinner('Searching codebase...');
176
+ this.spinner.start();
177
+ try {
178
+ const results = await this.codebaseSearcher.query(query, { limit: 15 });
179
+ if (this.spinner) this.spinner.stop();
180
+
181
+ if (results.totalResults === 0) {
182
+ console.log(`${colors.yellow}No results found for "${query}"${colors.reset}`);
183
+ return;
184
+ }
185
+
186
+ console.log(`${colors.cyan}Codebase Search: "${query}" ${colors.dim}(${results.totalResults} matches in ${results.totalFiles} files)${colors.reset}\n`);
187
+ for (const file of results.byFile.slice(0, 10)) {
188
+ console.log(` ${colors.green}${file.filePath}${colors.reset} ${colors.dim}(score: ${file.score.toFixed(0)})${colors.reset}`);
189
+ for (const chunk of file.chunks.slice(0, 3)) {
190
+ const snippet = chunk.content.split('\n').slice(0, 3).join('\n ');
191
+ console.log(` ${colors.dim}lines ${chunk.startLine}-${chunk.endLine}:${colors.reset}`);
192
+ console.log(` ${colors.dim} ${snippet}${colors.reset}`);
193
+ }
194
+ if (file.chunks.length > 3) {
195
+ console.log(` ${colors.dim}... and ${file.chunks.length - 3} more chunks${colors.reset}`);
196
+ }
197
+ console.log('');
198
+ }
199
+ if (results.byFile.length > 10) {
200
+ console.log(`${colors.dim}... and ${results.byFile.length - 10} more files${colors.reset}`);
201
+ }
202
+ } catch (e) {
203
+ if (this.spinner) this.spinner.stop();
204
+ console.log(`${colors.red}Search error: ${e.message}${colors.reset}`);
205
+ }
206
+ }
207
+
208
+ async codebaseFindDef(name) {
209
+ await this.initCodebaseSearch();
210
+ const matches = await this.codebaseSearcher.findSymbol(name, { limit: 10 });
211
+
212
+ if (matches.length === 0) {
213
+ console.log(`${colors.yellow}No definition found for "${name}"${colors.reset}`);
214
+ return;
215
+ }
216
+
217
+ console.log(`${colors.cyan}Definitions for "${name}"${colors.reset}\n`);
218
+ for (const m of matches) {
219
+ console.log(` ${colors.green}${m.filePath}:${m.line}${colors.reset} ${colors.dim}${m.type}:${m.name}${colors.reset}`);
220
+ if (m.content) {
221
+ console.log(` ${colors.dim}${m.content}${colors.reset}`);
222
+ }
223
+ }
224
+ }
225
+
226
+ async ensureCodebaseIndex({ verbose = false } = {}) {
227
+ await this.initCodebaseSearch();
228
+ const before = this.codebaseSearcher.indexer.getStats();
229
+ if (before.totalChunks > 0) return before;
230
+
231
+ if (verbose) {
232
+ console.log(`${colors.dim}Indexing codebase for semantic search...${colors.reset}`);
233
+ }
234
+ const indexedStats = await this.codebaseSearcher.reindex();
235
+ if (verbose) {
236
+ console.log(`${colors.green}✓ Codebase indexed: ${indexedStats.totalFiles} files, ${indexedStats.totalChunks} chunks${colors.reset}`);
237
+ }
238
+ return this.codebaseSearcher.indexer.getStats();
239
+ }
240
+
241
+ async buildCodebaseContext(task = '') {
242
+ try {
243
+ const stats = await this.ensureCodebaseIndex({ verbose: false });
244
+ if (!stats.totalChunks) return '';
245
+
246
+ const summary = this.codebaseSearcher.getSummary();
247
+ const lines = [
248
+ '[Codebase Index]',
249
+ `Project: ${this.projectPath}`,
250
+ `Indexed files: ${summary.totalFiles}, chunks: ${summary.totalChunks}`,
251
+ ];
252
+
253
+ if (summary.languages?.length) {
254
+ lines.push(`Languages: ${summary.languages.map(([lang, count]) => `${lang}:${count}`).join(', ')}`);
255
+ }
256
+
257
+ if (summary.topSymbols?.length) {
258
+ lines.push('Top symbol files:');
259
+ for (const file of summary.topSymbols.slice(0, 8)) {
260
+ lines.push(`- ${file.filePath}: ${file.symbols.join(', ')}`);
261
+ }
262
+ }
263
+
264
+ const query = String(task || '').trim();
265
+ if (query.length >= 3) {
266
+ const results = await this.codebaseSearcher.query(query, { limit: 8 });
267
+ if (results.byFile.length > 0) {
268
+ lines.push('');
269
+ lines.push('[Relevant Codebase Matches]');
270
+ for (const file of results.byFile.slice(0, 5)) {
271
+ const snippets = file.chunks.slice(0, 2).map(chunk => {
272
+ const snippet = chunk.content.split(/\r?\n/).slice(0, 4).join(' ').replace(/\s+/g, ' ');
273
+ return `lines ${chunk.startLine}-${chunk.endLine}: ${this.compactText(snippet, 240, 'codebase match')}`;
274
+ });
275
+ lines.push(`- ${file.filePath} (score ${file.score.toFixed(0)})`);
276
+ for (const snippet of snippets) lines.push(` ${snippet}`);
277
+ }
278
+ }
279
+ }
280
+
281
+ return this.compactText(lines.join('\n'), 4200, 'codebase context');
282
+ } catch (error) {
283
+ return `[Codebase Index]\nUnavailable: ${error.message}`;
284
+ }
285
+ }
286
+
287
+ async undoLastChange(filePath = '') {
288
+ await this.initCodebaseSearch();
289
+ const backups = await this.diffView.getUndoHistory(filePath);
290
+
291
+ if (backups.length === 0) {
292
+ console.log(`${colors.yellow}No backups found${filePath ? ` for ${filePath}` : ''}${colors.reset}`);
293
+ return;
294
+ }
295
+
296
+ console.log(`${colors.cyan}Recent backups:${colors.reset}\n`);
297
+ for (const b of backups.slice(0, 10)) {
298
+ const time = new Date(b.time).toLocaleString();
299
+ console.log(` ${colors.dim}${b.backup}${colors.reset}`);
300
+ console.log(` ${colors.dim}Original: ${b.original}, ${time}${colors.reset}`);
301
+ }
302
+
303
+ // Offer to undo the most recent one
304
+ const latest = backups[0];
305
+ console.log(`\n${colors.yellow}Restore ${latest.original} from backup? ${colors.reset}`);
306
+ console.log(` ${colors.dim}Backup: ${latest.backup}${colors.reset}`);
307
+
308
+ const { default: rl } = await import('readline');
309
+ const rli = rl.createInterface({ input: process.stdin, output: process.stdout });
310
+ rli.question(`${colors.cyan}[y/N]: ${colors.reset}`, async (ans) => {
311
+ rli.close();
312
+ if (ans.trim().toLowerCase() === 'y') {
313
+ const ok = await this.diffView.restoreFromBackup(latest.backup, latest.original);
314
+ if (ok) {
315
+ console.log(`${colors.green}✓ Restored ${latest.original} from backup${colors.reset}`);
316
+ } else {
317
+ console.log(`${colors.red}Failed to restore${colors.reset}`);
318
+ }
319
+ }
320
+ if (!this.readlineClosed) this.showInputPrompt();
321
+ });
322
+ }
323
+
324
+ buildPromptToolResult(toolName, result) {
325
+ return buildPromptToolResultForModel({
326
+ toolName,
327
+ result,
328
+ compact: this.shouldUseCompactPrompt(),
329
+ compactText: (text, maxChars, label) => this.compactText(text, maxChars, label),
330
+ summarizeToolResult: value => this.tools?.summarizeToolResult?.(value) || { ...value },
331
+ });
332
+ }
333
+
334
+ async buildPromptToolResultForModel(toolName, result) {
335
+ return buildPromptToolResultWithTokenJuice({
336
+ toolName,
337
+ result,
338
+ projectPath: this.projectPath,
339
+ tokenJuice: this.tokenJuice,
340
+ compact: this.shouldUseCompactPrompt(),
341
+ compactText: (text, maxChars, label) => this.compactText(text, maxChars, label),
342
+ summarizeToolResult: value => this.tools?.summarizeToolResult?.(value) || { ...value },
343
+ });
344
+ }
345
+
346
+ async compactStartupMemories({ projectInstructionFiles = [], autoCreateDocs = [] } = {}) {
347
+ const memory = Array.isArray(this.session?.memory) ? this.session.memory : [];
348
+ const shouldDrop = (entry) => {
349
+ const text = typeof entry === 'string' ? entry : entry?.text || '';
350
+ return text.startsWith('[Required local resources]')
351
+ || text.startsWith('[Auto-applied skills]')
352
+ || text.startsWith('[Project rule file')
353
+ || text.startsWith('[Startup local resource index]')
354
+ || (text.startsWith('[T') && text.includes('ghi nh'))
355
+ || text.startsWith('[Quy');
356
+ };
357
+
358
+ this.session.memory = memory.filter(entry => !shouldDrop(entry));
359
+
360
+ const resourcePaths = this.getResourcePaths();
361
+ const resourceIndex = [
362
+ `agents.md: ${resourcePaths.agents}`,
363
+ `awesome-design-md: ${resourcePaths.designs}`,
364
+ `karpathy-tools: ${resourcePaths.karpathy}`,
365
+ `page-agent: ${resourcePaths.pageAgent}`,
366
+ `ecc: ${resourcePaths.ecc}`,
367
+ ];
368
+ await this.session.replaceMemory(
369
+ '[Startup local resource index]',
370
+ [
371
+ 'Resources are indexed by path only to save tokens.',
372
+ ...resourceIndex.map(item => `- ${item}`),
373
+ 'Use Read/Grep/Glob to inspect exact resource files when a task needs detail.',
374
+ ].join('\n'),
375
+ 'resource'
376
+ );
377
+
378
+ const docs = [
379
+ ...projectInstructionFiles.map(file => ({
380
+ filename: file.relativePath,
381
+ filePath: file.filePath,
382
+ content: file.content,
383
+ })),
384
+ ...autoCreateDocs.map(doc => ({
385
+ filename: doc.filename,
386
+ filePath: path.join(this.projectPath, doc.filename),
387
+ content: doc.content,
388
+ })),
389
+ ];
390
+
391
+ const seen = new Set();
392
+ for (const doc of docs) {
393
+ if (!doc?.filename || seen.has(doc.filename)) continue;
394
+ seen.add(doc.filename);
395
+ const summary = this.compactText(String(doc.content || '').replace(/\s+/g, ' ').trim(), 700, doc.filename);
396
+ await this.session.replaceMemory(
397
+ `[Project rule file ${doc.filename}]`,
398
+ `Path: ${doc.filePath}\nSummary: ${summary}`,
399
+ 'rule'
400
+ );
401
+ }
402
+ }
403
+
80
404
  getSessionToolPermissionStore() {
81
405
  const context = this.session?.getContext?.() || {};
82
406
  const value = context.toolPermissions?.value;
@@ -115,8 +439,14 @@ export class WinterREPL {
115
439
  return this.contextLoader.readProjectInstructionFiles();
116
440
  }
117
441
 
442
+ applyUiTheme(theme = 'dark') {
443
+ return applyColorTheme(theme);
444
+ }
445
+
118
446
  async start() {
119
447
  await this.session.init({ project: this.projectPath, sessionId: this.sessionId });
448
+ const startupConfig = await this.config.load();
449
+ this.applyUiTheme(startupConfig.ui?.theme || 'dark');
120
450
  await this.ai.init();
121
451
 
122
452
  await this.session.updateContext('projectAnchor', {
@@ -126,10 +456,10 @@ export class WinterREPL {
126
456
  });
127
457
  await this.session.replaceMemory('[Project Anchor]', `Current project is ${this.projectPath}. Treat this path as the canonical working directory for the session.`, 'info');
128
458
 
129
- // Tự động đọc và ghi nhớ một số tài nguyên cục bộ (an toàn): chỉ nạp file hoặc README trong thư mục
459
+ // Tự động đọc và ghi nhớ một số tài nguyên cục bộ an toàn.
130
460
  const fsPromises = await import('fs/promises');
131
461
  const resourcePaths = this.getResourcePaths();
132
- const autoLoadTargets = [resourcePaths.agents, resourcePaths.designs, resourcePaths.karpathy];
462
+ const autoLoadTargets = [resourcePaths.agents, resourcePaths.designs, resourcePaths.karpathy, resourcePaths.pageAgent];
133
463
 
134
464
  for (const targetPath of autoLoadTargets) {
135
465
  try {
@@ -141,7 +471,7 @@ export class WinterREPL {
141
471
  const fileName = path.basename(targetPath);
142
472
  const memoryKey = `[Tự động ghi nhớ file ${fileName}]`;
143
473
  await this.session.replaceMemory(memoryKey, content);
144
- console.log(`${colors.dim} Đã tự động nạp và ghi nhớ file ${fileName}${colors.reset}`);
474
+ console.log(`${colors.dim} Đã tự động nạp và ghi nhớ file ${fileName}${colors.reset}`);
145
475
  continue;
146
476
  }
147
477
 
@@ -157,7 +487,7 @@ export class WinterREPL {
157
487
  const content = await fsPromises.readFile(p, 'utf8');
158
488
  const memoryKey = `[Tự động ghi nhớ file ${path.basename(targetPath)}/${c}]`;
159
489
  await this.session.replaceMemory(memoryKey, content);
160
- console.log(`${colors.dim} Đã tự động nạp và ghi nhớ ${path.basename(targetPath)}/${c}${colors.reset}`);
490
+ console.log(`${colors.dim} Đã tự động nạp và ghi nhớ ${path.basename(targetPath)}/${c}${colors.reset}`);
161
491
  loaded = true;
162
492
  break;
163
493
  }
@@ -182,39 +512,39 @@ export class WinterREPL {
182
512
  for (const file of projectInstructionFiles) {
183
513
  const memoryKey = `[Quy tắc dự án từ ${file.relativePath}]`;
184
514
  await this.session.replaceMemory(memoryKey, file.content);
185
- console.log(`${colors.dim} Đã nạp quy tắc dự án từ ${file.relativePath}${colors.reset}`);
515
+ console.log(`${colors.dim} Đã nạp quy tắc dự án từ ${file.relativePath}${colors.reset}`);
186
516
  }
187
517
  }
188
518
  } catch (e) {
189
- // Nếu không có, tự động tạo file mẫu!
519
+ // Nếu không có, tự động tạo file mẫu.
190
520
  const template = `# Winter Project Rules
191
521
 
192
- ## 📝 Project Overview
522
+ ## Project Overview
193
523
  - **Name**: [Tên dự án]
194
524
  - **Description**: [Mô tả ngắn về dự án]
195
525
 
196
- ## 🛠 Tech Stack
526
+ ## Tech Stack
197
527
  - **Languages**: JavaScript / TypeScript
198
528
  - **Runtime**: Node.js
199
529
  - **Frameworks**: [Tự điền nếu có, VD: Express, React...]
200
530
 
201
- ## 🎯 AI Behavior & Coding Guidelines
531
+ ## AI Behavior & Coding Guidelines
202
532
 
203
- ### 1. Nguyên Tắc Code (Coding Standards)
533
+ ### 1. Nguyên tắc Code (Coding Standards)
204
534
  - Luôn ưu tiên viết code sạch (Clean Code), dễ đọc và dễ bảo trì.
205
535
  - Sử dụng ES Modules (\`import/export\`) thay vì CommonJS (\`require\`) trừ khi có lý do đặc biệt.
206
536
  - Giữ nguyên các comment và JSDoc hiện có trong file trừ khi được yêu cầu sửa.
207
537
 
208
- ### 2. Tương Tác Với Người Dùng (User Interaction)
209
- - Luôn giải thích NGẮN GỌN lý do thực hiện thay đổi trước khi sửa file.
538
+ ### 2. Tương tác với người dùng (User Interaction)
539
+ - Luôn giải thích ngắn gọn lý do thực hiện thay đổi trước khi sửa file.
210
540
  - Khi gặp lỗi, hãy đề xuất giải pháp thay vì chỉ báo lỗi.
211
- - KHÔNG tự tiện xóa code cũ của user trừ khi chắc chắn không còn dùng hoặc được yêu cầu.
541
+ - Không tự tiện xóa code cũ của user trừ khi chắc chắn không còn dùng hoặc được yêu cầu.
212
542
 
213
543
  ### 3. Git & Commits
214
544
  - Viết commit message theo chuẩn Conventional Commits (VD: \`feat:\`, \`fix:\`, \`docs:\`).
215
545
  - Luôn kiểm tra \`git status\` trước khi thực hiện thay đổi lớn.
216
546
 
217
- ### 4. Xử File (File Operations)
547
+ ### 4. Xử File (File Operations)
218
548
  - Chỉ sửa những dòng cần thiết, tránh viết lại toàn bộ file nếu không cần.
219
549
  - Luôn đảm bảo file không bị lỗi cú pháp sau khi sửa.
220
550
  `;
@@ -224,14 +554,14 @@ export class WinterREPL {
224
554
  console.log(`\n${colors.green}✓ Đã tự động tạo file winter.md mẫu cho dự án mới!${colors.reset}`);
225
555
  console.log(`${colors.dim}Bạn có thể chỉnh sửa file này để dạy AI các quy tắc riêng của dự án.${colors.reset}\n`);
226
556
 
227
- // Nạp luôn vào memory
557
+ // Nạp luôn vào memory.
228
558
  await this.session.replaceMemory(`[Quy tắc dự án từ winter.md]`, template);
229
559
  } catch (err) {
230
- // Bỏ qua nếu không ghi được file
560
+ // Bỏ qua nếu không ghi được file.
231
561
  }
232
562
  }
233
563
 
234
- // ── Tự động tạo design.md, skill.md, rule.md nếu chưa có ──────────────
564
+ // Tự động tạo design.md, skill.md, rule.md nếu chưa có.
235
565
  const autoCreateDocs = await buildProjectDocs({
236
566
  projectPath: this.projectPath,
237
567
  resourcePaths: this.getResourcePaths(),
@@ -257,12 +587,20 @@ export class WinterREPL {
257
587
  const memoryKey = `[Quy tắc dự án từ ${doc.filename}]`;
258
588
  await this.session.replaceMemory(memoryKey, doc.content);
259
589
  } catch (err) {
260
- // Bỏ qua nếu không tạo được
590
+ // Bỏ qua nếu không tạo được.
261
591
  }
262
592
  }
263
593
  }
264
594
 
265
595
  await this.bootstrapProjectCapabilities();
596
+ await this.compactStartupMemories({ projectInstructionFiles, autoCreateDocs });
597
+
598
+ // Codebase Index: warm in background, then inject summaries into model context on demand.
599
+ this.codebaseWarmup = this.ensureCodebaseIndex({ verbose: true })
600
+ .then(() => this.startCodebaseWatcher())
601
+ .catch((error) => {
602
+ console.log(`${colors.yellow}Codebase index disabled: ${error.message}${colors.reset}`);
603
+ });
266
604
 
267
605
  const activeProvider = this.ai.getActiveProvider();
268
606
  const info = {
@@ -281,22 +619,23 @@ export class WinterREPL {
281
619
  this.showStatus();
282
620
  }
283
621
 
284
- // Hiển thị lịch sử chat nếu đang load lại session
285
- const sessionHistory = this.session.getHistory(10); // Lấy tối đa 10 câu gần nhất cho đỡ rác màn hình
622
+ // Hiển thị lịch sử chat nếu đang load lại session cũ, nhưng chỉ replay bản tóm tắt.
623
+ const sessionHistory = this.session.getHistory(4);
286
624
  if (sessionHistory.length > 0) {
287
625
  const columns = process.stdout.columns || 80;
288
626
  const W = Math.max(60, Math.min(Math.floor(columns * 0.95), 100));
289
627
  const titleStr = ' Lịch sử phiên làm việc ';
290
- const sideLine = '─'.repeat(Math.max(0, Math.floor((W - titleStr.length) / 2)));
291
- const bottomLine = '─'.repeat(W);
628
+ const ruleChar = this.useUnicodeUi ? '─' : '-';
629
+ const sideLine = ruleChar.repeat(Math.max(0, Math.floor((W - titleStr.length) / 2)));
630
+ const bottomLine = ruleChar.repeat(W);
292
631
 
293
632
  console.log(`\n${colors.dim}${sideLine}${titleStr}${sideLine}${colors.reset}`);
294
633
  for (const msg of sessionHistory) {
634
+ const text = this.formatStartupHistoryEntry(msg.content);
295
635
  if (msg.role === 'user') {
296
- console.log(`\n${colors.cyan}Bạn:${colors.reset} ${msg.content}`);
636
+ console.log(`\n${colors.cyan}Bạn:${colors.reset} ${text}`);
297
637
  } else if (msg.role === 'assistant') {
298
- const formatted = formatMarkdown(msg.content);
299
- console.log(`\n${colors.bright}${colors.magenta}Winter:${colors.reset}${formatted}`);
638
+ console.log(`\n${colors.bright}${colors.magenta}Winter:${colors.reset} ${text}`);
300
639
  }
301
640
  }
302
641
  console.log(`\n${colors.dim}${bottomLine}${colors.reset}\n`);
@@ -306,20 +645,20 @@ export class WinterREPL {
306
645
  this.rl = readline.createInterface({
307
646
  input: process.stdin,
308
647
  output: process.stdout,
309
- prompt: `${colors.bright}${colors.cyan}winter❄️: ${colors.reset}`,
648
+ prompt: `${colors.bright}${colors.cyan}winter > ${colors.reset}`,
310
649
  completer: this.completer.bind(this),
311
650
  });
312
- this.installSlashSuggestions();
651
+ this.inputController.installSlashSuggestions();
313
652
 
314
- // Bắt sự kiện Ctrl+C để in ra lệnh tiếp tục session
653
+ // Bắt sự kiện Ctrl+C để in ra lệnh tiếp tục session.
315
654
  this.rl.on('SIGINT', () => {
316
- console.log(`\n\n${colors.cyan}Cảm ơn bạn đã sử dụng Winter!${colors.reset}`);
317
- console.log(`${colors.yellow}Để tiếp tục phiên làm việc này sau này, hãy chạy:${colors.reset}`);
655
+ console.log(`\n\n${colors.cyan}Cảm ơn đã sử dụng Winter!${colors.reset}`);
656
+ console.log(`${colors.yellow}Tiếp tục phiên làm việc:${colors.reset}`);
318
657
  console.log(`${colors.bright}${colors.green}winter --session ${this.session.getSessionId()}${colors.reset}\n`);
319
658
  process.exit(0);
320
659
  });
321
660
 
322
- // Hiển thị prompt lần đầu tiên ngay khi khởi động xong
661
+ // Hiển thị prompt lần đầu tiên ngay khi khởi động xong.
323
662
  this.showInputPrompt();
324
663
 
325
664
  this.rl.on('line', (line) => {
@@ -335,7 +674,7 @@ export class WinterREPL {
335
674
  })
336
675
  .catch((error) => {
337
676
  this.closeInputBox();
338
- console.log(`\n${colors.red} Error: ${error.message}${colors.reset}\n`);
677
+ console.log(`\n${colors.red}? Error: ${error.message}${colors.reset}\n`);
339
678
  if (this.running && !this.readlineClosed) this.showInputPrompt();
340
679
  });
341
680
  });
@@ -348,26 +687,32 @@ export class WinterREPL {
348
687
  });
349
688
  }
350
689
 
690
+ formatStartupHistoryEntry(content, maxChars = 420) {
691
+ let text = stripAnsi(String(content ?? ''))
692
+ .replace(/\r?\n/g, ' ')
693
+ .replace(/\s+/g, ' ')
694
+ .trim();
695
+ if (!this.useUnicodeUi) {
696
+ text = text
697
+ .replace(/\p{Extended_Pictographic}/gu, '')
698
+ .replace(/[─━—–]/g, '-')
699
+ .replace(/\s+/g, ' ')
700
+ .trim();
701
+ }
702
+ if (text.length <= maxChars) return text;
703
+ return `${text.slice(0, maxChars - 32).trimEnd()} ... (${text.length - maxChars + 32} chars hidden)`;
704
+ }
705
+
351
706
  showInputPrompt() {
352
- if (!this.running || this.readlineClosed) return;
353
- const w = Math.max(20, terminalWidth() - 2);
354
- process.stdout.write(`
355
- ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
356
- `);
357
- process.stdout.write(`${colors.magenta}│${colors.reset} `);
358
- this.rl.setPrompt(`${colors.bright}${colors.cyan}winter❄️: ${colors.reset}`);
359
- this.rl.prompt();
707
+ return this.inputController.showInputPrompt();
360
708
  }
361
709
 
362
710
  closeInputBox() {
363
- const w = Math.max(20, terminalWidth() - 2);
364
- readline.moveCursor(process.stdout, 0, -1);
365
- readline.cursorTo(process.stdout, terminalWidth() - 1);
366
- process.stdout.write(`${colors.magenta}│${colors.reset}`);
367
- process.stdout.write(`
368
- `);
369
- process.stdout.write(`${colors.magenta}╰${'─'.repeat(w)}╯${colors.reset}
370
- `);
711
+ return this.inputController.closeInputBox();
712
+ }
713
+
714
+ buildInputPanel() {
715
+ return this.inputController.buildInputPanel();
371
716
  }
372
717
 
373
718
  showStatus() {
@@ -418,6 +763,46 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
418
763
  await this.printPathPreview(this.getResourcePaths().karpathy, 'karpathy-tools');
419
764
  }
420
765
 
766
+ async showPageAgentResources(args = []) {
767
+ const root = this.getResourcePaths().pageAgent;
768
+ const [action = 'info', ...rest] = args;
769
+
770
+ if (action === 'search') {
771
+ const query = rest.join(' ');
772
+ if (!query) {
773
+ console.log(`${colors.yellow}Usage: /page-agent search <query>${colors.reset}`);
774
+ return;
775
+ }
776
+ const matches = await this.searchResourceFiles(root, query, 30);
777
+ console.log(`${colors.cyan}Page Agent search "${query}":${colors.reset}`);
778
+ if (matches.length === 0) {
779
+ console.log(` ${colors.dim}No results${colors.reset}`);
780
+ return;
781
+ }
782
+ matches.forEach(match => console.log(` ${match.isDirectory ? '[dir] ' : '[file]'} ${match.relativePath}`));
783
+ return;
784
+ }
785
+
786
+ if (action === 'read') {
787
+ const requestedPath = rest.join(' ') || 'README.md';
788
+ const target = path.resolve(root, requestedPath);
789
+ if (!target.startsWith(path.resolve(root))) {
790
+ console.log(`${colors.red}Path must stay inside page-agent resources.${colors.reset}`);
791
+ return;
792
+ }
793
+ await this.printPathPreview(target, `page-agent/${requestedPath}`);
794
+ return;
795
+ }
796
+
797
+ if (action === 'docs') {
798
+ await this.printPathPreview(path.join(root, 'docs'), 'page-agent/docs');
799
+ return;
800
+ }
801
+
802
+ await this.printPathPreview(root, 'page-agent');
803
+ console.log(`${colors.dim}Commands: /page-agent search <query>, /page-agent read <path>, /page-agent docs${colors.reset}`);
804
+ }
805
+
421
806
  async showAgentsFile() {
422
807
  await this.printPathPreview(this.getResourcePaths().agents, 'agents.md');
423
808
  }
@@ -503,10 +888,36 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
503
888
  return this.contextLoader.listPathEntries(target, limit);
504
889
  }
505
890
 
891
+ async searchResourceFiles(root, query, limit = 30) {
892
+ const matches = [];
893
+ const needle = String(query || '').toLowerCase();
894
+ if (!needle) return matches;
895
+
896
+ const walk = async (dir) => {
897
+ if (matches.length >= limit) return;
898
+ const entries = await fs.readdir(dir, { withFileTypes: true }).catch(() => []);
899
+ for (const entry of entries) {
900
+ if (matches.length >= limit) break;
901
+ const fullPath = path.join(dir, entry.name);
902
+ const relativePath = path.relative(root, fullPath).replace(/\\/g, '/');
903
+ if (entry.isDirectory()) {
904
+ if (['node_modules', '.git', 'dist', 'build', '.next'].includes(entry.name)) continue;
905
+ if (entry.name.toLowerCase().includes(needle)) matches.push({ relativePath, isDirectory: true });
906
+ await walk(fullPath);
907
+ } else if (entry.isFile() && entry.name.toLowerCase().includes(needle)) {
908
+ matches.push({ relativePath, isDirectory: false });
909
+ }
910
+ }
911
+ };
912
+
913
+ await walk(root);
914
+ return matches;
915
+ }
916
+
506
917
  async handleInput(input) {
507
918
  if (this.isProcessing) {
508
919
  const pos = this.taskQueue.length + 1;
509
- console.log(`${colors.magenta}◎${colors.reset} ${colors.dim}Đã xếp hàng chờ (vị trí #${pos})${colors.reset}`);
920
+ console.log(`${colors.magenta}•${colors.reset} ${colors.dim}Đã xếp hàng chờ (vị trí #${pos})${colors.reset}`);
510
921
  this.taskQueue.push(input);
511
922
  return;
512
923
  }
@@ -522,11 +933,53 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
522
933
  this.history = this.history.slice(-this.maxHistory);
523
934
  }
524
935
 
936
+ if (input.startsWith('!')) {
937
+ const command = input.slice(1).trim();
938
+ if (!command) {
939
+ console.log(`${colors.yellow}Usage: !<command>${colors.reset}`);
940
+ return;
941
+ }
942
+ await this.handleSlashCommand(`/bash ${command}`);
943
+ return;
944
+ }
945
+
946
+ const agentMention = await this.parseAgentMention(input);
947
+ if (agentMention) {
948
+ const result = await this.runAgent(agentMention.agentId, agentMention.task);
949
+ console.log(result);
950
+ return;
951
+ }
952
+
953
+ // Parse @-symbols for non-command input
954
+ if (!input.startsWith('/')) {
955
+ await this.initCodebaseSearch();
956
+ if (this.atContext && this.atContext.hasAtReferences(input)) {
957
+ try {
958
+ const parsed = await this.atContext.parse(input);
959
+ if (parsed.hasAtReferences) {
960
+ const atContextPrompt = this.atContext.formatContextPrompt(parsed.contexts);
961
+ if (atContextPrompt) {
962
+ this._pendingAtContext = atContextPrompt;
963
+ }
964
+ input = parsed.input; // Remove @-symbols from input
965
+ }
966
+ } catch {
967
+ // Silently continue if @ parsing fails
968
+ }
969
+ }
970
+ }
971
+
525
972
  if (input.startsWith('/')) {
526
973
  await this.handleSlashCommand(input);
527
974
  return;
528
975
  }
529
976
 
977
+ const pastedDataImage = this.parseDataUrlImage(input);
978
+ if (pastedDataImage) {
979
+ await this.chat('Analyze this pasted image.', [pastedDataImage]);
980
+ return;
981
+ }
982
+
530
983
  const imageMatch = input.match(/(\S+\.(?:png|jpg|jpeg|gif|webp|bmp|svg))/i);
531
984
  let handled = false;
532
985
  if (imageMatch) {
@@ -563,6 +1016,17 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
563
1016
  }
564
1017
  }
565
1018
 
1019
+ async parseAgentMention(input = '') {
1020
+ const match = String(input || '').match(/^\s*@([A-Za-z][\w-]*)\s+([\s\S]+)$/);
1021
+ if (!match) return null;
1022
+ const agentId = match[1];
1023
+ const task = match[2].trim();
1024
+ if (!task) return null;
1025
+ const agents = await this.listAgentDefinitions();
1026
+ if (!agents.some(agent => agent.id.toLowerCase() === agentId.toLowerCase())) return null;
1027
+ return { agentId, task };
1028
+ }
1029
+
566
1030
  async loadImageAsBase64(filePath) {
567
1031
  try {
568
1032
  const fs = await import('fs/promises');
@@ -583,6 +1047,13 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
583
1047
  }
584
1048
  }
585
1049
 
1050
+ parseDataUrlImage(value = '') {
1051
+ const match = String(value || '').match(/data:(image\/(?:png|jpeg|jpg|gif|webp|bmp|svg\+xml));base64,([a-z0-9+/=]+)/i);
1052
+ if (!match) return null;
1053
+ const mime = match[1].toLowerCase() === 'image/jpg' ? 'image/jpeg' : match[1].toLowerCase();
1054
+ return { mime, base64: match[2] };
1055
+ }
1056
+
586
1057
  async showInteractiveChecklist(title, items) {
587
1058
  if (!items || items.length === 0) return [];
588
1059
 
@@ -592,7 +1063,7 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
592
1063
 
593
1064
  let printedLines = 0;
594
1065
  const render = () => {
595
- // Xóa những dòng đã in trước đó
1066
+ // Xóa những dòng đã in trước đó.
596
1067
  if (printedLines > 0) {
597
1068
  process.stdout.write('\x1b[' + printedLines + 'A\x1b[J');
598
1069
  }
@@ -652,7 +1123,7 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
652
1123
  this.spinner.start();
653
1124
 
654
1125
  const messages = [
655
- { role: 'system', content: 'Bạn là chuyên gia lập kế hoạch. Hãy chia nhỏ yêu cầu của người dùng thành các bước cụ thể, hành động được, rất ngắn gọn (dưới 15 chữ mỗi bước). CHỈ TRẢ VỀ MỘT MẢNG JSON CÁC CHUỖI, KHÔNG GIẢI THÍCH THÊM. Ví dụ: ["Tạo file index.html", "Thêm CSS styling", "Viết script.js"]' },
1126
+ { role: 'system', content: 'Bạn là chuyên gia lập kế hoạch. Hãy chia nhỏ yêu cầu của người dùng thành các bước cụ thể, hành động được, rất ngắn gọn (dưới 15 chữ mỗi bước). Chỉ trả về một mảng JSON các chuỗi, không giải thích thêm. Ví dụ: ["Tạo file index.html", "Thêm CSS styling", "Viết script.js"]' },
656
1127
  { role: 'user', content: task }
657
1128
  ];
658
1129
 
@@ -703,26 +1174,28 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
703
1174
 
704
1175
 
705
1176
  async runAutoHealing(task) {
706
- console.log(`\n\x1b[35m[ TDD AUTO-HEALING MODE ]\x1b[0m Kích hoạt vòng lặp chữa lành lỗi tự động.`);
1177
+ console.log(`\n\x1b[35m[ TDD AUTO-HEALING MODE ]\x1b[0m Kích hoạt vòng lặp tự sửa lỗi.`);
707
1178
 
708
- // Tăng giới hạn loop lên 15 để cho phép AI tự sửa lỗi nhiều lần
1179
+ // Tăng giới hạn loop lên 15 để cho phép AI tự sửa lỗi nhiều lần.
709
1180
  const originalRequestAssistantTurn = this.requestAssistantTurn;
710
1181
 
711
- // Chèn prompt đặc biệt ép AI phải verify
1182
+ // Chèn prompt đặc biệt ép AI phải verify.
1183
+ const verifyCommands = await this.inferVerificationCommands(task);
712
1184
  const autoPrompt = `TASK: ${task}
713
-
714
- CRITICAL TDD RULES:
715
- 1. Write code to solve the task.
716
- 2. IMMEDIATELY use the Bash tool to run the code (e.g., 'node file.js', 'npm run build', or 'tsc').
717
- 3. If the Bash tool returns ANY errors, read the error, Edit the code to fix it, and RUN IT AGAIN.
718
- 4. DO NOT STOP AND DO NOT ASK FOR PERMISSION. KEEP FIXING AND RUNNING UNTIL THERE ARE NO ERRORS.
719
- 5. Only return your final answer when the bash execution shows SUCCESS.`;
1185
+
1186
+ CRITICAL DEBUG/AGENT RULES:
1187
+ 1. Inspect the project before changing anything. Read the failing file, related caller, config, and logs.
1188
+ 2. Reproduce or locate the first hard failure. For frontend/runtime UI issues, use BrowserDebug when a URL/dev server is available.
1189
+ 3. Patch the smallest root cause with Write/Edit.
1190
+ 4. Run the closest verification command(s): ${verifyCommands.join(' && ')}.
1191
+ 5. If verification fails, read the new error, patch again, and run verification again.
1192
+ 6. Do not claim success until a tool result proves it.`;
720
1193
 
721
1194
  await this.chat(autoPrompt);
722
1195
  }
723
1196
 
724
1197
  async runAutoCommit(context = '') {
725
- console.log(`\n${colors.cyan} Tạo commit message tự động...${colors.reset}`);
1198
+ console.log(`\n${colors.cyan} Tạo commit message tự động...${colors.reset}`);
726
1199
  const diffResult = await this.tools.execute('Bash', { command: 'git diff --cached' }, { cwd: this.projectPath });
727
1200
 
728
1201
  let diff = diffResult.stdout;
@@ -734,7 +1207,7 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
734
1207
  }
735
1208
 
736
1209
  if (!diff || diff.trim() === '') {
737
- console.log(`${colors.yellow}Không có thay đổi nào để commit.${colors.reset}`);
1210
+ console.log(`${colors.yellow}Không có thay đổi nào để commit.${colors.reset}`);
738
1211
  if (this.running && !this.readlineClosed) this.rl.prompt();
739
1212
  return;
740
1213
  }
@@ -783,16 +1256,16 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
783
1256
  }
784
1257
 
785
1258
  async runCodeReview(context = '') {
786
- console.log(`\n${colors.cyan}AI đang soi code của bạn...${colors.reset}`);
1259
+ console.log(`\n${colors.cyan}AI đang soi code của bạn...${colors.reset}`);
787
1260
  const diffResult = await this.tools.execute('Bash', { command: 'git diff HEAD' }, { cwd: this.projectPath });
788
1261
  const diff = diffResult.stdout;
789
1262
 
790
1263
  if (!diff || diff.trim() === '') {
791
- console.log(`${colors.yellow}Không có thay đổi nào để review.${colors.reset}`);
1264
+ console.log(`${colors.yellow}Không có thay đổi nào để review.${colors.reset}`);
792
1265
  return;
793
1266
  }
794
1267
 
795
- const prompt = `Hãy đóng vai một Senior Developer khó tính. Review nhanh các thay đổi sau đây. Chỉ ra bug (nếu có), vấn đề bảo mật, hoặc những chỗ cần clean code. Không cần khen ngợi, hãy nói thẳng vào vấn đề. Trình bày dạng Markdown đẹp mắt. \n\n${context ? `Ngữ cảnh: ${context}\n` : ''}Diff:\n${diff.slice(0, 8000)}`;
1268
+ const prompt = `Hãy đóng vai một Senior Developer khó tính. Review nhanh các thay đổi sau đây. Chỉ ra bug nếu có, vấn đề bảo mật, hoặc những chỗ cần clean code. Không cần khen ngợi, hãy nói thẳng vào vấn đề. Trình bày dạng Markdown đẹp mắt.\n\n${context ? `Ngữ cảnh: ${context}\n` : ''}Diff:\n${diff.slice(0, 8000)}`;
796
1269
 
797
1270
  await this.chat(prompt);
798
1271
  }
@@ -813,7 +1286,8 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
813
1286
  };
814
1287
 
815
1288
  const body = [
816
- `${c.bright}${c.cyan}❄ WINTER COMMANDS${c.reset}`,
1289
+ `${c.bright}${c.cyan}${this.useUnicodeUi ? '' : ''}WINTER COMMANDS${c.reset}`,
1290
+ `${c.dim}@file context | @Agent task | !cmd bash | /theme:toggle${c.reset}`,
817
1291
  '',
818
1292
  `${c.bright}Dự án & Phiên làm việc${c.reset}`,
819
1293
  row(`${c.yellow}/pwd${c.reset} Thư mục hiện tại`, `${c.yellow}/session${c.reset} Phiên làm việc`),
@@ -821,12 +1295,18 @@ ${colors.magenta}╭${'─'.repeat(w)}╮${colors.reset}
821
1295
  row(`${c.yellow}/config${c.reset} Xem cấu hình`, `${c.yellow}/exit${c.reset} Thoát`),
822
1296
  '',
823
1297
  `${c.bright}AI & Công cụ${c.reset}`,
824
- row(`${c.yellow}/auto${c.reset} TDD t? s?a l?i`, `${c.yellow}/debug${c.reset} Auto debug l?i`),
825
- row(`${c.yellow}/agent${c.reset} Ch?y sub-agent`, `${c.yellow}/swe${c.reset} SWE workflow`),
1298
+ row(`${c.yellow}/auto${c.reset} TDD tự sửa lỗi`, `${c.yellow}/debug${c.reset} Auto debug lỗi`),
1299
+ row(`${c.yellow}/doctor${c.reset} Kiểm tra tool-call`, `${c.yellow}/agent${c.reset} Chạy sub-agent`),
1300
+ row(`${c.yellow}/swe${c.reset} SWE workflow`, `${c.yellow}/plan${c.reset} Lập kế hoạch`),
826
1301
  row(`${c.yellow}/read${c.reset} Đọc file`, `${c.yellow}/write${c.reset} Ghi file`),
827
1302
  row(`${c.yellow}/bash${c.reset} Chạy lệnh terminal`, `${c.yellow}/grep${c.reset} Tìm trong file`),
828
- row(`${c.yellow}/glob${c.reset} Tìm file theo pattern`, `${c.yellow}/image${c.reset} Phân tích UI`),
829
- row(`${c.yellow}/paste${c.reset} Dán từ clipboard`, `${c.yellow}/plan${c.reset} Lập kế hoạch`),
1303
+ row(`${c.yellow}/glob${c.reset} Tìm file theo pattern`, `${c.yellow}/image${c.reset} Ảnh/file/clipboard`),
1304
+ row(`${c.yellow}/paste${c.reset} Dán text/ảnh clipboard`, `${c.yellow}/composer${c.reset} Multi-file edit`),
1305
+ row(`${c.yellow}/complete${c.reset} Gợi ý code`, `${c.yellow}/search${c.reset} Tìm kiếm code`),
1306
+ row(`${c.yellow}/browse${c.reset} Mở URL trong trình duyệt`, `${c.yellow}/page-agent${c.reset} GUI Agent resources`),
1307
+ row(`${c.yellow}/ensemble${c.reset} Chạy nhiều AI`, `${c.yellow}/vote${c.reset} Bình chọn hay nhất`),
1308
+ row(`${c.yellow}/orchestrate${c.reset} Pipeline đa model`, `${c.yellow}/undo${c.reset} Undo backup`),
1309
+ row(`${c.yellow}/ecc${c.reset} ECC resource browser`, `${c.yellow}/codex${c.reset} Codex resources`),
830
1310
  '',
831
1311
  `${c.bright}Git Auto-Pilot${c.reset}`,
832
1312
  row(`${c.yellow}/commit${c.reset} AI tự viết commit`, `${c.yellow}/review${c.reset} AI review code thay đổi`),
@@ -849,14 +1329,14 @@ ${renderBox({
849
1329
  titleColor: c.cyan,
850
1330
  body,
851
1331
  })}
852
- ${c.dim} tin nhắn trực tiếp để chat · ESC để hủy · Prompt tự xếp hàng chờ${c.reset}
1332
+ ${c.dim}Gửi tin nhắn trực tiếp để chat, ESC để hủy${c.reset}
853
1333
  `);
854
1334
  }
855
1335
 
856
1336
  showHelp() {
857
1337
  console.log(`
858
- ${colors.cyan}❄ WINTER COMMANDS${colors.reset}
859
- ${colors.dim}${''.padEnd(50, '─')}${colors.reset}
1338
+ ${colors.cyan}${this.useUnicodeUi ? '' : ''}WINTER COMMANDS${colors.reset}
1339
+ ${colors.dim}${''.padEnd(50, this.useUnicodeUi ? '─' : '-')}${colors.reset}
860
1340
 
861
1341
  ${colors.white}Project:${colors.reset}
862
1342
  /project, /pwd Show current project
@@ -866,6 +1346,9 @@ ${colors.white}Session:${colors.reset}
866
1346
  /session Current session info
867
1347
  /sessions List all sessions
868
1348
  /clear Clear screen
1349
+ /undo Undo last change from backup
1350
+ /composer <task> Multi-file editing mode (like Cursor Composer)
1351
+ /complete <file> Trigger inline code completion
869
1352
 
870
1353
  ${colors.white}Memory:${colors.reset}
871
1354
  /remember <text> Store in memory
@@ -879,6 +1362,7 @@ ${colors.white}Plans & Tasks:${colors.reset}
879
1362
  /agent [role] <task> Run a subagent
880
1363
  /auto [task] Auto-heal with test/build loop
881
1364
  /debug [error] Auto-debug and verify a failure
1365
+ /doctor tools Test whether current provider/model can call tools
882
1366
 
883
1367
  ${colors.white}Tools:${colors.reset}
884
1368
  /read <file> Read file
@@ -904,6 +1388,7 @@ ${colors.white}Design & Skills:${colors.reset}
904
1388
  /plugin Plugin management
905
1389
 
906
1390
  ${colors.white}Local Sources:${colors.reset}
1391
+ /ecc [sub] Browse ECC resources (info, browse, search, sync)
907
1392
  /codex [section] Browse ~/.codex resources
908
1393
  /claude [section] Browse ~/.claude resources
909
1394
  /karpathy Browse ~/karpathy-tools
@@ -913,7 +1398,7 @@ ${colors.white}Other:${colors.reset}
913
1398
  /help, /? Show this help
914
1399
  /exit, /quit Exit Winter
915
1400
 
916
- ${colors.dim}${''.padEnd(50, '')}${colors.reset}
1401
+ ${colors.dim}${''.padEnd(50, '?')}${colors.reset}
917
1402
  Just type your message to chat with Winter!
918
1403
  ${colors.reset}
919
1404
  `);
@@ -932,7 +1417,7 @@ ${colors.reset}
932
1417
  }
933
1418
  console.log(`${colors.cyan}Design Systems:${colors.reset}`);
934
1419
  filtered.forEach(e => {
935
- const icon = e.isDirectory ? '📁' : '📄';
1420
+ const icon = e.isDirectory ? '[dir]' : '[file]';
936
1421
  console.log(` ${icon} ${e.name}`);
937
1422
  });
938
1423
  } catch (error) {
@@ -952,7 +1437,7 @@ ${colors.reset}
952
1437
  const entries = await this.listPathEntries(section.path, 50);
953
1438
  if (entries.length > 0) {
954
1439
  console.log(`${colors.cyan}${section.label}:${colors.reset}`);
955
- entries.forEach(e => console.log(` ${e.isDirectory ? '📂' : '📄'} ${e.name}`));
1440
+ entries.forEach(e => console.log(` ${e.isDirectory ? '[dir]' : '[file]'} ${e.name}`));
956
1441
  }
957
1442
  } catch { }
958
1443
  }
@@ -966,8 +1451,8 @@ ${colors.reset}
966
1451
  const providers = this.ai.listProviders();
967
1452
  console.log(`${colors.cyan}Configured Models:${colors.reset}`);
968
1453
  providers.forEach(p => {
969
- const active = p.name === this.ai.getActiveProvider() ? ` ${colors.green} active${colors.reset}` : '';
970
- const status = p.ready ? `${colors.green}●${colors.reset}` : `${colors.red}○${colors.reset}`;
1454
+ const active = p.name === this.ai.getActiveProvider() ? ` ${colors.green}< active${colors.reset}` : '';
1455
+ const status = p.ready ? `${colors.green}ok${colors.reset}` : `${colors.red}off${colors.reset}`;
971
1456
  console.log(` ${status} ${colors.bright}${p.name}${colors.reset}: ${p.model}${active}`);
972
1457
  });
973
1458
 
@@ -976,7 +1461,7 @@ ${colors.reset}
976
1461
  const cached = await this.readCachedModels(cachePath);
977
1462
  if (cached.length > 0) {
978
1463
  console.log(`\n${colors.cyan}Cached Models (${cached.length}):${colors.reset}`);
979
- cached.slice(0, 20).forEach(m => console.log(` ${colors.dim}•${colors.reset} ${m}`));
1464
+ cached.slice(0, 20).forEach(m => console.log(` ${colors.dim}?${colors.reset} ${m}`));
980
1465
  if (cached.length > 20) console.log(` ${colors.dim}... and ${cached.length - 20} more${colors.reset}`);
981
1466
  }
982
1467
  } catch (error) {
@@ -1001,13 +1486,16 @@ ${colors.reset}
1001
1486
  case 'plan':
1002
1487
  return byName(['Read', 'Grep', 'Glob', 'TaskCreate', 'TaskUpdate', 'TaskList']);
1003
1488
  case 'review':
1004
- return byName(['Read', 'Grep', 'Glob']);
1489
+ return byName(['Read', 'Grep', 'Glob', 'Bash', 'WebFetch']);
1005
1490
  case 'debug':
1006
- return byName(['Read', 'Write', 'Edit', 'Bash', 'Grep', 'Glob']);
1491
+ return byName(['Read', 'Write', 'Edit', 'Bash', 'Grep', 'Glob', 'BrowserDebug', 'WebFetch', 'Parallel']);
1007
1492
  case 'research':
1008
- return byName(['Read', 'Grep', 'Glob', 'WebFetch', 'WebSearch']);
1493
+ return byName(['Read', 'Grep', 'Glob', 'WebFetch', 'WebSearch', 'Parallel']);
1494
+ case 'design':
1495
+ case 'ui':
1496
+ return byName(['Read', 'Write', 'Edit', 'Bash', 'Grep', 'Glob', 'BrowserDebug', 'WebFetch']);
1009
1497
  default:
1010
- return byName(['Read', 'Write', 'Edit', 'Bash', 'Glob', 'Grep']);
1498
+ return byName(['Read', 'Write', 'Edit', 'Bash', 'Glob', 'Grep', 'BrowserDebug', 'WebFetch', 'WebSearch', 'Parallel', 'Agent']);
1011
1499
  }
1012
1500
  }
1013
1501
 
@@ -1018,7 +1506,7 @@ ${colors.reset}
1018
1506
  }
1019
1507
 
1020
1508
  shouldUseCompactPrompt() {
1021
- return isSmallModel(this.getActiveModelTier());
1509
+ return false;
1022
1510
  }
1023
1511
 
1024
1512
  selectExecutionProfile(messages = [], options = {}) {
@@ -1064,196 +1552,7 @@ ${colors.reset}
1064
1552
 
1065
1553
 
1066
1554
  async runConversation(messages, label = 'Thinking', tools = null) {
1067
- this.spinner = new Spinner(label + '...');
1068
- this.spinner.start();
1069
- this.hydrateSessionToolPermissions();
1070
-
1071
- const startedAt = Date.now();
1072
- const previousTools = this.ai.tools;
1073
- if (tools) this.ai.setTools(tools);
1074
-
1075
- let finalContent = '';
1076
- let reachedToolLimit = true;
1077
- let usedTools = false;
1078
- let verified = false;
1079
- const toolSummaries = [];
1080
- const totalUsage = {};
1081
- const toolSignatureHistory = [];
1082
- const executionProfile = this.selectExecutionProfile(messages, { enableTools: true });
1083
- const requireToolEvidence = this.actionRequiresTools(messages);
1084
- let noToolActionRetries = 0;
1085
- try {
1086
- for (let i = 0; i < 8; i++) {
1087
- if (this.isCancelled) throw new Error('AbortError');
1088
- const turn = await this.requestAssistantTurn(messages, {
1089
- provider: executionProfile.provider,
1090
- model: executionProfile.model,
1091
- enableTools: true,
1092
- requireToolEvidence: requireToolEvidence && !usedTools,
1093
- }, startedAt, totalUsage);
1094
-
1095
- const assistantMsg = turn.assistantMsg || {};
1096
- const toolCalls = turn.toolCalls || [];
1097
-
1098
- if (turn.finalContent && toolCalls.length === 0) {
1099
- finalContent = turn.finalContent;
1100
- }
1101
-
1102
- if (toolCalls.length === 0) {
1103
- if (turn.finishReason === 'tool_evidence_required') {
1104
- noToolActionRetries++;
1105
- if (noToolActionRetries > 2) {
1106
- finalContent = 'Chưa thực hiện được: model trả lời mà không dùng tool nên Winter đã chặn để tránh báo xạo.';
1107
- console.log(`\n${colors.yellow}${finalContent}${colors.reset}\n`);
1108
- reachedToolLimit = false;
1109
- break;
1110
- }
1111
- messages.push({
1112
- role: 'assistant',
1113
- content: assistantMsg.content || '',
1114
- });
1115
- messages.push({
1116
- role: 'user',
1117
- content: this.buildToolEvidenceCorrection(messages),
1118
- });
1119
- finalContent = '';
1120
- continue;
1121
- }
1122
- if (turn.finishReason === 'length') {
1123
- console.log(`\n${colors.yellow}ℹ Phản hồi bị cắt cụt do hết token. Đang tự động tiếp tục...${colors.reset}`);
1124
- messages.push({
1125
- role: 'assistant',
1126
- content: turn.finalContent || '',
1127
- });
1128
- messages.push({
1129
- role: 'user',
1130
- content: 'Continue generating the rest of the response.',
1131
- });
1132
- continue;
1133
- }
1134
- reachedToolLimit = false;
1135
- break;
1136
- }
1137
-
1138
- usedTools = true;
1139
- if (this.spinner) this.spinner.stop();
1140
-
1141
- const currentToolSignature = this.buildToolCallSignature(toolCalls);
1142
- if (currentToolSignature) {
1143
- toolSignatureHistory.push(currentToolSignature);
1144
- if (toolSignatureHistory.length > 3) {
1145
- toolSignatureHistory.shift();
1146
- }
1147
- // Only break if 3+ consecutive identical signatures — 2 repeats is normal iteration
1148
- if (toolSignatureHistory.length === 3 &&
1149
- toolSignatureHistory[0] === currentToolSignature &&
1150
- toolSignatureHistory[1] === currentToolSignature) {
1151
- console.log(`
1152
- ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls). Breaking out.${colors.reset}`);
1153
- reachedToolLimit = false;
1154
- break;
1155
- }
1156
- }
1157
-
1158
- const BOX_WIDTH = terminalWidth(76, 116, 92);
1159
- messages.push({
1160
- role: 'assistant',
1161
- content: assistantMsg.content || '',
1162
- tool_calls: this.formatToolCallsForMessage(toolCalls),
1163
- });
1164
-
1165
- for (const tc of toolCalls) {
1166
- const { toolName, toolArgs } = tc;
1167
- const canonicalToolName = this.tools.normalizeToolName(toolName);
1168
- const argParseError = toolArgs?.__toolArgParseError;
1169
- const recoveredArgs = argParseError ? this.recoverToolArgs(canonicalToolName, toolArgs.__rawToolArgs) : null;
1170
- const canUseRecoveredArgs = recoveredArgs && Object.keys(recoveredArgs).length > 0;
1171
- const normalizedArgs = argParseError && !canUseRecoveredArgs
1172
- ? {}
1173
- : this.tools.normalizeToolInput?.(canonicalToolName, canUseRecoveredArgs ? recoveredArgs : toolArgs) ?? toolArgs;
1174
- const enrichedArgs = argParseError && !canUseRecoveredArgs ? {} : this.enrichToolArgs(canonicalToolName, normalizedArgs, messages);
1175
-
1176
- const icon = canonicalToolName === 'Bash' ? '⚙' : canonicalToolName === 'Read' ? '📖' : canonicalToolName === 'Write' ? '✏️' : canonicalToolName === 'Edit' ? '🔧' : canonicalToolName === 'Grep' ? '🔍' : canonicalToolName === 'Glob' ? '📂' : '⚡';
1177
-
1178
- let proceed = true;
1179
- if (await this.shouldPromptForToolPermission(canonicalToolName) && (!argParseError || canUseRecoveredArgs)) {
1180
- const cmd = enrichedArgs.command || enrichedArgs.cmd || 'unknown';
1181
- if (this.sessionPermissionGrants.has(canonicalToolName)) {
1182
- proceed = true;
1183
- } else {
1184
- proceed = await this.promptToolPermission(cmd);
1185
- if (proceed === 'session') {
1186
- await this.rememberSessionToolPermission(canonicalToolName);
1187
- proceed = true;
1188
- }
1189
-
1190
- if (proceed === true) {
1191
- await this.permissionManager.allowTool(canonicalToolName);
1192
- }
1193
-
1194
- if (!proceed) {
1195
- console.log(`${colors.magenta}│${colors.reset} ${colors.dim}Đã hủy lệnh.${colors.reset}`);
1196
- }
1197
- }
1198
- }
1199
-
1200
- let result;
1201
- if (argParseError && !canUseRecoveredArgs) {
1202
- result = {
1203
- success: false,
1204
- error: `Invalid ${canonicalToolName} tool arguments JSON: ${toolArgs.__toolArgParseError}`,
1205
- rawArgs: toolArgs.__rawToolArgs,
1206
- recovery: 'Use valid JSON object arguments, for example {"file_path":"README.md"} for Read or {"command":"npm test"} for Bash.',
1207
- };
1208
- } else if (!proceed) {
1209
- result = { success: false, error: 'User denied permission to execute this command.' };
1210
- } else {
1211
- result = toolName
1212
- ? await this.tools.execute(canonicalToolName, enrichedArgs, { cwd: this.projectPath })
1213
- : { success: false, error: 'Tool call is missing a tool name' };
1214
- }
1215
- messages.push({
1216
- role: 'tool',
1217
- tool_call_id: tc.id || `tool-${Date.now()}`,
1218
- content: JSON.stringify(result),
1219
- });
1220
-
1221
- const summary = this.formatToolResultForConsole(canonicalToolName, result);
1222
- if (summary) {
1223
- toolSummaries.push(`${canonicalToolName}: ${summary}`);
1224
- const statusIcon = result.success === false ? `${colors.red}✖${colors.reset}` : `${colors.green}✓${colors.reset}`;
1225
- const toolLine = `${icon} ${colors.cyan}${colors.bright}${toolName}${colors.reset}`;
1226
- const summaryLines = summary.split('\n').flatMap(line => wrapText(line, BOX_WIDTH - 8));
1227
- console.log(renderBox({
1228
- title: 'AGENT TOOLS EXECUTION',
1229
- width: BOX_WIDTH,
1230
- borderColor: colors.magenta,
1231
- titleColor: colors.bright,
1232
- body: [
1233
- toolLine,
1234
- ...summaryLines.map((line, index) => index === 0 ? `${statusIcon} ${colors.dim}${line}${colors.reset}` : `${colors.dim}${line}${colors.reset}`),
1235
- ],
1236
- }));
1237
- }
1238
- }
1239
- console.log('');
1240
- }
1241
-
1242
- if (usedTools && !finalContent) {
1243
- finalContent = await this.requestFinalAnswer(messages, toolSummaries, startedAt, totalUsage);
1244
- }
1245
- } finally {
1246
- if (tools) this.ai.setTools(previousTools);
1247
- if (this.spinner) this.spinner.stop();
1248
- }
1249
-
1250
- if ((reachedToolLimit || usedTools) && !finalContent) {
1251
- if (this.spinner) this.spinner.stop();
1252
- finalContent = this.buildToolFallbackAnswer(toolSummaries);
1253
- console.log(`\n${colors.yellow}${finalContent}${colors.reset}\n`);
1254
- }
1255
-
1256
- return { finalContent, usedTools };
1555
+ return this.agentRuntime.runConversation(messages, label, tools);
1257
1556
  }
1258
1557
 
1259
1558
  getLatestUserText(messages = []) {
@@ -1274,19 +1573,29 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1274
1573
  const text = this.getLatestUserText(messages).toLowerCase();
1275
1574
  if (!text.trim()) return false;
1276
1575
 
1277
- const actionPattern = /\b(fix|repair|bug|debug|implement|create|write|edit|modify|update|delete|remove|refactor|run|test|build|commit|push|publish|install|check|inspect|read|scan|grep|search|change|apply|patch)\b|(?:sửa|fix|làm|tạo|ghi|đọc|xóa|xoá|chạy|test|build|commit|push|publish|kiểm tra|check|cài|thêm|đổi|sửa lỗi|refactor|review|soát|quét|tìm|áp dụng)/i;
1278
- const targetPattern = /\b(file|repo|project|code|src|test|build|git|npm|node|folder|directory|cli|tool|provider|model|config|readme|package\.json)\b|[A-Za-z]:[\\/]|\.js\b|\.ts\b|\.tsx\b|\.json\b|\.md\b|(?:dự án|mã|thư mục|tệp|file|cấu hình|lỗi|chức năng|tool|provider|model)/i;
1279
- const pureQuestionPattern = /^(what|why|how|when|where|is|are|can|could|should|would|tại sao|vì sao|là gì|có nên|có phải)\b/i;
1576
+ const actionPattern = /\b(fix|repair|bug|debug|implement|create|write|edit|modify|update|delete|remove|refactor|run|test|build|commit|push|publish|install|check|inspect|read|scan|grep|search|change|apply|patch|sua|lam|tao|ghi|doc|xoa|chay|kiem tra|cai|them|doi|review|tim|sửa|làm|tạo|đọc|xóa|xoá|chạy|kiểm tra|cài|thêm|đổi|tìm)\b/i;
1577
+ const targetPattern = /\b(file|repo|project|code|src|test|build|git|npm|node|folder|directory|cli|tool|provider|model|config|readme|package\.json|du an|thu muc|tap tin|loi|chuc nang|dự án|thư mục|tập tin|lỗi|chức năng)\b|[A-Za-z]:[\\/]|\.js\b|\.ts\b|\.tsx\b|\.json\b|\.md\b/i;
1578
+ const pureQuestionPattern = /^(what|why|how|when|where|is|are|can|could|should|would|tai sao|vi sao|la gi|co nen|co phai|tại sao|vì sao|là gì|có nên|có phải)\b/i;
1280
1579
 
1281
1580
  if (pureQuestionPattern.test(text) && !actionPattern.test(text)) return false;
1282
1581
  return actionPattern.test(text) && targetPattern.test(text);
1283
1582
  }
1284
1583
 
1584
+ shouldAutoVerifyAfterTools(originalMessage = '', usedMutatingTools = false) {
1585
+ if (!usedMutatingTools) return false;
1586
+ const text = String(originalMessage || '').toLowerCase();
1587
+ if (!text.trim()) return false;
1588
+ if (/\b(skip tests?|no verify|don't verify|khong test|khong verify|bo qua test|không test|không verify|bỏ qua test)\b/i.test(text)) {
1589
+ return false;
1590
+ }
1591
+ return /\b(fix|bug|error|test|build|lint|typecheck|compile|refactor|implement|edit|write|change|patch|debug|sua|loi|kiem tra|bien dich|trien khai|lam|doi|viet|sửa|lỗi|kiểm tra|biên dịch|triển khai|làm|đổi|viết)\b/i.test(text);
1592
+ }
1593
+
1285
1594
  responseNeedsToolEvidence(content = '') {
1286
1595
  const text = String(content || '').toLowerCase();
1287
1596
  if (!text.trim()) return false;
1288
1597
 
1289
- const clarification = /(?:cần thêm|cho mình|vui lòng|please provide|which file|what file|need more|clarify|không rõ|chưa rõ|file nào|thư mục nào)/i;
1598
+ const clarification = /(?:cần thêm|cho mình|vui lòng|please provide|which file|what file|need more|clarify|không rõ|chưa rõ|file nào|thư mục nào|c?n th?m|cho m?nh|vui l?ng|kh?ng r?|ch?a r?|file n?o|th? m?c n?o)/i;
1290
1599
  if (clarification.test(text)) return false;
1291
1600
  return true;
1292
1601
  }
@@ -1297,6 +1606,10 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1297
1606
  'Runtime correction: the user requested an action that requires tool evidence.',
1298
1607
  'Your previous response did not use any tool, so it was blocked to avoid falsely claiming completion.',
1299
1608
  'Now use the available tools to inspect/edit/run/check as needed. Do not say the task is done until a tool result proves it.',
1609
+ 'If native tool calls are not supported by this model/provider, output exactly one fallback tool call and no prose, for example:',
1610
+ '<invoke name="Read"><parameter name="path">README.md</parameter></invoke>',
1611
+ '{"tool":"Read","arguments":{"path":"README.md"}}',
1612
+ 'CALL_TOOL Read {"path":"README.md"}',
1300
1613
  `Original user request: ${request}`,
1301
1614
  ].join('\n');
1302
1615
  }
@@ -1315,8 +1628,12 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1315
1628
  this.addUsage(totalUsage, response.usage);
1316
1629
  const assistantMsg = response.choices?.[0]?.message || {};
1317
1630
  const inlineToolExtraction = this.extractInlineToolCalls(assistantMsg.content || '');
1631
+ const legacyFunctionCall = assistantMsg.function_call
1632
+ ? [{ id: 'function-call-0', source: 'legacy-function-call', type: 'function', function: assistantMsg.function_call }]
1633
+ : [];
1318
1634
  const toolCalls = this.normalizeToolCalls([
1319
- ...(assistantMsg.tool_calls || []),
1635
+ ...(assistantMsg.tool_calls || []).map(call => ({ source: 'native-tool-calls', ...call })),
1636
+ ...legacyFunctionCall,
1320
1637
  ...inlineToolExtraction.toolCalls,
1321
1638
  ]);
1322
1639
  if (inlineToolExtraction.toolCalls.length > 0) {
@@ -1354,6 +1671,7 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1354
1671
  const index = deltaToolCall.index ?? toolCallParts.length;
1355
1672
  toolCallParts[index] = toolCallParts[index] || {
1356
1673
  id: '',
1674
+ source: 'stream-native-tool-calls',
1357
1675
  type: 'function',
1358
1676
  function: { name: '', arguments: '' },
1359
1677
  };
@@ -1366,6 +1684,29 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1366
1684
  toolCallParts[index].function.arguments += deltaToolCall.function.arguments;
1367
1685
  }
1368
1686
  }
1687
+ if (choice.delta?.function_call || choice.message?.function_call) {
1688
+ const functionCall = choice.delta?.function_call || choice.message?.function_call;
1689
+ toolCallParts[0] = toolCallParts[0] || {
1690
+ id: 'function-call-0',
1691
+ source: 'stream-legacy-function-call',
1692
+ type: 'function',
1693
+ function: { name: '', arguments: '' },
1694
+ };
1695
+ if (functionCall.name) toolCallParts[0].function.name += functionCall.name;
1696
+ if (functionCall.arguments) toolCallParts[0].function.arguments += functionCall.arguments;
1697
+ }
1698
+ for (const messageToolCall of choice.message?.tool_calls || []) {
1699
+ const index = messageToolCall.index ?? toolCallParts.length;
1700
+ toolCallParts[index] = {
1701
+ id: messageToolCall.id || `message-call-${index}`,
1702
+ source: 'message-tool-calls',
1703
+ type: messageToolCall.type || 'function',
1704
+ function: {
1705
+ name: messageToolCall.function?.name || '',
1706
+ arguments: messageToolCall.function?.arguments || '',
1707
+ },
1708
+ };
1709
+ }
1369
1710
 
1370
1711
  if (chunk.content) {
1371
1712
  if (!printed) {
@@ -1448,6 +1789,10 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1448
1789
  readline.emitKeypressEvents(process.stdin, this.rl);
1449
1790
 
1450
1791
  process.stdin.on('keypress', (str, key = {}) => {
1792
+ if (key.ctrl && key.name === 'v') {
1793
+ void this.handleDirectClipboardPaste();
1794
+ return;
1795
+ }
1451
1796
  if (key.ctrl || key.meta) return;
1452
1797
 
1453
1798
  if (typeof str === 'string' && str.length > 1) {
@@ -1477,6 +1822,51 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1477
1822
  });
1478
1823
  }
1479
1824
 
1825
+ async handleDirectClipboardPaste() {
1826
+ if (this._handlingDirectClipboardPaste || this.readlineClosed || !this.running) return false;
1827
+ this._handlingDirectClipboardPaste = true;
1828
+ try {
1829
+ const image = await this.getClipboardImage();
1830
+ if (!image) return false;
1831
+
1832
+ const prompt = (this.rl?.line || '').trim() || 'Analyze this pasted clipboard image.';
1833
+ this.closeSlashMenu();
1834
+ if (this.rl?.write) {
1835
+ this.rl.write(null, { ctrl: true, name: 'u' });
1836
+ }
1837
+
1838
+ this.inputQueue = this.inputQueue
1839
+ .then(async () => {
1840
+ this.closeInputBox();
1841
+ await this.processPastedImageTask(prompt, image);
1842
+ })
1843
+ .catch((error) => {
1844
+ this.closeInputBox();
1845
+ console.log(`\n${colors.red}✖ Paste image error: ${error.message}${colors.reset}\n`);
1846
+ if (this.running && !this.readlineClosed) this.showInputPrompt();
1847
+ });
1848
+ return true;
1849
+ } finally {
1850
+ this._handlingDirectClipboardPaste = false;
1851
+ }
1852
+ }
1853
+
1854
+ async processPastedImageTask(prompt, image) {
1855
+ this.isProcessing = true;
1856
+ this.isCancelled = false;
1857
+ try {
1858
+ await this.chat(prompt, [image]);
1859
+ } finally {
1860
+ this.isProcessing = false;
1861
+ if (this.taskQueue.length > 0) {
1862
+ const nextTask = this.taskQueue.shift();
1863
+ setTimeout(() => this.processInputTask(nextTask), 0);
1864
+ } else if (!this.readlineClosed) {
1865
+ this.showInputPrompt();
1866
+ }
1867
+ }
1868
+ }
1869
+
1480
1870
  openSlashMenu(line) {
1481
1871
  const matches = this.getSlashSuggestions(line);
1482
1872
  if (matches.length === 0) {
@@ -1572,7 +1962,7 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1572
1962
  readline.clearLine(process.stdout, 1);
1573
1963
  process.stdout.write(`${colors.dim}↑/↓ chọn · Enter/Tab dùng · Esc đóng${colors.reset}\n`);
1574
1964
 
1575
- // Xóa các dòng thừa nếu số lượng dòng mới ít hơn số lượng dòng
1965
+ // Xóa các dòng thừa nếu số lượng dòng mới ít hơn số lượng dòng cũ.
1576
1966
  const currentLines = Math.min(matches.length, maxDisplay) + 3 + (matches.length > maxDisplay ? 1 : 0);
1577
1967
  if (this.slashMenu.printedLines > currentLines) {
1578
1968
  for (let i = 0; i < this.slashMenu.printedLines - currentLines; i++) {
@@ -1589,20 +1979,44 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1589
1979
  getSlashSuggestions(line) {
1590
1980
  const query = String(line || '').trim();
1591
1981
  if (!query.startsWith('/')) return [];
1982
+ const enrich = item => this.enrichSlashSuggestion(item);
1592
1983
  if (query === '/') {
1593
1984
  const preferred = [
1594
- '/help', '/exit', '/pwd', '/cd',
1985
+ '/help', '/new', '/history', '/exit', '/pwd', '/cd',
1595
1986
  '/provider', '/model', '/models', '/providers',
1596
- '/auto', '/debug', '/swe',
1987
+ '/theme:toggle',
1988
+ '/auto', '/debug', '/doctor', '/context', '/scorecard', '/swe',
1597
1989
  '/read', '/write', '/glob', '/grep', '/bash',
1598
1990
  '/codex', '/claude', '/karpathy', '/agents',
1599
1991
  '/resources', '/designs', '/skills',
1992
+ '/ecc',
1993
+ '/composer', '/complete', '/ensemble', '/vote', '/orchestrate', '/search', '/undo',
1600
1994
  ];
1601
1995
  return preferred
1602
1996
  .map(cmd => SLASH_COMMANDS.find(item => item.cmd === cmd))
1603
- .filter(Boolean);
1997
+ .filter(Boolean)
1998
+ .map(enrich);
1604
1999
  }
1605
- return SLASH_COMMANDS.filter(item => item.cmd.startsWith(query)).slice(0, 12);
2000
+ return SLASH_COMMANDS
2001
+ .filter(item => item.cmd.startsWith(query))
2002
+ .slice(0, 12)
2003
+ .map(enrich);
2004
+ }
2005
+
2006
+ enrichSlashSuggestion(item) {
2007
+ if (!item) return item;
2008
+ if (item.cmd !== '/provider') return item;
2009
+
2010
+ const providerNames = typeof this.ai?.listProviders === 'function'
2011
+ ? this.ai.listProviders().map(provider => provider.name).filter(Boolean)
2012
+ : Object.keys(this.ai?.providers || {});
2013
+ const uniqueProviders = [...new Set(providerNames)];
2014
+ if (uniqueProviders.length === 0) return item;
2015
+
2016
+ return {
2017
+ ...item,
2018
+ usage: `/provider <${uniqueProviders.join('|')}>`,
2019
+ };
1606
2020
  }
1607
2021
 
1608
2022
  enrichToolArgs(toolName, toolArgs = {}, messages = []) {
@@ -1750,8 +2164,17 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1750
2164
 
1751
2165
  printAssistantAnswer(content, startedAt, usage = {}) {
1752
2166
  const formatted = formatMarkdown(content);
1753
- console.log(`\n${colors.white}${formatted}${colors.reset}`);
1754
- console.log(`${colors.dim}${''.repeat(50)}${colors.reset}`);
2167
+ const footer = this.formatAnswerFooter(startedAt, usage);
2168
+ const body = String(formatted || '').split(/\r?\n/);
2169
+ console.log(`\n${renderBox({
2170
+ title: 'Assistant',
2171
+ width: terminalWidth(72, 120, 92),
2172
+ borderColor: colors.blue,
2173
+ titleColor: colors.cyan,
2174
+ body: [...body, '', `${colors.dim}${footer}${colors.reset}`],
2175
+ })}\n`);
2176
+ return;
2177
+ console.log(`${colors.dim}${(this.useUnicodeUi ? '─' : '-').repeat(50)}${colors.reset}`);
1755
2178
  console.log(`${colors.dim}${this.formatAnswerFooter(startedAt, usage)}${colors.reset}\n`);
1756
2179
  }
1757
2180
 
@@ -1800,14 +2223,16 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1800
2223
  }
1801
2224
 
1802
2225
  async promptToolPermission(commandText) {
1803
- process.stdout.write(`${colors.magenta}│${colors.reset} ${colors.yellow}⚠ AI muốn chạy: ${colors.bright}${commandText}${colors.reset}\n`);
1804
- process.stdout.write(`${colors.magenta}│${colors.reset} ${colors.cyan}1.${colors.reset} Cho phép\n`);
1805
- process.stdout.write(`${colors.magenta}│${colors.reset} ${colors.cyan}2.${colors.reset} Cho phép trong phiên\n`);
1806
- process.stdout.write(`${colors.magenta}│${colors.reset} ${colors.cyan}3.${colors.reset} Không cho phép\n`);
2226
+ const side = this.useUnicodeUi ? '│' : '|';
2227
+ const warn = this.useUnicodeUi ? '!' : '!';
2228
+ process.stdout.write(`${colors.magenta}${side}${colors.reset} ${colors.yellow}${warn} AI muốn chạy: ${colors.bright}${commandText}${colors.reset}\n`);
2229
+ process.stdout.write(`${colors.magenta}${side}${colors.reset} ${colors.cyan}1.${colors.reset} Cho phép\n`);
2230
+ process.stdout.write(`${colors.magenta}${side}${colors.reset} ${colors.cyan}2.${colors.reset} Cho phép trong phiên\n`);
2231
+ process.stdout.write(`${colors.magenta}${side}${colors.reset} ${colors.cyan}3.${colors.reset} Không cho phép\n`);
1807
2232
 
1808
2233
  while (true) {
1809
2234
  const answer = await new Promise(resolve => {
1810
- this.rl.question(`${colors.magenta}│${colors.reset} ${colors.yellow}Chọn [1/2/3]: ${colors.reset}`, resolve);
2235
+ this.rl.question(`${colors.magenta}${side}${colors.reset} ${colors.yellow}Chọn [1/2/3]: ${colors.reset}`, resolve);
1811
2236
  });
1812
2237
 
1813
2238
  const choice = String(answer || '').trim().toLowerCase();
@@ -1821,7 +2246,7 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1821
2246
  return false;
1822
2247
  }
1823
2248
 
1824
- process.stdout.write(`${colors.magenta}│${colors.reset} ${colors.dim}Vui lòng chọn 1, 2 hoặc 3.${colors.reset}\n`);
2249
+ process.stdout.write(`${colors.magenta}${side}${colors.reset} ${colors.dim}Vui lòng chọn 1, 2 hoặc 3.${colors.reset}\n`);
1825
2250
  }
1826
2251
  }
1827
2252
 
@@ -1888,6 +2313,16 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1888
2313
  for (const item of summary) {
1889
2314
  console.log(` ${item.tool}: ${item.calls} call(s), ${item.failures} failure(s), avg ${item.avgMs}ms`);
1890
2315
  }
2316
+ const context = this.session?.getContext?.() || {};
2317
+ const adapterStats = context.toolCallAdapterStats?.value || context.toolCallAdapterStats;
2318
+ if (adapterStats?.total) {
2319
+ console.log(`${colors.cyan}Tool Call Adapter:${colors.reset}`);
2320
+ console.log(` total parsed: ${adapterStats.total}`);
2321
+ const sources = Object.entries(adapterStats.bySource || {}).sort((a, b) => b[1] - a[1]);
2322
+ if (sources.length > 0) {
2323
+ console.log(` sources: ${sources.map(([name, count]) => `${name}=${count}`).join(', ')}`);
2324
+ }
2325
+ }
1891
2326
  }
1892
2327
 
1893
2328
  showReplay(limit = 20) {
@@ -1983,17 +2418,27 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
1983
2418
 
1984
2419
  async chat(message, imageAttachments = []) {
1985
2420
  try {
2421
+ await this.autoApplyWorkflowForTask(message);
1986
2422
  const needsTools = true;
1987
2423
  const context = await this.getProjectContext(message);
2424
+ const systemPrompt = this.getSystemPrompt(context);
2425
+
2426
+ // Inject @-context if any
2427
+ const atContextStr = this._pendingAtContext || '';
2428
+ this._pendingAtContext = '';
2429
+ const finalSystemPrompt = atContextStr
2430
+ ? systemPrompt + '\n\n' + atContextStr
2431
+ : systemPrompt;
2432
+
1988
2433
  const messages = [
1989
- { role: 'system', content: this.getSystemPrompt(context) }
2434
+ { role: 'system', content: finalSystemPrompt }
1990
2435
  ];
1991
2436
 
1992
2437
  await this.compressSessionContext(false);
1993
2438
  const promptHistory = this.getCompressedPromptHistory({
1994
2439
  limit: 20,
1995
2440
  keepRecent: 14,
1996
- maxTotalChars: this.shouldUseCompactPrompt() ? 5000 : 12000,
2441
+ maxTotalChars: 16000,
1997
2442
  });
1998
2443
  if (promptHistory.summary) {
1999
2444
  messages.push({ role: 'system', content: `Compressed prior conversation:\n${promptHistory.summary}` });
@@ -2018,14 +2463,19 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
2018
2463
  }
2019
2464
 
2020
2465
  const tools = this.getAgentTools('general');
2021
- const { finalContent, usedTools } = await this.runConversation(messages, 'Thinking', tools);
2466
+ const { finalContent, usedMutatingTools } = await this.runConversation(messages, 'Thinking', tools);
2022
2467
 
2023
2468
  await this.session.addToHistory({ role: 'user', content: message });
2024
2469
  await this.session.addToHistory({ role: 'assistant', content: finalContent });
2025
2470
 
2026
- // Tự động verify: nếu AI đã dùng tools (sửa code), chạy test/build
2027
- if (usedTools && finalContent) {
2028
- await this.verifyAndHeal(messages, tools, 5);
2471
+ // Tự động verify: nếu AI đã dùng tools (sửa code), chạy test/build.
2472
+ if (finalContent && this.shouldAutoVerifyAfterTools(message, usedMutatingTools)) {
2473
+ const sessionContext = this.session?.getContext?.() || {};
2474
+ const profile = String(sessionContext.workflowProfile || 'general');
2475
+ const amplifier = sessionContext.smallModelAmplifier || {};
2476
+ const baseAttempts = /debug|backend|data|devops|ai/.test(profile) ? 4 : 3;
2477
+ const boostedAttempts = amplifier?.weak ? Math.max(baseAttempts, 5) : baseAttempts;
2478
+ await this.verifyAndHeal(messages, tools, boostedAttempts);
2029
2479
  }
2030
2480
 
2031
2481
  } catch (error) {
@@ -2033,10 +2483,91 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
2033
2483
  }
2034
2484
  }
2035
2485
 
2486
+ async autoApplyWorkflowForTask(taskText = '') {
2487
+ const text = String(taskText || '').trim();
2488
+ if (!text) return;
2489
+
2490
+ const sessionContext = this.session?.getContext?.() || {};
2491
+ const cached = sessionContext.workflowLastTask || '';
2492
+ if (cached && cached === text) return;
2493
+
2494
+ const [signals, catalog] = await Promise.all([
2495
+ this.getProjectSignals?.() || [],
2496
+ this.getStartupSkillCatalog?.() || new Set(),
2497
+ ]);
2498
+ const workflow = selectWorkflow({
2499
+ taskText: text,
2500
+ projectSignals: signals,
2501
+ skillCatalog: Array.isArray(catalog) ? catalog : [...catalog],
2502
+ });
2503
+
2504
+ const existingSkills = Array.isArray(sessionContext.activeSkills?.value)
2505
+ ? sessionContext.activeSkills.value
2506
+ : (Array.isArray(sessionContext.activeSkills) ? sessionContext.activeSkills : []);
2507
+ const mergedSkills = [...new Set([...(existingSkills || []), ...(workflow.recommendedSkills || [])])];
2508
+
2509
+ const hints = [
2510
+ `Task category/type: ${workflow.taskInfo?.category || 'unknown'} / ${workflow.taskInfo?.type || 'unknown'}`,
2511
+ `Workflow profile: ${workflow.profile} (depth=${workflow.depth})`,
2512
+ workflow.technologySuggestions?.length ? `Technology suggestions: ${workflow.technologySuggestions.join(' | ')}` : '',
2513
+ workflow.verificationStrategy?.length ? `Verification strategy: ${workflow.verificationStrategy.join(', ')}` : '',
2514
+ workflow.recommendedSkills?.length ? `Recommended skills: ${workflow.recommendedSkills.join(', ')}` : '',
2515
+ workflow.recommendedResources?.length ? `Recommended resources: ${workflow.recommendedResources.join(', ')}` : '',
2516
+ workflow.recommendedPlugins?.length ? `Recommended plugins: ${workflow.recommendedPlugins.join(', ')}` : '',
2517
+ workflow.recommendedRules?.length ? `Recommended rules: ${workflow.recommendedRules.join('; ')}` : '',
2518
+ 'Execution: plan first (success criteria), then act with tools, then verify (test/build/lint). For UI/webapp: consult awesome-design-md before writing UI.',
2519
+ ].filter(Boolean).join('\n');
2520
+
2521
+ const amplifier = buildSmallModelAmplification({
2522
+ modelTier: this.ai?._modelTier || 'medium',
2523
+ workflowProfile: workflow.profile,
2524
+ depth: workflow.depth,
2525
+ });
2526
+ const blueprint = getProfileBlueprint(workflow.profile);
2527
+ const finalHints = [
2528
+ hints,
2529
+ blueprint?.asText || '',
2530
+ amplifier.hint || '',
2531
+ ].filter(Boolean).join('\n\n');
2532
+
2533
+ await this.session.updateContext('workflowLastTask', text);
2534
+ await this.session.updateContext('workflowProfile', workflow.profile);
2535
+ await this.session.updateContext('workflowDetectedTechnologies', workflow.detectedTechnologies || {});
2536
+ await this.session.updateContext('workflowVerificationStrategy', workflow.verificationStrategy || []);
2537
+ await this.session.updateContext('workflowBlueprint', blueprint?.asText || '');
2538
+ await this.session.updateContext('workflowHints', finalHints);
2539
+ await this.session.updateContext('smallModelAmplifier', amplifier);
2540
+ await this.session.updateContext('activeSkills', mergedSkills);
2541
+ }
2542
+
2036
2543
  /**
2037
- * Chạy verification commands (test, build) và trả về kết quả
2544
+ * Chạy verification commands (test, build) và trả về kết quả.
2038
2545
  */
2039
- async runVerification(commands = ['npm test']) {
2546
+ async inferVerificationCommands(task = '') {
2547
+ const fs = await import('fs/promises');
2548
+ const candidates = [];
2549
+ const packagePath = path.join(this.projectPath, 'package.json');
2550
+ try {
2551
+ const pkg = JSON.parse(await fs.readFile(packagePath, 'utf8'));
2552
+ const scripts = pkg.scripts || {};
2553
+ if (scripts.test) candidates.push('npm test');
2554
+ if (scripts.build && /\b(build|compile|type|typescript|tsc|frontend|ui|design|next|vite|react|debug|fix|bug|error|loi|lỗi)\b/i.test(task)) {
2555
+ candidates.push('npm run build');
2556
+ }
2557
+ if (scripts.lint && /\b(lint|style|eslint|quality|review)\b/i.test(task)) candidates.push('npm run lint');
2558
+ if (scripts.typecheck) candidates.push('npm run typecheck');
2559
+ } catch {
2560
+ // Not a Node project.
2561
+ }
2562
+
2563
+ if (candidates.length === 0) return ['npm test'];
2564
+ return [...new Set(candidates)].slice(0, 3);
2565
+ }
2566
+
2567
+ async runVerification(commands = null) {
2568
+ commands = Array.isArray(commands) && commands.length > 0
2569
+ ? commands
2570
+ : await this.inferVerificationCommands();
2040
2571
  const { execSync } = await import('child_process');
2041
2572
  const results = [];
2042
2573
 
@@ -2064,11 +2595,11 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
2064
2595
  /**
2065
2596
  * Vòng lặp tự động verify + sửa lỗi:
2066
2597
  * - Chạy test/build
2067
- * - Nếu fail, gửi lỗi cho AI fix
2598
+ * - Nếu fail, gửi lại cho AI fix
2068
2599
  * - Lặp đến khi pass hết hoặc hết số lần thử
2069
2600
  */
2070
2601
  async verifyAndHeal(messages, tools, maxAttempts = 5) {
2071
- const verifCommands = ['npm test'];
2602
+ const verifCommands = await this.inferVerificationCommands(this.getLatestUserText(messages));
2072
2603
 
2073
2604
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
2074
2605
  console.log(`\n${colors.cyan}=== Verification Attempt ${attempt}/${maxAttempts} ===${colors.reset}`);
@@ -2076,7 +2607,7 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
2076
2607
  const result = await this.runVerification(verifCommands);
2077
2608
 
2078
2609
  if (result.passed) {
2079
- console.log(`\n${colors.green} All verifications passed!${colors.reset}\n`);
2610
+ console.log(`\n${colors.green} All verifications passed!${colors.reset}\n`);
2080
2611
  return;
2081
2612
  }
2082
2613
 
@@ -2086,7 +2617,7 @@ ${colors.yellow}ℹ AI tool loop detected (3 consecutive identical tool calls).
2086
2617
  .map(r => `Command: ${r.cmd}\n${r.output}`)
2087
2618
  .join('\n\n---\n\n');
2088
2619
 
2089
- console.log(`\n${colors.yellow}Verification failed. Sending errors back to AI for fix...${colors.reset}\n`);
2620
+ console.log(`\n${colors.yellow}Verification failed. Sending errors back to AI for fix...${colors.reset}\n`);
2090
2621
 
2091
2622
  // Push error output as user message for AI to fix
2092
2623
  const fixPrompt = `VERIFICATION FAILED (attempt ${attempt}/${maxAttempts}):
@@ -2104,12 +2635,12 @@ Do NOT stop until all errors are resolved.`;
2104
2635
  const { usedTools: fixUsedTools } = await this.runConversation(messages, 'Fixing', tools);
2105
2636
 
2106
2637
  if (!fixUsedTools) {
2107
- console.log(`\n${colors.red}AI did not attempt to fix the errors. Stopping.${colors.reset}\n`);
2638
+ console.log(`\n${colors.red}AI did not attempt to fix the errors. Stopping.${colors.reset}\n`);
2108
2639
  break;
2109
2640
  }
2110
2641
  }
2111
2642
 
2112
- console.log(`\n${colors.red}Max verification attempts (${maxAttempts}) reached. Some issues may remain.${colors.reset}\n`);
2643
+ console.log(`\n${colors.red}Max verification attempts (${maxAttempts}) reached. Some issues may remain.${colors.reset}\n`);
2113
2644
  }
2114
2645
 
2115
2646
  shouldUseTools(message = '', imageAttachments = []) {
@@ -2138,15 +2669,16 @@ Do NOT stop until all errors are resolved.`;
2138
2669
  }
2139
2670
 
2140
2671
  async runAgent(role, task) {
2672
+ const agentDefinition = await this.agentRegistry.get(role || 'general');
2141
2673
  const context = await this.getProjectContext(task);
2142
2674
  const messages = [
2143
- { role: 'system', content: this.getAgentSystemPrompt(role, context) }
2675
+ { role: 'system', content: this.getAgentDefinitionSystemPrompt(agentDefinition, context) }
2144
2676
  ];
2145
2677
 
2146
2678
  const promptHistory = this.getCompressedPromptHistory({
2147
- limit: this.shouldUseCompactPrompt() ? 14 : 30,
2148
- keepRecent: this.shouldUseCompactPrompt() ? 8 : 14,
2149
- maxTotalChars: this.shouldUseCompactPrompt() ? 5000 : 12000,
2679
+ limit: 40,
2680
+ keepRecent: 16,
2681
+ maxTotalChars: 16000,
2150
2682
  });
2151
2683
  if (promptHistory.summary) {
2152
2684
  messages.push({ role: 'system', content: `Compressed prior conversation:\n${promptHistory.summary}` });
@@ -2157,15 +2689,172 @@ Do NOT stop until all errors are resolved.`;
2157
2689
 
2158
2690
  messages.push({ role: 'user', content: `Task: ${task}` });
2159
2691
 
2160
- const agentTools = this.getAgentTools(role);
2161
- const { finalContent, usedTools } = await this.runConversation(messages, `Subagent [${role}]`, agentTools);
2692
+ const agentTools = this.getAgentToolsForDefinition(agentDefinition);
2693
+ const { finalContent, usedMutatingTools } = await this.runConversation(messages, `Subagent [${agentDefinition.id}]`, agentTools);
2162
2694
 
2163
- await this.session.addToHistory({ role: 'user', content: `[subagent:${role}] ${task}` });
2695
+ await this.session.addToHistory({ role: 'user', content: `[subagent:${agentDefinition.id}] ${task}` });
2164
2696
  await this.session.addToHistory({ role: 'assistant', content: finalContent });
2165
2697
 
2166
- if (usedTools && finalContent) {
2167
- await this.verifyAndHeal(messages, agentTools, 3);
2698
+ if (finalContent && this.shouldAutoVerifyAfterTools(task, usedMutatingTools)) {
2699
+ await this.verifyAndHeal(messages, agentTools, 2);
2700
+ }
2701
+ }
2702
+
2703
+ async listAgentDefinitions() {
2704
+ return this.agentRegistry.list();
2705
+ }
2706
+
2707
+ getAgentToolsForDefinition(agentDefinition = {}) {
2708
+ const base = this.tools.getToolDefinitions();
2709
+ const allowed = Array.isArray(agentDefinition.tools) ? agentDefinition.tools : [];
2710
+ if (allowed.length === 0) return this.getAgentTools(agentDefinition.id || 'general');
2711
+ return base.filter(tool => allowed.includes(tool.name));
2712
+ }
2713
+
2714
+ getAgentDefinitionSystemPrompt(agentDefinition = {}, context = '') {
2715
+ const fallback = this.getAgentSystemPrompt(agentDefinition.id || 'general', context);
2716
+ const instructions = String(agentDefinition.instructionsPrompt || '').trim();
2717
+ const custom = instructions
2718
+ ? [
2719
+ `You are ${agentDefinition.displayName || agentDefinition.id}, a Winter custom agent.`,
2720
+ instructions,
2721
+ '',
2722
+ 'AGENT CONTRACT:',
2723
+ '- Inspect real project state before editing.',
2724
+ '- Use only the provided tools and cite tool evidence in the final answer.',
2725
+ '- Patch the smallest root cause and verify when the task changes code.',
2726
+ '- Do not claim success without tool evidence.',
2727
+ ].join('\n')
2728
+ : fallback;
2729
+
2730
+ const metadata = [
2731
+ `Agent id: ${agentDefinition.id || 'general'}`,
2732
+ `Agent source: ${agentDefinition.source || 'builtin'}`,
2733
+ Array.isArray(agentDefinition.tools) && agentDefinition.tools.length
2734
+ ? `Allowed tools: ${agentDefinition.tools.join(', ')}`
2735
+ : '',
2736
+ ].filter(Boolean).join('\n');
2737
+
2738
+ return [custom, metadata ? `\nAGENT METADATA:\n${metadata}` : '', context ? `\nPROJECT CONTEXT:\n${context}` : ''].join('\n');
2739
+ }
2740
+
2741
+ async runToolDoctor() {
2742
+ const provider = this.ai?.getActiveProvider?.() || 'unknown';
2743
+ const model = this.ai?.providers?.[provider]?.model || 'unknown';
2744
+ const tools = this.getAgentTools('plan').filter(tool => tool.name === 'Read');
2745
+ const probePath = 'README.md';
2746
+ const messages = [
2747
+ {
2748
+ role: 'system',
2749
+ content: [
2750
+ 'You are Winter tool-call doctor.',
2751
+ 'You must diagnose whether this provider/model can trigger a real tool execution.',
2752
+ 'Call the Read tool for README.md now. Do not answer in prose before the tool call.',
2753
+ 'If native tool calls are unavailable, output exactly one fallback call:',
2754
+ '<invoke name="Read"><parameter name="path">README.md</parameter></invoke>',
2755
+ '{"tool":"Read","arguments":{"path":"README.md"}}',
2756
+ 'CALL_TOOL Read {"path":"README.md"}',
2757
+ ].join('\n'),
2758
+ },
2759
+ {
2760
+ role: 'user',
2761
+ content: `TOOL DOCTOR: call Read on ${probePath}.`,
2762
+ },
2763
+ ];
2764
+
2765
+ console.log(`${colors.cyan}Tool doctor:${colors.reset} provider=${provider}, model=${model}`);
2766
+ const beforeEvents = this.session?.getToolEvents?.(1)?.length || 0;
2767
+ const result = await this.runConversation(messages, 'Tool doctor', tools);
2768
+ const recentEvents = this.session?.getToolEvents?.(5) || [];
2769
+ const readEvent = recentEvents.find(event => event.tool === 'Read' && event.success !== false);
2770
+ const passed = result.usedTools && Boolean(readEvent || /readme\.md/i.test(result.finalContent || ''));
2771
+
2772
+ if (passed) {
2773
+ console.log(`${colors.green}✓ Tool calling works for ${provider}/${model}.${colors.reset}`);
2774
+ if (readEvent) {
2775
+ console.log(`${colors.dim} Last Read result: ${readEvent.result?.path || probePath}${colors.reset}`);
2776
+ }
2777
+ return { success: true, provider, model, usedTools: result.usedTools, beforeEvents };
2778
+ }
2779
+
2780
+ console.log(`${colors.red}✖ Tool calling did not execute for ${provider}/${model}.${colors.reset}`);
2781
+ console.log(`${colors.yellow} Try a stronger model or use a provider that supports OpenAI-compatible tools/fallback text output.${colors.reset}`);
2782
+ return { success: false, provider, model, usedTools: result.usedTools, beforeEvents };
2783
+ }
2784
+
2785
+ async getCapabilityScorecard() {
2786
+ return assessWinterCapabilities(this);
2787
+ }
2788
+
2789
+ async showCapabilityScorecard() {
2790
+ const report = await this.getCapabilityScorecard();
2791
+ console.log(formatCapabilityScorecard(report, { colors }));
2792
+ return report;
2793
+ }
2794
+
2795
+ async showContextDiagnostics(task = '') {
2796
+ const provider = this.ai?.getActiveProvider?.() || 'unknown';
2797
+ const model = this.ai?.providers?.[provider]?.model || 'unknown';
2798
+ const context = await this.getProjectContext(task);
2799
+ let codebaseStats = null;
2800
+ try {
2801
+ codebaseStats = await this.ensureCodebaseIndex({ verbose: false });
2802
+ } catch {
2803
+ codebaseStats = null;
2804
+ }
2805
+
2806
+ const sectionNames = Array.from(context.matchAll(/^\[([^\]]+)\]/gm)).map(match => match[1]);
2807
+ const lines = [
2808
+ `${colors.cyan}${colors.bright}Winter context diagnostics${colors.reset}`,
2809
+ `Project: ${this.projectPath}`,
2810
+ `Provider/model: ${provider}/${model}`,
2811
+ `Context chars: ${context.length}`,
2812
+ `Sections: ${sectionNames.length ? sectionNames.join(', ') : 'none'}`,
2813
+ ];
2814
+
2815
+ if (codebaseStats) {
2816
+ lines.push(`Codebase index: ${codebaseStats.totalFiles || 0} files, ${codebaseStats.totalChunks || 0} chunks`);
2817
+ } else {
2818
+ lines.push('Codebase index: unavailable');
2168
2819
  }
2820
+
2821
+ lines.push('');
2822
+ lines.push(colors.dim + this.compactText(context, 3200, 'context diagnostics') + colors.reset);
2823
+ console.log(lines.join('\n'));
2824
+ return { provider, model, contextLength: context.length, sections: sectionNames, codebaseStats };
2825
+ }
2826
+
2827
+ async runFullDoctor() {
2828
+ const report = await this.showCapabilityScorecard();
2829
+ console.log('');
2830
+ await this.showContextDiagnostics('doctor full codebase provider tool debug workflow');
2831
+ console.log('');
2832
+ const toolResult = await this.runToolDoctor();
2833
+ return {
2834
+ success: report.overall >= report.target && toolResult.success,
2835
+ scorecard: report,
2836
+ toolResult,
2837
+ };
2838
+ }
2839
+
2840
+ async runToolDoctor() {
2841
+ return runToolDoctorDiagnostics(this);
2842
+ }
2843
+
2844
+ async getCapabilityScorecard() {
2845
+ return getCapabilityScorecardReport(this);
2846
+ }
2847
+
2848
+ async showCapabilityScorecard() {
2849
+ return showCapabilityScorecardDiagnostics(this);
2850
+ }
2851
+
2852
+ async showContextDiagnostics(task = '') {
2853
+ return showContextDiagnosticsReport(this, task);
2854
+ }
2855
+
2856
+ async runFullDoctor() {
2857
+ return runFullDoctorDiagnostics(this);
2169
2858
  }
2170
2859
 
2171
2860
  async getProjectContext(task = '') {
@@ -2175,11 +2864,17 @@ Do NOT stop until all errors are resolved.`;
2175
2864
  context.push(requiredLocalResources);
2176
2865
  }
2177
2866
 
2867
+ const shouldIncludeResources = /\b(resource|resources|skill|skills|plugin|plugins|claude|codex|agent|agents|design|ui|figma|brand|mcp)\b/i.test(String(task || ''));
2868
+ const localResources = shouldIncludeResources ? await this.getLocalResourceContext() : '';
2869
+ if (localResources) {
2870
+ context.push(localResources);
2871
+ }
2872
+
2178
2873
  const projectInstructionFiles = await this.readProjectInstructionFiles();
2179
2874
 
2180
2875
  for (const file of projectInstructionFiles) {
2181
2876
  try {
2182
- const preview = this.compactText(file.content, this.shouldUseCompactPrompt() ? 450 : 900, 'project instruction');
2877
+ const preview = this.compactText(file.content, 1200, 'project instruction');
2183
2878
  context.push(`[${file.relativePath}]\n${preview}`);
2184
2879
  } catch { }
2185
2880
  }
@@ -2189,14 +2884,22 @@ Do NOT stop until all errors are resolved.`;
2189
2884
  const stat = await fs.stat(packageJsonPath);
2190
2885
  if (stat.isFile()) {
2191
2886
  const content = await fs.readFile(packageJsonPath, 'utf-8');
2192
- context.push(`[package.json]\n${this.compactText(content, this.shouldUseCompactPrompt() ? 650 : 1200, 'package.json')}`);
2887
+ context.push(`[package.json]\n${this.compactText(content, 1600, 'package.json')}`);
2193
2888
  }
2194
2889
  } catch { }
2195
2890
 
2196
- const shouldIncludeResources = /\b(resource|resources|skill|skills|plugin|plugins|claude|codex|agent|agents|design|ui|figma|brand|mcp)\b/i.test(String(task || ''));
2197
- const localResources = shouldIncludeResources ? await this.getLocalResourceContext() : '';
2198
- if (localResources) {
2199
- context.push(localResources);
2891
+ const codebaseContext = await this.buildCodebaseContext(task);
2892
+ if (codebaseContext) {
2893
+ context.push(codebaseContext);
2894
+ }
2895
+
2896
+ const graphContext = await this.codebaseSearcher?.buildGraphContext?.(task, {
2897
+ maxNodes: 24,
2898
+ maxCodeBlocks: 8,
2899
+ maxCodeBlockSize: 1800,
2900
+ });
2901
+ if (graphContext) {
2902
+ context.push(`[CodeGraph Context]\n${this.compactText(graphContext, 5200, 'codegraph context')}`);
2200
2903
  }
2201
2904
 
2202
2905
  // Git Context
@@ -2208,20 +2911,20 @@ Do NOT stop until all errors are resolved.`;
2208
2911
 
2209
2912
  const gitSummary = execSync('git diff --stat --summary', { cwd: this.projectPath, encoding: 'utf8', stdio: 'pipe', maxBuffer: 1024 * 50 }).trim();
2210
2913
  if (gitSummary) {
2211
- context.push(`[Git Summary]\n${this.compactText(gitSummary, this.shouldUseCompactPrompt() ? 650 : 1200, 'git summary')}`);
2914
+ context.push(`[Git Summary]\n${this.compactText(gitSummary, 1200, 'git summary')}`);
2212
2915
  }
2213
2916
 
2214
2917
  // Get brief git diff for context
2215
2918
  const gitDiff = execSync('git diff', { cwd: this.projectPath, encoding: 'utf8', stdio: 'pipe', maxBuffer: 1024 * 50 }).trim().split('\n').slice(0, 30).join('\n');
2216
2919
  if (gitDiff) {
2217
- context.push(`[Git Diff]\n${this.compactText(gitDiff, this.shouldUseCompactPrompt() ? 900 : 1800, 'git diff')}`);
2920
+ context.push(`[Git Diff]\n${this.compactText(gitDiff, 2200, 'git diff')}`);
2218
2921
  }
2219
2922
  }
2220
2923
  } catch (e) {
2221
2924
  // Not a git repo or git not installed
2222
2925
  }
2223
2926
 
2224
- return this.compactText(context.join('\n\n') || 'No project context found.', this.shouldUseCompactPrompt() ? 4200 : 9000, 'project context');
2927
+ return this.compactText(context.join('\n\n') || 'No project context found.', 14000, 'project context');
2225
2928
  }
2226
2929
 
2227
2930
  async getLocalResourceContext() {
@@ -2323,7 +3026,7 @@ Do NOT stop until all errors are resolved.`;
2323
3026
  this.promptBuilder.tools = this.tools;
2324
3027
  this.promptBuilder.sessionPermissionGrants = this.sessionPermissionGrants;
2325
3028
  return this.promptBuilder.buildSystemPrompt(context, {
2326
- projectContextBudget: this.shouldUseCompactPrompt() ? 2200 : 3200,
3029
+ projectContextBudget: 5200,
2327
3030
  });
2328
3031
  }
2329
3032
 
@@ -2370,7 +3073,7 @@ Do NOT stop until all errors are resolved.`;
2370
3073
  }
2371
3074
  config.mcp.servers.forEach(server => {
2372
3075
  const enabled = server.enabled === false ? `${colors.red}disabled${colors.reset}` : `${colors.green}enabled${colors.reset}`;
2373
- console.log(` ${server.name} (${enabled}) -> ${server.command}${server.args?.length ? ` ${server.args.join(' ')}` : ''}`);
3076
+ console.log(` - ${server.name} (${enabled}) -> ${server.command}${server.args?.length ? ` ${server.args.join(' ')}` : ''}`);
2374
3077
  });
2375
3078
  break;
2376
3079
  case 'add': {
@@ -2484,4 +3187,41 @@ Do NOT stop until all errors are resolved.`;
2484
3187
  return null;
2485
3188
  }
2486
3189
  }
3190
+
3191
+ async getClipboardImage() {
3192
+ if (process.platform !== 'win32') return null;
3193
+ try {
3194
+ const { execSync } = await import('child_process');
3195
+ const script = [
3196
+ 'Add-Type -AssemblyName System.Windows.Forms',
3197
+ 'Add-Type -AssemblyName System.Drawing',
3198
+ '$img = [System.Windows.Forms.Clipboard]::GetImage()',
3199
+ 'if ($null -ne $img) {',
3200
+ ' $ms = New-Object System.IO.MemoryStream',
3201
+ ' $img.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png)',
3202
+ ' [Convert]::ToBase64String($ms.ToArray())',
3203
+ '}',
3204
+ ].join('; ');
3205
+ const base64 = execSync('powershell.exe -NoProfile -NonInteractive -Command -', {
3206
+ input: script,
3207
+ encoding: 'utf8',
3208
+ stdio: ['pipe', 'pipe', 'ignore'],
3209
+ timeout: 10000,
3210
+ }).trim();
3211
+ return base64 ? { mime: 'image/png', base64 } : null;
3212
+ } catch {
3213
+ return null;
3214
+ }
3215
+ }
3216
+
3217
+ async getClipboardPayload() {
3218
+ const image = await this.getClipboardImage();
3219
+ if (image) return { type: 'image', image };
3220
+
3221
+ const text = await this.getClipboardContent();
3222
+ if (!text) return null;
3223
+ const dataImage = this.parseDataUrlImage(text);
3224
+ if (dataImage) return { type: 'image', image: dataImage };
3225
+ return { type: 'text', text };
3226
+ }
2487
3227
  }