cognitive-core 0.2.1 → 0.2.3

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 (332) hide show
  1. package/dist/atlas.d.ts +10 -0
  2. package/dist/atlas.d.ts.map +1 -1
  3. package/dist/atlas.js +65 -0
  4. package/dist/atlas.js.map +1 -1
  5. package/dist/bin/cognitive-core.js +0 -0
  6. package/dist/memory/curated-loader.d.ts +21 -4
  7. package/dist/memory/curated-loader.d.ts.map +1 -1
  8. package/dist/memory/curated-loader.js +53 -16
  9. package/dist/memory/curated-loader.js.map +1 -1
  10. package/dist/memory/index.d.ts +2 -1
  11. package/dist/memory/index.d.ts.map +1 -1
  12. package/dist/memory/index.js +3 -1
  13. package/dist/memory/index.js.map +1 -1
  14. package/dist/memory/playbook.d.ts +6 -0
  15. package/dist/memory/playbook.d.ts.map +1 -1
  16. package/dist/memory/playbook.js +15 -0
  17. package/dist/memory/playbook.js.map +1 -1
  18. package/dist/memory/source-resolver.d.ts +120 -0
  19. package/dist/memory/source-resolver.d.ts.map +1 -0
  20. package/dist/memory/source-resolver.js +300 -0
  21. package/dist/memory/source-resolver.js.map +1 -0
  22. package/dist/types/config.d.ts +141 -0
  23. package/dist/types/config.d.ts.map +1 -1
  24. package/dist/types/config.js +40 -0
  25. package/dist/types/config.js.map +1 -1
  26. package/dist/types/index.d.ts +1 -1
  27. package/dist/types/index.d.ts.map +1 -1
  28. package/dist/types/index.js +1 -1
  29. package/dist/types/index.js.map +1 -1
  30. package/dist/workspace/types.d.ts +12 -54
  31. package/dist/workspace/types.d.ts.map +1 -1
  32. package/dist/workspace/types.js.map +1 -1
  33. package/package.json +3 -3
  34. package/playbooks/compound-engineering/adversarial-review.json +51 -0
  35. package/playbooks/compound-engineering/agent-native-architecture.json +59 -0
  36. package/playbooks/compound-engineering/agent-native-review.json +54 -0
  37. package/playbooks/compound-engineering/api-contract-review.json +52 -0
  38. package/playbooks/compound-engineering/brainstorm-requirements.json +55 -0
  39. package/playbooks/compound-engineering/bug-reproduction.json +62 -0
  40. package/playbooks/compound-engineering/confidence-calibration.json +49 -0
  41. package/playbooks/compound-engineering/correctness-review.json +49 -0
  42. package/playbooks/compound-engineering/data-migration-safety.json +59 -0
  43. package/playbooks/compound-engineering/deployment-verification.json +63 -0
  44. package/playbooks/compound-engineering/error-recovery-patterns.json +53 -0
  45. package/playbooks/compound-engineering/implementation-planning.json +64 -0
  46. package/playbooks/compound-engineering/issue-pattern-analysis.json +53 -0
  47. package/playbooks/compound-engineering/knowledge-compounding.json +63 -0
  48. package/playbooks/compound-engineering/learnings-research.json +54 -0
  49. package/playbooks/compound-engineering/maintainability-review.json +49 -0
  50. package/playbooks/compound-engineering/performance-review.json +54 -0
  51. package/playbooks/compound-engineering/plan-adversarial-review.json +56 -0
  52. package/playbooks/compound-engineering/plan-feasibility-review.json +56 -0
  53. package/playbooks/compound-engineering/project-standards-review.json +52 -0
  54. package/playbooks/compound-engineering/reliability-review.json +53 -0
  55. package/playbooks/compound-engineering/review-orchestration.json +64 -0
  56. package/playbooks/compound-engineering/security-review.json +54 -0
  57. package/playbooks/compound-engineering/systematic-execution.json +64 -0
  58. package/playbooks/compound-engineering/testing-review.json +50 -0
  59. package/src/atlas.ts +96 -0
  60. package/src/memory/curated-loader.ts +69 -16
  61. package/src/memory/index.ts +16 -0
  62. package/src/memory/playbook.ts +19 -0
  63. package/src/memory/source-resolver.ts +422 -0
  64. package/src/types/config.ts +46 -0
  65. package/src/types/index.ts +4 -0
  66. package/src/workspace/types.ts +22 -78
  67. package/tests/integration/curated-sources-e2e.test.ts +502 -0
  68. package/tests/memory/compound-engineering-seed.test.ts +338 -0
  69. package/tests/memory/curated-loader-extended.test.ts +225 -0
  70. package/tests/memory/playbook-quality-validation.test.ts +430 -0
  71. package/tests/memory/source-resolver.test.ts +700 -0
  72. package/.claude/settings.local.json +0 -11
  73. package/dist/learning/llm-extractor.d.ts +0 -88
  74. package/dist/learning/llm-extractor.d.ts.map +0 -1
  75. package/dist/learning/llm-extractor.js +0 -372
  76. package/dist/learning/llm-extractor.js.map +0 -1
  77. package/dist/learning/loop-coordinator.d.ts +0 -61
  78. package/dist/learning/loop-coordinator.d.ts.map +0 -1
  79. package/dist/learning/loop-coordinator.js +0 -96
  80. package/dist/learning/loop-coordinator.js.map +0 -1
  81. package/dist/learning/pipeline.d.ts +0 -116
  82. package/dist/learning/pipeline.d.ts.map +0 -1
  83. package/dist/learning/pipeline.js +0 -288
  84. package/dist/learning/pipeline.js.map +0 -1
  85. package/references/agent-workspace/CLAUDE.md +0 -74
  86. package/references/agent-workspace/README.md +0 -587
  87. package/references/agent-workspace/media/banner.png +0 -0
  88. package/references/agent-workspace/package-lock.json +0 -2061
  89. package/references/agent-workspace/package.json +0 -54
  90. package/references/agent-workspace/src/handle.ts +0 -122
  91. package/references/agent-workspace/src/index.ts +0 -32
  92. package/references/agent-workspace/src/manager.ts +0 -102
  93. package/references/agent-workspace/src/readers/json.ts +0 -71
  94. package/references/agent-workspace/src/readers/markdown.ts +0 -37
  95. package/references/agent-workspace/src/readers/raw.ts +0 -27
  96. package/references/agent-workspace/src/types.ts +0 -68
  97. package/references/agent-workspace/src/validation.ts +0 -93
  98. package/references/agent-workspace/src/writers/json.ts +0 -17
  99. package/references/agent-workspace/src/writers/markdown.ts +0 -27
  100. package/references/agent-workspace/src/writers/raw.ts +0 -22
  101. package/references/agent-workspace/tests/errors.test.ts +0 -652
  102. package/references/agent-workspace/tests/handle.test.ts +0 -144
  103. package/references/agent-workspace/tests/manager.test.ts +0 -124
  104. package/references/agent-workspace/tests/readers.test.ts +0 -205
  105. package/references/agent-workspace/tests/validation.test.ts +0 -196
  106. package/references/agent-workspace/tests/writers.test.ts +0 -108
  107. package/references/agent-workspace/tsconfig.json +0 -20
  108. package/references/agent-workspace/tsup.config.ts +0 -9
  109. package/references/minimem/.claude/settings.json +0 -7
  110. package/references/minimem/.sudocode/issues.jsonl +0 -18
  111. package/references/minimem/.sudocode/specs.jsonl +0 -1
  112. package/references/minimem/CLAUDE.md +0 -310
  113. package/references/minimem/README.md +0 -556
  114. package/references/minimem/claude-plugin/.claude-plugin/plugin.json +0 -10
  115. package/references/minimem/claude-plugin/.mcp.json +0 -7
  116. package/references/minimem/claude-plugin/README.md +0 -158
  117. package/references/minimem/claude-plugin/commands/recall.md +0 -47
  118. package/references/minimem/claude-plugin/commands/remember.md +0 -41
  119. package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +0 -272
  120. package/references/minimem/claude-plugin/hooks/hooks.json +0 -27
  121. package/references/minimem/claude-plugin/hooks/session-end.sh +0 -86
  122. package/references/minimem/claude-plugin/hooks/session-start.sh +0 -85
  123. package/references/minimem/claude-plugin/skills/memory/SKILL.md +0 -108
  124. package/references/minimem/package-lock.json +0 -5373
  125. package/references/minimem/package.json +0 -60
  126. package/references/minimem/scripts/postbuild.js +0 -35
  127. package/references/minimem/src/__tests__/edge-cases.test.ts +0 -371
  128. package/references/minimem/src/__tests__/errors.test.ts +0 -265
  129. package/references/minimem/src/__tests__/helpers.ts +0 -199
  130. package/references/minimem/src/__tests__/internal.test.ts +0 -407
  131. package/references/minimem/src/__tests__/knowledge.test.ts +0 -287
  132. package/references/minimem/src/__tests__/minimem.integration.test.ts +0 -1127
  133. package/references/minimem/src/__tests__/session.test.ts +0 -190
  134. package/references/minimem/src/cli/__tests__/commands.test.ts +0 -759
  135. package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +0 -141
  136. package/references/minimem/src/cli/commands/append.ts +0 -76
  137. package/references/minimem/src/cli/commands/config.ts +0 -262
  138. package/references/minimem/src/cli/commands/conflicts.ts +0 -413
  139. package/references/minimem/src/cli/commands/daemon.ts +0 -169
  140. package/references/minimem/src/cli/commands/index.ts +0 -12
  141. package/references/minimem/src/cli/commands/init.ts +0 -88
  142. package/references/minimem/src/cli/commands/mcp.ts +0 -177
  143. package/references/minimem/src/cli/commands/push-pull.ts +0 -213
  144. package/references/minimem/src/cli/commands/search.ts +0 -158
  145. package/references/minimem/src/cli/commands/status.ts +0 -84
  146. package/references/minimem/src/cli/commands/sync-init.ts +0 -290
  147. package/references/minimem/src/cli/commands/sync.ts +0 -70
  148. package/references/minimem/src/cli/commands/upsert.ts +0 -197
  149. package/references/minimem/src/cli/config.ts +0 -584
  150. package/references/minimem/src/cli/index.ts +0 -264
  151. package/references/minimem/src/cli/shared.ts +0 -161
  152. package/references/minimem/src/cli/sync/__tests__/central.test.ts +0 -152
  153. package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +0 -209
  154. package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +0 -118
  155. package/references/minimem/src/cli/sync/__tests__/detection.test.ts +0 -207
  156. package/references/minimem/src/cli/sync/__tests__/integration.test.ts +0 -476
  157. package/references/minimem/src/cli/sync/__tests__/registry.test.ts +0 -363
  158. package/references/minimem/src/cli/sync/__tests__/state.test.ts +0 -255
  159. package/references/minimem/src/cli/sync/__tests__/validation.test.ts +0 -193
  160. package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +0 -178
  161. package/references/minimem/src/cli/sync/central.ts +0 -292
  162. package/references/minimem/src/cli/sync/conflicts.ts +0 -204
  163. package/references/minimem/src/cli/sync/daemon.ts +0 -407
  164. package/references/minimem/src/cli/sync/detection.ts +0 -138
  165. package/references/minimem/src/cli/sync/index.ts +0 -107
  166. package/references/minimem/src/cli/sync/operations.ts +0 -373
  167. package/references/minimem/src/cli/sync/registry.ts +0 -279
  168. package/references/minimem/src/cli/sync/state.ts +0 -355
  169. package/references/minimem/src/cli/sync/validation.ts +0 -206
  170. package/references/minimem/src/cli/sync/watcher.ts +0 -234
  171. package/references/minimem/src/cli/version.ts +0 -34
  172. package/references/minimem/src/core/index.ts +0 -9
  173. package/references/minimem/src/core/indexer.ts +0 -628
  174. package/references/minimem/src/core/searcher.ts +0 -221
  175. package/references/minimem/src/db/schema.ts +0 -183
  176. package/references/minimem/src/db/sqlite-vec.ts +0 -24
  177. package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +0 -431
  178. package/references/minimem/src/embeddings/batch-gemini.ts +0 -392
  179. package/references/minimem/src/embeddings/batch-openai.ts +0 -409
  180. package/references/minimem/src/embeddings/embeddings.ts +0 -434
  181. package/references/minimem/src/index.ts +0 -109
  182. package/references/minimem/src/internal.ts +0 -299
  183. package/references/minimem/src/minimem.ts +0 -1276
  184. package/references/minimem/src/search/__tests__/hybrid.test.ts +0 -247
  185. package/references/minimem/src/search/graph.ts +0 -234
  186. package/references/minimem/src/search/hybrid.ts +0 -151
  187. package/references/minimem/src/search/search.ts +0 -256
  188. package/references/minimem/src/server/__tests__/mcp.test.ts +0 -341
  189. package/references/minimem/src/server/__tests__/tools.test.ts +0 -364
  190. package/references/minimem/src/server/mcp.ts +0 -326
  191. package/references/minimem/src/server/tools.ts +0 -720
  192. package/references/minimem/src/session.ts +0 -460
  193. package/references/minimem/tsconfig.json +0 -19
  194. package/references/minimem/tsup.config.ts +0 -26
  195. package/references/minimem/vitest.config.ts +0 -24
  196. package/references/sessionlog/.husky/pre-commit +0 -1
  197. package/references/sessionlog/.lintstagedrc.json +0 -4
  198. package/references/sessionlog/.prettierignore +0 -4
  199. package/references/sessionlog/.prettierrc.json +0 -11
  200. package/references/sessionlog/LICENSE +0 -21
  201. package/references/sessionlog/README.md +0 -453
  202. package/references/sessionlog/eslint.config.js +0 -58
  203. package/references/sessionlog/package-lock.json +0 -3672
  204. package/references/sessionlog/package.json +0 -65
  205. package/references/sessionlog/src/__tests__/agent-hooks.test.ts +0 -570
  206. package/references/sessionlog/src/__tests__/agent-registry.test.ts +0 -127
  207. package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +0 -225
  208. package/references/sessionlog/src/__tests__/claude-generator.test.ts +0 -46
  209. package/references/sessionlog/src/__tests__/commit-msg.test.ts +0 -86
  210. package/references/sessionlog/src/__tests__/cursor-agent.test.ts +0 -224
  211. package/references/sessionlog/src/__tests__/e2e-live.test.ts +0 -890
  212. package/references/sessionlog/src/__tests__/event-log.test.ts +0 -183
  213. package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +0 -105
  214. package/references/sessionlog/src/__tests__/gemini-agent.test.ts +0 -375
  215. package/references/sessionlog/src/__tests__/git-hooks.test.ts +0 -78
  216. package/references/sessionlog/src/__tests__/hook-managers.test.ts +0 -121
  217. package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +0 -759
  218. package/references/sessionlog/src/__tests__/opencode-agent.test.ts +0 -338
  219. package/references/sessionlog/src/__tests__/redaction.test.ts +0 -136
  220. package/references/sessionlog/src/__tests__/session-repo.test.ts +0 -353
  221. package/references/sessionlog/src/__tests__/session-store.test.ts +0 -166
  222. package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +0 -466
  223. package/references/sessionlog/src/__tests__/skill-live.test.ts +0 -461
  224. package/references/sessionlog/src/__tests__/summarize.test.ts +0 -348
  225. package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +0 -610
  226. package/references/sessionlog/src/__tests__/task-plan-live.test.ts +0 -632
  227. package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +0 -121
  228. package/references/sessionlog/src/__tests__/types.test.ts +0 -166
  229. package/references/sessionlog/src/__tests__/utils.test.ts +0 -333
  230. package/references/sessionlog/src/__tests__/validation.test.ts +0 -103
  231. package/references/sessionlog/src/__tests__/worktree.test.ts +0 -57
  232. package/references/sessionlog/src/agent/agents/claude-code.ts +0 -1089
  233. package/references/sessionlog/src/agent/agents/cursor.ts +0 -361
  234. package/references/sessionlog/src/agent/agents/gemini-cli.ts +0 -632
  235. package/references/sessionlog/src/agent/agents/opencode.ts +0 -540
  236. package/references/sessionlog/src/agent/registry.ts +0 -143
  237. package/references/sessionlog/src/agent/session-types.ts +0 -113
  238. package/references/sessionlog/src/agent/types.ts +0 -220
  239. package/references/sessionlog/src/cli.ts +0 -597
  240. package/references/sessionlog/src/commands/clean.ts +0 -133
  241. package/references/sessionlog/src/commands/disable.ts +0 -84
  242. package/references/sessionlog/src/commands/doctor.ts +0 -145
  243. package/references/sessionlog/src/commands/enable.ts +0 -202
  244. package/references/sessionlog/src/commands/explain.ts +0 -261
  245. package/references/sessionlog/src/commands/reset.ts +0 -105
  246. package/references/sessionlog/src/commands/resume.ts +0 -180
  247. package/references/sessionlog/src/commands/rewind.ts +0 -195
  248. package/references/sessionlog/src/commands/setup-ccweb.ts +0 -275
  249. package/references/sessionlog/src/commands/status.ts +0 -172
  250. package/references/sessionlog/src/config.ts +0 -165
  251. package/references/sessionlog/src/events/event-log.ts +0 -126
  252. package/references/sessionlog/src/git-operations.ts +0 -558
  253. package/references/sessionlog/src/hooks/git-hooks.ts +0 -165
  254. package/references/sessionlog/src/hooks/lifecycle.ts +0 -391
  255. package/references/sessionlog/src/index.ts +0 -650
  256. package/references/sessionlog/src/security/redaction.ts +0 -283
  257. package/references/sessionlog/src/session/state-machine.ts +0 -452
  258. package/references/sessionlog/src/store/checkpoint-store.ts +0 -509
  259. package/references/sessionlog/src/store/native-store.ts +0 -173
  260. package/references/sessionlog/src/store/provider-types.ts +0 -99
  261. package/references/sessionlog/src/store/session-store.ts +0 -266
  262. package/references/sessionlog/src/strategy/attribution.ts +0 -296
  263. package/references/sessionlog/src/strategy/common.ts +0 -207
  264. package/references/sessionlog/src/strategy/content-overlap.ts +0 -228
  265. package/references/sessionlog/src/strategy/manual-commit.ts +0 -988
  266. package/references/sessionlog/src/strategy/types.ts +0 -279
  267. package/references/sessionlog/src/summarize/claude-generator.ts +0 -115
  268. package/references/sessionlog/src/summarize/summarize.ts +0 -432
  269. package/references/sessionlog/src/types.ts +0 -508
  270. package/references/sessionlog/src/utils/chunk-files.ts +0 -49
  271. package/references/sessionlog/src/utils/commit-message.ts +0 -65
  272. package/references/sessionlog/src/utils/detect-agent.ts +0 -36
  273. package/references/sessionlog/src/utils/hook-managers.ts +0 -125
  274. package/references/sessionlog/src/utils/ide-tags.ts +0 -32
  275. package/references/sessionlog/src/utils/paths.ts +0 -79
  276. package/references/sessionlog/src/utils/preview-rewind.ts +0 -80
  277. package/references/sessionlog/src/utils/rewind-conflict.ts +0 -121
  278. package/references/sessionlog/src/utils/shadow-branch.ts +0 -109
  279. package/references/sessionlog/src/utils/string-utils.ts +0 -46
  280. package/references/sessionlog/src/utils/todo-extract.ts +0 -188
  281. package/references/sessionlog/src/utils/trailers.ts +0 -187
  282. package/references/sessionlog/src/utils/transcript-parse.ts +0 -177
  283. package/references/sessionlog/src/utils/transcript-timestamp.ts +0 -59
  284. package/references/sessionlog/src/utils/tree-ops.ts +0 -219
  285. package/references/sessionlog/src/utils/tty.ts +0 -72
  286. package/references/sessionlog/src/utils/validation.ts +0 -65
  287. package/references/sessionlog/src/utils/worktree.ts +0 -58
  288. package/references/sessionlog/src/wire-types.ts +0 -59
  289. package/references/sessionlog/templates/setup-env.sh +0 -153
  290. package/references/sessionlog/tsconfig.json +0 -18
  291. package/references/sessionlog/vitest.config.ts +0 -12
  292. package/references/skill-tree/.claude/settings.json +0 -6
  293. package/references/skill-tree/.sudocode/issues.jsonl +0 -19
  294. package/references/skill-tree/.sudocode/specs.jsonl +0 -3
  295. package/references/skill-tree/CLAUDE.md +0 -126
  296. package/references/skill-tree/README.md +0 -372
  297. package/references/skill-tree/docs/GAPS_v1.md +0 -221
  298. package/references/skill-tree/docs/INTEGRATION_PLAN.md +0 -467
  299. package/references/skill-tree/docs/TODOS.md +0 -91
  300. package/references/skill-tree/docs/anthropic_skill_guide.md +0 -1364
  301. package/references/skill-tree/docs/design/federated-skill-trees.md +0 -524
  302. package/references/skill-tree/docs/design/multi-agent-sync.md +0 -759
  303. package/references/skill-tree/docs/scraper/BRAINSTORM.md +0 -583
  304. package/references/skill-tree/docs/scraper/POC_PLAN.md +0 -420
  305. package/references/skill-tree/docs/scraper/README.md +0 -170
  306. package/references/skill-tree/examples/basic-usage.ts +0 -164
  307. package/references/skill-tree/package-lock.json +0 -1852
  308. package/references/skill-tree/package.json +0 -66
  309. package/references/skill-tree/scraper/README.md +0 -123
  310. package/references/skill-tree/scraper/docs/DESIGN.md +0 -683
  311. package/references/skill-tree/scraper/docs/PLAN.md +0 -336
  312. package/references/skill-tree/scraper/drizzle.config.ts +0 -10
  313. package/references/skill-tree/scraper/package-lock.json +0 -6329
  314. package/references/skill-tree/scraper/package.json +0 -68
  315. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +0 -7
  316. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +0 -7
  317. package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +0 -27
  318. package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +0 -21
  319. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +0 -54
  320. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +0 -24
  321. package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +0 -93
  322. package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +0 -22
  323. package/references/skill-tree/scraper/tsup.config.ts +0 -14
  324. package/references/skill-tree/scraper/vitest.config.ts +0 -17
  325. package/references/skill-tree/scripts/convert-to-vitest.ts +0 -166
  326. package/references/skill-tree/skills/skill-writer/SKILL.md +0 -339
  327. package/references/skill-tree/skills/skill-writer/references/examples.md +0 -326
  328. package/references/skill-tree/skills/skill-writer/references/patterns.md +0 -210
  329. package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +0 -123
  330. package/references/skill-tree/test/run-all.ts +0 -106
  331. package/references/skill-tree/test/utils.ts +0 -128
  332. package/references/skill-tree/vitest.config.ts +0 -16
@@ -1,372 +0,0 @@
1
- # skill-tree
2
-
3
- A TypeScript library for managing agent skill versions and evolution. Store, version, serve, sync, and federate reusable skills for AI agents.
4
-
5
- ## Overview
6
-
7
- skill-tree helps you build and maintain a library of reusable skills for AI agents by:
8
-
9
- - **Storing skills** in a versioned, searchable format (OpenSkills-compatible)
10
- - **Evolving skills** through versioning, forking, and merging
11
- - **Serving skills** via dynamic loadouts with expand/collapse, profiles, and token budgeting
12
- - **Syncing skills** across agents with git-based multi-agent collaboration
13
- - **Federating skills** across repositories for cross-organization sharing
14
-
15
- Inspired by research on skill libraries ([arXiv:2512.17102](https://arxiv.org/abs/2512.17102)), [Claudeception](https://github.com/blader/Claudeception), and [OpenSkills](https://github.com/numman-ali/openskills).
16
-
17
- ## Installation
18
-
19
- ```bash
20
- npm install skill-tree
21
- ```
22
-
23
- ## Quick Start
24
-
25
- ```typescript
26
- import { createSkillBank, type Skill } from 'skill-tree';
27
-
28
- // Create a skill bank with filesystem storage
29
- const bank = createSkillBank({
30
- storage: { basePath: './skills' },
31
- });
32
-
33
- await bank.initialize();
34
-
35
- // Save a skill
36
- await bank.saveSkill({
37
- id: 'typescript-esm-import-fix',
38
- name: 'TypeScript ESM Import Fix',
39
- version: '1.0.0',
40
- description: 'Fix TypeScript ES module import errors',
41
- problem: 'TypeScript with ES modules requires explicit .js extensions',
42
- triggerConditions: [{ type: 'error', value: "Cannot find module './utils'" }],
43
- solution: 'Add .js extension to all relative imports.',
44
- verification: 'Run tsc --noEmit to verify no import errors',
45
- examples: [],
46
- author: 'me',
47
- tags: ['typescript', 'esm'],
48
- createdAt: new Date(),
49
- updatedAt: new Date(),
50
- status: 'active',
51
- metrics: { usageCount: 0, successRate: 0, feedbackScores: [] },
52
- } as Skill);
53
-
54
- // Search for skills
55
- const skills = await bank.searchSkills('typescript');
56
-
57
- // Create a new version
58
- const updated = await bank.createVersion('typescript-esm-import-fix', {
59
- solution: 'Add .js extension, or use "moduleResolution": "bundler".',
60
- }, { bumpType: 'minor' });
61
-
62
- await bank.shutdown();
63
- ```
64
-
65
- ## Core Concepts
66
-
67
- ### Skills
68
-
69
- A skill represents a reusable piece of knowledge:
70
-
71
- ```typescript
72
- interface Skill {
73
- id: string; // Unique identifier
74
- name: string; // Human-readable name
75
- version: string; // Semantic version
76
- description: string; // For search and matching
77
- problem: string; // What problem this solves
78
- triggerConditions: TriggerCondition[]; // When to apply
79
- solution: string; // Step-by-step solution
80
- verification: string; // How to verify it worked
81
- examples: SkillExample[]; // Usage examples
82
- tags: string[]; // Categorization
83
- status: SkillStatus; // 'draft' | 'active' | 'deprecated' | 'experimental'
84
- metrics: SkillMetrics; // Usage tracking
85
- // ... namespace, taxonomy, lineage
86
- }
87
- ```
88
-
89
- ### Storage
90
-
91
- Two backends:
92
-
93
- ```typescript
94
- // Filesystem (JSON source of truth + SQLite cache)
95
- const bank = createSkillBank({
96
- storage: { basePath: './skills' },
97
- });
98
-
99
- // Memory (for testing)
100
- const bank = createSkillBank({
101
- storage: { type: 'memory' },
102
- });
103
- ```
104
-
105
- Skills are stored in the OpenSkills format:
106
-
107
- ```
108
- skills/
109
- ├── my-skill/
110
- │ ├── SKILL.md # Skill content (YAML + Markdown)
111
- │ └── .skilltree.json # Metadata and lineage
112
- └── .versions/
113
- └── my-skill/
114
- ├── 1.0.0.json # Version snapshots
115
- └── 1.1.0.json
116
- ```
117
-
118
- ## Features
119
-
120
- ### Versioning
121
-
122
- Semantic versioning with full lineage tracking:
123
-
124
- ```typescript
125
- // Create new version
126
- const v2 = await bank.createVersion('my-skill', updates, {
127
- bumpType: 'minor',
128
- changelog: 'Added alternative solution',
129
- });
130
-
131
- // Get version history
132
- const history = await bank.getVersionHistory('my-skill');
133
-
134
- // Rollback to previous version
135
- const restored = await bank.rollbackSkill('my-skill', '1.0.0');
136
-
137
- // Compare versions
138
- const diff = await bank.compareVersions('my-skill', '1.0.0', '2.0.0');
139
-
140
- // Fork for a specialized use case
141
- const forked = await bank.forkSkill('my-skill', {
142
- newId: 'my-skill-react',
143
- newName: 'My Skill (React variant)',
144
- reason: 'Specialized for React projects',
145
- });
146
- ```
147
-
148
- ### Serving Layer
149
-
150
- Dynamic skill loadouts for agent context windows:
151
-
152
- ```typescript
153
- const { server } = await bank.createServingLayer({
154
- maxExpanded: 5,
155
- });
156
-
157
- // Orchestrator sets loadout based on task
158
- await server.setLoadoutForTask('Fix authentication bug');
159
-
160
- // Or use a built-in profile
161
- await server.setLoadoutFromProfile('debugging');
162
-
163
- // Render skills into system prompt
164
- const prompt = server.renderSystemPrompt();
165
-
166
- // Agent-side API
167
- const view = server.agentListLoadout();
168
- const skill = server.agentExpandSkill('some-skill-id');
169
- server.agentCollapseSkill('some-skill-id');
170
- await server.agentRequestSkills(['another-skill']);
171
- ```
172
-
173
- ### Multi-Agent Sync
174
-
175
- Git-based skill synchronization:
176
-
177
- ```typescript
178
- import { createDefaultSyncConfig } from 'skill-tree';
179
-
180
- const bank = createSkillBank({
181
- storage: { basePath: './skills' },
182
- sync: {
183
- config: createDefaultSyncConfig({
184
- repoUrl: 'git@github.com:org/skills.git',
185
- agentId: 'agent-1',
186
- }),
187
- pullOnInit: true,
188
- },
189
- });
190
-
191
- await bank.initialize(); // auto-pulls remote changes
192
-
193
- // Manual sync
194
- await bank.sync.push();
195
- await bank.sync.pull();
196
- const status = await bank.sync.status();
197
-
198
- await bank.shutdown(); // flushes pending sync
199
- ```
200
-
201
- ### Federation
202
-
203
- Connect independent skill repositories:
204
-
205
- ```typescript
206
- // Add a remote
207
- await bank.federation.addRemote('team', {
208
- url: 'git@github.com:org/team-skills.git',
209
- access: 'read-write',
210
- });
211
-
212
- // Browse remote skills
213
- const remoteSkills = await bank.federation.browse('team');
214
-
215
- // Import a skill
216
- const result = await bank.federation.import('team', 'useful-pattern');
217
-
218
- // Share a skill
219
- await bank.federation.share('my-skill', 'team');
220
-
221
- // Check for upstream updates
222
- const updates = await bank.federation.checkUpstream();
223
- ```
224
-
225
- ### Events
226
-
227
- Subscribe to skill bank events:
228
-
229
- ```typescript
230
- // Simple synchronous listeners
231
- const unsubscribe = bank.on((event) => {
232
- switch (event.type) {
233
- case 'skill:created':
234
- console.log('New skill:', event.skill.name);
235
- break;
236
- case 'skill:updated':
237
- console.log('Updated:', event.skill.name, 'from', event.previousVersion);
238
- break;
239
- }
240
- });
241
-
242
- // Advanced: async hooks with priority and filtering
243
- bank.getHookRegistry().register({
244
- event: 'storage:after-save',
245
- handler: async (context) => {
246
- console.log('Skill saved to storage');
247
- },
248
- priority: 'normal',
249
- });
250
- ```
251
-
252
- ### AGENTS.md Integration
253
-
254
- Bidirectional sync between skill bank and AGENTS.md files:
255
-
256
- ```typescript
257
- import { createAgentsSync } from 'skill-tree';
258
-
259
- const sync = createAgentsSync(bank.getStorage());
260
- const result = await sync.sync('./AGENTS.md', {
261
- direction: 'bidirectional',
262
- });
263
- ```
264
-
265
- ### Namespace Support
266
-
267
- Multi-tier skill trees for team environments:
268
-
269
- ```typescript
270
- const bank = createSkillBank({
271
- storage: { basePath: './skills' },
272
- namespace: {
273
- agentId: 'agent-1',
274
- team: 'frontend',
275
- defaultScope: 'personal',
276
- defaultVisibility: 'private',
277
- },
278
- });
279
-
280
- // List skills by scope
281
- const personal = await bank.listSkills({ scope: 'personal', owner: 'agent-1' });
282
- const teamSkills = await bank.listSkills({ scope: 'team', team: 'frontend' });
283
- ```
284
-
285
- ## API Reference
286
-
287
- ### SkillBank
288
-
289
- Main orchestrator class, created via `createSkillBank(config)`.
290
-
291
- | Method | Description |
292
- |--------|-------------|
293
- | `initialize()` | Initialize storage, federation, and sync |
294
- | `shutdown()` | Clean shutdown (flushes sync) |
295
- | `getSkill(id, version?)` | Get skill by ID |
296
- | `listSkills(filter?)` | List skills with optional filter |
297
- | `searchSkills(query)` | Full-text search |
298
- | `saveSkill(skill)` | Save or update a skill |
299
- | `deleteSkill(id, version?)` | Delete a skill |
300
- | `deprecateSkill(id)` | Mark skill as deprecated |
301
- | `createVersion(id, updates, options?)` | Create new version |
302
- | `forkSkill(id, options)` | Fork a skill |
303
- | `getVersionHistory(id)` | Get version history |
304
- | `getLineage(id)` | Get full lineage |
305
- | `rollbackSkill(id, version)` | Rollback to version |
306
- | `compareVersions(id, vA, vB)` | Diff two versions |
307
- | `on(handler)` | Subscribe to events (returns unsubscribe fn) |
308
- | `off(handler)` | Unsubscribe from events |
309
- | `getStats()` | Get skill bank statistics |
310
- | `exportAll()` | Export all skills |
311
- | `importSkills(skills)` | Bulk import skills |
312
- | `createServingLayer(config?)` | Create a SkillGraphServer |
313
- | `getStorage()` | Access underlying storage adapter |
314
- | `getHookRegistry()` | Access hook registry |
315
- | `sync` | SyncManager accessor (throws if not configured) |
316
- | `federation` | FederationManager accessor (requires basePath) |
317
-
318
- ### Versioning Utilities
319
-
320
- ```typescript
321
- import {
322
- parseVersion,
323
- compareVersions,
324
- bumpVersion,
325
- satisfiesRange,
326
- } from 'skill-tree';
327
-
328
- bumpVersion('1.2.3', 'minor'); // '1.3.0'
329
- satisfiesRange('1.5.0', '^1.2.0'); // true
330
- ```
331
-
332
- ## Skill Format
333
-
334
- Skills use YAML frontmatter + Markdown (OpenSkills-compatible):
335
-
336
- ```markdown
337
- ---
338
- name: typescript-esm-import-fix
339
- description: |
340
- Fix TypeScript ES module import errors by adding .js extension
341
- version: 1.0.0
342
- author: extracted
343
- status: active
344
- date: 2024-01-15
345
- tags:
346
- - typescript
347
- - esm
348
- - imports
349
- ---
350
-
351
- ## Problem
352
-
353
- TypeScript with ES modules requires explicit .js extensions in imports.
354
-
355
- ## Trigger Conditions
356
-
357
- - **error**: `Cannot find module './utils'`
358
- - **pattern**: `import .* from '\./[^']+(?<!\.js)'`
359
-
360
- ## Solution
361
-
362
- 1. Add `.js` extension to relative imports
363
- 2. Even for `.ts` files, use `.js` in the import path
364
-
365
- ## Verification
366
-
367
- Run `tsc` and verify no module resolution errors.
368
- ```
369
-
370
- ## License
371
-
372
- MIT
@@ -1,221 +0,0 @@
1
- # Integration Gaps Tracking - v1
2
-
3
- This document tracks the remaining work to complete the skill indexer integration as defined in [INTEGRATION_PLAN.md](./INTEGRATION_PLAN.md).
4
-
5
- ## Status Overview
6
-
7
- | Phase | Status | Completion |
8
- |-------|--------|------------|
9
- | Phase 1: Import Pipeline | ✅ Complete | 100% |
10
- | Phase 2: CLI Unification | ✅ Complete | 100% |
11
- | Phase 3: Unified Storage | ✅ Complete | 100% |
12
- | Phase 4: Direct Integration | ✅ Complete | 100% |
13
- | Phase 5: Bidirectional Sync | ✅ Complete | 100% |
14
-
15
- ---
16
-
17
- ## High Priority Items
18
-
19
- ### 1. Unified Configuration System
20
-
21
- **Status**: ✅ Complete
22
-
23
- **Goal**: Single config file for both skill-tree and indexer settings.
24
-
25
- **Location**: `~/.skill-tree/config.yaml`
26
-
27
- **Tasks**:
28
- - [x] Create `src/config/` module
29
- - [x] Define `SkillTreeConfig` interface
30
- - [x] Implement config file loading with defaults
31
- - [x] Support environment variable substitution
32
- - [x] Integrate with CLI global options
33
- - [x] Integrate with IndexerService
34
-
35
- **Files Created**:
36
- - `src/config/types.ts` - Configuration type definitions
37
- - `src/config/loader.ts` - Config loading and merging logic
38
- - `src/config/index.ts` - Module exports
39
- - `src/cli/commands/config.ts` - CLI config command
40
-
41
- **Config Schema**:
42
- ```yaml
43
- storage:
44
- type: sqlite | filesystem | memory
45
- path: ~/.skill-tree/skills.db
46
-
47
- indexer:
48
- github_token: ${GITHUB_TOKEN}
49
- anthropic_key: ${ANTHROPIC_API_KEY}
50
- sources:
51
- - https://github.com/VoltAgent/awesome-agent-skills
52
- batch_size: 10
53
- min_confidence: 0.7
54
-
55
- matching:
56
- embedding_model: text-embedding-3-small
57
- similarity_threshold: 0.8
58
-
59
- sync:
60
- auto_check: false
61
- check_interval_hours: 24
62
- conflict_resolution: prompt
63
-
64
- cli:
65
- output_format: table
66
- color: true
67
- quiet: false
68
- ```
69
-
70
- ---
71
-
72
- ### 2. IndexerService Direct Execution
73
-
74
- **Status**: ✅ Complete
75
-
76
- **Goal**: CLI commands execute directly instead of delegating to subprocess.
77
-
78
- **Tasks**:
79
- - [x] Update `IndexerService.initialize()` to properly load scraper modules
80
- - [x] Implement `scrape()` method with actual scraper integration
81
- - [x] Implement `classify()` method with actual indexer integration
82
- - [x] Implement `detectRelationships()` method
83
- - [x] Implement `getTaxonomyTree()` using storage adapter
84
- - [x] Implement `getStats()` method
85
- - [x] Update CLI commands to use IndexerService directly
86
- - [x] Add fallback to subprocess if modules unavailable
87
-
88
- **Files Modified**:
89
- - `src/services/indexer.ts` - Full IndexerService implementation
90
- - `src/cli/commands/indexer/scrape.ts` - Direct execution with fallback
91
- - `src/cli/commands/indexer/classify.ts` - Direct execution with fallback
92
- - `src/cli/commands/indexer/taxonomy.ts` - Direct execution with fallback
93
- - `src/cli/commands/indexer/relationships.ts` - Direct execution with fallback
94
- - `src/cli/commands/indexer/stats.ts` - Direct execution with fallback
95
-
96
- ---
97
-
98
- ## Medium Priority Items
99
-
100
- ### 3. Direct SkillBank Integration
101
-
102
- **Status**: ✅ Complete
103
-
104
- **Goal**: IndexerService writes directly to SkillBank, no export/import step.
105
-
106
- **Tasks**:
107
- - [x] Implement `IndexerService.scrapeAndIndex()` method
108
- - [x] Convert scraped skills on-the-fly using converter
109
- - [x] Store directly via SkillBank.addSkill()
110
- - [x] Auto-place in taxonomy after save
111
- - [x] Update `skill-tree index scrape` to use direct integration
112
-
113
- **Files Modified**:
114
- - `src/services/indexer.ts` - Added `scrapeAndIndex()` method
115
- - `src/skill-bank.ts` - Added `addSkill()` method with taxonomy placement
116
- - `src/cli/commands/indexer/scrape.ts` - Added `--import` flag for auto-import
117
-
118
- **Workflow After**:
119
- ```bash
120
- # One command does everything
121
- skill-tree index scrape https://github.com/org/repo
122
- # Skills immediately available in skill-tree
123
- skill-tree list
124
- ```
125
-
126
- ---
127
-
128
- ### 4. SkillBank Event System
129
-
130
- **Status**: ✅ Complete
131
-
132
- **Goal**: Event-driven hooks for skill lifecycle.
133
-
134
- **Tasks**:
135
- - [x] Add EventEmitter to SkillBank (already existed via `on()`)
136
- - [x] Define event types: `skill:created`, `skill:updated`, `skill:deleted`
137
- - [x] Emit events from `addSkill()`, `updateSkill()`, `deleteSkill()`
138
- - [x] Hook relationship detection to `skill:created` for imported skills
139
- - [x] Add `on()` and `off()` methods to SkillBank API
140
- - [x] Add `onEvent()` for typed event subscriptions
141
- - [x] Add `getStorage()` for advanced integration
142
-
143
- **Files Modified**:
144
- - `src/skill-bank.ts` - Enhanced event system with `off()`, `onEvent()`, `getStorage()`
145
-
146
- **Event Interface**:
147
- ```typescript
148
- interface SkillEvent {
149
- type: 'skill:created' | 'skill:updated' | 'skill:deleted' | 'skill:deprecated';
150
- skill: Skill;
151
- timestamp: Date;
152
- source?: 'manual' | 'imported' | 'extracted';
153
- }
154
- ```
155
-
156
- ---
157
-
158
- ## Lower Priority Items
159
-
160
- ### 5. Bidirectional Sync
161
-
162
- **Status**: ✅ Complete
163
-
164
- **Goal**: Keep skills in sync with remote sources.
165
-
166
- **Tasks**:
167
- - [x] Create `src/services/sync.ts`
168
- - [x] Define `SkillSyncState` type
169
- - [x] Implement `checkForUpdates()` - compare ETags/versions
170
- - [x] Implement `pullRemoteChanges()` - fetch and merge
171
- - [x] Implement `detectConflicts()` - local vs remote changes
172
- - [x] Add `skill-tree index sync` command with options:
173
- - [x] `--status` - show sync state
174
- - [x] `--pull` - pull remote changes
175
- - [x] `--dry-run` - preview changes
176
-
177
- **Files Created**:
178
- - `src/services/sync.ts` - Full SyncService implementation
179
-
180
- **Files Modified**:
181
- - `src/cli/commands/indexer/sync.ts` - Updated with sync status and pull commands
182
-
183
- **Note**: SQLite sync_state table not yet added to schema (sync states stored in memory for now). This can be added in a future iteration.
184
-
185
- ---
186
-
187
- ## Open Questions (Decisions Made)
188
-
189
- | Question | Status | Decision |
190
- |----------|--------|----------|
191
- | Taxonomy ownership | ✅ Resolved | Preserve original, allow re-classification on demand |
192
- | Deduplication strategy | ✅ Resolved | Use `externalSource.url` as dedup key |
193
- | Version conflict resolution | ✅ Resolved | Default to manual, with `--resolve` flag for automation |
194
- | Namespace separation | ✅ Resolved | Use `source.type` field, no namespace prefix |
195
-
196
- ---
197
-
198
- ## Success Criteria Checklist
199
-
200
- - [x] Single CLI (`skill-tree`) for all operations
201
- - [x] Single database with skills from all sources
202
- - [x] Taxonomy browsing works for all skills
203
- - [x] Relationships detected across indexed and extracted skills
204
- - [x] Clear provenance tracking (source: extracted vs indexed)
205
- - [x] Seamless workflow from discovery to usage
206
-
207
- ---
208
-
209
- ## Change Log
210
-
211
- | Date | Change |
212
- |------|--------|
213
- | 2025-01-XX | Initial gap analysis created |
214
- | 2025-01-XX | Phases 1-3 implemented |
215
- | 2025-01-XX | Tests added (56 tests) |
216
- | 2025-02-01 | Unified configuration system implemented |
217
- | 2025-02-01 | IndexerService direct execution implemented |
218
- | 2025-02-01 | Direct SkillBank integration implemented |
219
- | 2025-02-01 | SkillBank event system enhanced |
220
- | 2025-02-01 | Bidirectional sync service implemented |
221
- | 2025-02-01 | All phases complete |