claude-code-swarm 0.3.3 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +22 -1
  3. package/.claude-plugin/run-agent-inbox-mcp.sh +76 -0
  4. package/.claude-plugin/run-minimem-mcp.sh +98 -0
  5. package/.claude-plugin/run-opentasks-mcp.sh +65 -0
  6. package/CLAUDE.md +200 -36
  7. package/README.md +65 -0
  8. package/e2e/helpers/cleanup.mjs +17 -3
  9. package/e2e/helpers/map-mock-server.mjs +201 -25
  10. package/e2e/helpers/sidecar.mjs +222 -0
  11. package/e2e/helpers/workspace.mjs +2 -1
  12. package/e2e/tier5-sidecar-inbox.test.mjs +900 -0
  13. package/e2e/tier6-inbox-mcp.test.mjs +173 -0
  14. package/e2e/tier6-live-agent.test.mjs +759 -0
  15. package/e2e/vitest.config.e2e.mjs +1 -1
  16. package/hooks/hooks.json +15 -8
  17. package/package.json +13 -1
  18. package/references/agent-inbox/CLAUDE.md +151 -0
  19. package/references/agent-inbox/README.md +238 -0
  20. package/references/agent-inbox/docs/CLAUDE-CODE-SWARM-PROPOSAL.md +137 -0
  21. package/references/agent-inbox/docs/DESIGN.md +1156 -0
  22. package/references/agent-inbox/hooks/inbox-hook.mjs +119 -0
  23. package/references/agent-inbox/hooks/register-hook.mjs +69 -0
  24. package/references/agent-inbox/package-lock.json +3347 -0
  25. package/references/agent-inbox/package.json +58 -0
  26. package/references/agent-inbox/rules/agent-inbox.md +78 -0
  27. package/references/agent-inbox/src/federation/address.ts +61 -0
  28. package/references/agent-inbox/src/federation/connection-manager.ts +573 -0
  29. package/references/agent-inbox/src/federation/delivery-queue.ts +222 -0
  30. package/references/agent-inbox/src/federation/index.ts +6 -0
  31. package/references/agent-inbox/src/federation/routing-engine.ts +188 -0
  32. package/references/agent-inbox/src/federation/trust.ts +71 -0
  33. package/references/agent-inbox/src/index.ts +390 -0
  34. package/references/agent-inbox/src/ipc/ipc-server.ts +207 -0
  35. package/references/agent-inbox/src/jsonrpc/mail-server.ts +382 -0
  36. package/references/agent-inbox/src/map/map-client.ts +414 -0
  37. package/references/agent-inbox/src/mcp/mcp-server.ts +272 -0
  38. package/references/agent-inbox/src/mesh/delivery-bridge.ts +110 -0
  39. package/references/agent-inbox/src/mesh/mesh-connector.ts +41 -0
  40. package/references/agent-inbox/src/mesh/mesh-transport.ts +157 -0
  41. package/references/agent-inbox/src/mesh/type-mapper.ts +239 -0
  42. package/references/agent-inbox/src/push/notifier.ts +233 -0
  43. package/references/agent-inbox/src/registry/warm-registry.ts +255 -0
  44. package/references/agent-inbox/src/router/message-router.ts +175 -0
  45. package/references/agent-inbox/src/storage/interface.ts +48 -0
  46. package/references/agent-inbox/src/storage/memory.ts +145 -0
  47. package/references/agent-inbox/src/storage/sqlite.ts +671 -0
  48. package/references/agent-inbox/src/traceability/traceability.ts +183 -0
  49. package/references/agent-inbox/src/types.ts +303 -0
  50. package/references/agent-inbox/test/federation/address.test.ts +101 -0
  51. package/references/agent-inbox/test/federation/connection-manager.test.ts +546 -0
  52. package/references/agent-inbox/test/federation/delivery-queue.test.ts +159 -0
  53. package/references/agent-inbox/test/federation/integration.test.ts +857 -0
  54. package/references/agent-inbox/test/federation/routing-engine.test.ts +117 -0
  55. package/references/agent-inbox/test/federation/sdk-integration.test.ts +744 -0
  56. package/references/agent-inbox/test/federation/trust.test.ts +89 -0
  57. package/references/agent-inbox/test/ipc-jsonrpc.test.ts +113 -0
  58. package/references/agent-inbox/test/ipc-server.test.ts +197 -0
  59. package/references/agent-inbox/test/mail-server.test.ts +285 -0
  60. package/references/agent-inbox/test/map-client.test.ts +408 -0
  61. package/references/agent-inbox/test/mesh/delivery-bridge.test.ts +178 -0
  62. package/references/agent-inbox/test/mesh/e2e-mesh.test.ts +527 -0
  63. package/references/agent-inbox/test/mesh/e2e-real-meshpeer.test.ts +629 -0
  64. package/references/agent-inbox/test/mesh/federation-mesh.test.ts +269 -0
  65. package/references/agent-inbox/test/mesh/mesh-connector.test.ts +66 -0
  66. package/references/agent-inbox/test/mesh/mesh-transport.test.ts +191 -0
  67. package/references/agent-inbox/test/mesh/meshpeer-integration.test.ts +442 -0
  68. package/references/agent-inbox/test/mesh/mock-mesh.ts +125 -0
  69. package/references/agent-inbox/test/mesh/mock-meshpeer.ts +266 -0
  70. package/references/agent-inbox/test/mesh/type-mapper.test.ts +226 -0
  71. package/references/agent-inbox/test/message-router.test.ts +184 -0
  72. package/references/agent-inbox/test/push-notifier.test.ts +139 -0
  73. package/references/agent-inbox/test/registry/warm-registry.test.ts +171 -0
  74. package/references/agent-inbox/test/sqlite-prefix.test.ts +192 -0
  75. package/references/agent-inbox/test/sqlite-storage.test.ts +243 -0
  76. package/references/agent-inbox/test/storage.test.ts +196 -0
  77. package/references/agent-inbox/test/traceability.test.ts +123 -0
  78. package/references/agent-inbox/test/wake.test.ts +330 -0
  79. package/references/agent-inbox/tsconfig.json +20 -0
  80. package/references/agent-inbox/tsup.config.ts +10 -0
  81. package/references/agent-inbox/vitest.config.ts +8 -0
  82. package/references/minimem/.claude/settings.json +7 -0
  83. package/references/minimem/.sudocode/issues.jsonl +18 -0
  84. package/references/minimem/.sudocode/specs.jsonl +1 -0
  85. package/references/minimem/CLAUDE.md +329 -0
  86. package/references/minimem/README.md +565 -0
  87. package/references/minimem/claude-plugin/.claude-plugin/plugin.json +10 -0
  88. package/references/minimem/claude-plugin/.mcp.json +7 -0
  89. package/references/minimem/claude-plugin/README.md +158 -0
  90. package/references/minimem/claude-plugin/commands/recall.md +47 -0
  91. package/references/minimem/claude-plugin/commands/remember.md +41 -0
  92. package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +272 -0
  93. package/references/minimem/claude-plugin/hooks/hooks.json +27 -0
  94. package/references/minimem/claude-plugin/hooks/session-end.sh +86 -0
  95. package/references/minimem/claude-plugin/hooks/session-start.sh +85 -0
  96. package/references/minimem/claude-plugin/skills/memory/SKILL.md +108 -0
  97. package/references/minimem/media/banner.png +0 -0
  98. package/references/minimem/package-lock.json +5373 -0
  99. package/references/minimem/package.json +76 -0
  100. package/references/minimem/scripts/postbuild.js +49 -0
  101. package/references/minimem/src/__tests__/edge-cases.test.ts +371 -0
  102. package/references/minimem/src/__tests__/errors.test.ts +265 -0
  103. package/references/minimem/src/__tests__/helpers.ts +199 -0
  104. package/references/minimem/src/__tests__/internal.test.ts +407 -0
  105. package/references/minimem/src/__tests__/knowledge-frontmatter.test.ts +148 -0
  106. package/references/minimem/src/__tests__/knowledge.test.ts +148 -0
  107. package/references/minimem/src/__tests__/minimem.integration.test.ts +1127 -0
  108. package/references/minimem/src/__tests__/session.test.ts +190 -0
  109. package/references/minimem/src/cli/__tests__/commands.test.ts +760 -0
  110. package/references/minimem/src/cli/__tests__/contained-layout.test.ts +286 -0
  111. package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +141 -0
  112. package/references/minimem/src/cli/commands/append.ts +76 -0
  113. package/references/minimem/src/cli/commands/config.ts +262 -0
  114. package/references/minimem/src/cli/commands/conflicts.ts +415 -0
  115. package/references/minimem/src/cli/commands/daemon.ts +169 -0
  116. package/references/minimem/src/cli/commands/index.ts +12 -0
  117. package/references/minimem/src/cli/commands/init.ts +166 -0
  118. package/references/minimem/src/cli/commands/mcp.ts +221 -0
  119. package/references/minimem/src/cli/commands/push-pull.ts +213 -0
  120. package/references/minimem/src/cli/commands/search.ts +223 -0
  121. package/references/minimem/src/cli/commands/status.ts +84 -0
  122. package/references/minimem/src/cli/commands/store.ts +189 -0
  123. package/references/minimem/src/cli/commands/sync-init.ts +290 -0
  124. package/references/minimem/src/cli/commands/sync.ts +70 -0
  125. package/references/minimem/src/cli/commands/upsert.ts +197 -0
  126. package/references/minimem/src/cli/config.ts +611 -0
  127. package/references/minimem/src/cli/index.ts +299 -0
  128. package/references/minimem/src/cli/shared.ts +189 -0
  129. package/references/minimem/src/cli/sync/__tests__/central.test.ts +152 -0
  130. package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +209 -0
  131. package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +118 -0
  132. package/references/minimem/src/cli/sync/__tests__/detection.test.ts +207 -0
  133. package/references/minimem/src/cli/sync/__tests__/integration.test.ts +476 -0
  134. package/references/minimem/src/cli/sync/__tests__/registry.test.ts +363 -0
  135. package/references/minimem/src/cli/sync/__tests__/state.test.ts +255 -0
  136. package/references/minimem/src/cli/sync/__tests__/validation.test.ts +193 -0
  137. package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +178 -0
  138. package/references/minimem/src/cli/sync/central.ts +292 -0
  139. package/references/minimem/src/cli/sync/conflicts.ts +205 -0
  140. package/references/minimem/src/cli/sync/daemon.ts +407 -0
  141. package/references/minimem/src/cli/sync/detection.ts +138 -0
  142. package/references/minimem/src/cli/sync/index.ts +107 -0
  143. package/references/minimem/src/cli/sync/operations.ts +373 -0
  144. package/references/minimem/src/cli/sync/registry.ts +279 -0
  145. package/references/minimem/src/cli/sync/state.ts +358 -0
  146. package/references/minimem/src/cli/sync/validation.ts +206 -0
  147. package/references/minimem/src/cli/sync/watcher.ts +237 -0
  148. package/references/minimem/src/cli/version.ts +34 -0
  149. package/references/minimem/src/core/index.ts +9 -0
  150. package/references/minimem/src/core/indexer.ts +628 -0
  151. package/references/minimem/src/core/searcher.ts +221 -0
  152. package/references/minimem/src/db/schema.ts +183 -0
  153. package/references/minimem/src/db/sqlite-vec.ts +24 -0
  154. package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +431 -0
  155. package/references/minimem/src/embeddings/batch-gemini.ts +392 -0
  156. package/references/minimem/src/embeddings/batch-openai.ts +409 -0
  157. package/references/minimem/src/embeddings/embeddings.ts +434 -0
  158. package/references/minimem/src/index.ts +132 -0
  159. package/references/minimem/src/internal.ts +299 -0
  160. package/references/minimem/src/minimem.ts +1291 -0
  161. package/references/minimem/src/search/__tests__/hybrid.test.ts +247 -0
  162. package/references/minimem/src/search/graph.ts +234 -0
  163. package/references/minimem/src/search/hybrid.ts +151 -0
  164. package/references/minimem/src/search/search.ts +256 -0
  165. package/references/minimem/src/server/__tests__/mcp.test.ts +347 -0
  166. package/references/minimem/src/server/__tests__/tools.test.ts +364 -0
  167. package/references/minimem/src/server/mcp.ts +326 -0
  168. package/references/minimem/src/server/tools.ts +720 -0
  169. package/references/minimem/src/session.ts +460 -0
  170. package/references/minimem/src/store/__tests__/manifest.test.ts +177 -0
  171. package/references/minimem/src/store/__tests__/materialize.test.ts +52 -0
  172. package/references/minimem/src/store/__tests__/store-graph.test.ts +228 -0
  173. package/references/minimem/src/store/index.ts +27 -0
  174. package/references/minimem/src/store/manifest.ts +203 -0
  175. package/references/minimem/src/store/materialize.ts +185 -0
  176. package/references/minimem/src/store/store-graph.ts +252 -0
  177. package/references/minimem/tsconfig.json +19 -0
  178. package/references/minimem/tsup.config.ts +26 -0
  179. package/references/minimem/vitest.config.ts +29 -0
  180. package/references/openteams/src/cli/generate.ts +23 -1
  181. package/references/openteams/src/generators/agent-prompt-generator.test.ts +94 -0
  182. package/references/openteams/src/generators/agent-prompt-generator.ts +42 -13
  183. package/references/openteams/src/generators/package-generator.ts +9 -1
  184. package/references/openteams/src/generators/skill-generator.test.ts +28 -0
  185. package/references/openteams/src/generators/skill-generator.ts +10 -4
  186. package/references/skill-tree/.claude/settings.json +6 -0
  187. package/references/skill-tree/.sudocode/issues.jsonl +19 -0
  188. package/references/skill-tree/.sudocode/specs.jsonl +3 -0
  189. package/references/skill-tree/CLAUDE.md +132 -0
  190. package/references/skill-tree/README.md +396 -0
  191. package/references/skill-tree/docs/GAPS_v1.md +221 -0
  192. package/references/skill-tree/docs/INTEGRATION_PLAN.md +467 -0
  193. package/references/skill-tree/docs/TODOS.md +91 -0
  194. package/references/skill-tree/docs/anthropic_skill_guide.md +1364 -0
  195. package/references/skill-tree/docs/design/federated-skill-trees.md +524 -0
  196. package/references/skill-tree/docs/design/multi-agent-sync.md +759 -0
  197. package/references/skill-tree/docs/scraper/BRAINSTORM.md +583 -0
  198. package/references/skill-tree/docs/scraper/POC_PLAN.md +420 -0
  199. package/references/skill-tree/docs/scraper/README.md +170 -0
  200. package/references/skill-tree/examples/basic-usage.ts +157 -0
  201. package/references/skill-tree/package-lock.json +1852 -0
  202. package/references/skill-tree/package.json +66 -0
  203. package/references/skill-tree/plan.md +78 -0
  204. package/references/skill-tree/scraper/README.md +123 -0
  205. package/references/skill-tree/scraper/docs/DESIGN.md +683 -0
  206. package/references/skill-tree/scraper/docs/PLAN.md +336 -0
  207. package/references/skill-tree/scraper/drizzle.config.ts +10 -0
  208. package/references/skill-tree/scraper/package-lock.json +6329 -0
  209. package/references/skill-tree/scraper/package.json +68 -0
  210. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +7 -0
  211. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +7 -0
  212. package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +27 -0
  213. package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +21 -0
  214. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +54 -0
  215. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +24 -0
  216. package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +93 -0
  217. package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +22 -0
  218. package/references/skill-tree/scraper/tsup.config.ts +14 -0
  219. package/references/skill-tree/scraper/vitest.config.ts +17 -0
  220. package/references/skill-tree/scripts/convert-to-vitest.ts +166 -0
  221. package/references/skill-tree/skills/skill-writer/SKILL.md +339 -0
  222. package/references/skill-tree/skills/skill-writer/references/examples.md +326 -0
  223. package/references/skill-tree/skills/skill-writer/references/patterns.md +210 -0
  224. package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +123 -0
  225. package/references/skill-tree/test/run-all.ts +106 -0
  226. package/references/skill-tree/test/utils.ts +128 -0
  227. package/references/skill-tree/vitest.config.ts +16 -0
  228. package/references/swarmkit/src/commands/init/phases/configure.ts +0 -22
  229. package/references/swarmkit/src/commands/init/phases/global-setup.ts +5 -3
  230. package/references/swarmkit/src/commands/init/wizard.ts +2 -2
  231. package/references/swarmkit/src/packages/setup.test.ts +53 -7
  232. package/references/swarmkit/src/packages/setup.ts +37 -1
  233. package/scripts/bootstrap.mjs +26 -1
  234. package/scripts/generate-agents.mjs +5 -1
  235. package/scripts/map-hook.mjs +97 -64
  236. package/scripts/map-sidecar.mjs +179 -25
  237. package/scripts/team-loader.mjs +12 -41
  238. package/skills/swarm/SKILL.md +89 -25
  239. package/src/__tests__/agent-generator.test.mjs +6 -13
  240. package/src/__tests__/bootstrap.test.mjs +124 -1
  241. package/src/__tests__/config.test.mjs +200 -27
  242. package/src/__tests__/e2e-live-map.test.mjs +536 -0
  243. package/src/__tests__/e2e-mesh-sidecar.test.mjs +570 -0
  244. package/src/__tests__/e2e-native-task-hooks.test.mjs +376 -0
  245. package/src/__tests__/e2e-sidecar-bridge.test.mjs +477 -0
  246. package/src/__tests__/helpers.mjs +13 -0
  247. package/src/__tests__/inbox.test.mjs +22 -89
  248. package/src/__tests__/index.test.mjs +35 -9
  249. package/src/__tests__/integration.test.mjs +513 -0
  250. package/src/__tests__/map-events.test.mjs +514 -150
  251. package/src/__tests__/mesh-connection.test.mjs +308 -0
  252. package/src/__tests__/opentasks-client.test.mjs +517 -0
  253. package/src/__tests__/paths.test.mjs +185 -41
  254. package/src/__tests__/sidecar-client.test.mjs +35 -0
  255. package/src/__tests__/sidecar-server.test.mjs +124 -0
  256. package/src/__tests__/skilltree-client.test.mjs +80 -0
  257. package/src/agent-generator.mjs +104 -33
  258. package/src/bootstrap.mjs +150 -10
  259. package/src/config.mjs +81 -17
  260. package/src/context-output.mjs +58 -8
  261. package/src/inbox.mjs +9 -54
  262. package/src/index.mjs +39 -8
  263. package/src/map-connection.mjs +4 -3
  264. package/src/map-events.mjs +350 -80
  265. package/src/mesh-connection.mjs +148 -0
  266. package/src/opentasks-client.mjs +269 -0
  267. package/src/paths.mjs +182 -27
  268. package/src/sessionlog.mjs +14 -9
  269. package/src/sidecar-client.mjs +81 -27
  270. package/src/sidecar-server.mjs +175 -16
  271. package/src/skilltree-client.mjs +173 -0
  272. package/src/template.mjs +68 -4
  273. package/vitest.config.mjs +1 -0
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "skill-tree",
3
+ "version": "0.1.5",
4
+ "description": "Library for managing agent skill versions and evolution - extract, iterate, and adapt skills from agent trajectories",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.mjs",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.js"
13
+ }
14
+ },
15
+ "bin": {
16
+ "skill-tree": "./dist/cli/index.js"
17
+ },
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "scripts": {
22
+ "build": "tsup src/index.ts src/cli/index.ts --format cjs,esm --dts",
23
+ "dev": "tsup src/index.ts --format cjs,esm --dts --watch",
24
+ "lint": "tsc --noEmit",
25
+ "test": "vitest run",
26
+ "test:watch": "vitest",
27
+ "test:ui": "vitest --ui",
28
+ "test:coverage": "vitest run --coverage",
29
+ "test:legacy": "tsx test/run-all.ts",
30
+ "prepublishOnly": "npm run build",
31
+ "version:patch": "npm version patch && git push && git push --tags",
32
+ "version:minor": "npm version minor && git push && git push --tags",
33
+ "version:major": "npm version major && git push && git push --tags"
34
+ },
35
+ "keywords": [
36
+ "ai",
37
+ "agents",
38
+ "skills",
39
+ "llm",
40
+ "versioning",
41
+ "extraction",
42
+ "trajectory",
43
+ "claude",
44
+ "skill-tree"
45
+ ],
46
+ "author": "",
47
+ "license": "MIT",
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "git+https://github.com/alexngai/skill-tree.git"
51
+ },
52
+ "devDependencies": {
53
+ "@types/better-sqlite3": "^7.6.13",
54
+ "@types/node": "^25.0.10",
55
+ "tsup": "^8.0.0",
56
+ "tsx": "^4.21.0",
57
+ "typescript": "^5.0.0",
58
+ "vitest": "^4.0.18"
59
+ },
60
+ "dependencies": {
61
+ "better-sqlite3": "^12.6.2",
62
+ "chalk": "^5.6.2",
63
+ "commander": "^14.0.2",
64
+ "simple-git": "^3.30.0"
65
+ }
66
+ }
@@ -0,0 +1,78 @@
1
+ # Materialization Gaps — Implementation Plan
2
+
3
+ ## Gap 1: `skill-tree materialize` CLI command
4
+ **File:** `src/cli/commands/materialize.ts`
5
+
6
+ Add a standalone CLI command for one-shot materialization:
7
+ ```
8
+ skill-tree materialize [--paths .claude/skills,.agent/skills] [--agents-md ./AGENTS.md] [--format xml]
9
+ ```
10
+ - Creates a temporary SkillBank, runs `Materializer.initialize()`, then shuts down
11
+ - Useful for CI, scripting, and manual invocation outside the programmatic API
12
+
13
+ ## Gap 2: Config file integration
14
+ **Files:** `src/config/types.ts`
15
+
16
+ Add `materialization` section to `SkillTreeConfig` and `DEFAULT_CONFIG`:
17
+ ```yaml
18
+ materialization:
19
+ enabled: false
20
+ symlink_paths: []
21
+ agents_md_path: ""
22
+ agents_md_format: xml
23
+ debounce_ms: 500
24
+ ```
25
+ Add to `PartialSkillTreeConfig` as well.
26
+
27
+ ## Gap 3: CLI `createSkillBankFromOptions` reads materialization config
28
+ **File:** `src/cli/utils/skillbank.ts`
29
+
30
+ Update `createSkillBankFromOptions` to:
31
+ - Load the global config (already loaded in cli/index.ts)
32
+ - If `config.materialization.enabled`, pass `MaterializationConfig` to the SkillBank constructor
33
+ - This makes all CLI commands (save, import, delete) trigger materialization automatically
34
+
35
+ ## Gap 4: AGENTS.md sync coordination
36
+ **File:** `src/materialization/materializer.ts`
37
+
38
+ The existing `sync` command writes full AGENTS.md. Materializer uses markers. These already don't conflict because:
39
+ - Materializer writes within `<!-- SKILLTREE_START/END -->` markers
40
+ - If no markers exist, it appends
41
+
42
+ But we should add a check: if `sync` command is used, warn if materialization is also enabled for the same path. Add a note in the `materialize` command help text.
43
+
44
+ ## Gap 5: Copy mode (alternative to symlinks)
45
+ **Files:** `src/types.ts`, `src/materialization/materializer.ts`
46
+
47
+ Add `mode: 'symlink' | 'copy'` to `MaterializationConfig` (default: `'symlink'`).
48
+ - `'symlink'`: current behavior
49
+ - `'copy'`: copies the skill directory instead of symlinking. On changes, copies are refreshed. On delete, copies are removed.
50
+
51
+ ## Gap 6: File watcher mode
52
+ **File:** `src/materialization/materializer.ts`
53
+
54
+ Add `watch()` / `unwatch()` methods to Materializer:
55
+ - Uses `fs.watch()` on `.skilltree/skills/` to detect file changes
56
+ - On change, re-reads the skill from storage and updates symlinks/copies + AGENTS.md
57
+ - Debounced to avoid rapid-fire events
58
+
59
+ ## Gap 7: Fuzzy `read` command
60
+ **File:** `src/cli/commands/read.ts`
61
+
62
+ Enhance `read` to fall back to search when exact ID match fails:
63
+ - First try `getSkill(name)` (exact)
64
+ - If not found, try `searchSkills(name)` and use first result
65
+ - Print a note like `(matched: actual-skill-id)` so the agent knows what was resolved
66
+
67
+ ## File Summary
68
+
69
+ | Action | File |
70
+ |--------|------|
71
+ | New | `src/cli/commands/materialize.ts` |
72
+ | Edit | `src/config/types.ts` — add materialization section |
73
+ | Edit | `src/cli/utils/skillbank.ts` — read materialization config |
74
+ | Edit | `src/cli/index.ts` — register materialize command |
75
+ | Edit | `src/types.ts` — add `mode` field to MaterializationConfig |
76
+ | Edit | `src/materialization/materializer.ts` — copy mode + watcher |
77
+ | Edit | `src/cli/commands/read.ts` — fuzzy search fallback |
78
+ | Edit | `test/materialization.test.ts` — new tests for copy, watcher, fuzzy |
@@ -0,0 +1,123 @@
1
+ # Skills Indexer
2
+
3
+ AI-powered GitHub skills indexer with hierarchical taxonomy organization.
4
+
5
+ ## Overview
6
+
7
+ The Skills Indexer discovers, scrapes, and indexes Agent Skills from GitHub repositories. It uses Claude AI to intelligently classify skills into a hierarchical taxonomy, enabling semantic search and discovery.
8
+
9
+ ## Features
10
+
11
+ - **GitHub Scraping**: Discovers skills from awesome-lists and repositories
12
+ - **AI Classification**: Uses Claude to categorize skills into a hierarchical tree
13
+ - **Multi-path Placement**: Skills can belong to multiple taxonomy categories
14
+ - **Relationship Detection**: Identifies dependencies, alternatives, and extensions
15
+ - **Async Architecture**: Designed for scale with concurrent processing
16
+
17
+ ## Quick Start
18
+
19
+ ```bash
20
+ # Install dependencies
21
+ npm install
22
+
23
+ # Set up environment
24
+ cp .env.example .env
25
+ # Edit .env with your GitHub token and Anthropic API key
26
+
27
+ # Run database migrations
28
+ npm run db:migrate
29
+
30
+ # Scrape skills from default sources
31
+ npx skillindexer scrape --discover
32
+
33
+ # Index unclassified skills
34
+ npx skillindexer index
35
+
36
+ # Browse the taxonomy
37
+ npx skillindexer tree
38
+ ```
39
+
40
+ ## Commands
41
+
42
+ ```bash
43
+ # Scraping
44
+ skillindexer scrape <repo-url> # Scrape specific repository
45
+ skillindexer scrape --discover # Scrape from configured sources
46
+
47
+ # Indexing
48
+ skillindexer index # Index all unclassified skills
49
+ skillindexer index --skill <id> # Re-index specific skill
50
+
51
+ # Browsing
52
+ skillindexer tree # Show full taxonomy tree
53
+ skillindexer tree <path> # Show subtree (e.g., "Development/Python")
54
+ skillindexer list # List all skills
55
+ skillindexer show <skill-id> # Show skill details
56
+
57
+ # Search
58
+ skillindexer search <query> # Keyword search
59
+
60
+ # Maintenance
61
+ skillindexer stats # Show statistics
62
+ skillindexer export --json # Export database to JSON
63
+ ```
64
+
65
+ ## Configuration
66
+
67
+ ### Environment Variables
68
+
69
+ | Variable | Required | Default | Description |
70
+ |----------|----------|---------|-------------|
71
+ | `GITHUB_TOKEN` | Yes | - | GitHub personal access token |
72
+ | `ANTHROPIC_API_KEY` | Yes | - | Anthropic API key |
73
+ | `SKILLINDEXER_DB_PATH` | No | `./data/skills.db` | SQLite database path |
74
+ | `SKILLINDEXER_CACHE_DIR` | No | `./data/cache` | Cache directory |
75
+ | `SKILLINDEXER_LOG_LEVEL` | No | `info` | Log level (debug/info/warn/error) |
76
+ | `SKILLINDEXER_CLAUDE_MODEL` | No | `claude-sonnet-4-20250514` | Claude model to use |
77
+
78
+ ## Architecture
79
+
80
+ See [docs/DESIGN.md](docs/DESIGN.md) for detailed architecture documentation.
81
+
82
+ ```
83
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
84
+ │ CLI │───▶│ Scraper │───▶│ Indexer │
85
+ └─────────────┘ └─────────────┘ └─────────────┘
86
+ │ │ │
87
+ └────────────────────────────────────┘
88
+
89
+
90
+ ┌─────────────────┐
91
+ │ Database │
92
+ │ (SQLite/PG) │
93
+ └─────────────────┘
94
+ ```
95
+
96
+ ## Default Sources
97
+
98
+ Skills are scraped from:
99
+
100
+ 1. [VoltAgent/awesome-agent-skills](https://github.com/VoltAgent/awesome-agent-skills) - ~172+ curated skills
101
+ 2. [VoltAgent/awesome-openclaw-skills](https://github.com/VoltAgent/awesome-openclaw-skills) - ~700+ community skills
102
+
103
+ ## Development
104
+
105
+ ```bash
106
+ # Watch mode for development
107
+ npm run dev
108
+
109
+ # Run tests
110
+ npm test
111
+
112
+ # Type check
113
+ npm run lint
114
+
115
+ # Database management
116
+ npm run db:generate # Generate migrations
117
+ npm run db:migrate # Run migrations
118
+ npm run db:studio # Open Drizzle Studio
119
+ ```
120
+
121
+ ## License
122
+
123
+ MIT