@mthanh/vespercli 1.8.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1288) hide show
  1. package/README.md +284 -214
  2. package/assets/CATALOG.md +496 -314
  3. package/assets/claude/.claude-plugin/marketplace.json +56 -0
  4. package/assets/claude/.claude-plugin/plugin.json +10 -0
  5. package/assets/claude/agents/code-reviewer.md +13 -0
  6. package/assets/claude/agents/feature-wrap-document.md +29 -6
  7. package/assets/claude/agents/skill-creator.md +1 -1
  8. package/assets/claude/agents/workspace-learner.md +12 -6
  9. package/assets/claude/context.md.tpl +1 -1
  10. package/assets/claude/orchestration.md.tpl +15 -14
  11. package/assets/claude/packs/backend/.claude-plugin/plugin.json +10 -0
  12. package/assets/claude/packs/backend/skills/agent-fundamentals/SKILL.md +89 -0
  13. package/assets/claude/packs/backend/skills/agent-fundamentals/references/codebase-query.md +95 -0
  14. package/assets/claude/packs/backend/skills/agent-fundamentals/references/terminal-discipline.md +94 -0
  15. package/assets/claude/packs/backend/skills/agent-fundamentals/references/tool-usage-patterns.md +67 -0
  16. package/assets/claude/packs/docs/.claude-plugin/plugin.json +10 -0
  17. package/assets/claude/packs/docs/skills/agent-fundamentals/SKILL.md +89 -0
  18. package/assets/claude/packs/docs/skills/agent-fundamentals/references/codebase-query.md +95 -0
  19. package/assets/claude/packs/docs/skills/agent-fundamentals/references/terminal-discipline.md +94 -0
  20. package/assets/claude/packs/docs/skills/agent-fundamentals/references/tool-usage-patterns.md +67 -0
  21. package/assets/claude/packs/frontend/.claude-plugin/plugin.json +10 -0
  22. package/assets/claude/packs/frontend/skills/agent-fundamentals/SKILL.md +89 -0
  23. package/assets/claude/packs/frontend/skills/agent-fundamentals/references/codebase-query.md +95 -0
  24. package/assets/claude/packs/frontend/skills/agent-fundamentals/references/terminal-discipline.md +94 -0
  25. package/assets/claude/packs/frontend/skills/agent-fundamentals/references/tool-usage-patterns.md +67 -0
  26. package/assets/claude/packs/frontend/skills/nextjs-tailwind/SKILL.md +74 -0
  27. package/assets/claude/packs/frontend/skills/reactjs/SKILL.md +164 -0
  28. package/assets/claude/packs/frontend/skills/tailwind-v4-vite/SKILL.md +238 -0
  29. package/assets/claude/packs/integrations/.claude-plugin/plugin.json +10 -0
  30. package/assets/claude/packs/integrations/skills/agent-fundamentals/SKILL.md +89 -0
  31. package/assets/claude/packs/integrations/skills/agent-fundamentals/references/codebase-query.md +95 -0
  32. package/assets/claude/packs/integrations/skills/agent-fundamentals/references/terminal-discipline.md +94 -0
  33. package/assets/claude/packs/integrations/skills/agent-fundamentals/references/tool-usage-patterns.md +67 -0
  34. package/assets/claude/packs/integrations/skills/github-actions-to-gitlab-ci/LICENSE +21 -0
  35. package/assets/claude/packs/integrations/skills/github-actions-to-gitlab-ci/SKILL.md +370 -0
  36. package/assets/claude/packs/integrations/skills/github-actions-to-gitlab-ci/UPSTREAM.json +7 -0
  37. package/assets/claude/packs/integrations/skills/github-actions-to-gitlab-ci/references/marketplace-actions.md +1042 -0
  38. package/assets/claude/packs/integrations/skills/github-actions-to-gitlab-ci/references/syntax-mapping.md +906 -0
  39. package/assets/claude/packs/integrations/skills/github-actions-to-gitlab-ci/references/validator.md +91 -0
  40. package/assets/claude/packs/integrations/skills/github-actions-to-gitlab-ci/scripts/validate.sh +206 -0
  41. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/LICENSE +21 -0
  42. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/SKILL.md +422 -0
  43. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/UPSTREAM.json +7 -0
  44. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/examples/README.md +70 -0
  45. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/examples/node-mocha/.gitlab-ci.yml +55 -0
  46. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/examples/node-mocha/README.md +28 -0
  47. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/examples/python-click/.gitlab-ci.yml +133 -0
  48. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/examples/python-click/README.md +31 -0
  49. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/.gitlab-ci.after-layered.yml +59 -0
  50. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/.gitlab-ci.before.yml +34 -0
  51. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/.gitlab-ci.broken.yml +49 -0
  52. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/.gitlab-ci.optimized.yml +65 -0
  53. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/.gitlab-ci.yml +101 -0
  54. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/README.md +42 -0
  55. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/references/caching.md +170 -0
  56. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/references/catalog.md +173 -0
  57. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/references/debugging.md +168 -0
  58. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/references/images.md +79 -0
  59. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/references/mental-model.md +96 -0
  60. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/references/onboarding.md +122 -0
  61. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/references/optimize.md +301 -0
  62. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/references/recipes.md +426 -0
  63. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/references/syntax.md +319 -0
  64. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/references/verification.md +278 -0
  65. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/scripts/catalog-search.sh +76 -0
  66. package/assets/claude/packs/integrations/skills/gitlab-ci-skill/scripts/verify.sh +332 -0
  67. package/assets/claude/packs/integrations/skills/gitlab-guardrails/SKILL.md +62 -0
  68. package/assets/claude/packs/playwright/.claude-plugin/plugin.json +10 -0
  69. package/assets/claude/packs/playwright/skills/agent-fundamentals/SKILL.md +89 -0
  70. package/assets/claude/packs/playwright/skills/agent-fundamentals/references/codebase-query.md +95 -0
  71. package/assets/claude/packs/playwright/skills/agent-fundamentals/references/terminal-discipline.md +94 -0
  72. package/assets/claude/packs/playwright/skills/agent-fundamentals/references/tool-usage-patterns.md +67 -0
  73. package/assets/claude/packs/playwright/skills/playwright-generate-test/SKILL.md +25 -0
  74. package/assets/claude/packs/polyglot/.claude-plugin/plugin.json +10 -0
  75. package/assets/claude/packs/polyglot/skills/agent-fundamentals/SKILL.md +89 -0
  76. package/assets/claude/packs/polyglot/skills/agent-fundamentals/references/codebase-query.md +95 -0
  77. package/assets/claude/packs/polyglot/skills/agent-fundamentals/references/terminal-discipline.md +94 -0
  78. package/assets/claude/packs/polyglot/skills/agent-fundamentals/references/tool-usage-patterns.md +67 -0
  79. package/assets/claude/packs/polyglot/skills/flutter/SKILL.md +449 -0
  80. package/assets/claude/packs/polyglot/skills/google-adk-python/SKILL.md +242 -0
  81. package/assets/claude/packs/polyglot/skills/java/SKILL.md +83 -0
  82. package/assets/claude/packs/styles/.claude-plugin/plugin.json +10 -0
  83. package/assets/claude/packs/styles/skills/agent-fundamentals/SKILL.md +89 -0
  84. package/assets/claude/packs/styles/skills/agent-fundamentals/references/codebase-query.md +95 -0
  85. package/assets/claude/packs/styles/skills/agent-fundamentals/references/terminal-discipline.md +94 -0
  86. package/assets/claude/packs/styles/skills/agent-fundamentals/references/tool-usage-patterns.md +67 -0
  87. package/assets/claude/packs/styles/skills/i-have-adhd/UPSTREAM.json +7 -0
  88. package/assets/claude/packs/styles/skills/ponytail/UPSTREAM.json +7 -0
  89. package/assets/claude/skills/create-specification/SKILL.md +136 -0
  90. package/assets/claude/skills/document/SKILL.md +5 -0
  91. package/assets/claude/skills/mcp-memory/SKILL.md +13 -13
  92. package/assets/claude/skills/mcp-memory/references/agent-memory-protocol.md +33 -42
  93. package/assets/claude/skills/mcp-memory/references/entity-schema.md +7 -26
  94. package/assets/claude/skills/mcp-memory/references/memory-hygiene.md +1 -4
  95. package/assets/claude/skills/project-management/SKILL.md +5 -0
  96. package/assets/claude/skills/repo-story-time/SKILL.md +134 -0
  97. package/assets/claude/skills/self-explanatory-code-commenting/SKILL.md +3 -1
  98. package/assets/claude/skills/skill-creator/SKILL.md +1 -1
  99. package/assets/claude/skills/task-implementation/SKILL.md +2 -0
  100. package/assets/claude/skills/vesper-catalog-editing-safety/SKILL.md +82 -52
  101. package/assets/claude/skills/vesper-orchestration/SKILL.md +71 -0
  102. package/assets/claude/skills/vesper-orchestration/references/implement-pipeline.md +337 -0
  103. package/assets/claude/skills/vesper-orchestration/references/multi-task-dispatch.md +13 -0
  104. package/assets/claude/skills/vesper-orchestration/references/qa-e2e-pipeline.md +160 -0
  105. package/assets/claude/skills/vesper-orchestration/references/reinit-pipeline.md +98 -0
  106. package/assets/claude/skills/vesper-orchestration/references/research-plan-pipeline.md +214 -0
  107. package/assets/claude/skills/vscode-agent-config/SKILL.md +5 -0
  108. package/assets/claude/vesper-orchestrator.md +211 -161
  109. package/assets/claude-committed/agents/vesper-orchestrator.md +31 -0
  110. package/assets/claude-committed/skills/compact-knowledge/SKILL.md +32 -0
  111. package/assets/claude-committed/skills/reinit/SKILL.md +22 -0
  112. package/assets/claude-committed/skills/revalidate-knowledge/SKILL.md +44 -0
  113. package/assets/claude-committed/skills/revalidate-team/SKILL.md +25 -0
  114. package/assets/copilot/agents/code-planner.agent.md +418 -0
  115. package/assets/copilot/agents/code-reviewer.agent.md +90 -0
  116. package/assets/copilot/agents/code-tester.agent.md +23 -0
  117. package/assets/copilot/agents/context7.agent.md +897 -0
  118. package/assets/copilot/agents/copywriter.agent.md +182 -0
  119. package/assets/copilot/agents/feature-wrap-document.agent.md +713 -0
  120. package/assets/copilot/agents/janitor.agent.md +103 -0
  121. package/assets/copilot/agents/modernization.agent.md +646 -0
  122. package/assets/copilot/agents/principal-software-engineer.agent.md +50 -0
  123. package/assets/copilot/agents/refine-issue.agent.md +39 -0
  124. package/assets/copilot/agents/se-system-architecture-reviewer.agent.md +190 -0
  125. package/assets/copilot/agents/se-technical-writer.agent.md +432 -0
  126. package/assets/copilot/agents/skill-creator.agent.md +395 -0
  127. package/assets/copilot/agents/task-researcher.agent.md +294 -0
  128. package/assets/copilot/agents/technical-product-manager.agent.md +316 -0
  129. package/assets/copilot/agents/vision-analyst.agent.md +92 -0
  130. package/assets/copilot/agents/vitest.agent.md +603 -0
  131. package/assets/copilot/agents/workspace-learner.agent.md +439 -0
  132. package/assets/copilot/instructions-extended/flutter/flutter.instructions.md +447 -0
  133. package/assets/copilot/instructions-extended/java/java.instructions.md +81 -0
  134. package/assets/copilot/instructions-extended/nextjs-tailwind/nextjs-tailwind.instructions.md +72 -0
  135. package/assets/copilot/instructions-extended/reactjs/reactjs.instructions.md +162 -0
  136. package/assets/copilot/instructions-extended/self-explanatory-code-commenting/self-explanatory-code-commenting.instructions.md +162 -0
  137. package/assets/copilot/instructions-extended/tailwind-v4-vite/tailwind-v4-vite.instructions.md +236 -0
  138. package/assets/copilot/instructions-extended/task-implementation/task-implementation.instructions.md +223 -0
  139. package/assets/copilot/packs/backend/agents/firebase-developer.agent.md +701 -0
  140. package/assets/copilot/packs/backend/agents/nodejs-express-developer.agent.md +619 -0
  141. package/assets/copilot/packs/backend/skills/nestjs/SKILL.md +425 -0
  142. package/assets/copilot/packs/docs/skills/ai-multimodal/SKILL.md +357 -0
  143. package/assets/copilot/packs/frontend/agents/expert-nextjs-developer.agent.md +489 -0
  144. package/assets/copilot/packs/frontend/agents/expert-react-frontend-engineer.agent.md +751 -0
  145. package/assets/copilot/packs/frontend/agents/jest-react-component-analyzer.agent.md +303 -0
  146. package/assets/copilot/packs/frontend/agents/jest-react-scenario-scanner.agent.md +236 -0
  147. package/assets/copilot/packs/frontend/agents/jest-react-test-generator.agent.md +605 -0
  148. package/assets/copilot/packs/frontend/agents/jest-react-test-planner.agent.md +461 -0
  149. package/assets/copilot/packs/frontend/agents/jest-react-test-runner.agent.md +332 -0
  150. package/assets/copilot/packs/frontend/skills/nextjs/SKILL.md +179 -0
  151. package/assets/copilot/packs/integrations/agents/clickup-agent.agent.md +135 -0
  152. package/assets/copilot/packs/integrations/skills/github-actions-to-gitlab-ci/LICENSE +21 -0
  153. package/assets/copilot/packs/integrations/skills/github-actions-to-gitlab-ci/SKILL.md +370 -0
  154. package/assets/copilot/packs/integrations/skills/github-actions-to-gitlab-ci/UPSTREAM.json +7 -0
  155. package/assets/copilot/packs/integrations/skills/github-actions-to-gitlab-ci/references/marketplace-actions.md +1042 -0
  156. package/assets/copilot/packs/integrations/skills/github-actions-to-gitlab-ci/references/syntax-mapping.md +906 -0
  157. package/assets/copilot/packs/integrations/skills/github-actions-to-gitlab-ci/references/validator.md +91 -0
  158. package/assets/copilot/packs/integrations/skills/github-actions-to-gitlab-ci/scripts/validate.sh +206 -0
  159. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/LICENSE +21 -0
  160. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/SKILL.md +422 -0
  161. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/UPSTREAM.json +7 -0
  162. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/examples/README.md +70 -0
  163. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/examples/node-mocha/.gitlab-ci.yml +55 -0
  164. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/examples/node-mocha/README.md +28 -0
  165. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/examples/python-click/.gitlab-ci.yml +133 -0
  166. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/examples/python-click/README.md +31 -0
  167. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/.gitlab-ci.after-layered.yml +59 -0
  168. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/.gitlab-ci.before.yml +34 -0
  169. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/.gitlab-ci.broken.yml +49 -0
  170. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/.gitlab-ci.optimized.yml +65 -0
  171. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/.gitlab-ci.yml +101 -0
  172. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/examples/python-uv-tox/README.md +42 -0
  173. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/references/caching.md +170 -0
  174. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/references/catalog.md +173 -0
  175. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/references/debugging.md +168 -0
  176. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/references/images.md +79 -0
  177. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/references/mental-model.md +96 -0
  178. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/references/onboarding.md +122 -0
  179. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/references/optimize.md +301 -0
  180. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/references/recipes.md +426 -0
  181. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/references/syntax.md +319 -0
  182. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/references/verification.md +278 -0
  183. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/scripts/catalog-search.sh +76 -0
  184. package/assets/copilot/packs/integrations/skills/gitlab-ci-skill/scripts/verify.sh +332 -0
  185. package/assets/copilot/packs/integrations/skills/gitlab-guardrails/SKILL.md +62 -0
  186. package/assets/copilot/packs/playwright/agents/playwright-component-analyzer.agent.md +216 -0
  187. package/assets/copilot/packs/playwright/agents/playwright-scenario-scanner.agent.md +180 -0
  188. package/assets/copilot/packs/playwright/agents/playwright-test-generator.agent.md +410 -0
  189. package/assets/copilot/packs/playwright/agents/playwright-test-planner.agent.md +398 -0
  190. package/assets/copilot/packs/playwright/agents/playwright-tester.agent.md +65 -0
  191. package/assets/copilot/packs/playwright/skills/chrome-devtools/SKILL.md +360 -0
  192. package/assets/copilot/packs/playwright/skills/chrome-devtools/scripts/README.md +213 -0
  193. package/assets/copilot/packs/playwright/skills/playwright-generate-test/SKILL.md +25 -0
  194. package/assets/copilot/packs/playwright/skills/playwright-typescript/SKILL.md +86 -0
  195. package/assets/copilot/packs/polyglot/skills/flutter/SKILL.md +447 -0
  196. package/assets/copilot/packs/polyglot/skills/google-adk-python/SKILL.md +242 -0
  197. package/assets/copilot/packs/styles/skills/i-have-adhd/LICENSE +21 -0
  198. package/assets/copilot/packs/styles/skills/i-have-adhd/SKILL.md +142 -0
  199. package/assets/copilot/packs/styles/skills/i-have-adhd/UPSTREAM.json +7 -0
  200. package/assets/copilot/packs/styles/skills/ponytail/LICENSE +21 -0
  201. package/assets/copilot/packs/styles/skills/ponytail/SKILL.md +120 -0
  202. package/assets/copilot/packs/styles/skills/ponytail/UPSTREAM.json +7 -0
  203. package/assets/copilot/prompts/compact-knowledge.prompt.md +27 -0
  204. package/assets/copilot/prompts/reinit.prompt.md +19 -0
  205. package/assets/copilot/prompts/revalidate-knowledge.prompt.md +39 -0
  206. package/assets/copilot/prompts/revalidate-team.prompt.md +21 -0
  207. package/assets/copilot/skills/agent-fundamentals/SKILL.md +89 -0
  208. package/assets/copilot/skills/agent-fundamentals/references/codebase-query.md +95 -0
  209. package/assets/copilot/skills/agent-fundamentals/references/terminal-discipline.md +94 -0
  210. package/assets/copilot/skills/agent-fundamentals/references/tool-usage-patterns.md +67 -0
  211. package/assets/copilot/skills/create-specification/SKILL.md +136 -0
  212. package/assets/copilot/skills/document/SKILL.md +45 -0
  213. package/assets/copilot/skills/mcp-memory/SKILL.md +97 -0
  214. package/assets/copilot/skills/mcp-memory/references/agent-memory-protocol.md +186 -0
  215. package/assets/copilot/skills/mcp-memory/references/entity-schema.md +141 -0
  216. package/assets/copilot/skills/mcp-memory/references/memory-hygiene.md +163 -0
  217. package/assets/copilot/skills/nodejs-javascript-vitest/SKILL.md +34 -0
  218. package/assets/copilot/skills/project-management/SKILL.md +129 -0
  219. package/assets/copilot/skills/repo-story-time/SKILL.md +134 -0
  220. package/assets/copilot/skills/self-explanatory-code-commenting/SKILL.md +162 -0
  221. package/assets/copilot/skills/sequential-thinking/README.md +118 -0
  222. package/assets/copilot/skills/skill-creator/SKILL.md +237 -0
  223. package/assets/copilot/skills/skill-creator/agent_skills_spec.md +55 -0
  224. package/assets/copilot/skills/task-implementation/SKILL.md +223 -0
  225. package/assets/copilot/skills/vesper-catalog-editing-safety/SKILL.md +172 -0
  226. package/assets/copilot/skills/vesper-orchestration/SKILL.md +71 -0
  227. package/assets/copilot/skills/vesper-orchestration/references/implement-pipeline.md +337 -0
  228. package/assets/copilot/skills/vesper-orchestration/references/multi-task-dispatch.md +13 -0
  229. package/assets/copilot/skills/vesper-orchestration/references/qa-e2e-pipeline.md +160 -0
  230. package/assets/copilot/skills/vesper-orchestration/references/reinit-pipeline.md +98 -0
  231. package/assets/copilot/skills/vesper-orchestration/references/research-plan-pipeline.md +214 -0
  232. package/assets/copilot/skills/vscode-agent-config/SKILL.md +95 -0
  233. package/assets/hooks/post-checkout +33 -14
  234. package/assets/hooks/pre-commit +54 -39
  235. package/assets/legacy/claude-1x-digests.json +3354 -0
  236. package/assets/manifest.json +174 -6
  237. package/dist/cli.min.js +184 -51
  238. package/package.json +11 -2
  239. package/scripts/__snapshots__/generate-claude-assets.test.js.snap +31 -0
  240. package/scripts/generate-claude-assets.js +569 -529
  241. package/scripts/generate-claude-assets.strict.test.js +303 -0
  242. package/scripts/generate-claude-assets.test.js +605 -168
  243. package/scripts/generate-legacy-digests.js +192 -0
  244. package/scripts/generate-manifests.js +26 -147
  245. package/scripts/packs-layout.test.js +378 -0
  246. package/src/mcp/vesper-indexing/dist/cli-index.js +0 -1
  247. package/src/mcp/vesper-indexing/dist/cli-index.js.map +1 -1
  248. package/assets/agents/clickup-agent/clickup-agent.agent.md +0 -135
  249. package/assets/agents/code-tester/code-tester.agent.md +0 -35
  250. package/assets/agents/context7/context7.agent.md +0 -901
  251. package/assets/agents/copywriter/copywriter.agent.md +0 -182
  252. package/assets/agents/expert-nextjs-developer/expert-nextjs-developer.agent.md +0 -502
  253. package/assets/agents/expert-react-frontend-engineer/expert-react-frontend-engineer.agent.md +0 -785
  254. package/assets/agents/firebase-developer/firebase-developer.agent.md +0 -714
  255. package/assets/agents/janitor/janitor.agent.md +0 -136
  256. package/assets/agents/jest-react-component-analyzer/jest-react-component-analyzer.agent.md +0 -308
  257. package/assets/agents/jest-react-scenario-scanner/jest-react-scenario-scanner.agent.md +0 -236
  258. package/assets/agents/jest-react-test-generator/jest-react-test-generator.agent.md +0 -605
  259. package/assets/agents/jest-react-test-planner/jest-react-test-planner.agent.md +0 -461
  260. package/assets/agents/jest-react-test-runner/jest-react-test-runner.agent.md +0 -332
  261. package/assets/agents/modernization/modernization.agent.md +0 -660
  262. package/assets/agents/nodejs-express-developer/nodejs-express-developer.agent.md +0 -632
  263. package/assets/agents/playwright-component-analyzer/playwright-component-analyzer.agent.md +0 -221
  264. package/assets/agents/playwright-scenario-scanner/playwright-scenario-scanner.agent.md +0 -180
  265. package/assets/agents/playwright-test-generator/playwright-test-generator.agent.md +0 -410
  266. package/assets/agents/playwright-test-planner/playwright-test-planner.agent.md +0 -398
  267. package/assets/agents/playwright-tester/playwright-tester.agent.md +0 -65
  268. package/assets/agents/refine-issue/refine-issue.agent.md +0 -39
  269. package/assets/agents/vitest/vitest.agent.md +0 -603
  270. package/assets/claude/agents/history-logger.md +0 -102
  271. package/assets/claude/commands/compact-knowledge.md +0 -10
  272. package/assets/claude/commands/create-specification.md +0 -131
  273. package/assets/claude/commands/playwright-generate-test.md +0 -24
  274. package/assets/claude/commands/reinit.md +0 -5
  275. package/assets/claude/commands/repo-story-time.md +0 -154
  276. package/assets/claude/commands/revalidate-knowledge.md +0 -17
  277. package/assets/claude/commands/revalidate-team.md +0 -5
  278. package/assets/claude/skills/gitlab-guardrails/SKILL.md +0 -62
  279. package/assets/claude/skills/google-adk-python/SKILL.md +0 -237
  280. package/assets/core/agents/code-planner.agent.md +0 -454
  281. package/assets/core/agents/code-reviewer.agent.md +0 -98
  282. package/assets/core/agents/feature-wrap-document.agent.md +0 -593
  283. package/assets/core/agents/history-logger.agent.md +0 -112
  284. package/assets/core/agents/principal-software-engineer.agent.md +0 -80
  285. package/assets/core/agents/se-system-architecture-reviewer.agent.md +0 -203
  286. package/assets/core/agents/se-technical-writer.agent.md +0 -446
  287. package/assets/core/agents/skill-creator.agent.md +0 -441
  288. package/assets/core/agents/task-researcher.agent.md +0 -329
  289. package/assets/core/agents/technical-product-manager.agent.md +0 -328
  290. package/assets/core/agents/vesper.agent.md +0 -679
  291. package/assets/core/agents/vision-analyst.agent.md +0 -93
  292. package/assets/core/agents/workspace-learner.agent.md +0 -509
  293. package/assets/core/instructions/terminal-discipline.instructions.md +0 -27
  294. package/assets/core/instructions/vesper-cli-development.instructions.md +0 -85
  295. package/assets/core/instructions/vesper-implement.instructions.md +0 -250
  296. package/assets/core/instructions/vesper-qa-e2e.instructions.md +0 -155
  297. package/assets/core/instructions/vesper-reinit.instructions.md +0 -99
  298. package/assets/core/instructions/vesper-research-plan.instructions.md +0 -193
  299. package/assets/core/instructions/vscode-mcp-tools.instructions.md +0 -138
  300. package/assets/core/prompts/compact-knowledge.prompt.md +0 -14
  301. package/assets/core/prompts/memory-update.prompt.md +0 -94
  302. package/assets/core/prompts/revalidate-knowledge.prompt.md +0 -19
  303. package/assets/core/skills/agent-fundamentals/SKILL.md +0 -75
  304. package/assets/core/skills/agent-fundamentals/references/codebase-query.md +0 -106
  305. package/assets/core/skills/agent-fundamentals/references/terminal-discipline.md +0 -94
  306. package/assets/core/skills/agent-fundamentals/references/tool-usage-patterns.md +0 -72
  307. package/assets/core/skills/mcp-memory/SKILL.md +0 -109
  308. package/assets/core/skills/mcp-memory/references/agent-memory-protocol.md +0 -195
  309. package/assets/core/skills/mcp-memory/references/entity-schema.md +0 -160
  310. package/assets/core/skills/mcp-memory/references/memory-hygiene.md +0 -166
  311. package/assets/core/skills/vesper-orchestration/SKILL.md +0 -31
  312. package/assets/core/skills/vesper-orchestration/references/implement-pipeline.md +0 -244
  313. package/assets/core/skills/vesper-orchestration/references/qa-e2e-pipeline.md +0 -151
  314. package/assets/core/skills/vesper-orchestration/references/reinit-pipeline.md +0 -87
  315. package/assets/core/skills/vesper-orchestration/references/research-plan-pipeline.md +0 -189
  316. package/assets/instructions/document/document.instructions.md +0 -40
  317. package/assets/instructions/flutter/dart-n-flutter.instructions.md +0 -447
  318. package/assets/instructions/java/java.instructions.md +0 -81
  319. package/assets/instructions/nestjs/nestjs.instructions.md +0 -424
  320. package/assets/instructions/nextjs/nextjs.instructions.md +0 -178
  321. package/assets/instructions/nextjs-tailwind/nextjs-tailwind.instructions.md +0 -72
  322. package/assets/instructions/nodejs-javascript-vitest/nodejs-javascript-vitest.instructions.md +0 -33
  323. package/assets/instructions/playwright-typescript/playwright-typescript.instructions.md +0 -85
  324. package/assets/instructions/project-management/project-management.instructions.md +0 -124
  325. package/assets/instructions/reactjs/reactjs.instructions.md +0 -162
  326. package/assets/instructions/self-explanatory-code-commenting/self-explanatory-code-commenting.instructions.md +0 -162
  327. package/assets/instructions/tailwind-v4-vite/tailwind-v4-vite.instructions.md +0 -236
  328. package/assets/instructions/task-implementation/task-implementation.instructions.md +0 -223
  329. package/assets/prompts/create-specification/create-specification.prompt.md +0 -151
  330. package/assets/prompts/playwright-generate-test/playwright-generate-test.prompt.md +0 -26
  331. package/assets/prompts/repo-story-time/repo-story-time.prompt.md +0 -156
  332. package/assets/skills/.env.example +0 -32
  333. package/assets/skills/.mcp.json.example +0 -19
  334. package/assets/skills/README.md +0 -111
  335. package/assets/skills/aesthetic/manifest.json +0 -14
  336. package/assets/skills/ai-multimodal/SKILL.md +0 -357
  337. package/assets/skills/ai-multimodal/manifest.json +0 -20
  338. package/assets/skills/backend-development/manifest.json +0 -19
  339. package/assets/skills/better-auth/manifest.json +0 -15
  340. package/assets/skills/chrome-devtools/SKILL.md +0 -360
  341. package/assets/skills/chrome-devtools/manifest.json +0 -31
  342. package/assets/skills/chrome-devtools/scripts/README.md +0 -213
  343. package/assets/skills/code-review/manifest.json +0 -11
  344. package/assets/skills/databases/manifest.json +0 -25
  345. package/assets/skills/debugging/manifest.json +0 -17
  346. package/assets/skills/devops/manifest.json +0 -25
  347. package/assets/skills/docs-seeker/manifest.json +0 -15
  348. package/assets/skills/document-skills/manifest.json +0 -137
  349. package/assets/skills/frontend-design/manifest.json +0 -9
  350. package/assets/skills/gitlab-guardrails/SKILL.md +0 -62
  351. package/assets/skills/gitlab-guardrails/manifest.json +0 -8
  352. package/assets/skills/google-adk-python/SKILL.md +0 -237
  353. package/assets/skills/google-adk-python/manifest.json +0 -8
  354. package/assets/skills/mcp-builder/manifest.json +0 -17
  355. package/assets/skills/mermaidjs-v11/manifest.json +0 -13
  356. package/assets/skills/premium-frontend-ui/manifest.json +0 -8
  357. package/assets/skills/problem-solving/manifest.json +0 -14
  358. package/assets/skills/react-mui-tanstack/manifest.json +0 -18
  359. package/assets/skills/sequential-thinking/README.md +0 -118
  360. package/assets/skills/sequential-thinking/manifest.json +0 -11
  361. package/assets/skills/skill-creator/SKILL.md +0 -237
  362. package/assets/skills/skill-creator/manifest.json +0 -12
  363. package/assets/skills/tailwind-shadcn/manifest.json +0 -104
  364. package/assets/skills/vercel-react-best-practices/manifest.json +0 -60
  365. package/assets/skills/vesper-catalog-editing-safety/SKILL.md +0 -142
  366. package/assets/skills/vesper-catalog-editing-safety/manifest.json +0 -8
  367. package/assets/skills/vscode-agent-config/SKILL.md +0 -90
  368. package/assets/skills/vscode-agent-config/manifest.json +0 -8
  369. package/assets/skills/web-design-guidelines/manifest.json +0 -8
  370. package/assets/skills/web-frameworks/manifest.json +0 -24
  371. package/assets/vendor/i-have-adhd/VENDOR.md +0 -56
  372. package/assets/vendor/ponytail/VENDOR.md +0 -115
  373. /package/assets/claude/{agents → packs/backend/agents}/firebase-developer.md +0 -0
  374. /package/assets/claude/{agents → packs/backend/agents}/nodejs-express-developer.md +0 -0
  375. /package/assets/claude/{skills → packs/backend/skills}/backend-development/SKILL.md +0 -0
  376. /package/assets/claude/{skills → packs/backend/skills}/backend-development/references/backend-api-design.md +0 -0
  377. /package/assets/claude/{skills → packs/backend/skills}/backend-development/references/backend-architecture.md +0 -0
  378. /package/assets/claude/{skills → packs/backend/skills}/backend-development/references/backend-authentication.md +0 -0
  379. /package/assets/claude/{skills → packs/backend/skills}/backend-development/references/backend-code-quality.md +0 -0
  380. /package/assets/claude/{skills → packs/backend/skills}/backend-development/references/backend-debugging.md +0 -0
  381. /package/assets/claude/{skills → packs/backend/skills}/backend-development/references/backend-devops.md +0 -0
  382. /package/assets/claude/{skills → packs/backend/skills}/backend-development/references/backend-mindset.md +0 -0
  383. /package/assets/claude/{skills → packs/backend/skills}/backend-development/references/backend-performance.md +0 -0
  384. /package/assets/claude/{skills → packs/backend/skills}/backend-development/references/backend-security.md +0 -0
  385. /package/assets/claude/{skills → packs/backend/skills}/backend-development/references/backend-technologies.md +0 -0
  386. /package/assets/claude/{skills → packs/backend/skills}/backend-development/references/backend-testing.md +0 -0
  387. /package/assets/claude/{skills → packs/backend/skills}/better-auth/SKILL.md +0 -0
  388. /package/assets/claude/{skills → packs/backend/skills}/better-auth/references/advanced-features.md +0 -0
  389. /package/assets/claude/{skills → packs/backend/skills}/better-auth/references/database-integration.md +0 -0
  390. /package/assets/claude/{skills → packs/backend/skills}/better-auth/references/email-password-auth.md +0 -0
  391. /package/assets/claude/{skills → packs/backend/skills}/better-auth/references/oauth-providers.md +0 -0
  392. /package/assets/claude/{skills → packs/backend/skills}/better-auth/scripts/.coverage +0 -0
  393. /package/assets/claude/{skills → packs/backend/skills}/better-auth/scripts/better_auth_init.py +0 -0
  394. /package/assets/claude/{skills → packs/backend/skills}/better-auth/scripts/requirements.txt +0 -0
  395. /package/assets/claude/{skills → packs/backend/skills}/better-auth/scripts/tests/.coverage +0 -0
  396. /package/assets/claude/{skills → packs/backend/skills}/better-auth/scripts/tests/test_better_auth_init.py +0 -0
  397. /package/assets/claude/{skills → packs/backend/skills}/databases/SKILL.md +0 -0
  398. /package/assets/claude/{skills → packs/backend/skills}/databases/references/mongodb-aggregation.md +0 -0
  399. /package/assets/claude/{skills → packs/backend/skills}/databases/references/mongodb-atlas.md +0 -0
  400. /package/assets/claude/{skills → packs/backend/skills}/databases/references/mongodb-crud.md +0 -0
  401. /package/assets/claude/{skills → packs/backend/skills}/databases/references/mongodb-indexing.md +0 -0
  402. /package/assets/claude/{skills → packs/backend/skills}/databases/references/postgresql-administration.md +0 -0
  403. /package/assets/claude/{skills → packs/backend/skills}/databases/references/postgresql-performance.md +0 -0
  404. /package/assets/claude/{skills → packs/backend/skills}/databases/references/postgresql-psql-cli.md +0 -0
  405. /package/assets/claude/{skills → packs/backend/skills}/databases/references/postgresql-queries.md +0 -0
  406. /package/assets/claude/{skills → packs/backend/skills}/databases/scripts/.coverage +0 -0
  407. /package/assets/claude/{skills → packs/backend/skills}/databases/scripts/db_backup.py +0 -0
  408. /package/assets/claude/{skills → packs/backend/skills}/databases/scripts/db_migrate.py +0 -0
  409. /package/assets/claude/{skills → packs/backend/skills}/databases/scripts/db_performance_check.py +0 -0
  410. /package/assets/claude/{skills → packs/backend/skills}/databases/scripts/requirements.txt +0 -0
  411. /package/assets/claude/{skills → packs/backend/skills}/databases/scripts/tests/coverage-db.json +0 -0
  412. /package/assets/claude/{skills → packs/backend/skills}/databases/scripts/tests/requirements.txt +0 -0
  413. /package/assets/claude/{skills → packs/backend/skills}/databases/scripts/tests/test_db_backup.py +0 -0
  414. /package/assets/claude/{skills → packs/backend/skills}/databases/scripts/tests/test_db_migrate.py +0 -0
  415. /package/assets/claude/{skills → packs/backend/skills}/databases/scripts/tests/test_db_performance_check.py +0 -0
  416. /package/assets/claude/{skills → packs/backend/skills}/devops/.env.example +0 -0
  417. /package/assets/claude/{skills → packs/backend/skills}/devops/SKILL.md +0 -0
  418. /package/assets/claude/{skills → packs/backend/skills}/devops/references/browser-rendering.md +0 -0
  419. /package/assets/claude/{skills → packs/backend/skills}/devops/references/cloudflare-d1-kv.md +0 -0
  420. /package/assets/claude/{skills → packs/backend/skills}/devops/references/cloudflare-platform.md +0 -0
  421. /package/assets/claude/{skills → packs/backend/skills}/devops/references/cloudflare-r2-storage.md +0 -0
  422. /package/assets/claude/{skills → packs/backend/skills}/devops/references/cloudflare-workers-advanced.md +0 -0
  423. /package/assets/claude/{skills → packs/backend/skills}/devops/references/cloudflare-workers-apis.md +0 -0
  424. /package/assets/claude/{skills → packs/backend/skills}/devops/references/cloudflare-workers-basics.md +0 -0
  425. /package/assets/claude/{skills → packs/backend/skills}/devops/references/docker-basics.md +0 -0
  426. /package/assets/claude/{skills → packs/backend/skills}/devops/references/docker-compose.md +0 -0
  427. /package/assets/claude/{skills → packs/backend/skills}/devops/references/gcloud-platform.md +0 -0
  428. /package/assets/claude/{skills → packs/backend/skills}/devops/references/gcloud-services.md +0 -0
  429. /package/assets/claude/{skills → packs/backend/skills}/devops/scripts/cloudflare_deploy.py +0 -0
  430. /package/assets/claude/{skills → packs/backend/skills}/devops/scripts/docker_optimize.py +0 -0
  431. /package/assets/claude/{skills → packs/backend/skills}/devops/scripts/requirements.txt +0 -0
  432. /package/assets/claude/{skills → packs/backend/skills}/devops/scripts/tests/requirements.txt +0 -0
  433. /package/assets/claude/{skills → packs/backend/skills}/devops/scripts/tests/test_cloudflare_deploy.py +0 -0
  434. /package/assets/claude/{skills → packs/backend/skills}/devops/scripts/tests/test_docker_optimize.py +0 -0
  435. /package/assets/claude/{skills → packs/backend/skills}/nestjs/SKILL.md +0 -0
  436. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/.env.example +0 -0
  437. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/SKILL.md +0 -0
  438. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/references/audio-processing.md +0 -0
  439. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/references/image-generation.md +0 -0
  440. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/references/video-analysis.md +0 -0
  441. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/references/vision-understanding.md +0 -0
  442. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/scripts/document_converter.py +0 -0
  443. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/scripts/gemini_batch_process.py +0 -0
  444. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/scripts/media_optimizer.py +0 -0
  445. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/scripts/requirements.txt +0 -0
  446. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/scripts/tests/.coverage +0 -0
  447. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/scripts/tests/requirements.txt +0 -0
  448. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/scripts/tests/test_document_converter.py +0 -0
  449. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/scripts/tests/test_gemini_batch_process.py +0 -0
  450. /package/assets/claude/{skills → packs/docs/skills}/ai-multimodal/scripts/tests/test_media_optimizer.py +0 -0
  451. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/LICENSE.txt +0 -0
  452. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/SKILL.md +0 -0
  453. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/docx-js.md +0 -0
  454. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
  455. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
  456. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
  457. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
  458. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
  459. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
  460. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
  461. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
  462. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
  463. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
  464. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
  465. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
  466. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
  467. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
  468. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
  469. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
  470. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
  471. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
  472. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
  473. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
  474. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
  475. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
  476. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
  477. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
  478. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
  479. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
  480. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
  481. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
  482. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
  483. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
  484. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
  485. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/mce/mc.xsd +0 -0
  486. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +0 -0
  487. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +0 -0
  488. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +0 -0
  489. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -0
  490. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -0
  491. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
  492. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -0
  493. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/scripts/pack.py +0 -0
  494. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/scripts/unpack.py +0 -0
  495. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/scripts/validate.py +0 -0
  496. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/scripts/validation/__init__.py +0 -0
  497. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/scripts/validation/base.py +0 -0
  498. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/scripts/validation/docx.py +0 -0
  499. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/scripts/validation/pptx.py +0 -0
  500. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml/scripts/validation/redlining.py +0 -0
  501. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/ooxml.md +0 -0
  502. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/scripts/__init__.py +0 -0
  503. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/scripts/document.py +0 -0
  504. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/scripts/templates/comments.xml +0 -0
  505. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/scripts/templates/commentsExtended.xml +0 -0
  506. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/scripts/templates/commentsExtensible.xml +0 -0
  507. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/scripts/templates/commentsIds.xml +0 -0
  508. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/scripts/templates/people.xml +0 -0
  509. /package/assets/claude/{skills → packs/docs/skills}/document-skills/docx/scripts/utilities.py +0 -0
  510. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/LICENSE.txt +0 -0
  511. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/SKILL.md +0 -0
  512. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/forms.md +0 -0
  513. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/reference.md +0 -0
  514. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/scripts/check_bounding_boxes.py +0 -0
  515. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/scripts/check_bounding_boxes_test.py +0 -0
  516. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/scripts/check_fillable_fields.py +0 -0
  517. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/scripts/convert_pdf_to_images.py +0 -0
  518. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/scripts/create_validation_image.py +0 -0
  519. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/scripts/extract_form_field_info.py +0 -0
  520. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/scripts/fill_fillable_fields.py +0 -0
  521. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +0 -0
  522. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/LICENSE.txt +0 -0
  523. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/SKILL.md +0 -0
  524. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/html2pptx.md +0 -0
  525. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
  526. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
  527. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
  528. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
  529. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
  530. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
  531. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
  532. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
  533. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
  534. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
  535. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
  536. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
  537. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
  538. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
  539. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
  540. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
  541. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
  542. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
  543. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
  544. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
  545. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
  546. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
  547. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
  548. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
  549. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
  550. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
  551. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
  552. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
  553. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
  554. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
  555. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
  556. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/mce/mc.xsd +0 -0
  557. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -0
  558. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -0
  559. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -0
  560. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -0
  561. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -0
  562. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
  563. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -0
  564. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/scripts/pack.py +0 -0
  565. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/scripts/unpack.py +0 -0
  566. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/scripts/validate.py +0 -0
  567. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/scripts/validation/__init__.py +0 -0
  568. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/scripts/validation/base.py +0 -0
  569. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/scripts/validation/docx.py +0 -0
  570. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/scripts/validation/pptx.py +0 -0
  571. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml/scripts/validation/redlining.py +0 -0
  572. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/ooxml.md +0 -0
  573. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/scripts/html2pptx.js +0 -0
  574. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/scripts/inventory.py +0 -0
  575. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/scripts/rearrange.py +0 -0
  576. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/scripts/replace.py +0 -0
  577. /package/assets/claude/{skills → packs/docs/skills}/document-skills/pptx/scripts/thumbnail.py +0 -0
  578. /package/assets/claude/{skills → packs/docs/skills}/document-skills/xlsx/LICENSE.txt +0 -0
  579. /package/assets/claude/{skills → packs/docs/skills}/document-skills/xlsx/SKILL.md +0 -0
  580. /package/assets/claude/{skills → packs/docs/skills}/document-skills/xlsx/recalc.py +0 -0
  581. /package/assets/claude/{agents → packs/frontend/agents}/expert-nextjs-developer.md +0 -0
  582. /package/assets/claude/{agents → packs/frontend/agents}/expert-react-frontend-engineer.md +0 -0
  583. /package/assets/claude/{agents → packs/frontend/agents}/jest-react-component-analyzer.md +0 -0
  584. /package/assets/claude/{agents → packs/frontend/agents}/jest-react-scenario-scanner.md +0 -0
  585. /package/assets/claude/{agents → packs/frontend/agents}/jest-react-test-generator.md +0 -0
  586. /package/assets/claude/{agents → packs/frontend/agents}/jest-react-test-planner.md +0 -0
  587. /package/assets/claude/{agents → packs/frontend/agents}/jest-react-test-runner.md +0 -0
  588. /package/assets/claude/{skills → packs/frontend/skills}/aesthetic/SKILL.md +0 -0
  589. /package/assets/claude/{skills → packs/frontend/skills}/aesthetic/assets/design-guideline-template.md +0 -0
  590. /package/assets/claude/{skills → packs/frontend/skills}/aesthetic/assets/design-story-template.md +0 -0
  591. /package/assets/claude/{skills → packs/frontend/skills}/aesthetic/references/design-principles.md +0 -0
  592. /package/assets/claude/{skills → packs/frontend/skills}/aesthetic/references/design-resources.md +0 -0
  593. /package/assets/claude/{skills → packs/frontend/skills}/aesthetic/references/micro-interactions.md +0 -0
  594. /package/assets/claude/{skills → packs/frontend/skills}/aesthetic/references/storytelling-design.md +0 -0
  595. /package/assets/claude/{skills → packs/frontend/skills}/frontend-design/SKILL.md +0 -0
  596. /package/assets/claude/{skills → packs/frontend/skills}/frontend-design/references/animejs.md +0 -0
  597. /package/assets/claude/{skills → packs/frontend/skills}/nextjs/SKILL.md +0 -0
  598. /package/assets/claude/{skills → packs/frontend/skills}/premium-frontend-ui/SKILL.md +0 -0
  599. /package/assets/claude/{skills → packs/frontend/skills}/react-mui-tanstack/SKILL.md +0 -0
  600. /package/assets/claude/{skills → packs/frontend/skills}/react-mui-tanstack/resources/common-patterns.md +0 -0
  601. /package/assets/claude/{skills → packs/frontend/skills}/react-mui-tanstack/resources/complete-examples.md +0 -0
  602. /package/assets/claude/{skills → packs/frontend/skills}/react-mui-tanstack/resources/component-patterns.md +0 -0
  603. /package/assets/claude/{skills → packs/frontend/skills}/react-mui-tanstack/resources/data-fetching.md +0 -0
  604. /package/assets/claude/{skills → packs/frontend/skills}/react-mui-tanstack/resources/file-organization.md +0 -0
  605. /package/assets/claude/{skills → packs/frontend/skills}/react-mui-tanstack/resources/loading-and-error-states.md +0 -0
  606. /package/assets/claude/{skills → packs/frontend/skills}/react-mui-tanstack/resources/performance.md +0 -0
  607. /package/assets/claude/{skills → packs/frontend/skills}/react-mui-tanstack/resources/routing-guide.md +0 -0
  608. /package/assets/claude/{skills → packs/frontend/skills}/react-mui-tanstack/resources/styling-guide.md +0 -0
  609. /package/assets/claude/{skills → packs/frontend/skills}/react-mui-tanstack/resources/typescript-standards.md +0 -0
  610. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/LICENSE.txt +0 -0
  611. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/SKILL.md +0 -0
  612. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/ArsenalSC-OFL.txt +0 -0
  613. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  614. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  615. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BigShoulders-OFL.txt +0 -0
  616. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  617. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Boldonse-OFL.txt +0 -0
  618. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Boldonse-Regular.ttf +0 -0
  619. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  620. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BricolageGrotesque-OFL.txt +0 -0
  621. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  622. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  623. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  624. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/CrimsonPro-OFL.txt +0 -0
  625. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  626. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/DMMono-OFL.txt +0 -0
  627. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/DMMono-Regular.ttf +0 -0
  628. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/EricaOne-OFL.txt +0 -0
  629. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/EricaOne-Regular.ttf +0 -0
  630. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/GeistMono-Bold.ttf +0 -0
  631. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/GeistMono-OFL.txt +0 -0
  632. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/GeistMono-Regular.ttf +0 -0
  633. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Gloock-OFL.txt +0 -0
  634. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Gloock-Regular.ttf +0 -0
  635. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  636. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexMono-OFL.txt +0 -0
  637. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  638. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  639. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  640. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  641. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  642. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  643. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  644. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  645. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSans-OFL.txt +0 -0
  646. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  647. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  648. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  649. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Italiana-OFL.txt +0 -0
  650. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Italiana-Regular.ttf +0 -0
  651. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  652. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/JetBrainsMono-OFL.txt +0 -0
  653. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  654. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Jura-Light.ttf +0 -0
  655. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Jura-Medium.ttf +0 -0
  656. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Jura-OFL.txt +0 -0
  657. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/LibreBaskerville-OFL.txt +0 -0
  658. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  659. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Lora-Bold.ttf +0 -0
  660. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  661. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Lora-Italic.ttf +0 -0
  662. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Lora-OFL.txt +0 -0
  663. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Lora-Regular.ttf +0 -0
  664. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/NationalPark-Bold.ttf +0 -0
  665. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/NationalPark-OFL.txt +0 -0
  666. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/NationalPark-Regular.ttf +0 -0
  667. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -0
  668. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  669. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Outfit-Bold.ttf +0 -0
  670. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Outfit-OFL.txt +0 -0
  671. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Outfit-Regular.ttf +0 -0
  672. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  673. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/PixelifySans-OFL.txt +0 -0
  674. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/PoiretOne-OFL.txt +0 -0
  675. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  676. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  677. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/RedHatMono-OFL.txt +0 -0
  678. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  679. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Silkscreen-OFL.txt +0 -0
  680. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  681. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  682. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/SmoochSans-OFL.txt +0 -0
  683. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Tektur-Medium.ttf +0 -0
  684. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Tektur-OFL.txt +0 -0
  685. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Tektur-Regular.ttf +0 -0
  686. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/WorkSans-Bold.ttf +0 -0
  687. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  688. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/WorkSans-Italic.ttf +0 -0
  689. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/WorkSans-OFL.txt +0 -0
  690. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/WorkSans-Regular.ttf +0 -0
  691. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/YoungSerif-OFL.txt +0 -0
  692. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  693. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/references/canvas-design-system.md +0 -0
  694. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/references/shadcn-accessibility.md +0 -0
  695. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/references/shadcn-components.md +0 -0
  696. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/references/shadcn-theming.md +0 -0
  697. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/references/tailwind-customization.md +0 -0
  698. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/references/tailwind-responsive.md +0 -0
  699. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/references/tailwind-utilities.md +0 -0
  700. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/scripts/.coverage +0 -0
  701. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/scripts/requirements.txt +0 -0
  702. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/scripts/shadcn_add.py +0 -0
  703. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/scripts/tailwind_config_gen.py +0 -0
  704. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/scripts/tests/coverage-ui.json +0 -0
  705. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/scripts/tests/requirements.txt +0 -0
  706. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/scripts/tests/test_shadcn_add.py +0 -0
  707. /package/assets/claude/{skills → packs/frontend/skills}/tailwind-shadcn/scripts/tests/test_tailwind_config_gen.py +0 -0
  708. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/AGENTS.md +0 -0
  709. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/README.md +0 -0
  710. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/SKILL.md +0 -0
  711. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/metadata.json +0 -0
  712. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/_sections.md +0 -0
  713. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/_template.md +0 -0
  714. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -0
  715. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/advanced-use-latest.md +0 -0
  716. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/async-api-routes.md +0 -0
  717. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/async-defer-await.md +0 -0
  718. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/async-dependencies.md +0 -0
  719. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/async-parallel.md +0 -0
  720. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -0
  721. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -0
  722. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/bundle-conditional.md +0 -0
  723. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -0
  724. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -0
  725. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/bundle-preload.md +0 -0
  726. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/client-event-listeners.md +0 -0
  727. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -0
  728. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -0
  729. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/client-swr-dedup.md +0 -0
  730. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -0
  731. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-cache-function-results.md +0 -0
  732. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-cache-property-access.md +0 -0
  733. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-cache-storage.md +0 -0
  734. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-combine-iterations.md +0 -0
  735. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-early-exit.md +0 -0
  736. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -0
  737. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-index-maps.md +0 -0
  738. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-length-check-first.md +0 -0
  739. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-min-max-loop.md +0 -0
  740. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -0
  741. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -0
  742. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rendering-activity.md +0 -0
  743. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -0
  744. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -0
  745. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -0
  746. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -0
  747. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -0
  748. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -0
  749. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -0
  750. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rerender-dependencies.md +0 -0
  751. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rerender-derived-state.md +0 -0
  752. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -0
  753. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -0
  754. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rerender-memo.md +0 -0
  755. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/rerender-transitions.md +0 -0
  756. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -0
  757. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/server-cache-lru.md +0 -0
  758. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/server-cache-react.md +0 -0
  759. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -0
  760. /package/assets/claude/{skills → packs/frontend/skills}/vercel-react-best-practices/rules/server-serialization.md +0 -0
  761. /package/assets/claude/{skills → packs/frontend/skills}/web-design-guidelines/SKILL.md +0 -0
  762. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/SKILL.md +0 -0
  763. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/references/nextjs-app-router.md +0 -0
  764. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/references/nextjs-data-fetching.md +0 -0
  765. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/references/nextjs-optimization.md +0 -0
  766. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/references/nextjs-server-components.md +0 -0
  767. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/references/remix-icon-integration.md +0 -0
  768. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/references/turborepo-caching.md +0 -0
  769. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/references/turborepo-pipelines.md +0 -0
  770. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/references/turborepo-setup.md +0 -0
  771. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/scripts/.coverage +0 -0
  772. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/scripts/__init__.py +0 -0
  773. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/scripts/nextjs_init.py +0 -0
  774. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/scripts/requirements.txt +0 -0
  775. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/scripts/tests/coverage-web.json +0 -0
  776. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/scripts/tests/requirements.txt +0 -0
  777. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/scripts/tests/test_nextjs_init.py +0 -0
  778. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/scripts/tests/test_turborepo_migrate.py +0 -0
  779. /package/assets/claude/{skills → packs/frontend/skills}/web-frameworks/scripts/turborepo_migrate.py +0 -0
  780. /package/assets/claude/{agents → packs/integrations/agents}/clickup-agent.md +0 -0
  781. /package/assets/claude/{agents → packs/playwright/agents}/playwright-component-analyzer.md +0 -0
  782. /package/assets/claude/{agents → packs/playwright/agents}/playwright-scenario-scanner.md +0 -0
  783. /package/assets/claude/{agents → packs/playwright/agents}/playwright-test-generator.md +0 -0
  784. /package/assets/claude/{agents → packs/playwright/agents}/playwright-test-planner.md +0 -0
  785. /package/assets/claude/{agents → packs/playwright/agents}/playwright-tester.md +0 -0
  786. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/SKILL.md +0 -0
  787. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/references/cdp-domains.md +0 -0
  788. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/references/performance-guide.md +0 -0
  789. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/references/puppeteer-reference.md +0 -0
  790. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/PERSISTENT-BROWSER.md +0 -0
  791. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/README.md +0 -0
  792. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/__tests__/selector.test.js +0 -0
  793. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/click.js +0 -0
  794. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/close-persistent.js +0 -0
  795. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/console.js +0 -0
  796. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/evaluate.js +0 -0
  797. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/fill.js +0 -0
  798. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/install-deps.sh +0 -0
  799. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/install.sh +0 -0
  800. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/launch-persistent.js +0 -0
  801. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/lib/browser.js +0 -0
  802. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/lib/selector.js +0 -0
  803. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/navigate.js +0 -0
  804. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/network.js +0 -0
  805. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/package-lock.json +0 -0
  806. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/package.json +0 -0
  807. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/performance.js +0 -0
  808. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/screenshot.js +0 -0
  809. /package/assets/claude/{skills → packs/playwright/skills}/chrome-devtools/scripts/snapshot.js +0 -0
  810. /package/assets/claude/{skills → packs/playwright/skills}/playwright-typescript/SKILL.md +0 -0
  811. /package/assets/{vendor → claude/packs/styles/skills}/i-have-adhd/LICENSE +0 -0
  812. /package/assets/{vendor → claude/packs/styles/skills}/i-have-adhd/SKILL.md +0 -0
  813. /package/assets/{vendor → claude/packs/styles/skills}/ponytail/LICENSE +0 -0
  814. /package/assets/{vendor → claude/packs/styles/skills}/ponytail/SKILL.md +0 -0
  815. /package/assets/{skills → claude/skills/skill-creator}/agent_skills_spec.md +0 -0
  816. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/SKILL.md +0 -0
  817. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/references/backend-api-design.md +0 -0
  818. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/references/backend-architecture.md +0 -0
  819. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/references/backend-authentication.md +0 -0
  820. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/references/backend-code-quality.md +0 -0
  821. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/references/backend-debugging.md +0 -0
  822. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/references/backend-devops.md +0 -0
  823. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/references/backend-mindset.md +0 -0
  824. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/references/backend-performance.md +0 -0
  825. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/references/backend-security.md +0 -0
  826. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/references/backend-technologies.md +0 -0
  827. /package/assets/{skills → copilot/packs/backend/skills}/backend-development/references/backend-testing.md +0 -0
  828. /package/assets/{skills → copilot/packs/backend/skills}/better-auth/SKILL.md +0 -0
  829. /package/assets/{skills → copilot/packs/backend/skills}/better-auth/references/advanced-features.md +0 -0
  830. /package/assets/{skills → copilot/packs/backend/skills}/better-auth/references/database-integration.md +0 -0
  831. /package/assets/{skills → copilot/packs/backend/skills}/better-auth/references/email-password-auth.md +0 -0
  832. /package/assets/{skills → copilot/packs/backend/skills}/better-auth/references/oauth-providers.md +0 -0
  833. /package/assets/{skills → copilot/packs/backend/skills}/better-auth/scripts/.coverage +0 -0
  834. /package/assets/{skills → copilot/packs/backend/skills}/better-auth/scripts/better_auth_init.py +0 -0
  835. /package/assets/{skills → copilot/packs/backend/skills}/better-auth/scripts/requirements.txt +0 -0
  836. /package/assets/{skills → copilot/packs/backend/skills}/better-auth/scripts/tests/.coverage +0 -0
  837. /package/assets/{skills → copilot/packs/backend/skills}/better-auth/scripts/tests/test_better_auth_init.py +0 -0
  838. /package/assets/{skills → copilot/packs/backend/skills}/databases/SKILL.md +0 -0
  839. /package/assets/{skills → copilot/packs/backend/skills}/databases/references/mongodb-aggregation.md +0 -0
  840. /package/assets/{skills → copilot/packs/backend/skills}/databases/references/mongodb-atlas.md +0 -0
  841. /package/assets/{skills → copilot/packs/backend/skills}/databases/references/mongodb-crud.md +0 -0
  842. /package/assets/{skills → copilot/packs/backend/skills}/databases/references/mongodb-indexing.md +0 -0
  843. /package/assets/{skills → copilot/packs/backend/skills}/databases/references/postgresql-administration.md +0 -0
  844. /package/assets/{skills → copilot/packs/backend/skills}/databases/references/postgresql-performance.md +0 -0
  845. /package/assets/{skills → copilot/packs/backend/skills}/databases/references/postgresql-psql-cli.md +0 -0
  846. /package/assets/{skills → copilot/packs/backend/skills}/databases/references/postgresql-queries.md +0 -0
  847. /package/assets/{skills → copilot/packs/backend/skills}/databases/scripts/.coverage +0 -0
  848. /package/assets/{skills → copilot/packs/backend/skills}/databases/scripts/db_backup.py +0 -0
  849. /package/assets/{skills → copilot/packs/backend/skills}/databases/scripts/db_migrate.py +0 -0
  850. /package/assets/{skills → copilot/packs/backend/skills}/databases/scripts/db_performance_check.py +0 -0
  851. /package/assets/{skills → copilot/packs/backend/skills}/databases/scripts/requirements.txt +0 -0
  852. /package/assets/{skills → copilot/packs/backend/skills}/databases/scripts/tests/coverage-db.json +0 -0
  853. /package/assets/{skills → copilot/packs/backend/skills}/databases/scripts/tests/requirements.txt +0 -0
  854. /package/assets/{skills → copilot/packs/backend/skills}/databases/scripts/tests/test_db_backup.py +0 -0
  855. /package/assets/{skills → copilot/packs/backend/skills}/databases/scripts/tests/test_db_migrate.py +0 -0
  856. /package/assets/{skills → copilot/packs/backend/skills}/databases/scripts/tests/test_db_performance_check.py +0 -0
  857. /package/assets/{skills → copilot/packs/backend/skills}/devops/.env.example +0 -0
  858. /package/assets/{skills → copilot/packs/backend/skills}/devops/SKILL.md +0 -0
  859. /package/assets/{skills → copilot/packs/backend/skills}/devops/references/browser-rendering.md +0 -0
  860. /package/assets/{skills → copilot/packs/backend/skills}/devops/references/cloudflare-d1-kv.md +0 -0
  861. /package/assets/{skills → copilot/packs/backend/skills}/devops/references/cloudflare-platform.md +0 -0
  862. /package/assets/{skills → copilot/packs/backend/skills}/devops/references/cloudflare-r2-storage.md +0 -0
  863. /package/assets/{skills → copilot/packs/backend/skills}/devops/references/cloudflare-workers-advanced.md +0 -0
  864. /package/assets/{skills → copilot/packs/backend/skills}/devops/references/cloudflare-workers-apis.md +0 -0
  865. /package/assets/{skills → copilot/packs/backend/skills}/devops/references/cloudflare-workers-basics.md +0 -0
  866. /package/assets/{skills → copilot/packs/backend/skills}/devops/references/docker-basics.md +0 -0
  867. /package/assets/{skills → copilot/packs/backend/skills}/devops/references/docker-compose.md +0 -0
  868. /package/assets/{skills → copilot/packs/backend/skills}/devops/references/gcloud-platform.md +0 -0
  869. /package/assets/{skills → copilot/packs/backend/skills}/devops/references/gcloud-services.md +0 -0
  870. /package/assets/{skills → copilot/packs/backend/skills}/devops/scripts/cloudflare_deploy.py +0 -0
  871. /package/assets/{skills → copilot/packs/backend/skills}/devops/scripts/docker_optimize.py +0 -0
  872. /package/assets/{skills → copilot/packs/backend/skills}/devops/scripts/requirements.txt +0 -0
  873. /package/assets/{skills → copilot/packs/backend/skills}/devops/scripts/tests/requirements.txt +0 -0
  874. /package/assets/{skills → copilot/packs/backend/skills}/devops/scripts/tests/test_cloudflare_deploy.py +0 -0
  875. /package/assets/{skills → copilot/packs/backend/skills}/devops/scripts/tests/test_docker_optimize.py +0 -0
  876. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/.env.example +0 -0
  877. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/references/audio-processing.md +0 -0
  878. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/references/image-generation.md +0 -0
  879. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/references/video-analysis.md +0 -0
  880. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/references/vision-understanding.md +0 -0
  881. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/scripts/document_converter.py +0 -0
  882. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/scripts/gemini_batch_process.py +0 -0
  883. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/scripts/media_optimizer.py +0 -0
  884. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/scripts/requirements.txt +0 -0
  885. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/scripts/tests/.coverage +0 -0
  886. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/scripts/tests/requirements.txt +0 -0
  887. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/scripts/tests/test_document_converter.py +0 -0
  888. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/scripts/tests/test_gemini_batch_process.py +0 -0
  889. /package/assets/{skills → copilot/packs/docs/skills}/ai-multimodal/scripts/tests/test_media_optimizer.py +0 -0
  890. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/LICENSE.txt +0 -0
  891. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/SKILL.md +0 -0
  892. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/docx-js.md +0 -0
  893. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
  894. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
  895. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
  896. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
  897. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
  898. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
  899. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
  900. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
  901. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
  902. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
  903. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
  904. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
  905. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
  906. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
  907. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
  908. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
  909. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
  910. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
  911. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
  912. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
  913. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
  914. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
  915. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
  916. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
  917. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
  918. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
  919. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
  920. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
  921. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
  922. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
  923. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
  924. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/mce/mc.xsd +0 -0
  925. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +0 -0
  926. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +0 -0
  927. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +0 -0
  928. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -0
  929. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -0
  930. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
  931. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -0
  932. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/scripts/pack.py +0 -0
  933. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/scripts/unpack.py +0 -0
  934. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/scripts/validate.py +0 -0
  935. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/scripts/validation/__init__.py +0 -0
  936. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/scripts/validation/base.py +0 -0
  937. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/scripts/validation/docx.py +0 -0
  938. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/scripts/validation/pptx.py +0 -0
  939. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml/scripts/validation/redlining.py +0 -0
  940. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/ooxml.md +0 -0
  941. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/scripts/__init__.py +0 -0
  942. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/scripts/document.py +0 -0
  943. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/scripts/templates/comments.xml +0 -0
  944. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/scripts/templates/commentsExtended.xml +0 -0
  945. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/scripts/templates/commentsExtensible.xml +0 -0
  946. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/scripts/templates/commentsIds.xml +0 -0
  947. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/scripts/templates/people.xml +0 -0
  948. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/docx/scripts/utilities.py +0 -0
  949. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/LICENSE.txt +0 -0
  950. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/SKILL.md +0 -0
  951. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/forms.md +0 -0
  952. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/reference.md +0 -0
  953. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/scripts/check_bounding_boxes.py +0 -0
  954. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/scripts/check_bounding_boxes_test.py +0 -0
  955. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/scripts/check_fillable_fields.py +0 -0
  956. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/scripts/convert_pdf_to_images.py +0 -0
  957. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/scripts/create_validation_image.py +0 -0
  958. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/scripts/extract_form_field_info.py +0 -0
  959. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/scripts/fill_fillable_fields.py +0 -0
  960. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +0 -0
  961. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/LICENSE.txt +0 -0
  962. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/SKILL.md +0 -0
  963. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/html2pptx.md +0 -0
  964. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
  965. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
  966. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
  967. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
  968. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
  969. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
  970. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
  971. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
  972. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
  973. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
  974. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
  975. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
  976. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
  977. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
  978. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
  979. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
  980. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
  981. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
  982. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
  983. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
  984. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
  985. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
  986. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
  987. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
  988. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
  989. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
  990. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
  991. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
  992. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
  993. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
  994. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
  995. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/mce/mc.xsd +0 -0
  996. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -0
  997. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -0
  998. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -0
  999. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -0
  1000. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -0
  1001. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
  1002. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -0
  1003. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/scripts/pack.py +0 -0
  1004. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/scripts/unpack.py +0 -0
  1005. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/scripts/validate.py +0 -0
  1006. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/scripts/validation/__init__.py +0 -0
  1007. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/scripts/validation/base.py +0 -0
  1008. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/scripts/validation/docx.py +0 -0
  1009. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/scripts/validation/pptx.py +0 -0
  1010. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml/scripts/validation/redlining.py +0 -0
  1011. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/ooxml.md +0 -0
  1012. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/scripts/html2pptx.js +0 -0
  1013. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/scripts/inventory.py +0 -0
  1014. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/scripts/rearrange.py +0 -0
  1015. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/scripts/replace.py +0 -0
  1016. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/pptx/scripts/thumbnail.py +0 -0
  1017. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/xlsx/LICENSE.txt +0 -0
  1018. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/xlsx/SKILL.md +0 -0
  1019. /package/assets/{skills → copilot/packs/docs/skills}/document-skills/xlsx/recalc.py +0 -0
  1020. /package/assets/{skills → copilot/packs/frontend/skills}/aesthetic/SKILL.md +0 -0
  1021. /package/assets/{skills → copilot/packs/frontend/skills}/aesthetic/assets/design-guideline-template.md +0 -0
  1022. /package/assets/{skills → copilot/packs/frontend/skills}/aesthetic/assets/design-story-template.md +0 -0
  1023. /package/assets/{skills → copilot/packs/frontend/skills}/aesthetic/references/design-principles.md +0 -0
  1024. /package/assets/{skills → copilot/packs/frontend/skills}/aesthetic/references/design-resources.md +0 -0
  1025. /package/assets/{skills → copilot/packs/frontend/skills}/aesthetic/references/micro-interactions.md +0 -0
  1026. /package/assets/{skills → copilot/packs/frontend/skills}/aesthetic/references/storytelling-design.md +0 -0
  1027. /package/assets/{skills → copilot/packs/frontend/skills}/frontend-design/SKILL.md +0 -0
  1028. /package/assets/{skills → copilot/packs/frontend/skills}/frontend-design/references/animejs.md +0 -0
  1029. /package/assets/{claude → copilot/packs/frontend}/skills/nextjs-tailwind/SKILL.md +0 -0
  1030. /package/assets/{skills → copilot/packs/frontend/skills}/premium-frontend-ui/SKILL.md +0 -0
  1031. /package/assets/{skills → copilot/packs/frontend/skills}/react-mui-tanstack/SKILL.md +0 -0
  1032. /package/assets/{skills → copilot/packs/frontend/skills}/react-mui-tanstack/resources/common-patterns.md +0 -0
  1033. /package/assets/{skills → copilot/packs/frontend/skills}/react-mui-tanstack/resources/complete-examples.md +0 -0
  1034. /package/assets/{skills → copilot/packs/frontend/skills}/react-mui-tanstack/resources/component-patterns.md +0 -0
  1035. /package/assets/{skills → copilot/packs/frontend/skills}/react-mui-tanstack/resources/data-fetching.md +0 -0
  1036. /package/assets/{skills → copilot/packs/frontend/skills}/react-mui-tanstack/resources/file-organization.md +0 -0
  1037. /package/assets/{skills → copilot/packs/frontend/skills}/react-mui-tanstack/resources/loading-and-error-states.md +0 -0
  1038. /package/assets/{skills → copilot/packs/frontend/skills}/react-mui-tanstack/resources/performance.md +0 -0
  1039. /package/assets/{skills → copilot/packs/frontend/skills}/react-mui-tanstack/resources/routing-guide.md +0 -0
  1040. /package/assets/{skills → copilot/packs/frontend/skills}/react-mui-tanstack/resources/styling-guide.md +0 -0
  1041. /package/assets/{skills → copilot/packs/frontend/skills}/react-mui-tanstack/resources/typescript-standards.md +0 -0
  1042. /package/assets/{claude → copilot/packs/frontend}/skills/reactjs/SKILL.md +0 -0
  1043. /package/assets/{skills/mcp-builder → copilot/packs/frontend/skills/tailwind-shadcn}/LICENSE.txt +0 -0
  1044. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/SKILL.md +0 -0
  1045. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/ArsenalSC-OFL.txt +0 -0
  1046. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  1047. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  1048. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BigShoulders-OFL.txt +0 -0
  1049. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  1050. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Boldonse-OFL.txt +0 -0
  1051. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Boldonse-Regular.ttf +0 -0
  1052. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  1053. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BricolageGrotesque-OFL.txt +0 -0
  1054. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  1055. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  1056. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  1057. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/CrimsonPro-OFL.txt +0 -0
  1058. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  1059. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/DMMono-OFL.txt +0 -0
  1060. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/DMMono-Regular.ttf +0 -0
  1061. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/EricaOne-OFL.txt +0 -0
  1062. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/EricaOne-Regular.ttf +0 -0
  1063. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/GeistMono-Bold.ttf +0 -0
  1064. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/GeistMono-OFL.txt +0 -0
  1065. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/GeistMono-Regular.ttf +0 -0
  1066. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Gloock-OFL.txt +0 -0
  1067. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Gloock-Regular.ttf +0 -0
  1068. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  1069. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexMono-OFL.txt +0 -0
  1070. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  1071. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  1072. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  1073. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  1074. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  1075. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  1076. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  1077. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  1078. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSans-OFL.txt +0 -0
  1079. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  1080. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  1081. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  1082. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Italiana-OFL.txt +0 -0
  1083. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Italiana-Regular.ttf +0 -0
  1084. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  1085. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/JetBrainsMono-OFL.txt +0 -0
  1086. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  1087. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Jura-Light.ttf +0 -0
  1088. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Jura-Medium.ttf +0 -0
  1089. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Jura-OFL.txt +0 -0
  1090. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/LibreBaskerville-OFL.txt +0 -0
  1091. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  1092. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Lora-Bold.ttf +0 -0
  1093. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  1094. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Lora-Italic.ttf +0 -0
  1095. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Lora-OFL.txt +0 -0
  1096. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Lora-Regular.ttf +0 -0
  1097. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/NationalPark-Bold.ttf +0 -0
  1098. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/NationalPark-OFL.txt +0 -0
  1099. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/NationalPark-Regular.ttf +0 -0
  1100. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -0
  1101. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  1102. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Outfit-Bold.ttf +0 -0
  1103. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Outfit-OFL.txt +0 -0
  1104. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Outfit-Regular.ttf +0 -0
  1105. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  1106. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/PixelifySans-OFL.txt +0 -0
  1107. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/PoiretOne-OFL.txt +0 -0
  1108. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  1109. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  1110. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/RedHatMono-OFL.txt +0 -0
  1111. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  1112. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Silkscreen-OFL.txt +0 -0
  1113. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  1114. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  1115. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/SmoochSans-OFL.txt +0 -0
  1116. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Tektur-Medium.ttf +0 -0
  1117. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Tektur-OFL.txt +0 -0
  1118. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/Tektur-Regular.ttf +0 -0
  1119. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/WorkSans-Bold.ttf +0 -0
  1120. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  1121. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/WorkSans-Italic.ttf +0 -0
  1122. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/WorkSans-OFL.txt +0 -0
  1123. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/WorkSans-Regular.ttf +0 -0
  1124. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/YoungSerif-OFL.txt +0 -0
  1125. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  1126. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/references/canvas-design-system.md +0 -0
  1127. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/references/shadcn-accessibility.md +0 -0
  1128. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/references/shadcn-components.md +0 -0
  1129. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/references/shadcn-theming.md +0 -0
  1130. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/references/tailwind-customization.md +0 -0
  1131. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/references/tailwind-responsive.md +0 -0
  1132. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/references/tailwind-utilities.md +0 -0
  1133. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/scripts/.coverage +0 -0
  1134. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/scripts/requirements.txt +0 -0
  1135. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/scripts/shadcn_add.py +0 -0
  1136. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/scripts/tailwind_config_gen.py +0 -0
  1137. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/scripts/tests/coverage-ui.json +0 -0
  1138. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/scripts/tests/requirements.txt +0 -0
  1139. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/scripts/tests/test_shadcn_add.py +0 -0
  1140. /package/assets/{skills → copilot/packs/frontend/skills}/tailwind-shadcn/scripts/tests/test_tailwind_config_gen.py +0 -0
  1141. /package/assets/{claude → copilot/packs/frontend}/skills/tailwind-v4-vite/SKILL.md +0 -0
  1142. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/AGENTS.md +0 -0
  1143. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/README.md +0 -0
  1144. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/SKILL.md +0 -0
  1145. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/metadata.json +0 -0
  1146. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/_sections.md +0 -0
  1147. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/_template.md +0 -0
  1148. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -0
  1149. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/advanced-use-latest.md +0 -0
  1150. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/async-api-routes.md +0 -0
  1151. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/async-defer-await.md +0 -0
  1152. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/async-dependencies.md +0 -0
  1153. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/async-parallel.md +0 -0
  1154. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -0
  1155. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -0
  1156. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/bundle-conditional.md +0 -0
  1157. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -0
  1158. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -0
  1159. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/bundle-preload.md +0 -0
  1160. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/client-event-listeners.md +0 -0
  1161. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -0
  1162. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -0
  1163. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/client-swr-dedup.md +0 -0
  1164. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -0
  1165. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-cache-function-results.md +0 -0
  1166. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-cache-property-access.md +0 -0
  1167. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-cache-storage.md +0 -0
  1168. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-combine-iterations.md +0 -0
  1169. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-early-exit.md +0 -0
  1170. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -0
  1171. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-index-maps.md +0 -0
  1172. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-length-check-first.md +0 -0
  1173. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-min-max-loop.md +0 -0
  1174. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -0
  1175. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -0
  1176. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rendering-activity.md +0 -0
  1177. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -0
  1178. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -0
  1179. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -0
  1180. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -0
  1181. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -0
  1182. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -0
  1183. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -0
  1184. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rerender-dependencies.md +0 -0
  1185. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rerender-derived-state.md +0 -0
  1186. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -0
  1187. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -0
  1188. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rerender-memo.md +0 -0
  1189. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/rerender-transitions.md +0 -0
  1190. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -0
  1191. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/server-cache-lru.md +0 -0
  1192. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/server-cache-react.md +0 -0
  1193. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -0
  1194. /package/assets/{skills → copilot/packs/frontend/skills}/vercel-react-best-practices/rules/server-serialization.md +0 -0
  1195. /package/assets/{skills → copilot/packs/frontend/skills}/web-design-guidelines/SKILL.md +0 -0
  1196. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/SKILL.md +0 -0
  1197. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/references/nextjs-app-router.md +0 -0
  1198. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/references/nextjs-data-fetching.md +0 -0
  1199. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/references/nextjs-optimization.md +0 -0
  1200. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/references/nextjs-server-components.md +0 -0
  1201. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/references/remix-icon-integration.md +0 -0
  1202. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/references/turborepo-caching.md +0 -0
  1203. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/references/turborepo-pipelines.md +0 -0
  1204. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/references/turborepo-setup.md +0 -0
  1205. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/scripts/.coverage +0 -0
  1206. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/scripts/__init__.py +0 -0
  1207. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/scripts/nextjs_init.py +0 -0
  1208. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/scripts/requirements.txt +0 -0
  1209. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/scripts/tests/coverage-web.json +0 -0
  1210. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/scripts/tests/requirements.txt +0 -0
  1211. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/scripts/tests/test_nextjs_init.py +0 -0
  1212. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/scripts/tests/test_turborepo_migrate.py +0 -0
  1213. /package/assets/{skills → copilot/packs/frontend/skills}/web-frameworks/scripts/turborepo_migrate.py +0 -0
  1214. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/references/cdp-domains.md +0 -0
  1215. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/references/performance-guide.md +0 -0
  1216. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/references/puppeteer-reference.md +0 -0
  1217. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/PERSISTENT-BROWSER.md +0 -0
  1218. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/__tests__/selector.test.js +0 -0
  1219. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/click.js +0 -0
  1220. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/close-persistent.js +0 -0
  1221. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/console.js +0 -0
  1222. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/evaluate.js +0 -0
  1223. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/fill.js +0 -0
  1224. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/install-deps.sh +0 -0
  1225. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/install.sh +0 -0
  1226. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/launch-persistent.js +0 -0
  1227. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/lib/browser.js +0 -0
  1228. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/lib/selector.js +0 -0
  1229. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/navigate.js +0 -0
  1230. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/network.js +0 -0
  1231. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/package-lock.json +0 -0
  1232. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/package.json +0 -0
  1233. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/performance.js +0 -0
  1234. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/screenshot.js +0 -0
  1235. /package/assets/{skills → copilot/packs/playwright/skills}/chrome-devtools/scripts/snapshot.js +0 -0
  1236. /package/assets/{claude → copilot/packs/polyglot}/skills/java/SKILL.md +0 -0
  1237. /package/assets/{skills → copilot/skills}/code-review/SKILL.md +0 -0
  1238. /package/assets/{skills → copilot/skills}/code-review/references/code-review-reception.md +0 -0
  1239. /package/assets/{skills → copilot/skills}/code-review/references/requesting-code-review.md +0 -0
  1240. /package/assets/{skills → copilot/skills}/code-review/references/verification-before-completion.md +0 -0
  1241. /package/assets/{skills → copilot/skills}/debugging/defense-in-depth/SKILL.md +0 -0
  1242. /package/assets/{skills → copilot/skills}/debugging/root-cause-tracing/SKILL.md +0 -0
  1243. /package/assets/{skills → copilot/skills}/debugging/root-cause-tracing/find-polluter.sh +0 -0
  1244. /package/assets/{skills → copilot/skills}/debugging/systematic-debugging/CREATION-LOG.md +0 -0
  1245. /package/assets/{skills → copilot/skills}/debugging/systematic-debugging/SKILL.md +0 -0
  1246. /package/assets/{skills → copilot/skills}/debugging/systematic-debugging/test-academic.md +0 -0
  1247. /package/assets/{skills → copilot/skills}/debugging/systematic-debugging/test-pressure-1.md +0 -0
  1248. /package/assets/{skills → copilot/skills}/debugging/systematic-debugging/test-pressure-2.md +0 -0
  1249. /package/assets/{skills → copilot/skills}/debugging/systematic-debugging/test-pressure-3.md +0 -0
  1250. /package/assets/{skills → copilot/skills}/debugging/verification-before-completion/SKILL.md +0 -0
  1251. /package/assets/{skills → copilot/skills}/docs-seeker/SKILL.md +0 -0
  1252. /package/assets/{skills → copilot/skills}/docs-seeker/WORKFLOWS.md +0 -0
  1253. /package/assets/{skills → copilot/skills}/docs-seeker/references/best-practices.md +0 -0
  1254. /package/assets/{skills → copilot/skills}/docs-seeker/references/documentation-sources.md +0 -0
  1255. /package/assets/{skills → copilot/skills}/docs-seeker/references/error-handling.md +0 -0
  1256. /package/assets/{skills → copilot/skills}/docs-seeker/references/limitations.md +0 -0
  1257. /package/assets/{skills → copilot/skills}/docs-seeker/references/performance.md +0 -0
  1258. /package/assets/{skills → copilot/skills}/docs-seeker/references/tool-selection.md +0 -0
  1259. /package/assets/{skills/skill-creator → copilot/skills/mcp-builder}/LICENSE.txt +0 -0
  1260. /package/assets/{skills → copilot/skills}/mcp-builder/SKILL.md +0 -0
  1261. /package/assets/{skills → copilot/skills}/mcp-builder/reference/evaluation.md +0 -0
  1262. /package/assets/{skills → copilot/skills}/mcp-builder/reference/mcp_best_practices.md +0 -0
  1263. /package/assets/{skills → copilot/skills}/mcp-builder/reference/node_mcp_server.md +0 -0
  1264. /package/assets/{skills → copilot/skills}/mcp-builder/reference/python_mcp_server.md +0 -0
  1265. /package/assets/{skills → copilot/skills}/mcp-builder/scripts/connections.py +0 -0
  1266. /package/assets/{skills → copilot/skills}/mcp-builder/scripts/evaluation.py +0 -0
  1267. /package/assets/{skills → copilot/skills}/mcp-builder/scripts/example_evaluation.xml +0 -0
  1268. /package/assets/{skills → copilot/skills}/mcp-builder/scripts/requirements.txt +0 -0
  1269. /package/assets/{skills → copilot/skills}/mermaidjs-v11/SKILL.md +0 -0
  1270. /package/assets/{skills → copilot/skills}/mermaidjs-v11/references/cli-usage.md +0 -0
  1271. /package/assets/{skills → copilot/skills}/mermaidjs-v11/references/configuration.md +0 -0
  1272. /package/assets/{skills → copilot/skills}/mermaidjs-v11/references/diagram-types.md +0 -0
  1273. /package/assets/{skills → copilot/skills}/mermaidjs-v11/references/examples.md +0 -0
  1274. /package/assets/{skills → copilot/skills}/mermaidjs-v11/references/integration.md +0 -0
  1275. /package/assets/{skills → copilot/skills}/problem-solving/ABOUT.md +0 -0
  1276. /package/assets/{skills → copilot/skills}/problem-solving/collision-zone-thinking/SKILL.md +0 -0
  1277. /package/assets/{skills → copilot/skills}/problem-solving/inversion-exercise/SKILL.md +0 -0
  1278. /package/assets/{skills → copilot/skills}/problem-solving/meta-pattern-recognition/SKILL.md +0 -0
  1279. /package/assets/{skills → copilot/skills}/problem-solving/scale-game/SKILL.md +0 -0
  1280. /package/assets/{skills → copilot/skills}/problem-solving/simplification-cascades/SKILL.md +0 -0
  1281. /package/assets/{skills → copilot/skills}/problem-solving/when-stuck/SKILL.md +0 -0
  1282. /package/assets/{skills → copilot/skills}/sequential-thinking/SKILL.md +0 -0
  1283. /package/assets/{skills → copilot/skills}/sequential-thinking/references/advanced.md +0 -0
  1284. /package/assets/{skills → copilot/skills}/sequential-thinking/references/examples.md +0 -0
  1285. /package/assets/{skills/tailwind-shadcn → copilot/skills/skill-creator}/LICENSE.txt +0 -0
  1286. /package/assets/{skills → copilot/skills}/skill-creator/scripts/init_skill.py +0 -0
  1287. /package/assets/{skills → copilot/skills}/skill-creator/scripts/package_skill.py +0 -0
  1288. /package/assets/{skills → copilot/skills}/skill-creator/scripts/quick_validate.py +0 -0
@@ -1,636 +1,676 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Generate the Claude Code target's extended catalog from the Copilot source assets.
3
+ * Generate the **Copilot** target's catalog from the canonical **Claude** source trees.
4
4
  *
5
- * Converts:
6
- * assets/agents/<name>/<name>.agent.md -> assets/claude/agents/<name>.md
7
- * assets/prompts/<name>/<name>.prompt.md -> assets/claude/commands/<name>.md
8
- * assets/skills/<name>/ -> assets/claude/skills/<name>/ (near-verbatim)
9
- * assets/instructions/<name>/<name>.instructions.md -> assets/claude/skills/<name>/SKILL.md (new skill)
5
+ * DIRECTION (Vesper 2.0): `assets/claude/` + `assets/claude-committed/` are the sole
6
+ * hand-authored catalog; `assets/copilot/` is machine-generated, COMMITTED output. The
7
+ * filename is historical (it is still "the asset generator"); only its direction changed.
10
8
  *
11
- * This is a one-time/periodic build step run by maintainers (like generate-manifests.js) —
12
- * `vesper add --target claude` copies the *output* of this script, it never transforms
13
- * anything at install time. The 12 core agents + the orchestrator playbook are hand-authored
14
- * separately in assets/claude/ and are never touched by this script.
9
+ * THIS FILE IS AN I/O SHELL. Every Claude → Copilot inversion layer lives in the PURE
10
+ * module `src/cli/utils/copilot-render.js`, which the runtime Copilot provisioning
11
+ * module imports too. Runtime code must NEVER import from `scripts/` (enforced by a
12
+ * test): the CLI bundle once inlined this file's run-as-main guard and regenerated the
13
+ * installed package's assets mid-command.
15
14
  *
16
- * NOT scanned or written by this script (by design): `assets/vendor/` — reviewed,
17
- * pinned snapshots of third-party assets (e.g. `assets/vendor/i-have-adhd/`). It is
18
- * outside the four scan roots (agents/prompts/skills/instructions) and the three write
19
- * targets (assets/claude/{agents,commands,skills}), so the generator can never read,
20
- * transform, or clobber it. Vendored assets are installed project-level at init time
21
- * (see installAdhdProjectAsset in src/cli/utils/claude-target.js), never generated here.
15
+ * Scan roots → outputs:
16
+ *
17
+ * assets/claude/agents/<name>.md -> copilot/agents/<name>.agent.md (hidden specialist)
18
+ * assets/claude/skills/<name>/ -> copilot/skills/<name>/ (EVERY .md rendered)
19
+ * assets/claude/skills/<name>/SKILL.md
20
+ * `copilot-apply-to` + tier `core` -> copilot/instructions/<name>.instructions.md
21
+ * `copilot-apply-to` + tier `extended` -> copilot/instructions-extended/<name>/<name>.instructions.md
22
+ * assets/claude-committed/skills/<name>/ -> copilot/prompts/<name>.prompt.md
23
+ * (must carry `disable-model-invocation: true`)
24
+ * assets/claude/packs/<pack>/agents/<name>.md -> copilot/packs/<pack>/agents/<name>.agent.md
25
+ * assets/claude/packs/<pack>/skills/<name>/ -> copilot/packs/<pack>/skills/<name>/
26
+ * (tiered instructions of a packed skill go to the GLOBAL instructions folders above;
27
+ * the shared `agent-fundamentals` copy each pack carries is validated, not mirrored;
28
+ * a THIRD-PARTY skill — one carrying `UPSTREAM.json` (epic J) — is copied VERBATIM,
29
+ * `UPSTREAM.json` and `LICENSE` included: Vesper does not author it, so it is neither
30
+ * rendered nor residue-scanned, and its own `disable-model-invocation` marker is allowed)
31
+ * assets/manifest.json <- written here too (no timestamp); carries
32
+ * `packs` + `assetPacks` (pack per asset)
33
+ *
34
+ * The instruction TIER restores 1.x's core/extended split (1.x kept them apart by tree:
35
+ * `assets/core/instructions/` injected for every project, `assets/instructions/<name>/`
36
+ * opt-in). Only the core folder is default-injected by `settings.js`; each extended
37
+ * instruction lives in its own folder so it can be injected individually.
38
+ *
39
+ * STRICT: any per-entry failure (I/O, missing/unsafe frontmatter, a committed skill
40
+ * without the maintenance marker, a plugin skill WITH it, an unmapped tool or model,
41
+ * Claude-host residue outside the allow-list) fails the run with every error listed,
42
+ * and NOTHING is written.
43
+ * ATOMIC: the tree is built in memory, written to a sibling temp dir, and swapped in
44
+ * by rename — an interrupted run never leaves a partial `assets/copilot/`.
45
+ *
46
+ * !! LOAD-BEARING !! `disable-model-invocation: true` is NOT globally unique (the third-party
47
+ * `packs/styles/skills/i-have-adhd/SKILL.md` carries it). Prompt emission is scoped to
48
+ * `assets/claude-committed/skills/` by TREE LOCATION, never by the marker alone.
22
49
  *
23
50
  * Run: node scripts/generate-claude-assets.js
24
51
  */
25
52
 
26
- import { readdir, readFile, writeFile, mkdir, cp, stat } from 'node:fs/promises';
27
- import { join, dirname } from 'node:path';
53
+ import { readdir, readFile, writeFile, mkdir, rm, rename, stat, chmod } from 'node:fs/promises';
54
+ import { existsSync } from 'node:fs';
55
+ import { join, dirname, relative, sep } from 'node:path';
28
56
  import { fileURLToPath, pathToFileURL } from 'node:url';
29
- import { MCP_SERVERS } from '../src/cli/utils/settings.js';
57
+
58
+ import {
59
+ splitFrontmatter,
60
+ readFrontmatterValue,
61
+ isYamlSafeInlineScalar,
62
+ extractClaudeToolTokens,
63
+ mapClaudeToolsToCopilot,
64
+ mapMcpTools,
65
+ convertAgentToCopilot,
66
+ convertMaintenanceSkillToPrompt,
67
+ convertSkillToInstructions,
68
+ convertSkillMd,
69
+ convertSkillMarkdownFile,
70
+ applyCopilotBodyTokenReplacements,
71
+ renderCopilotText,
72
+ hasMaintenanceMarker,
73
+ readInstructionTier,
74
+ COPILOT_INSTRUCTION_TIERS,
75
+ __resetDiagnostics,
76
+ __getDiagnostics,
77
+ getDiagnosticMessages,
78
+ } from '../src/cli/utils/copilot-render.js';
79
+
80
+ // Re-exported so the generator's own test suite (and tooling) keeps one import site.
81
+ export {
82
+ splitFrontmatter,
83
+ readFrontmatterValue,
84
+ extractClaudeToolTokens,
85
+ mapClaudeToolsToCopilot,
86
+ mapMcpTools,
87
+ convertAgentToCopilot,
88
+ convertMaintenanceSkillToPrompt,
89
+ convertSkillToInstructions,
90
+ convertSkillMd,
91
+ applyCopilotBodyTokenReplacements,
92
+ renderCopilotText,
93
+ __resetDiagnostics,
94
+ __getDiagnostics,
95
+ };
30
96
 
31
97
  const __filename = fileURLToPath(import.meta.url);
32
98
  const __dirname = dirname(__filename);
33
99
 
34
- const ASSETS_DIR = join(__dirname, '..', 'assets');
35
- const CLAUDE_DIR = join(ASSETS_DIR, 'claude');
36
-
37
- /** Tool token map: Copilot tool name -> Claude Code tool name(s) (comma-separated) */
38
- const TOOL_MAP = {
39
- 'read/readFile': 'Read',
40
- 'read': 'Read',
41
- 'edit/editFiles': 'Edit, Write',
42
- 'edit/createFile': 'Write',
43
- 'edit/createDirectory': 'Write',
44
- 'edit': 'Edit, Write',
45
- 'execute/runInTerminal': 'Bash',
46
- 'execute/createAndRunTask': 'Bash',
47
- 'execute/getTerminalOutput': 'Bash',
48
- 'execute/testFailure': 'Bash',
49
- 'execute/runTests': 'Bash',
50
- 'execute/runNotebookCell': 'Bash',
51
- 'execute/awaitTerminal': 'Bash',
52
- 'execute': 'Bash',
53
- 'search/listDirectory': 'Glob',
54
- 'search/fileSearch': 'Glob',
55
- 'search/codebase': 'Grep',
56
- 'search/changes': 'Bash',
57
- 'search/searchSubagent': 'Agent',
58
- 'search': 'Grep, Glob',
59
- 'todo': 'TodoWrite',
60
- 'agent': 'Agent',
61
- 'agent/runSubagent': 'Agent', // namespaced Copilot spelling of the subagent-invocation capability; equivalent to bare `agent`
62
- 'vscode/askQuestions': 'AskUserQuestion',
63
- 'web/fetch': 'WebFetch',
64
- 'web': 'WebFetch, WebSearch',
65
- };
100
+ export const ASSETS_DIR = join(__dirname, '..', 'assets');
101
+ /** The committed Copilot output root (M-2). Never hand-edited — regenerate instead. */
102
+ export const COPILOT_DIR = join(ASSETS_DIR, 'copilot');
103
+
104
+ /** The two canonical, hand-authored roots (assets-relative). */
105
+ export const CANONICAL_ROOTS = Object.freeze(['claude', 'claude-committed']);
66
106
 
67
107
  /**
68
- * Copilot / VS Code-only tokens with no Claude Code equivalent — INTENTIONALLY dropped, not mapped.
69
- * Every entry here is reviewable, greppable policy: a token in this set is dropped silently and does
70
- * NOT trip the unknown-token warning below. A token that is neither here, in TOOL_MAP, nor in
71
- * MCP_PASSTHROUGH is treated as a hazard and warned about (see mapToolTokens).
108
+ * The four — and only four — scan roots, as assets-relative POSIX paths. `packs` is the root of
109
+ * the stack packs (epic H): each `claude/packs/<pack>/` is a plugin of its own (`vesper-<pack>`)
110
+ * with its own `agents/` + `skills/`, listed in the marketplace next to the core plugin.
72
111
  */
73
- const DROP_TOKENS = new Set([
74
- // VS Code workspace/editor capabilities with no Claude Code analogue.
75
- 'vscode/getProjectSetupInfo',
76
- 'vscode/installExtension',
77
- 'vscode/newWorkspace',
78
- 'vscode/openSimpleBrowser',
79
- 'vscode/runCommand',
80
- 'vscode/vscodeAPI',
81
- 'vscode/extensions',
82
- 'vscode',
83
- // Copilot-only task/terminal/diagnostic capabilities — no Claude Code equivalent.
84
- 'read/problems', // VS Code Problems panel; Claude has no diagnostics feed
85
- 'execute/runTask', // VS Code task runner; Claude uses Bash directly
86
- 'execute/getTaskOutput', // paired with runTask; N/A in Claude
87
- 'read/getTaskOutput', // Copilot task-runner readback (read a VS Code task's output); sibling of execute/getTaskOutput. No Claude equivalent.
88
- 'read/terminalLastCommand', // VS Code terminal introspection
89
- 'read/terminalSelection', // VS Code terminal introspection
90
- // Copilot-only search/context capabilities with no Claude Code analogue.
91
- 'web/githubRepo', // Copilot GitHub repo context provider
92
- 'findTestFiles', // Copilot test-file locator; use Glob/Grep in Claude
93
- 'search/searchResults', // Copilot search-results context provider
94
- 'search/usages', // Copilot symbol-usages provider
95
- // Copilot-only MCP/context providers with no Claude equivalent in this catalog.
96
- 'microsoft.docs.mcp', // Copilot-bundled Microsoft Docs MCP
97
- 'github', // Copilot GitHub context provider
98
- ]);
112
+ export const SCAN_ROOT_RELATIVE_PATHS = Object.freeze({
113
+ pluginAgents: 'claude/agents',
114
+ pluginSkills: 'claude/skills',
115
+ packs: 'claude/packs',
116
+ committedSkills: 'claude-committed/skills',
117
+ });
99
118
 
100
- /** MCP-namespaced tokens pass through as mcp__<server>__* wildcards (kept as a note, not expanded) */
101
- const MCP_PASSTHROUGH = ['vesper-indexing/*', 'memory/*', 'sequential-thinking/*', 'context7/*', 'clickup/*'];
102
-
103
- // Pinned model IDs, not floating aliases (`opus`/`sonnet`/`haiku`) — aliases
104
- // silently track the newest release of each family, which means unreviewed
105
- // cost changes. Bump these deliberately when adopting a new model version.
106
- const MODEL_MAP = {
107
- 'Claude Opus 4.8': 'claude-opus-4-8',
108
- 'Claude Opus 4.7': 'claude-opus-4-8',
109
- 'Claude Sonnet 4.6': 'claude-sonnet-5',
110
- 'Claude Haiku 4.5': 'claude-haiku-4-5-20251001',
111
- 'GPT-5.5': 'claude-sonnet-5',
112
- };
119
+ /** Plugin name prefix of every pack: `vesper-<pack>` (the core plugin is `vesper`). */
120
+ export const PACK_PLUGIN_PREFIX = 'vesper-';
113
121
 
114
122
  /**
115
- * Normalize a single tool item: trim, then strip a matching pair of surrounding quotes.
116
- * @param {string} raw
117
- * @returns {string}
123
+ * The provenance record a THIRD-PARTY pack skill carries beside its `SKILL.md` (epic J):
124
+ * `{ upstream, sha, retrieved, license, path }`, written by `scripts/vendor-sync.js`. Its
125
+ * presence is what makes a skill third-party to this generator: copied verbatim, never
126
+ * rendered, never residue-scanned, its own frontmatter markers allowed.
118
127
  */
119
- function normalizeToolItem(raw) {
120
- return raw.trim().replace(/^['"]|['"]$/g, '');
121
- }
128
+ export const UPSTREAM_RECORD_FILE = 'UPSTREAM.json';
122
129
 
123
- /**
124
- * Parse a `tools:` frontmatter value into a token list. Accepts BOTH forms:
125
- * - bracket array: `tools: [a, b, c]` (single or multi-line)
126
- * - YAML dash-list: `tools:` followed by ` - a` / ` - b` lines
127
- *
128
- * The dash-list branch is DEFECT 1's fix: without it, a `tools:` written as a
129
- * YAML sequence matches no branch and the generated agent ships with no `tools:`
130
- * key at all — which, per Claude Code docs, silently inherits ALL tools (including
131
- * every live MCP tool). Parser-only fix: authored dash-list sources are NOT rewritten.
132
- * @param {string} frontmatter
133
- * @returns {string[]}
134
- */
135
- function extractToolTokens(frontmatter) {
136
- // Bracket-array form first (unchanged behavior).
137
- const bracket = frontmatter.match(/tools:\s*\[([\s\S]*?)\]/);
138
- if (bracket) {
139
- return bracket[1]
140
- .split(',')
141
- .map(normalizeToolItem)
142
- .filter(Boolean);
143
- }
130
+ /** Is this skill folder third-party (carries an `UPSTREAM.json`)? */
131
+ export function isThirdPartySkillDir(skillDir) {
132
+ return existsSync(join(skillDir, UPSTREAM_RECORD_FILE));
133
+ }
144
134
 
145
- // YAML dash-list form: a bare `tools:` line (optionally carrying a trailing
146
- // `# comment`, tolerated for the same reason per-item comments are), then one
147
- // or more `- <token>` items. Tolerating the header comment avoids a silent
148
- // fall-through to `[]` that would be indistinguishable from a genuinely empty
149
- // list — the exact silent-token-loss shape this whole change exists to close.
150
- const lines = frontmatter.split('\n');
151
- const startIdx = lines.findIndex(l => /^\s*tools:\s*(#.*)?$/.test(l));
152
- if (startIdx === -1) return [];
153
-
154
- const tokens = [];
155
- for (let i = startIdx + 1; i < lines.length; i++) {
156
- const line = lines[i];
157
- const dash = line.match(/^\s*-\s+(.*)$/); // tolerate mixed indentation
158
- if (dash) {
159
- // Strip a trailing inline `# comment`, then normalize (trim + unquote).
160
- const item = normalizeToolItem(dash[1].replace(/\s+#.*$/, ''));
161
- if (item) tokens.push(item);
162
- continue;
163
- }
164
- if (line.trim() === '') continue; // tolerate blank lines within the block
165
- break; // next non-indented, non-dash key ends the block (empty list -> [])
166
- }
167
- return tokens;
135
+ /** Validate a third-party skill's `UPSTREAM.json`; errors pushed, never thrown. */
136
+ async function checkUpstreamRecord(skillDir, where, errors) {
137
+ const rec = await readJsonOrNull(join(skillDir, UPSTREAM_RECORD_FILE));
138
+ if (!rec) { errors.push(`${where}/${UPSTREAM_RECORD_FILE}: missing or unparseable`); return; }
139
+ if (typeof rec.upstream !== 'string' || !/^https?:\/\/\S+$/.test(rec.upstream)) errors.push(`${where}/${UPSTREAM_RECORD_FILE}: "upstream" must be a git URL`);
140
+ if (typeof rec.sha !== 'string' || !/^[0-9a-f]{40}$/.test(rec.sha)) errors.push(`${where}/${UPSTREAM_RECORD_FILE}: "sha" must be a 40-hex commit`);
141
+ if (typeof rec.retrieved !== 'string' || !/^\d{4}-\d{2}-\d{2}$/.test(rec.retrieved)) errors.push(`${where}/${UPSTREAM_RECORD_FILE}: "retrieved" must be YYYY-MM-DD`);
142
+ if (typeof rec.license !== 'string' || !rec.license) errors.push(`${where}/${UPSTREAM_RECORD_FILE}: "license" is required`);
143
+ if (!existsSync(join(skillDir, 'LICENSE'))) errors.push(`${where}: a third-party skill ships its upstream LICENSE verbatim`);
168
144
  }
169
145
 
170
146
  /**
171
- * Tracks whether ANY unknown tool token was seen during this process's generation run.
172
- * Consulted by main() to fail the build under CI / --strict. Warn-and-continue means a
173
- * single stray token never aborts generation mid-run and corrupts every other agent's output.
147
+ * Skills every pack carries as a byte-identical COPY of the core skill. Every agent preloads
148
+ * `agent-fundamentals` through its `skills:` frontmatter; the Claude Code docs do not promise
149
+ * that a plugin agent can preload a skill shipped by a DIFFERENT plugin, so each pack ships its
150
+ * own copy (kept identical to the core by `syncSharedPackSkills`, asserted by the strict build).
151
+ * The Copilot mirror does NOT duplicate them: Copilot injects the core `skills/` folder for
152
+ * every project, so one copy is enough there.
174
153
  */
175
- let sawUnknownToken = false;
154
+ export const SHARED_PACK_SKILLS = Object.freeze(['agent-fundamentals']);
176
155
 
177
- /**
178
- * Tracks whether ANY `applyTo` glob could not be translated to natural language during this run.
179
- * Consulted by main() to fail the build under CI / --strict, mirroring `sawUnknownToken`. Emitting
180
- * raw glob syntax into a semantically-matched Claude skill description is a regression we refuse to
181
- * ship silently — an unmappable token warns loudly and hard-fails strict runs.
182
- */
183
- let sawUnmappableGlob = false;
156
+ /** The pack names (directory names under `claude/packs/`), sorted. */
157
+ export async function listPackNames(assetsDir = ASSETS_DIR) {
158
+ try {
159
+ const entries = await readdir(join(assetsDir, SCAN_ROOT_RELATIVE_PATHS.packs), { withFileTypes: true });
160
+ return entries.filter((e) => e.isDirectory() && !e.name.startsWith('.')).map((e) => e.name).sort();
161
+ } catch {
162
+ return [];
163
+ }
164
+ }
184
165
 
185
166
  /**
186
- * Convert a Copilot tool-token list into a Claude Code `tools:` frontmatter value.
187
- * @param {string[]} tokens
188
- * @param {string} [agentName] - source agent, threaded through for useful warnings
189
- * @returns {string}
167
+ * Every child of a canonical root that is deliberately NOT a scan root. The
168
+ * completeness test requires each child of `assets/claude/` and
169
+ * `assets/claude-committed/` to be EITHER a scan root OR listed here, so a catalog
170
+ * author adding a tree gets a failing test instead of silent non-emission.
190
171
  */
191
- function mapToolTokens(tokens, agentName) {
192
- const claudeTools = new Set();
193
- const mcpNotes = new Set();
194
-
195
- for (const token of tokens) {
196
- if (DROP_TOKENS.has(token)) continue;
197
- if (MCP_PASSTHROUGH.includes(token)) {
198
- mcpNotes.add(token.replace('/*', ''));
199
- continue;
200
- }
201
- const mapped = TOOL_MAP[token];
202
- if (mapped) {
203
- mapped.split(',').forEach(t => claudeTools.add(t.trim()));
204
- continue;
205
- }
206
- // Unknown token: not mapped, not an MCP passthrough, not an intentional drop.
207
- // This is exactly the diagnostic that would have surfaced DEFECT 2 (`clickup/*`)
208
- // instead of letting it vanish. Warn and continue; CI/--strict escalates in main().
209
- sawUnknownToken = true;
210
- const where = agentName ? ` (in agent "${agentName}")` : '';
211
- console.warn(
212
- ` [unknown-tool-token] "${token}"${where} matches no TOOL_MAP, MCP_PASSTHROUGH, or DROP_TOKENS entry — dropped. ` +
213
- `Map it, add it to MCP_PASSTHROUGH, or add it to DROP_TOKENS if intentional.`
214
- );
215
- }
216
-
217
- // Expand known MCP servers to their concrete tool names (best-effort; unknown servers noted as-is).
218
- //
219
- // The four entries below are a DELIBERATELY CURATED read-mostly SUBSET — NOT a mirror of
220
- // MCP_SERVERS (which is the full auto-approval superset: memory has 9 tools incl. delete_*/
221
- // read_graph, context7 has 3). Deriving these from MCP_SERVERS by rule would grant destructive
222
- // tools to every agent declaring `memory/*`, re-creating the fail-open class this file fixes.
223
- // Leave them literal. `clickup` is the sole exception: it has no curated subset, so its full
224
- // set is sourced from the single source of truth in settings.js (MCP_SERVERS.clickup.tools).
225
- const MCP_TOOL_NAMES = {
226
- 'vesper-indexing': ['mcp__vesper-indexing__vesper_search', 'mcp__vesper-indexing__vesper_symbols', 'mcp__vesper-indexing__vesper_status', 'mcp__vesper-indexing__vesper_reindex'],
227
- 'memory': ['mcp__memory__create_entities', 'mcp__memory__create_relations', 'mcp__memory__add_observations', 'mcp__memory__search_nodes', 'mcp__memory__open_nodes'],
228
- 'sequential-thinking': ['mcp__sequential-thinking__sequentialthinking'],
229
- 'context7': ['mcp__context7__resolve-library-id', 'mcp__context7__get-library-docs'],
230
- 'clickup': MCP_SERVERS.clickup.tools.map(t => `mcp__clickup__${t}`),
231
- };
232
- for (const server of mcpNotes) {
233
- (MCP_TOOL_NAMES[server] || []).forEach(t => claudeTools.add(t));
234
- }
172
+ export const EXCLUDED_SOURCE_PATHS = Object.freeze([
173
+ 'claude/.claude-plugin', // plugin manifest dir (plugin.json, marketplace.json)
174
+ 'claude/vesper-orchestrator.md', // always-on playbook \
175
+ 'claude/orchestration.md.tpl', // roster template } rendered project-local by the
176
+ 'claude/context.md.tpl', // whitepaper template / host modules, not emitted here
177
+ 'claude/evals', // `claude plugin eval` suite (epic G): tests the plugin, ships nowhere
178
+ 'claude-committed/agents', // the thin pickable persona (DEC-7: rendered project-local)
179
+ ]);
235
180
 
236
- return Array.from(claudeTools).join(', ');
181
+ /** Normalize an absolute-or-relative path to an assets-relative POSIX path. */
182
+ function toAssetsRelative(somePath) {
183
+ const rel = somePath.startsWith(ASSETS_DIR) ? relative(ASSETS_DIR, somePath) : somePath;
184
+ return rel.split(sep).join('/').replace(/^\.\//, '').replace(/\/+$/, '');
237
185
  }
238
186
 
239
187
  /**
240
- * Convert an `.agent.md` file's content (frontmatter + body) into Claude subagent format.
241
- * @param {string} content
242
- * @param {string} kebabName - directory/asset name, used as the subagent name
243
- * @returns {string}
188
+ * Is this source path excluded from scanning? True for the listed canonical-root
189
+ * children and for anything outside the two canonical roots (`hooks/`, `legacy/`, …).
190
+ * @param {string} somePath - absolute path, or a path already relative to `assets/`
244
191
  */
245
- function convertAgent(content, kebabName) {
246
- const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
247
- if (!frontmatterMatch) return content;
248
-
249
- const [, frontmatter, body] = frontmatterMatch;
250
- const descriptionMatch = frontmatter.match(/description:\s*['"]?(.*?)['"]?\s*(\n|$)/);
251
- const modelMatch = frontmatter.match(/model:\s*['"]?(.*?)['"]?\s*(\n|$)/);
252
-
253
- const description = descriptionMatch ? descriptionMatch[1] : `${kebabName} specialist agent`;
254
- const model = modelMatch ? (MODEL_MAP[modelMatch[1]] || 'claude-sonnet-5') : 'claude-sonnet-5';
255
- const tools = mapToolTokens(extractToolTokens(frontmatter), kebabName);
256
-
257
- const newFrontmatter = [
258
- `name: ${kebabName}`,
259
- `description: ${description}`,
260
- `model: ${model}`,
261
- tools ? `tools: ${tools}` : null,
262
- // Preload the universal Vesper baseline skill into every subagent —
263
- // guarantees terminal discipline / codebase-query rules without relying
264
- // on incidental skill auto-discovery.
265
- 'skills: [agent-fundamentals]',
266
- ].filter(Boolean).join('\n');
267
-
268
- const cleanedBody = applyBodyTokenReplacements(body);
269
-
270
- return `---\n${newFrontmatter}\n---\n${cleanedBody}`;
192
+ export function isExcludedSource(somePath) {
193
+ const rel = toAssetsRelative(somePath);
194
+ if (!CANONICAL_ROOTS.some((r) => rel === r || rel.startsWith(`${r}/`))) return true;
195
+ // Each pack's own plugin manifest dir (`claude/packs/<pack>/.claude-plugin`) — the per-pack
196
+ // twin of `claude/.claude-plugin`; validated by the build, never emitted.
197
+ if (/^claude\/packs\/[^/]+\/\.claude-plugin(\/|$)/.test(rel)) return true;
198
+ return EXCLUDED_SOURCE_PATHS.some((ex) => rel === ex || rel.startsWith(`${ex}/`));
271
199
  }
272
200
 
273
201
  /**
274
- * Convert a `.prompt.md` file's content into a Claude Code slash command.
275
- * @param {string} content
276
- * @returns {string}
202
+ * THE DISCRIMINATOR (DEC-6, single-key): a skill emits a `.prompt.md` iff it lives
203
+ * under `assets/claude-committed/skills/` AND carries `disable-model-invocation: true`.
204
+ * Tree location is the load-bearing signal (the marker is not globally unique).
277
205
  */
278
- function convertPrompt(content) {
279
- const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
280
- if (!frontmatterMatch) return content;
281
-
282
- const [, frontmatter, body] = frontmatterMatch;
283
- const descriptionMatch = frontmatter.match(/description:\s*['"]?(.*?)['"]?\s*(\n|$)/);
284
- const description = descriptionMatch ? descriptionMatch[1] : '';
285
-
286
- const newFrontmatter = description ? `description: ${description}` : '';
287
- const cleanedBody = applyBodyTokenReplacements(body).replace(/\$\{input:[^}]+\}/g, '$ARGUMENTS');
288
-
289
- return newFrontmatter ? `---\n${newFrontmatter}\n---\n${cleanedBody}` : cleanedBody;
206
+ export function isCommittedMaintenanceSkill(skillDir, frontmatter) {
207
+ const rel = toAssetsRelative(skillDir);
208
+ if (!rel.startsWith(`${SCAN_ROOT_RELATIVE_PATHS.committedSkills}/`)) return false;
209
+ return hasMaintenanceMarker(frontmatter);
290
210
  }
291
211
 
212
+ /** Source-only files never copied into the generated catalog. */
213
+ const SKIPPED_SOURCE_FILES = new Set(['manifest.json', 'skill.json']);
214
+
292
215
  /**
293
- * Map a bare file extension (no dot) to a human-readable language/format name. Deliberately literal
294
- * and reviewable — it covers exactly the extensions the six in-tree instruction sources reference,
295
- * plus a small margin of common ones. Do NOT grow this speculatively: an unmapped extension trips the
296
- * LOUD `sawUnmappableGlob` path in describeApplyTo(), which is the signal to extend this map on demand.
216
+ * Claude-host residue that must not appear anywhere in the generated tree, and the
217
+ * explicit allow-list of files where a token is legitimately host-neutral prose
218
+ * (e.g. a skill ABOUT Claude settings, a vendored-style tool reference). Every
219
+ * allow-list entry names the file AND the token; nothing is allowed tree-wide.
297
220
  */
298
- const EXT_LANG = {
299
- py: 'Python',
300
- js: 'JavaScript',
301
- ts: 'TypeScript',
302
- tsx: 'TSX',
303
- jsx: 'JSX',
304
- java: 'Java',
305
- cs: 'C#',
306
- cpp: 'C++',
307
- c: 'C',
308
- go: 'Go',
309
- rb: 'Ruby',
310
- css: 'CSS',
311
- scss: 'SCSS',
312
- md: 'Markdown',
313
- json: 'JSON',
314
- html: 'HTML',
315
- };
221
+ export const COPILOT_RESIDUE_TOKENS = Object.freeze([
222
+ { token: 'vesper:', pattern: /\bvesper:(?!start\b|end\b|gitignore\b|hook\b)[a-z<*]/, why: 'Copilot delegation names are plain (no plugin namespace)' },
223
+ { token: 'vesper-<pack>:', pattern: /\bvesper-(?:<pack>|[a-z][a-z0-9-]*):[a-z<*]/, why: 'Copilot delegation names are plain (no pack namespace either)' },
224
+ { token: '.claude/rules/', pattern: /\.claude\/rules\//, why: 'Copilot brain lives under .vesper/instructions/' },
225
+ { token: '.claude/vesper/', pattern: /\.claude\/vesper\//, why: 'Copilot brain lives under .vesper/' },
226
+ { token: '.claude/agents/', pattern: /\.claude\/agents\//, why: 'Copilot agents live under .vesper/agents/' },
227
+ { token: '.claude/skills/', pattern: /\.claude\/skills\//, why: 'Copilot skills live under .vesper/skills/' },
228
+ { token: 'unsuffixed brain file', pattern: /\.vesper\/instructions\/vesper-(orchestrator|orchestration|context)\.md/, why: 'Copilot only attaches *.instructions.md' },
229
+ { token: '.vesper/orchestration.md', pattern: /\.vesper\/(orchestrator|orchestration|context)\.md/, why: 'not the roster/whitepaper path the rendered playbook reads' },
230
+ { token: '.claude/settings.json', pattern: /\.claude\/settings\.json/, why: 'Copilot has no .claude/settings.json' },
231
+ ]);
316
232
 
317
233
  /**
318
- * Curated natural-language phrases for path-scoped applyTo globs — tokens that carry an embedded
319
- * directory path (beyond a leading globstar) and therefore have no honest trailing-extension translation.
320
- * A naive "trailing .md -> Markdown files" guess for the task-implementation entry would wrongly
321
- * re-introduce over-breadth, so path-scoped globs are looked up here or fail LOUD. A stale/unused key
322
- * is harmless residue (it simply never matches); prune only when a source stops using it.
234
+ * `path → tokens allowed there`. Keep this list SHORT and justified; the residue
235
+ * test prints the offending file + line for anything not listed.
323
236
  */
324
- const GLOB_OVERRIDES = {
325
- '**/.vesper/.tracking/changes/*.md': 'task change-record files under .vesper/.tracking/changes/',
326
- };
237
+ export const COPILOT_RESIDUE_ALLOW_LIST = Object.freeze({
238
+ // The catalog-safety skill is maintainer documentation of BOTH hosts' delivery model;
239
+ // `.claude/settings.json` (the Claude plugin declaration) is its subject matter, not an
240
+ // instruction for this host. Its remaining Copilot-copy prose issues are recorded in
241
+ // the epic (d) change log for a later pass.
242
+ 'skills/vesper-catalog-editing-safety/SKILL.md': ['.claude/settings.json'],
243
+ });
327
244
 
328
245
  /**
329
- * Render a list as an Oxford-style human phrase: "A", "A or B", "A, B, or C".
330
- * @param {string[]} items
331
- * @returns {string}
246
+ * Find Claude-host residue in one generated file's text.
247
+ * @param {string} relPath - path relative to the Copilot output root
248
+ * @param {string} text
249
+ * @returns {string[]} human-readable findings (empty = clean)
332
250
  */
333
- function oxfordList(items) {
334
- if (items.length === 0) return '';
335
- if (items.length === 1) return items[0];
336
- if (items.length === 2) return `${items[0]} or ${items[1]}`;
337
- return `${items.slice(0, -1).join(', ')}, or ${items[items.length - 1]}`;
251
+ export function findCopilotResidue(relPath, text) {
252
+ const allowed = new Set(COPILOT_RESIDUE_ALLOW_LIST[relPath] || []);
253
+ const findings = [];
254
+ const lines = text.split('\n');
255
+ for (const { token, pattern, why } of COPILOT_RESIDUE_TOKENS) {
256
+ if (allowed.has(token)) continue;
257
+ lines.forEach((line, i) => {
258
+ if (pattern.test(line)) findings.push(`${relPath}:${i + 1}: ${token} — ${why}: ${line.trim().slice(0, 140)}`);
259
+ });
260
+ }
261
+ return findings;
338
262
  }
339
263
 
340
- /**
341
- * Translate an `applyTo` glob list into a natural-language scope clause for a Claude skill
342
- * description. Pure and exported for unit testing — no I/O, no writes.
343
- *
344
- * Contract:
345
- * - Extension-mappable tokens (no embedded directory path — a leading globstar is allowed — ending in
346
- * a dotted extension, incl. bare filenames like `vite.config.ts`) resolve via EXT_LANG to a name.
347
- * - Path-scoped tokens (an embedded slash beyond a leading globstar, e.g. the task-implementation
348
- * tracking-changes glob) resolve via GLOB_OVERRIDES to a curated phrase; a miss is
349
- * pushed to `unmapped` — we NEVER emit raw glob syntax and NEVER naively guess the trailing ext.
350
- * - Any unmappable token warns (naming skill + token + remediation), sets the module-level
351
- * `sawUnmappableGlob` flag (which main() escalates under CI/--strict), and is omitted from the
352
- * clause — degrade loudly, never silently.
353
- *
354
- * @param {string} applyTo - raw comma-separated applyTo value ('' when absent)
355
- * @param {string} [skillName] - source skill name, threaded through for useful warnings
356
- * @returns {{ clause: string, unmapped: string[] }} clause includes a leading space (or '' when empty)
357
- */
358
- function describeApplyTo(applyTo, skillName) {
359
- const unmapped = [];
360
- if (!applyTo || !applyTo.trim()) return { clause: '', unmapped };
361
-
362
- const tokens = applyTo.split(',').map(t => t.trim()).filter(Boolean);
363
- const languages = [];
364
- const phrases = [];
365
-
366
- for (const token of tokens) {
367
- // A single leading `**/` is a "match anywhere" prefix, not an embedded path — strip it before
368
- // deciding whether the remainder is path-scoped.
369
- const stripped = token.replace(/^\*\*\//, '');
370
-
371
- if (stripped.includes('/')) {
372
- // Path-scoped: only a curated override is acceptable; a miss is LOUD, never a raw-glob leak.
373
- const override = GLOB_OVERRIDES[token];
374
- if (override) {
375
- if (!phrases.includes(override)) phrases.push(override);
376
- } else {
377
- unmapped.push(token);
378
- }
379
- continue;
380
- }
264
+ // ---------------------------------------------------------------------------
265
+ // Scan helpers (read-only)
266
+ // ---------------------------------------------------------------------------
267
+
268
+ async function listChildren(dir, kind) {
269
+ const entries = await readdir(dir, { withFileTypes: true });
270
+ return entries
271
+ .filter((e) => (kind === 'dir' ? e.isDirectory() : e.isFile()))
272
+ .filter((e) => !e.name.startsWith('.'))
273
+ .map((e) => e.name)
274
+ .sort();
275
+ }
381
276
 
382
- const extMatch = stripped.match(/\.([A-Za-z0-9]+)$/);
383
- if (extMatch) {
384
- const lang = EXT_LANG[extMatch[1].toLowerCase()];
385
- if (lang) {
386
- if (!languages.includes(lang)) languages.push(lang);
387
- } else {
388
- unmapped.push(token);
389
- }
390
- continue;
277
+ async function walkFiles(root) {
278
+ const out = [];
279
+ const visit = async (dir) => {
280
+ for (const e of await readdir(dir, { withFileTypes: true })) {
281
+ const abs = join(dir, e.name);
282
+ if (e.isDirectory()) await visit(abs);
283
+ else if (e.isFile()) out.push(relative(root, abs).split(sep).join('/'));
391
284
  }
285
+ };
286
+ await visit(root);
287
+ return out.sort();
288
+ }
392
289
 
393
- // Neither path-scoped nor a recognizable `.<ext>` token.
394
- unmapped.push(token);
290
+ /** Validate a canonical source frontmatter for YAML safety of its description. */
291
+ function checkDescriptionYaml(frontmatter, where, errors) {
292
+ const line = frontmatter.split('\n').find((l) => l.startsWith('description:'));
293
+ if (!line) {
294
+ errors.push(`${where}: frontmatter has no description`);
295
+ return;
395
296
  }
396
-
397
- for (const token of unmapped) {
398
- sawUnmappableGlob = true;
399
- const where = skillName ? ` (in skill "${skillName}")` : '';
400
- console.warn(
401
- ` [unmappable-applyto-glob] "${token}"${where} could not be translated to natural language — omitted. ` +
402
- `Extend EXT_LANG (for a new extension) or GLOB_OVERRIDES (for a path-scoped glob) to map it.`
403
- );
297
+ if (!isYamlSafeInlineScalar(line.slice('description:'.length))) {
298
+ errors.push(`${where}: unquoted description is not valid YAML (contains ": " or a YAML indicator) — quote it`);
404
299
  }
300
+ }
405
301
 
406
- const pieces = [];
407
- if (languages.length) pieces.push(`${oxfordList(languages)} files`);
408
- for (const phrase of phrases) pieces.push(phrase);
302
+ /** Read + parse a JSON file; `null` when missing/unparseable (the caller reports it). */
303
+ async function readJsonOrNull(abs) {
304
+ try { return JSON.parse(await readFile(abs, 'utf-8')); } catch { return null; }
305
+ }
409
306
 
410
- const clause = pieces.length ? ` Use when working with ${oxfordList(pieces)}.` : '';
411
- return { clause, unmapped };
307
+ /** The package version every plugin manifest must carry (`package.json` next to `assets/`). */
308
+ async function readPackageVersion(assetsDir) {
309
+ const pkg = await readJsonOrNull(join(assetsDir, '..', 'package.json'));
310
+ return pkg?.version ?? null;
412
311
  }
413
312
 
414
313
  /**
415
- * Convert an `.instructions.md` file into a new Skill (SKILL.md).
416
- * @param {string} content
417
- * @param {string} kebabName
418
- * @returns {string}
314
+ * Validate one pack's plugin manifest: `packs/<pack>/.claude-plugin/plugin.json` must exist,
315
+ * be named `vesper-<pack>` and carry the package version. Errors are pushed, never thrown.
419
316
  */
420
- function convertInstructionToSkill(content, kebabName) {
421
- const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
422
- if (!frontmatterMatch) return content;
423
-
424
- const [, frontmatter, body] = frontmatterMatch;
425
- const descriptionMatch = frontmatter.match(/description:\s*['"]?(.*?)['"]?\s*(\n|$)/);
426
- const applyToMatch = frontmatter.match(/applyTo:\s*['"]?(.*?)['"]?\s*(\n|$)/);
427
-
428
- const rawBaseDescription = descriptionMatch ? descriptionMatch[1] : `${kebabName} conventions`;
429
- const applyTo = applyToMatch ? applyToMatch[1] : '';
430
- const { clause } = describeApplyTo(applyTo, kebabName);
431
- // Normalize the base description before appending the scope clause: trim trailing whitespace and
432
- // ensure it ends in terminal punctuation, so the clause's leading space doesn't run the two
433
- // sentences together (e.g. "…Java base applications Use when…"). Only append when there IS a clause.
434
- const trimmedBase = rawBaseDescription.trimEnd();
435
- const normalizedBase = clause && !/[.!?]$/.test(trimmedBase) ? `${trimmedBase}.` : trimmedBase;
436
- const description = `${normalizedBase}${clause}`;
437
-
438
- const newFrontmatter = [`name: ${kebabName}`, `description: ${description}`].join('\n');
439
- const cleanedBody = applyBodyTokenReplacements(body);
440
-
441
- return `---\n${newFrontmatter}\n---\n${cleanedBody}`;
317
+ async function checkPackManifest(assetsDir, pack, version, errors) {
318
+ const where = `claude/packs/${pack}/.claude-plugin/plugin.json`;
319
+ const manifest = await readJsonOrNull(join(assetsDir, SCAN_ROOT_RELATIVE_PATHS.packs, pack, '.claude-plugin', 'plugin.json'));
320
+ if (!manifest) { errors.push(`${where}: missing or unparseable`); return; }
321
+ if (manifest.name !== `${PACK_PLUGIN_PREFIX}${pack}`) errors.push(`${where}: name must be "${PACK_PLUGIN_PREFIX}${pack}" (got "${manifest.name}")`);
322
+ if (version && manifest.version !== version) errors.push(`${where}: version must equal package.json (${version}), got "${manifest.version}"`);
442
323
  }
443
324
 
444
325
  /**
445
- * Body-text regex passes shared by all converters: path mentions and a handful
446
- * of recurring Copilot-only inline tokens. Deliberately conservative — most
447
- * prose is left untouched (per the generator's design, ~90% of body content
448
- * is portable process knowledge, not Copilot mechanics).
449
- * @param {string} body
450
- * @returns {string}
326
+ * Validate the marketplace: it must list the core plugin (`vesper`, `source: "./"`) and every
327
+ * pack (`vesper-<pack>`, `source: "./packs/<pack>"`), and nothing else.
451
328
  */
452
- function applyBodyTokenReplacements(body) {
453
- return body
454
- .replace(/\.github\/agents/g, '.claude/agents')
455
- .replace(/\.github\/instructions/g, '.claude/skills')
456
- .replace(/\.github\/prompts/g, '.claude/commands')
457
- .replace(/\.github\/skills/g, '.claude/skills')
458
- .replace(/\.vscode\/mcp\.json/g, '.mcp.json')
459
- .replace(/vscode\/askQuestions/g, 'AskUserQuestion')
460
- .replace(/manage_todo_list/g, 'TodoWrite')
461
- // Inline VS Code tool-name mentions (frequent in shared Terminal Discipline /
462
- // tool-hierarchy boilerplate blocks copied across many agents). Word-boundary
463
- // regexes so both `backticked` and bare occurrences are caught.
464
- .replace(/\bmulti_replace_string_in_file\b/g, 'Edit')
465
- .replace(/\breplace_string_in_file\b/g, 'Edit')
466
- .replace(/\bread_file\b/g, 'Read')
467
- .replace(/\bgrep_search\b/g, 'Grep')
468
- .replace(/\bfile_search\b/g, 'Glob')
469
- .replace(/\bsemantic_search\b/g, 'Grep')
470
- .replace(/\blist_dir\b/g, 'Glob')
471
- .replace(/\bcreate_file\b/g, 'Write')
472
- .replace(/`get_terminal_output`/g, 'the background-task output mechanism')
473
- .replace(/`isBackground:\s*true`/g, '`run_in_background: true`')
474
- .replace(/isBackground:\s*true/g, 'run_in_background: true')
475
- // Copilot's subagent-invocation directives — subagents can't nest in Claude
476
- // Code; surface the need back to the orchestrator instead
477
- .replace(/#tool:agent\/runSubagent/g, 'your available tools')
478
- .replace(/#runSubagent:\s*/g, 'request via the orchestrator: ')
479
- .replace(/#agent:\s*/g, 'request via the orchestrator: ');
480
- }
481
-
482
- async function ensureDir(dir) {
483
- await mkdir(dir, { recursive: true });
329
+ async function checkMarketplace(assetsDir, packs, errors) {
330
+ const where = 'claude/.claude-plugin/marketplace.json';
331
+ const abs = join(assetsDir, 'claude', '.claude-plugin', 'marketplace.json');
332
+ // A minimal fixture tree (no packs, no manifest dir) has nothing to validate.
333
+ if (packs.length === 0 && !existsSync(abs)) return;
334
+ const mp = await readJsonOrNull(abs);
335
+ if (!mp || !Array.isArray(mp.plugins)) { errors.push(`${where}: missing, unparseable or without a plugins array`); return; }
336
+ const expected = new Map([['vesper', './'], ...packs.map((p) => [`${PACK_PLUGIN_PREFIX}${p}`, `./packs/${p}`])]);
337
+ const listed = new Map(mp.plugins.map((p) => [p.name, p.source]));
338
+ for (const [name, source] of expected) {
339
+ if (!listed.has(name)) errors.push(`${where}: plugin "${name}" (source ${source}) is not listed`);
340
+ else if (listed.get(name) !== source) errors.push(`${where}: plugin "${name}" must have source "${source}" (got "${listed.get(name)}")`);
341
+ }
342
+ for (const name of listed.keys()) {
343
+ if (!expected.has(name)) errors.push(`${where}: lists "${name}", which is neither the core plugin nor a pack under claude/packs/`);
344
+ }
484
345
  }
485
346
 
486
- async function listAssetFolders(dir) {
487
- try {
488
- const entries = await readdir(dir, { withFileTypes: true });
489
- return entries.filter(e => e.isDirectory() && !e.name.startsWith('.')).map(e => e.name);
490
- } catch {
491
- return [];
347
+ /**
348
+ * The expected byte-identical copies of the shared skills, per pack: `Map<relative path under
349
+ * claude/, Buffer>` (`packs/<pack>/skills/<skill>/<file>`), read from the core skill folder.
350
+ */
351
+ export async function expectedSharedPackSkillFiles({ assetsDir = ASSETS_DIR } = {}) {
352
+ const out = new Map();
353
+ const packs = await listPackNames(assetsDir);
354
+ for (const skill of SHARED_PACK_SKILLS) {
355
+ const src = join(assetsDir, SCAN_ROOT_RELATIVE_PATHS.pluginSkills, skill);
356
+ if (!existsSync(src)) continue;
357
+ for (const rel of await walkFiles(src)) {
358
+ const content = await readFile(join(src, rel));
359
+ for (const pack of packs) out.set(`packs/${pack}/skills/${skill}/${rel}`, content);
360
+ }
492
361
  }
362
+ return out;
493
363
  }
494
364
 
495
- async function generateAgents() {
496
- const srcDir = join(ASSETS_DIR, 'agents');
497
- const destDir = join(CLAUDE_DIR, 'agents');
498
- await ensureDir(destDir);
499
-
500
- const names = await listAssetFolders(srcDir);
501
- let count = 0;
502
- for (const name of names) {
503
- const srcPath = join(srcDir, name, `${name}.agent.md`);
504
- try {
505
- const content = await readFile(srcPath, 'utf-8');
506
- const converted = convertAgent(content, name);
507
- await writeFile(join(destDir, `${name}.md`), converted, 'utf-8');
508
- count += 1;
509
- } catch (error) {
510
- console.warn(` skip agents/${name}: ${error.message}`);
365
+ /**
366
+ * Refresh every pack's copy of the shared skills from the core (the one write the generator
367
+ * makes INTO the canonical tree — a sync of duplicates, not authored content). Returns the
368
+ * paths it changed. Idempotent; the strict build reports any copy that still differs.
369
+ */
370
+ export async function syncSharedPackSkills({ assetsDir = ASSETS_DIR } = {}) {
371
+ const changed = [];
372
+ for (const [rel, content] of await expectedSharedPackSkillFiles({ assetsDir })) {
373
+ const dest = join(assetsDir, 'claude', ...rel.split('/'));
374
+ let current = null;
375
+ try { current = await readFile(dest); } catch { current = null; }
376
+ if (current && current.equals(content)) continue;
377
+ await mkdir(dirname(dest), { recursive: true });
378
+ await writeFile(dest, content);
379
+ changed.push(`claude/${rel}`);
380
+ }
381
+ // Stale extra files inside a pack copy (a file removed from the core) are removed too.
382
+ const expected = await expectedSharedPackSkillFiles({ assetsDir });
383
+ for (const pack of await listPackNames(assetsDir)) {
384
+ for (const skill of SHARED_PACK_SKILLS) {
385
+ const dir = join(assetsDir, SCAN_ROOT_RELATIVE_PATHS.packs, pack, 'skills', skill);
386
+ if (!existsSync(dir)) continue;
387
+ for (const rel of await walkFiles(dir)) {
388
+ const key = `packs/${pack}/skills/${skill}/${rel}`;
389
+ if (!expected.has(key)) { await rm(join(dir, rel), { force: true }); changed.push(`claude/${key} (removed)`); }
390
+ }
511
391
  }
512
392
  }
513
- return count;
393
+ return changed;
514
394
  }
515
395
 
516
- async function generatePrompts() {
517
- const srcDir = join(ASSETS_DIR, 'prompts');
518
- const destDir = join(CLAUDE_DIR, 'commands');
519
- await ensureDir(destDir);
396
+ // ---------------------------------------------------------------------------
397
+ // Build the whole generated tree in memory
398
+ // ---------------------------------------------------------------------------
520
399
 
521
- const names = await listAssetFolders(srcDir);
522
- let count = 0;
523
- for (const name of names) {
524
- const srcPath = join(srcDir, name, `${name}.prompt.md`);
525
- try {
526
- const content = await readFile(srcPath, 'utf-8');
527
- const converted = convertPrompt(content);
528
- await writeFile(join(destDir, `${name}.md`), converted, 'utf-8');
529
- count += 1;
530
- } catch (error) {
531
- console.warn(` skip prompts/${name}: ${error.message}`);
400
+ /**
401
+ * Compute the complete expected `assets/copilot/` tree (plus the global manifest)
402
+ * from the canonical sources, WITHOUT writing anything. `assetsDir` is a test seam
403
+ * (a fixture tree with the same `claude/` + `claude-committed/` layout). The generator writes exactly
404
+ * this; the freshness test compares the committed tree against exactly this.
405
+ *
406
+ * Packs (epic H): `claude/packs/<pack>/agents|skills` mirror to `copilot/packs/<pack>/agents|skills`;
407
+ * the tiered instructions of a packed skill go to the same global `instructions/` and
408
+ * `instructions-extended/` folders as a core skill's (opt-in instructions are a per-project
409
+ * mechanism of their own, not a pack one); the shared skills are not mirrored per pack.
410
+ *
411
+ * @returns {Promise<{files: Map<string, {content: Buffer, mode: number}>, manifest: object, errors: string[], counts: object}>}
412
+ * `files` keys are POSIX paths relative to `assets/copilot/`.
413
+ */
414
+ export async function buildCopilotTree({ assetsDir = ASSETS_DIR } = {}) {
415
+ __resetDiagnostics();
416
+ const files = new Map();
417
+ const errors = [];
418
+ const put = (rel, content, mode = 0o644) => files.set(rel, { content: Buffer.isBuffer(content) ? content : Buffer.from(content, 'utf-8'), mode });
419
+ const counts = { agents: 0, skills: 0, coreInstructions: 0, extendedInstructions: 0, prompts: 0, packs: 0, thirdParty: 0 };
420
+ const coreInstructions = [];
421
+ const extendedInstructions = [];
422
+ /** Generated paths copied verbatim from a third-party skill — exempt from the residue scan. */
423
+ const thirdPartyFiles = new Set();
424
+ // `pack` per asset: `core` or the pack name. Names are unique across core + packs.
425
+ const assetPacks = { agents: {}, skills: {} };
426
+ const claimAssetName = (type, name, pack, where) => {
427
+ const prior = assetPacks[type][name];
428
+ if (prior !== undefined && !(type === 'skills' && SHARED_PACK_SKILLS.includes(name))) {
429
+ errors.push(`${where}: ${type.slice(0, -1)} "${name}" is also shipped by ${prior === 'core' ? 'the core' : `pack "${prior}"`} — names are unique across the marketplace`);
430
+ return false;
532
431
  }
533
- }
534
- return count;
535
- }
432
+ if (prior === undefined) assetPacks[type][name] = pack;
433
+ return true;
434
+ };
536
435
 
537
- async function generateSkillsFromSkills() {
538
- const srcDir = join(ASSETS_DIR, 'skills');
539
- const destDir = join(CLAUDE_DIR, 'skills');
540
- await ensureDir(destDir);
436
+ /** 1. Agents → hidden specialists (one folder: the core, or a pack). */
437
+ const scanAgents = async (agentsDir, { pack, outPrefix, whereBase }) => {
438
+ let names = [];
439
+ try { names = (await listChildren(agentsDir, 'file')).filter((f) => f.endsWith('.md')); } catch { return; }
440
+ for (const file of names) {
441
+ const name = file.replace(/\.md$/, '');
442
+ const where = `${whereBase}/${file}`;
443
+ try {
444
+ if (!claimAssetName('agents', name, pack, where)) continue;
445
+ const content = await readFile(join(agentsDir, file), 'utf-8');
446
+ const { frontmatter } = splitFrontmatter(content);
447
+ if (!frontmatter) throw new Error('no parseable frontmatter (an agent without it would ship pickable)');
448
+ checkDescriptionYaml(frontmatter, where, errors);
449
+ put(`${outPrefix}agents/${name}.agent.md`, convertAgentToCopilot(content, name));
450
+ counts.agents += 1;
451
+ } catch (error) {
452
+ errors.push(`${where}: ${error.message}`);
453
+ }
454
+ }
455
+ };
541
456
 
542
- const names = await listAssetFolders(srcDir);
543
- let count = 0;
544
- for (const name of names) {
545
- const srcPath = join(srcDir, name);
546
- const destPath = join(destDir, name);
547
- try {
548
- await cp(srcPath, destPath, {
549
- recursive: true,
550
- filter: (source) => !source.endsWith('manifest.json') && !source.endsWith('skill.json'),
551
- });
552
- // Token-replace SKILL.md body in place, if this is a single-skill folder
553
- // (some entries, e.g. debugging/problem-solving/document-skills, are bundles
554
- // of multiple sub-skills with no top-level SKILL.md — the directory copy above
555
- // already handles those correctly, nothing further to patch).
556
- const skillMdPath = join(destPath, 'SKILL.md');
457
+ /** 2. Plugin skills → skills (every file; every .md rendered) + tiered instructions. */
458
+ const scanSkills = async (skillsDir, { pack, outPrefix, whereBase }) => {
459
+ let names = [];
460
+ try { names = await listChildren(skillsDir, 'dir'); } catch { return; }
461
+ for (const name of names) {
462
+ const srcDir = join(skillsDir, name);
463
+ const where = `${whereBase}/${name}`;
464
+ const shared = pack !== 'core' && SHARED_PACK_SKILLS.includes(name);
465
+ // A third-party skill (epic J): upstream's bytes, shipped as pack content. Copied verbatim
466
+ // (`UPSTREAM.json` + `LICENSE` included) so the Copilot mirror is the same snapshot; its
467
+ // markdown is neither rendered nor residue-scanned (Vesper does not author it), and its
468
+ // own `disable-model-invocation` marker is allowed — prompt emission is tree-scoped anyway.
469
+ const thirdParty = isThirdPartySkillDir(srcDir);
557
470
  try {
558
- const content = await readFile(skillMdPath, 'utf-8');
559
- await writeFile(skillMdPath, applyBodyTokenReplacements(content), 'utf-8');
560
- } catch {
561
- // Bundle folder with no top-level SKILL.md — already fully copied above.
471
+ if (!claimAssetName('skills', name, pack, where)) continue;
472
+ if (thirdParty && pack === 'core') throw new Error(`carries ${UPSTREAM_RECORD_FILE} — third-party skills are pack content, never core`);
473
+ if (thirdParty) await checkUpstreamRecord(srcDir, where, errors);
474
+ const rels = (await walkFiles(srcDir)).filter((r) => !SKIPPED_SOURCE_FILES.has(r.split('/').pop()));
475
+ const skillMds = rels.filter((r) => r === 'SKILL.md' || r.endsWith('/SKILL.md'));
476
+ if (skillMds.length === 0) throw new Error('no SKILL.md at any depth — not a skill');
477
+ for (const rel of rels) {
478
+ const abs = join(srcDir, rel);
479
+ const { mode } = await stat(abs);
480
+ if (!rel.endsWith('.md') || thirdParty) {
481
+ if (!shared) put(`${outPrefix}skills/${name}/${rel}`, await readFile(abs), mode & 0o777);
482
+ if (thirdParty) thirdPartyFiles.add(`${outPrefix}skills/${name}/${rel}`);
483
+ continue;
484
+ }
485
+ const content = await readFile(abs, 'utf-8');
486
+ const isSkillMd = rel === 'SKILL.md' || rel.endsWith('/SKILL.md');
487
+ if (isSkillMd) {
488
+ const { frontmatter } = splitFrontmatter(content);
489
+ if (!frontmatter) throw new Error(`${rel} has no frontmatter (name + description are required)`);
490
+ checkDescriptionYaml(frontmatter, `${where}/${rel}`, errors);
491
+ if (hasMaintenanceMarker(frontmatter)) {
492
+ throw new Error(`${rel} carries disable-model-invocation: true — maintenance skills belong in assets/claude-committed/skills/, not the plugin tree`);
493
+ }
494
+ }
495
+ if (!shared) put(`${outPrefix}skills/${name}/${rel}`, rel === 'SKILL.md' ? convertSkillMd(content) : convertSkillMarkdownFile(content), mode & 0o777);
496
+ }
497
+ if (shared) continue; // a pack's copy of a shared skill: validated below, never mirrored
498
+ counts.skills += 1;
499
+ if (thirdParty) { counts.thirdParty += 1; continue; } // no tiers, no instructions: upstream's skill as-is
500
+
501
+ if (rels.includes('SKILL.md')) {
502
+ const content = await readFile(join(srcDir, 'SKILL.md'), 'utf-8');
503
+ const { frontmatter } = splitFrontmatter(content);
504
+ const instructions = convertSkillToInstructions(content, name);
505
+ const tier = readInstructionTier(frontmatter);
506
+ if (instructions) {
507
+ if (!COPILOT_INSTRUCTION_TIERS.includes(tier)) {
508
+ throw new Error(`carries copilot-apply-to but copilot-instructions-tier is ${tier === null ? 'missing' : `"${tier}"`} — set core or extended`);
509
+ }
510
+ if (tier === 'core') {
511
+ put(`instructions/${name}.instructions.md`, instructions);
512
+ coreInstructions.push(name);
513
+ counts.coreInstructions += 1;
514
+ } else {
515
+ put(`instructions-extended/${name}/${name}.instructions.md`, instructions);
516
+ extendedInstructions.push(name);
517
+ counts.extendedInstructions += 1;
518
+ }
519
+ } else if (tier !== null) {
520
+ throw new Error('carries copilot-instructions-tier without copilot-apply-to');
521
+ }
522
+ }
523
+ } catch (error) {
524
+ errors.push(`${where}: ${error.message}`);
562
525
  }
563
- count += 1;
564
- } catch (error) {
565
- console.warn(` skip skills/${name}: ${error.message}`);
566
526
  }
567
- }
568
- return count;
569
- }
527
+ };
570
528
 
571
- async function generateSkillsFromInstructions() {
572
- const srcDir = join(ASSETS_DIR, 'instructions');
573
- const destDir = join(CLAUDE_DIR, 'skills');
574
- await ensureDir(destDir);
529
+ // The core plugin.
530
+ await scanAgents(join(assetsDir, SCAN_ROOT_RELATIVE_PATHS.pluginAgents), { pack: 'core', outPrefix: '', whereBase: 'claude/agents' });
531
+ await scanSkills(join(assetsDir, SCAN_ROOT_RELATIVE_PATHS.pluginSkills), { pack: 'core', outPrefix: '', whereBase: 'claude/skills' });
532
+
533
+ // The packs — each a plugin of its own, mirrored under `packs/<pack>/`.
534
+ const packs = await listPackNames(assetsDir);
535
+ const version = await readPackageVersion(assetsDir);
536
+ for (const pack of packs) {
537
+ if (!/^[a-z][a-z0-9-]*$/.test(pack)) { errors.push(`claude/packs/${pack}: pack names are kebab-case`); continue; }
538
+ await checkPackManifest(assetsDir, pack, version, errors);
539
+ const packDir = join(assetsDir, SCAN_ROOT_RELATIVE_PATHS.packs, pack);
540
+ await scanAgents(join(packDir, 'agents'), { pack, outPrefix: `packs/${pack}/`, whereBase: `claude/packs/${pack}/agents` });
541
+ await scanSkills(join(packDir, 'skills'), { pack, outPrefix: `packs/${pack}/`, whereBase: `claude/packs/${pack}/skills` });
542
+ for (const child of await listChildren(packDir, 'dir')) {
543
+ if (!['agents', 'skills'].includes(child)) errors.push(`claude/packs/${pack}/${child}: a pack holds only agents/ and skills/ (plus .claude-plugin/)`);
544
+ }
545
+ counts.packs += 1;
546
+ }
547
+ await checkMarketplace(assetsDir, packs, errors);
548
+
549
+ // Shared skills: every pack copy must be byte-identical to the core (run the generator to sync).
550
+ for (const [rel, content] of await expectedSharedPackSkillFiles({ assetsDir })) {
551
+ let current = null;
552
+ try { current = await readFile(join(assetsDir, 'claude', ...rel.split('/'))); } catch { current = null; }
553
+ if (!current || !current.equals(content)) {
554
+ errors.push(`claude/${rel}: ${current ? 'differs from' : 'missing —'} the core copy in claude/skills/ (run node scripts/generate-claude-assets.js to sync the shared pack skills)`);
555
+ }
556
+ }
557
+ for (const pack of packs) {
558
+ for (const skill of SHARED_PACK_SKILLS) {
559
+ if (!existsSync(join(assetsDir, SCAN_ROOT_RELATIVE_PATHS.packs, pack, 'skills', skill))) {
560
+ errors.push(`claude/packs/${pack}/skills/${skill}: missing — every pack carries a copy of the shared skill (run the generator to sync)`);
561
+ }
562
+ }
563
+ }
575
564
 
576
- const names = await listAssetFolders(srcDir);
577
- let count = 0;
578
- for (const name of names) {
579
- const srcPath = join(srcDir, name, `${name}.instructions.md`);
565
+ // 3. Committed skills → maintenance prompts. Every committed skill MUST be one.
566
+ const committedDir = join(assetsDir, SCAN_ROOT_RELATIVE_PATHS.committedSkills);
567
+ const prompts = [];
568
+ for (const name of await listChildren(committedDir, 'dir')) {
569
+ const where = `claude-committed/skills/${name}`;
580
570
  try {
581
- const content = await readFile(srcPath, 'utf-8');
582
- const converted = convertInstructionToSkill(content, name);
583
- const skillDir = join(destDir, name);
584
- await ensureDir(skillDir);
585
- await writeFile(join(skillDir, 'SKILL.md'), converted, 'utf-8');
586
- count += 1;
571
+ const content = await readFile(join(committedDir, name, 'SKILL.md'), 'utf-8');
572
+ const { frontmatter } = splitFrontmatter(content);
573
+ if (!frontmatter) throw new Error('SKILL.md has no frontmatter');
574
+ if (!isCommittedMaintenanceSkill(`${SCAN_ROOT_RELATIVE_PATHS.committedSkills}/${name}`, frontmatter)) {
575
+ throw new Error('committed skill lacks disable-model-invocation: true — it would be silently dropped from the Copilot catalog');
576
+ }
577
+ checkDescriptionYaml(frontmatter, `${where}/SKILL.md`, errors);
578
+ put(`prompts/${name}.prompt.md`, convertMaintenanceSkillToPrompt(content));
579
+ prompts.push(name);
580
+ counts.prompts += 1;
587
581
  } catch (error) {
588
- console.warn(` skip instructions/${name}: ${error.message}`);
582
+ errors.push(`${where}: ${error.message}`);
589
583
  }
590
584
  }
591
- return count;
592
- }
593
585
 
594
- async function main() {
595
- console.log('Generating Claude Code target assets from Copilot sources...\n');
586
+ // 4. Mapping gaps recorded by the pure converters are errors here.
587
+ errors.push(...getDiagnosticMessages());
596
588
 
597
- const agentCount = await generateAgents();
598
- console.log(`✓ agents: ${agentCount} converted -> assets/claude/agents/`);
589
+ // 5. Residue over the WHOLE generated tree — except upstream's own text (third-party skills).
590
+ for (const [rel, { content }] of files) {
591
+ if (!rel.endsWith('.md') || thirdPartyFiles.has(rel)) continue;
592
+ errors.push(...findCopilotResidue(rel, content.toString('utf-8')));
593
+ }
599
594
 
600
- const promptCount = await generatePrompts();
601
- console.log(`✓ prompts: ${promptCount} converted -> assets/claude/commands/`);
595
+ const agents = Object.keys(assetPacks.agents).sort();
596
+ const skills = Object.keys(assetPacks.skills).sort();
597
+ const sortedRecord = (rec) => Object.fromEntries(Object.keys(rec).sort().map((k) => [k, rec[k]]));
598
+ const manifest = {
599
+ version: '1.0.0',
600
+ description: 'Available Vesper assets. Use with: vespercli add agents|prompts|instructions|skills <name>; packs with: vespercli packs list|enable|disable|sync',
601
+ packs,
602
+ agents,
603
+ prompts: prompts.sort(),
604
+ coreInstructions: coreInstructions.sort(),
605
+ instructions: extendedInstructions.sort(),
606
+ skills,
607
+ assetPacks: { agents: sortedRecord(assetPacks.agents), skills: sortedRecord(assetPacks.skills) },
608
+ };
602
609
 
603
- const skillCount = await generateSkillsFromSkills();
604
- console.log(`✓ skills: ${skillCount} copied -> assets/claude/skills/`);
610
+ return { files, manifest, errors, counts };
611
+ }
605
612
 
606
- const instructionSkillCount = await generateSkillsFromInstructions();
607
- console.log(`✓ instructions: ${instructionSkillCount} converted to skills -> assets/claude/skills/`);
608
613
 
609
- console.log('\nDone. Hand-authored content (assets/claude/agents/vesper-*.md, vesper-orchestrator.md, *.tpl, commands/vesper-*.md) is untouched by this script.');
614
+ /** Serialize the global manifest (no timestamp: parallel worktrees must merge cleanly). */
615
+ export function serializeManifest(manifest) {
616
+ return `${JSON.stringify(manifest, null, 2)}\n`;
617
+ }
610
618
 
611
- // Escalate unknown tokens in CI (or when --strict is passed): an unmapped token means a
612
- // mis-permissioned agent would ship. Locally we warn-and-continue; CI must hard-fail.
613
- const strict = process.argv.includes('--strict') || Boolean(process.env.CI);
614
- if (sawUnknownToken && strict) {
615
- console.error('\n✗ Unknown tool token(s) encountered (see warnings above). Failing build (CI/--strict).');
616
- process.exitCode = 1;
619
+ /**
620
+ * Write the tree atomically: temp sibling dir → rename swap → drop the old tree.
621
+ * @param {Map<string, {content: Buffer, mode: number}>} files
622
+ * @param {string} [outDir=COPILOT_DIR]
623
+ */
624
+ export async function writeTreeAtomically(files, outDir = COPILOT_DIR) {
625
+ const parent = dirname(outDir);
626
+ const stamp = `${process.pid}-${Date.now()}`;
627
+ const tmp = join(parent, `.copilot.tmp-${stamp}`);
628
+ const old = join(parent, `.copilot.old-${stamp}`);
629
+ try {
630
+ for (const [rel, { content, mode }] of files) {
631
+ const dest = join(tmp, ...rel.split('/'));
632
+ await mkdir(dirname(dest), { recursive: true });
633
+ await writeFile(dest, content);
634
+ await chmod(dest, mode);
635
+ }
636
+ if (existsSync(outDir)) await rename(outDir, old);
637
+ await rename(tmp, outDir);
638
+ } catch (error) {
639
+ await rm(tmp, { recursive: true, force: true });
640
+ if (!existsSync(outDir) && existsSync(old)) await rename(old, outDir); // restore
641
+ throw error;
617
642
  }
618
- if (sawUnmappableGlob && strict) {
619
- console.error('\n✗ Unmappable applyTo glob(s) encountered (see warnings above). Failing build (CI/--strict).');
643
+ await rm(old, { recursive: true, force: true });
644
+ }
645
+
646
+ async function main() {
647
+ console.log('Generating Copilot target assets from the canonical Claude sources...\n');
648
+ // The one canonical-tree write: refresh each pack's copy of the shared skills from the core.
649
+ const synced = await syncSharedPackSkills();
650
+ if (synced.length) console.log(`✓ shared pack skills synced from the core: ${synced.length} file(s)\n`);
651
+ const { files, manifest, errors, counts } = await buildCopilotTree();
652
+ if (errors.length > 0) {
653
+ console.error(`✗ ${errors.length} error(s) — nothing was written:\n`);
654
+ for (const e of errors) console.error(` - ${e}`);
620
655
  process.exitCode = 1;
656
+ return;
621
657
  }
658
+ await writeTreeAtomically(files);
659
+ await writeFile(join(ASSETS_DIR, 'manifest.json'), serializeManifest(manifest), 'utf-8');
660
+
661
+ console.log(`✓ agents: ${counts.agents} -> assets/copilot/agents/ + packs/<pack>/agents/ (all user-invocable: false)`);
662
+ console.log(`✓ skills: ${counts.skills} -> assets/copilot/skills/ + packs/<pack>/skills/ (every .md rendered; ${counts.thirdParty} third-party copied verbatim)`);
663
+ console.log(`✓ packs: ${counts.packs} (${manifest.packs.join(', ') || 'none'}) -> assets/copilot/packs/<pack>/`);
664
+ console.log(`✓ instructions: ${counts.coreInstructions} core -> assets/copilot/instructions/, ${counts.extendedInstructions} extended -> assets/copilot/instructions-extended/<name>/`);
665
+ console.log(`✓ prompts: ${counts.prompts} -> assets/copilot/prompts/`);
666
+ console.log('✓ manifest: assets/manifest.json');
667
+ console.log('\nDone. Canonical sources (assets/claude/, assets/claude-committed/) are read-only to this script.');
622
668
  }
623
669
 
624
- // Only run generation when executed directly as a script — importing the module
625
- // (e.g. from vitest) must NOT trigger a full catalog regeneration. Guard on
626
- // `process.argv[1]` first: when unset (e.g. `node --input-type=module -e`),
627
- // `pathToFileURL(undefined)` throws ERR_INVALID_ARG_TYPE, so the import-safety
628
- // guarantee must not depend on argv[1] being populated.
670
+ // Only generate when executed directly — importing the module must NOT regenerate.
629
671
  if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
630
672
  main().catch((error) => {
631
673
  console.error('Generation failed:', error);
632
674
  process.exit(1);
633
675
  });
634
676
  }
635
-
636
- export { extractToolTokens, mapToolTokens, convertAgent, describeApplyTo, convertInstructionToSkill };