oh-my-second-brain 0.2.0 → 0.3.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 (464) hide show
  1. package/.claude-plugin/marketplace.json +41 -0
  2. package/{adapters/claude-code/.claude-plugin → .claude-plugin}/plugin.json +7 -8
  3. package/{adapters/codex/.codex-plugin → .codex-plugin}/plugin.json +4 -4
  4. package/ACKNOWLEDGMENTS.md +154 -0
  5. package/CHANGELOG-assets.md +19 -0
  6. package/CHANGELOG-cli.md +15 -0
  7. package/CHANGELOG-kernel.md +25 -0
  8. package/CHANGELOG-mcp.md +26 -0
  9. package/CHANGELOG-vendors.md +22 -0
  10. package/CHANGELOG.md +24 -7
  11. package/README.ko.md +2 -2
  12. package/README.md +16 -16
  13. package/{adapters/claude-code → assets/claude}/CLAUDE.md +4 -4
  14. package/{adapters → assets}/codex/AGENTS.md +3 -3
  15. package/{adapters → assets}/codex/rules/oms.md +5 -5
  16. package/{adapters → assets}/hermes/README.md +1 -1
  17. package/{adapters → assets}/hermes/SOUL.md +3 -3
  18. package/{adapters/hermes/manifest.json → assets/hermes-manifest.json} +3 -4
  19. package/assets/skills/distill/SKILL.md +20 -0
  20. package/assets/skills/doctor/SKILL.md +23 -0
  21. package/assets/skills/link/SKILL.md +24 -0
  22. package/assets/skills/search/SKILL.md +25 -0
  23. package/assets/skills/status/SKILL.md +22 -0
  24. package/assets/skills/write/SKILL.md +30 -0
  25. package/core/ontology/schemas/README.md +20 -14
  26. package/dist/assets/shared-skills.d.ts +4 -0
  27. package/dist/assets/shared-skills.js +8 -0
  28. package/dist/assets/shared-skills.js.map +1 -0
  29. package/dist/cli/args.d.ts +1 -1
  30. package/dist/cli/args.js +1 -1
  31. package/dist/cli/args.js.map +1 -1
  32. package/dist/cli/audit.js +3 -3
  33. package/dist/cli/audit.js.map +1 -1
  34. package/dist/cli/claude-install-plan.js +2 -2
  35. package/dist/cli/claude-install-plan.js.map +1 -1
  36. package/dist/cli/doctor-lint.js +8 -8
  37. package/dist/cli/doctor-lint.js.map +1 -1
  38. package/dist/cli/global-writeback.js +1 -1
  39. package/dist/cli/global-writeback.js.map +1 -1
  40. package/dist/cli/host-commands.d.ts +1 -1
  41. package/dist/cli/host-commands.js +22 -4
  42. package/dist/cli/host-commands.js.map +1 -1
  43. package/dist/cli/link-command.d.ts +1 -1
  44. package/dist/cli/link-command.js +2 -2
  45. package/dist/cli/link-command.js.map +1 -1
  46. package/dist/cli/linkify.js +16 -71
  47. package/dist/cli/linkify.js.map +1 -1
  48. package/dist/cli/oms.js +20 -9
  49. package/dist/cli/oms.js.map +1 -1
  50. package/dist/cli/semantic-args.d.ts +1 -1
  51. package/dist/cli/semantic-http.js +3 -3
  52. package/dist/cli/semantic-http.js.map +1 -1
  53. package/dist/cli/semantic-usage.js +1 -1
  54. package/dist/cli/semantic-usage.js.map +1 -1
  55. package/dist/cli/semantic.js +1 -6
  56. package/dist/cli/semantic.js.map +1 -1
  57. package/dist/cli/setup-command.d.ts +1 -0
  58. package/dist/cli/setup-command.js +42 -147
  59. package/dist/cli/setup-command.js.map +1 -1
  60. package/dist/cli/update-notice.d.ts +1 -1
  61. package/dist/cli/update-notice.js +2 -2
  62. package/dist/cli/update-notice.js.map +1 -1
  63. package/dist/cli/usage.d.ts +1 -1
  64. package/dist/cli/usage.js +2 -2
  65. package/dist/cli/usage.js.map +1 -1
  66. package/dist/{capture → kernel/capture}/safe.d.ts +11 -1
  67. package/dist/{capture → kernel/capture}/safe.js +3 -3
  68. package/dist/kernel/capture/safe.js.map +1 -0
  69. package/dist/kernel/conventions/frontmatter.js.map +1 -0
  70. package/dist/kernel/conventions/lint.js.map +1 -0
  71. package/dist/kernel/conventions/report.js.map +1 -0
  72. package/dist/{conventions → kernel/conventions}/validate.d.ts +1 -1
  73. package/dist/kernel/conventions/validate.js.map +1 -0
  74. package/dist/kernel/conventions/vault-walk.js.map +1 -0
  75. package/dist/{conventions → kernel/conventions}/write-contract.d.ts +1 -1
  76. package/dist/kernel/conventions/write-contract.js.map +1 -0
  77. package/dist/kernel/conventions/write-protocol.js.map +1 -0
  78. package/dist/kernel/doctor/service.d.ts +71 -0
  79. package/dist/kernel/doctor/service.js +70 -0
  80. package/dist/kernel/doctor/service.js.map +1 -0
  81. package/dist/{engine → kernel/engine}/assemble.d.ts +24 -0
  82. package/dist/{engine → kernel/engine}/assemble.js +142 -4
  83. package/dist/kernel/engine/assemble.js.map +1 -0
  84. package/dist/{engine → kernel/engine}/conventions/vault-lint.d.ts +1 -1
  85. package/dist/{engine → kernel/engine}/conventions/vault-lint.js +1 -1
  86. package/dist/kernel/engine/conventions/vault-lint.js.map +1 -0
  87. package/dist/kernel/engine/embed/chunker.js.map +1 -0
  88. package/dist/kernel/engine/embed/deferred.js.map +1 -0
  89. package/dist/{engine → kernel/engine}/embed/hash-stub.test-helper.d.ts +1 -1
  90. package/dist/{engine → kernel/engine}/embed/hash-stub.test-helper.js +1 -1
  91. package/dist/kernel/engine/embed/hash-stub.test-helper.js.map +1 -0
  92. package/dist/kernel/engine/embed/identity.js.map +1 -0
  93. package/dist/kernel/engine/embed/provider.js.map +1 -0
  94. package/dist/{engine → kernel/engine}/embed/store.d.ts +8 -0
  95. package/dist/{engine → kernel/engine}/embed/store.js +212 -8
  96. package/dist/kernel/engine/embed/store.js.map +1 -0
  97. package/dist/{engine → kernel/engine}/embed/sync.d.ts +3 -1
  98. package/dist/{engine → kernel/engine}/embed/sync.js +5 -3
  99. package/dist/kernel/engine/embed/sync.js.map +1 -0
  100. package/dist/kernel/engine/graph/builder.js.map +1 -0
  101. package/dist/kernel/engine/graph/explore.js.map +1 -0
  102. package/dist/kernel/engine/graph/node.js.map +1 -0
  103. package/dist/kernel/engine/graph/resolver.js.map +1 -0
  104. package/dist/kernel/engine/graph/traverse.js.map +1 -0
  105. package/dist/kernel/engine/linkify/apply.js.map +1 -0
  106. package/dist/kernel/engine/linkify/josa.js.map +1 -0
  107. package/dist/kernel/engine/linkify/mask.js.map +1 -0
  108. package/dist/kernel/engine/linkify/suggest.js.map +1 -0
  109. package/dist/kernel/engine/linkify/types.js.map +1 -0
  110. package/dist/{engine → kernel/engine}/mcp/facade.d.ts +7 -1
  111. package/dist/{engine → kernel/engine}/mcp/facade.js +32 -11
  112. package/dist/kernel/engine/mcp/facade.js.map +1 -0
  113. package/dist/kernel/engine/mcp/op-mappers.js.map +1 -0
  114. package/dist/kernel/engine/mcp/query-mapper.js.map +1 -0
  115. package/dist/{engine → kernel/engine}/mcp/types.d.ts +5 -0
  116. package/dist/kernel/engine/mcp/types.js.map +1 -0
  117. package/dist/{engine → kernel/engine}/retrieval/dispatcher.d.ts +1 -1
  118. package/dist/{engine → kernel/engine}/retrieval/dispatcher.js +8 -6
  119. package/dist/kernel/engine/retrieval/dispatcher.js.map +1 -0
  120. package/dist/{engine → kernel/engine}/retrieval/index.d.ts +2 -0
  121. package/dist/{engine → kernel/engine}/retrieval/index.js +5 -2
  122. package/dist/kernel/engine/retrieval/index.js.map +1 -0
  123. package/dist/kernel/engine/retrieval/reranker.js.map +1 -0
  124. package/dist/kernel/engine/retrieval/rrf.js.map +1 -0
  125. package/dist/kernel/engine/tracer.js.map +1 -0
  126. package/dist/{engine → kernel/engine}/types.d.ts +4 -4
  127. package/dist/kernel/engine/types.js.map +1 -0
  128. package/dist/{graph → kernel/graph}/cache.d.ts +1 -1
  129. package/dist/{graph → kernel/graph}/cache.js +1 -1
  130. package/dist/kernel/graph/cache.js.map +1 -0
  131. package/dist/kernel/graph/explore.js.map +1 -0
  132. package/dist/{harness → kernel/harness}/surface-registry.d.ts +0 -1
  133. package/dist/kernel/harness/surface-registry.js +170 -0
  134. package/dist/kernel/harness/surface-registry.js.map +1 -0
  135. package/dist/{harness → kernel/harness}/validation.js +67 -4
  136. package/dist/kernel/harness/validation.js.map +1 -0
  137. package/dist/{index.d.ts → kernel/index.d.ts} +5 -6
  138. package/dist/kernel/index.js +12 -0
  139. package/dist/kernel/index.js.map +1 -0
  140. package/dist/{install → kernel/install}/adapter-source.d.ts +10 -1
  141. package/dist/kernel/install/adapter-source.js +76 -0
  142. package/dist/kernel/install/adapter-source.js.map +1 -0
  143. package/dist/kernel/install/common.js.map +1 -0
  144. package/dist/{install → kernel/install}/hosts.d.ts +3 -3
  145. package/dist/{install → kernel/install}/hosts.js +3 -22
  146. package/dist/kernel/install/hosts.js.map +1 -0
  147. package/dist/{core/ontology → kernel/install}/types.js.map +1 -1
  148. package/dist/{link → kernel/link}/convention-note.js +2 -2
  149. package/dist/kernel/link/convention-note.js.map +1 -0
  150. package/dist/kernel/link/global-config.js.map +1 -0
  151. package/dist/kernel/link/link.js.map +1 -0
  152. package/dist/kernel/link/workflow.d.ts +55 -0
  153. package/dist/kernel/link/workflow.js +107 -0
  154. package/dist/kernel/link/workflow.js.map +1 -0
  155. package/dist/{ontology → kernel/ontology}/active.d.ts +1 -1
  156. package/dist/{ontology → kernel/ontology}/active.js +2 -2
  157. package/dist/kernel/ontology/active.js.map +1 -0
  158. package/dist/kernel/ontology/loader.js.map +1 -0
  159. package/dist/kernel/ontology/resolver.js.map +1 -0
  160. package/dist/{install → kernel/ontology}/types.js.map +1 -1
  161. package/dist/kernel/plugin/index.d.ts +1 -0
  162. package/dist/kernel/plugin/index.js +2 -0
  163. package/dist/kernel/plugin/index.js.map +1 -0
  164. package/dist/{core → kernel}/runtime/assets.d.ts +2 -4
  165. package/dist/{core → kernel}/runtime/assets.js +1 -3
  166. package/dist/kernel/runtime/assets.js.map +1 -0
  167. package/dist/kernel/search/morning-test-fixtures.js.map +1 -0
  168. package/dist/{retrieve → kernel/search}/morning.d.ts +0 -1
  169. package/dist/kernel/search/morning.js.map +1 -0
  170. package/dist/kernel/search/semantic-contract.js.map +1 -0
  171. package/dist/kernel/searchbackend/engine-search-backend.d.ts +28 -0
  172. package/dist/kernel/searchbackend/engine-search-backend.js +67 -0
  173. package/dist/kernel/searchbackend/engine-search-backend.js.map +1 -0
  174. package/dist/kernel/searchbackend/index.d.ts +2 -0
  175. package/dist/kernel/searchbackend/index.js +2 -0
  176. package/dist/kernel/searchbackend/index.js.map +1 -0
  177. package/dist/kernel/searchbackend/search-backend.d.ts +47 -0
  178. package/dist/kernel/searchbackend/search-backend.js +49 -0
  179. package/dist/kernel/searchbackend/search-backend.js.map +1 -0
  180. package/dist/{mcp → kernel/semantic}/semantic-engine.d.ts +3 -2
  181. package/dist/{mcp → kernel/semantic}/semantic-engine.js +5 -5
  182. package/dist/kernel/semantic/semantic-engine.js.map +1 -0
  183. package/dist/{mcp → kernel/semantic}/semantic-retrieve-args.d.ts +2 -2
  184. package/dist/{mcp → kernel/semantic}/semantic-retrieve-args.js +0 -8
  185. package/dist/kernel/semantic/semantic-retrieve-args.js.map +1 -0
  186. package/dist/{mcp → kernel/semantic}/semantic-retrieve-schema.d.ts +0 -24
  187. package/dist/{mcp → kernel/semantic}/semantic-retrieve-schema.js +0 -8
  188. package/dist/kernel/semantic/semantic-retrieve-schema.js.map +1 -0
  189. package/dist/{mcp → kernel/semantic}/semantic-retrieve.js +5 -9
  190. package/dist/kernel/semantic/semantic-retrieve.js.map +1 -0
  191. package/dist/kernel/semantic/semantic-schemas.js.map +1 -0
  192. package/dist/{mcp → kernel/semantic}/semantic-tool-schemas.js +0 -28
  193. package/dist/kernel/semantic/semantic-tool-schemas.js.map +1 -0
  194. package/dist/{setup → kernel/setup}/axis.d.ts +1 -1
  195. package/dist/{setup → kernel/setup}/axis.js +1 -1
  196. package/dist/kernel/setup/axis.js.map +1 -0
  197. package/dist/{cli/setup-documents.d.ts → kernel/setup/documents.d.ts} +1 -1
  198. package/dist/{cli/setup-documents.js → kernel/setup/documents.js} +15 -49
  199. package/dist/kernel/setup/documents.js.map +1 -0
  200. package/dist/kernel/setup/service.d.ts +44 -0
  201. package/dist/kernel/setup/service.js +97 -0
  202. package/dist/kernel/setup/service.js.map +1 -0
  203. package/dist/kernel/update/update.js.map +1 -0
  204. package/dist/mcp/engine-morning-backend.d.ts +4 -4
  205. package/dist/mcp/engine-morning-backend.js +4 -18
  206. package/dist/mcp/engine-morning-backend.js.map +1 -1
  207. package/dist/mcp/link-tools.d.ts +9 -56
  208. package/dist/mcp/link-tools.js +5 -129
  209. package/dist/mcp/link-tools.js.map +1 -1
  210. package/dist/mcp/server.d.ts +9 -2
  211. package/dist/mcp/server.js +326 -327
  212. package/dist/mcp/server.js.map +1 -1
  213. package/dist/mcp/update-notice.d.ts +1 -1
  214. package/dist/mcp/update-notice.js +1 -1
  215. package/dist/mcp/update-notice.js.map +1 -1
  216. package/dist/{install → vendors/claude}/claude-hooks.d.ts +1 -1
  217. package/dist/{install → vendors/claude}/claude-hooks.js +1 -1
  218. package/dist/vendors/claude/claude-hooks.js.map +1 -0
  219. package/dist/{install → vendors/claude}/claude-marketplace.d.ts +3 -3
  220. package/dist/{install → vendors/claude}/claude-marketplace.js +6 -9
  221. package/dist/vendors/claude/claude-marketplace.js.map +1 -0
  222. package/dist/{install → vendors/claude}/claude.d.ts +2 -2
  223. package/dist/{install → vendors/claude}/claude.js +2 -2
  224. package/dist/vendors/claude/claude.js.map +1 -0
  225. package/dist/{hook → vendors/claude/hook}/post-tool-use.js +5 -5
  226. package/dist/vendors/claude/hook/post-tool-use.js.map +1 -0
  227. package/dist/vendors/claude/hook/pre-tool-use.js.map +1 -0
  228. package/dist/vendors/claude/hook/stdin.js.map +1 -0
  229. package/dist/vendors/codex/codex.d.ts +10 -0
  230. package/dist/{install → vendors/codex}/codex.js +19 -37
  231. package/dist/vendors/codex/codex.js.map +1 -0
  232. package/dist/{install → vendors/hermes}/hermes.d.ts +2 -2
  233. package/dist/{install → vendors/hermes}/hermes.js +15 -7
  234. package/dist/vendors/hermes/hermes.js.map +1 -0
  235. package/docs/adapters.md +15 -0
  236. package/docs/install.md +10 -11
  237. package/package.json +21 -9
  238. package/adapters/README.md +0 -99
  239. package/adapters/claude-code/skills/compile/SKILL.md +0 -27
  240. package/adapters/claude-code/skills/define/SKILL.md +0 -51
  241. package/adapters/claude-code/skills/distill/SKILL.md +0 -28
  242. package/adapters/claude-code/skills/doctor/SKILL.md +0 -58
  243. package/adapters/claude-code/skills/link/SKILL.md +0 -87
  244. package/adapters/claude-code/skills/retrieve/SKILL.md +0 -99
  245. package/adapters/claude-code/skills/setup/SKILL.md +0 -78
  246. package/adapters/claude-code/skills/uninstall/SKILL.md +0 -34
  247. package/adapters/claude-code/skills/update/SKILL.md +0 -45
  248. package/adapters/claude-code/skills/vault-decision-record/SKILL.md +0 -52
  249. package/adapters/claude-code/skills/vault-lint/SKILL.md +0 -47
  250. package/adapters/claude-code/skills/vault-scaffold/SKILL.md +0 -47
  251. package/adapters/claude-code/skills/wiki/SKILL.md +0 -82
  252. package/adapters/claude-code/skills/write/SKILL.md +0 -16
  253. package/adapters/codex/skills/oms-compile/SKILL.md +0 -16
  254. package/adapters/codex/skills/oms-distill/SKILL.md +0 -14
  255. package/adapters/codex/skills/oms-doctor/SKILL.md +0 -14
  256. package/adapters/codex/skills/oms-install/SKILL.md +0 -19
  257. package/adapters/codex/skills/oms-link/SKILL.md +0 -35
  258. package/adapters/codex/skills/oms-retrieve/SKILL.md +0 -32
  259. package/adapters/codex/skills/oms-setup/SKILL.md +0 -34
  260. package/adapters/codex/skills/oms-uninstall/SKILL.md +0 -20
  261. package/adapters/codex/skills/oms-update/SKILL.md +0 -22
  262. package/adapters/codex/skills/oms-vault-lint/SKILL.md +0 -19
  263. package/adapters/codex/skills/oms-wiki/SKILL.md +0 -39
  264. package/adapters/codex/skills/oms-write/SKILL.md +0 -10
  265. package/adapters/hermes/skills/compile/SKILL.md +0 -13
  266. package/adapters/hermes/skills/distill/SKILL.md +0 -10
  267. package/adapters/hermes/skills/doctor/SKILL.md +0 -14
  268. package/adapters/hermes/skills/install/SKILL.md +0 -19
  269. package/adapters/hermes/skills/link/SKILL.md +0 -18
  270. package/adapters/hermes/skills/retrieve/SKILL.md +0 -32
  271. package/adapters/hermes/skills/setup/SKILL.md +0 -37
  272. package/adapters/hermes/skills/uninstall/SKILL.md +0 -20
  273. package/adapters/hermes/skills/update/SKILL.md +0 -22
  274. package/adapters/hermes/skills/wiki/SKILL.md +0 -14
  275. package/adapters/hermes/skills/write/SKILL.md +0 -10
  276. package/core/agents/librarian.md +0 -44
  277. package/core/agents/retriever.md +0 -62
  278. package/core/skills/compile/CHANGELOG.md +0 -24
  279. package/core/skills/compile/SKILL.md +0 -57
  280. package/core/skills/define/SKILL.md +0 -59
  281. package/core/skills/distill/CHANGELOG.md +0 -39
  282. package/core/skills/distill/SKILL.md +0 -62
  283. package/core/skills/doctor/SKILL.md +0 -49
  284. package/core/skills/link/SKILL.md +0 -130
  285. package/core/skills/retrieve/SKILL.md +0 -78
  286. package/core/skills/setup/CHANGELOG.md +0 -49
  287. package/core/skills/setup/SKILL.md +0 -246
  288. package/core/skills/uninstall/SKILL.md +0 -34
  289. package/core/skills/vault-decision-record/CHANGELOG.md +0 -24
  290. package/core/skills/vault-decision-record/SKILL.md +0 -93
  291. package/core/skills/vault-lint/CHANGELOG.md +0 -35
  292. package/core/skills/vault-lint/SKILL.md +0 -58
  293. package/core/skills/vault-scaffold/CHANGELOG.md +0 -21
  294. package/core/skills/vault-scaffold/SKILL.md +0 -72
  295. package/core/skills/wiki/CHANGELOG.md +0 -23
  296. package/core/skills/wiki/SKILL.md +0 -159
  297. package/core/skills/write/SKILL.md +0 -15
  298. package/dist/capture/safe.js.map +0 -1
  299. package/dist/cli/setup-documents.js.map +0 -1
  300. package/dist/conventions/frontmatter.js.map +0 -1
  301. package/dist/conventions/lint.js.map +0 -1
  302. package/dist/conventions/report.js.map +0 -1
  303. package/dist/conventions/validate.js.map +0 -1
  304. package/dist/conventions/vault-walk.js.map +0 -1
  305. package/dist/conventions/write-contract.js.map +0 -1
  306. package/dist/conventions/write-protocol.js.map +0 -1
  307. package/dist/core/ontology/loader.js.map +0 -1
  308. package/dist/core/ontology/resolver.js.map +0 -1
  309. package/dist/core/runtime/assets.js.map +0 -1
  310. package/dist/engine/assemble.js.map +0 -1
  311. package/dist/engine/conventions/vault-lint.js.map +0 -1
  312. package/dist/engine/embed/chunker.js.map +0 -1
  313. package/dist/engine/embed/deferred.js.map +0 -1
  314. package/dist/engine/embed/hash-stub.test-helper.js.map +0 -1
  315. package/dist/engine/embed/identity.js.map +0 -1
  316. package/dist/engine/embed/provider.js.map +0 -1
  317. package/dist/engine/embed/store.js.map +0 -1
  318. package/dist/engine/embed/sync.js.map +0 -1
  319. package/dist/engine/graph/builder.js.map +0 -1
  320. package/dist/engine/graph/explore.js.map +0 -1
  321. package/dist/engine/graph/node.js.map +0 -1
  322. package/dist/engine/graph/resolver.js.map +0 -1
  323. package/dist/engine/graph/traverse.js.map +0 -1
  324. package/dist/engine/linkify/apply.js.map +0 -1
  325. package/dist/engine/linkify/josa.js.map +0 -1
  326. package/dist/engine/linkify/mask.js.map +0 -1
  327. package/dist/engine/linkify/suggest.js.map +0 -1
  328. package/dist/engine/linkify/types.js.map +0 -1
  329. package/dist/engine/mcp/facade.js.map +0 -1
  330. package/dist/engine/mcp/op-mappers.js.map +0 -1
  331. package/dist/engine/mcp/query-mapper.js.map +0 -1
  332. package/dist/engine/mcp/types.js.map +0 -1
  333. package/dist/engine/retrieval/dispatcher.js.map +0 -1
  334. package/dist/engine/retrieval/index.js.map +0 -1
  335. package/dist/engine/retrieval/reranker.js.map +0 -1
  336. package/dist/engine/retrieval/rrf.js.map +0 -1
  337. package/dist/engine/tracer.js.map +0 -1
  338. package/dist/engine/types.js.map +0 -1
  339. package/dist/graph/cache.js.map +0 -1
  340. package/dist/graph/explore.js.map +0 -1
  341. package/dist/harness/surface-registry.js +0 -397
  342. package/dist/harness/surface-registry.js.map +0 -1
  343. package/dist/harness/validation.js.map +0 -1
  344. package/dist/hook/post-tool-use.js.map +0 -1
  345. package/dist/hook/pre-tool-use.js.map +0 -1
  346. package/dist/hook/stdin.js.map +0 -1
  347. package/dist/index.js +0 -13
  348. package/dist/index.js.map +0 -1
  349. package/dist/install/adapter-source.js +0 -45
  350. package/dist/install/adapter-source.js.map +0 -1
  351. package/dist/install/claude-hooks.js.map +0 -1
  352. package/dist/install/claude-marketplace.js.map +0 -1
  353. package/dist/install/claude.js.map +0 -1
  354. package/dist/install/codex.d.ts +0 -24
  355. package/dist/install/codex.js.map +0 -1
  356. package/dist/install/common.js.map +0 -1
  357. package/dist/install/hermes.js.map +0 -1
  358. package/dist/install/hosts.js.map +0 -1
  359. package/dist/link/convention-note.js.map +0 -1
  360. package/dist/link/global-config.js.map +0 -1
  361. package/dist/link/link.js.map +0 -1
  362. package/dist/mcp/semantic-engine.js.map +0 -1
  363. package/dist/mcp/semantic-retrieve-args.js.map +0 -1
  364. package/dist/mcp/semantic-retrieve-schema.js.map +0 -1
  365. package/dist/mcp/semantic-retrieve.js.map +0 -1
  366. package/dist/mcp/semantic-schemas.js.map +0 -1
  367. package/dist/mcp/semantic-tool-schemas.js.map +0 -1
  368. package/dist/ontology/active.js.map +0 -1
  369. package/dist/retrieve/morning-test-fixtures.js.map +0 -1
  370. package/dist/retrieve/morning.js.map +0 -1
  371. package/dist/retrieve/semantic-contract.js.map +0 -1
  372. package/dist/setup/axis.js.map +0 -1
  373. package/dist/update/update.js.map +0 -1
  374. package/docs/release.md +0 -188
  375. /package/{adapters/codex/.mcp.json → .mcp.codex.json} +0 -0
  376. /package/{adapters/claude-code/.mcp.json → .mcp.json} +0 -0
  377. /package/{adapters/claude-code → assets/claude}/hooks/oms-guard.mjs +0 -0
  378. /package/{adapters/claude-code → assets/claude}/hooks/oms-post-guard.mjs +0 -0
  379. /package/dist/{conventions → kernel/conventions}/frontmatter.d.ts +0 -0
  380. /package/dist/{conventions → kernel/conventions}/frontmatter.js +0 -0
  381. /package/dist/{conventions → kernel/conventions}/lint.d.ts +0 -0
  382. /package/dist/{conventions → kernel/conventions}/lint.js +0 -0
  383. /package/dist/{conventions → kernel/conventions}/report.d.ts +0 -0
  384. /package/dist/{conventions → kernel/conventions}/report.js +0 -0
  385. /package/dist/{conventions → kernel/conventions}/validate.js +0 -0
  386. /package/dist/{conventions → kernel/conventions}/vault-walk.d.ts +0 -0
  387. /package/dist/{conventions → kernel/conventions}/vault-walk.js +0 -0
  388. /package/dist/{conventions → kernel/conventions}/write-contract.js +0 -0
  389. /package/dist/{conventions → kernel/conventions}/write-protocol.d.ts +0 -0
  390. /package/dist/{conventions → kernel/conventions}/write-protocol.js +0 -0
  391. /package/dist/{engine → kernel/engine}/embed/chunker.d.ts +0 -0
  392. /package/dist/{engine → kernel/engine}/embed/chunker.js +0 -0
  393. /package/dist/{engine → kernel/engine}/embed/deferred.d.ts +0 -0
  394. /package/dist/{engine → kernel/engine}/embed/deferred.js +0 -0
  395. /package/dist/{engine → kernel/engine}/embed/identity.d.ts +0 -0
  396. /package/dist/{engine → kernel/engine}/embed/identity.js +0 -0
  397. /package/dist/{engine → kernel/engine}/embed/provider.d.ts +0 -0
  398. /package/dist/{engine → kernel/engine}/embed/provider.js +0 -0
  399. /package/dist/{engine → kernel/engine}/graph/builder.d.ts +0 -0
  400. /package/dist/{engine → kernel/engine}/graph/builder.js +0 -0
  401. /package/dist/{engine → kernel/engine}/graph/explore.d.ts +0 -0
  402. /package/dist/{engine → kernel/engine}/graph/explore.js +0 -0
  403. /package/dist/{engine → kernel/engine}/graph/node.d.ts +0 -0
  404. /package/dist/{engine → kernel/engine}/graph/node.js +0 -0
  405. /package/dist/{engine → kernel/engine}/graph/resolver.d.ts +0 -0
  406. /package/dist/{engine → kernel/engine}/graph/resolver.js +0 -0
  407. /package/dist/{engine → kernel/engine}/graph/traverse.d.ts +0 -0
  408. /package/dist/{engine → kernel/engine}/graph/traverse.js +0 -0
  409. /package/dist/{engine → kernel/engine}/linkify/apply.d.ts +0 -0
  410. /package/dist/{engine → kernel/engine}/linkify/apply.js +0 -0
  411. /package/dist/{engine → kernel/engine}/linkify/josa.d.ts +0 -0
  412. /package/dist/{engine → kernel/engine}/linkify/josa.js +0 -0
  413. /package/dist/{engine → kernel/engine}/linkify/mask.d.ts +0 -0
  414. /package/dist/{engine → kernel/engine}/linkify/mask.js +0 -0
  415. /package/dist/{engine → kernel/engine}/linkify/suggest.d.ts +0 -0
  416. /package/dist/{engine → kernel/engine}/linkify/suggest.js +0 -0
  417. /package/dist/{engine → kernel/engine}/linkify/types.d.ts +0 -0
  418. /package/dist/{engine → kernel/engine}/linkify/types.js +0 -0
  419. /package/dist/{engine → kernel/engine}/mcp/op-mappers.d.ts +0 -0
  420. /package/dist/{engine → kernel/engine}/mcp/op-mappers.js +0 -0
  421. /package/dist/{engine → kernel/engine}/mcp/query-mapper.d.ts +0 -0
  422. /package/dist/{engine → kernel/engine}/mcp/query-mapper.js +0 -0
  423. /package/dist/{engine → kernel/engine}/mcp/types.js +0 -0
  424. /package/dist/{engine → kernel/engine}/retrieval/reranker.d.ts +0 -0
  425. /package/dist/{engine → kernel/engine}/retrieval/reranker.js +0 -0
  426. /package/dist/{engine → kernel/engine}/retrieval/rrf.d.ts +0 -0
  427. /package/dist/{engine → kernel/engine}/retrieval/rrf.js +0 -0
  428. /package/dist/{engine → kernel/engine}/tracer.d.ts +0 -0
  429. /package/dist/{engine → kernel/engine}/tracer.js +0 -0
  430. /package/dist/{engine → kernel/engine}/types.js +0 -0
  431. /package/dist/{graph → kernel/graph}/explore.d.ts +0 -0
  432. /package/dist/{graph → kernel/graph}/explore.js +0 -0
  433. /package/dist/{harness → kernel/harness}/validation.d.ts +0 -0
  434. /package/dist/{install → kernel/install}/common.d.ts +0 -0
  435. /package/dist/{install → kernel/install}/common.js +0 -0
  436. /package/dist/{install → kernel/install}/types.d.ts +0 -0
  437. /package/dist/{core/ontology → kernel/install}/types.js +0 -0
  438. /package/dist/{link → kernel/link}/convention-note.d.ts +0 -0
  439. /package/dist/{link → kernel/link}/global-config.d.ts +0 -0
  440. /package/dist/{link → kernel/link}/global-config.js +0 -0
  441. /package/dist/{link → kernel/link}/link.d.ts +0 -0
  442. /package/dist/{link → kernel/link}/link.js +0 -0
  443. /package/dist/{core → kernel}/ontology/loader.d.ts +0 -0
  444. /package/dist/{core → kernel}/ontology/loader.js +0 -0
  445. /package/dist/{core → kernel}/ontology/resolver.d.ts +0 -0
  446. /package/dist/{core → kernel}/ontology/resolver.js +0 -0
  447. /package/dist/{core → kernel}/ontology/types.d.ts +0 -0
  448. /package/dist/{install → kernel/ontology}/types.js +0 -0
  449. /package/dist/{retrieve → kernel/search}/morning-test-fixtures.d.ts +0 -0
  450. /package/dist/{retrieve → kernel/search}/morning-test-fixtures.js +0 -0
  451. /package/dist/{retrieve → kernel/search}/morning.js +0 -0
  452. /package/dist/{retrieve → kernel/search}/semantic-contract.d.ts +0 -0
  453. /package/dist/{retrieve → kernel/search}/semantic-contract.js +0 -0
  454. /package/dist/{mcp → kernel/semantic}/semantic-retrieve.d.ts +0 -0
  455. /package/dist/{mcp → kernel/semantic}/semantic-schemas.d.ts +0 -0
  456. /package/dist/{mcp → kernel/semantic}/semantic-schemas.js +0 -0
  457. /package/dist/{mcp → kernel/semantic}/semantic-tool-schemas.d.ts +0 -0
  458. /package/dist/{update → kernel/update}/update.d.ts +0 -0
  459. /package/dist/{update → kernel/update}/update.js +0 -0
  460. /package/dist/{hook → vendors/claude/hook}/post-tool-use.d.ts +0 -0
  461. /package/dist/{hook → vendors/claude/hook}/pre-tool-use.d.ts +0 -0
  462. /package/dist/{hook → vendors/claude/hook}/pre-tool-use.js +0 -0
  463. /package/dist/{hook → vendors/claude/hook}/stdin.d.ts +0 -0
  464. /package/dist/{hook → vendors/claude/hook}/stdin.js +0 -0
@@ -0,0 +1,15 @@
1
+ # Host Asset Contract
2
+
3
+ Oh My Second Brain keeps shared skills in `assets/skills/` and host-specific runtime assets in explicit directories under `assets/`. There is no adapter bundle directory.
4
+
5
+ | Host | Manifest/config | Host assets | Installation destination |
6
+ |---|---|---|---|
7
+ | Claude Code | Root `.claude-plugin/plugin.json` and `.mcp.json` | `assets/claude/CLAUDE.md`, `assets/claude/hooks/` | Plugin root; guard hooks are installed through `~/.claude/settings.json`. |
8
+ | Codex | Root `.codex-plugin/plugin.json` and `.mcp.codex.json` | `assets/codex/AGENTS.md`, `assets/codex/rules/oms.md` | `~/.codex/plugins/oms/AGENTS.md`, `~/.codex/rules/oms.md`, and `~/.codex/skills/oms-*`. |
9
+ | Hermes | `assets/hermes-manifest.json` | `assets/hermes/SOUL.md`, `assets/hermes/README.md` | `~/.hermes/adapters/oms/`, `~/.hermes/skills/knowledge-management/oms/`, and `~/.hermes/config.yaml`. |
10
+
11
+ Claude's manifest retains its explicit skill array; Codex's manifest retains its single shared skill-directory declaration. Both resolve `./assets/skills/` inside the repository-root plugin.
12
+
13
+ The MCP server is started with `oms mcp`. Claude uses `.mcp.json`, Codex uses `.mcp.codex.json`, and Hermes receives its registration in `~/.hermes/config.yaml`.
14
+
15
+ To add a host, add a clearly named `assets/<host>/` directory for host-only files, preserve shared skills in `assets/skills/`, declare every shipped path in the harness registry, and keep installer destinations explicit.
package/docs/install.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Install Oh My Second Brain
2
2
 
3
- Oh My Second Brain v0 is distributed as one npm/GitHub-release package that contains the CLI/runtime, the default ontology, host adapter assets, host-native skill/rule bundles, and shell installers. Claude Code, Codex, and Hermes install Oh My Second Brain host surfaces backed by the same MCP write/retrieve runtime. Legacy runtime IDs remain `oms` for compatibility.
3
+ Oh My Second Brain v0 is distributed as one npm/GitHub-release package that contains the CLI/runtime, the default ontology, root host assets, host-native skill/rule bundles, and shell installers. Claude Code, Codex, and Hermes install Oh My Second Brain host surfaces backed by the same MCP runtime. Legacy runtime IDs remain `oms` for compatibility.
4
4
 
5
5
  ## Prerequisites
6
6
 
@@ -56,14 +56,14 @@ Runtime selection follows the Ouroboros pattern:
56
56
  1. Explicit `--runtime` wins.
57
57
  2. `auto` detects `claude`, `codex`, and `hermes` on `PATH`.
58
58
  3. If nothing is detected, `auto` defaults to Claude Code for conservative first-run behavior; use `--runtime all` to install every host surface.
59
- 4. `all` installs every known adapter surface.
59
+ 4. `all` installs every known host surface.
60
60
 
61
61
  ## What install writes
62
62
 
63
63
  | Host | Install behavior |
64
64
  | --- | --- |
65
65
  | Claude Code | Installs the plugin-owned `.mcp.json` surface; removes stale `oms` registrations across local/project/user scopes; with `--execute`, adds the OMS marketplace and installs `oms@oms` through it, falling back to the local plugin path when the marketplace flow can't complete. |
66
- | Codex | Installs `~/.codex/rules/oms.md`, `~/.codex/skills/oms-*`, copies adapter files to `~/.codex/plugins/oms`, and writes a managed `[mcp_servers.oms]` block plus `OMS_AGENT_RUNTIME=codex` env in `~/.codex/config.toml`. |
66
+ | Codex | Installs `~/.codex/rules/oms.md`, `~/.codex/skills/oms-*`, installs guidance to `~/.codex/plugins/oms`, and writes a managed `[mcp_servers.oms]` block plus `OMS_AGENT_RUNTIME=codex` env in `~/.codex/config.toml`. |
67
67
  | Hermes | Installs `~/.hermes/skills/knowledge-management/oms/`, copies adapter files to `~/.hermes/adapters/oms`, and writes `mcp_servers.oms` in `~/.hermes/config.yaml`. |
68
68
 
69
69
  Host writes keep the legacy `oms` namespace for backward-compatible MCP/skill IDs and are reversible with `oh-my-second-brain uninstall` (or the `oms` alias). Each runtime is installed independently: if one host fails, the others still complete.
@@ -122,8 +122,8 @@ Setup does not modify vault notes. It writes `.oms/taxonomy.yaml`, preserves exi
122
122
  Typical printed commands look like:
123
123
 
124
124
  ```bash
125
- claude plugin install /path/to/oh-my-second-brain/adapters/claude-code
126
- # MCP is declared by the installed plugin in adapters/claude-code/.mcp.json.
125
+ claude plugin install /path/to/oh-my-second-brain
126
+ # MCP is declared by the installed plugin in .mcp.json.
127
127
  ```
128
128
 
129
129
  ## Uninstall
@@ -165,7 +165,7 @@ oh-my-second-brain linkify --vault /path/to/vault --folder notes
165
165
  oh-my-second-brain linkify --vault /path/to/vault --apply --yes
166
166
  ```
167
167
 
168
- Hosts can do the same note by note through the `oms_link_suggest` (read-only) and `oms_link_apply` (writes accepted candidates) MCP tools. Nothing is linked behind your back: new notes are composed already linked, and existing notes change only when you ask.
168
+ Hosts can do the same note by note through `oms_link`: its `suggest` operation is read-only and its `apply` operation writes accepted candidates. Nothing is linked behind your back: new notes are composed already linked, and existing notes change only when you ask.
169
169
 
170
170
  ## Verify the install
171
171
 
@@ -173,11 +173,10 @@ Hosts can do the same note by note through the `oms_link_suggest` (read-only) an
173
173
  oh-my-second-brain doctor --vault /path/to/vault
174
174
  oh-my-second-brain semantic sync --vault /path/to/vault --collection vault
175
175
  oh-my-second-brain semantic query "what should I retrieve?" --vault /path/to/vault
176
- oh-my-second-brain semantic context add vault "Prefer durable notes with reusable evidence." --vault /path/to/vault
177
- oh-my-second-brain semantic ls vault --vault /path/to/vault
178
- oh-my-second-brain semantic doctor --vault /path/to/vault
176
+ oh-my-second-brain semantic context list --vault /path/to/vault
177
+ oh-my-second-brain semantic status --vault /path/to/vault
179
178
  oh-my-second-brain install --runtime all --vault /path/to/vault --dry-run
180
- claude plugin validate adapters/claude-code
179
+ claude plugin validate .
181
180
  ```
182
181
 
183
- Inside a host runtime, verify the MCP server by listing MCP tools or asking for Oh My Second Brain graph/status. The server exposes status, graph build, context retrieval, native OMS semantic-index sync, qmd-compatible semantic query/status aliases, `qmd://` document resources, semantic document rehydration, axis retrieval, lazy note loading, contract validation, and gated write tools. OMS does not require the `qmd` binary; `oms semantic doctor` now reports the built-in SQLite/FTS/vector backend and optional GGUF model path diagnostics.
182
+ Inside a host runtime, verify the MCP server by listing its five tools: `oms_write`, `oms_search`, `oms_link`, `oms_status`, and `oms_doctor`. `oms_search` provides retrieval operations, `oms_status` is read-only health/statistics, and `oms_doctor` provides diagnosis or repair operations. OMS does not require the `qmd` binary; `oms semantic status` reports semantic-engine availability.
package/package.json CHANGED
@@ -1,26 +1,37 @@
1
1
  {
2
2
  "name": "oh-my-second-brain",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Oh My Second Brain: a host-agnostic, user-owned convention layer for Obsidian and plain-markdown knowledge vaults.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "bin": {
8
8
  "oh-my-second-brain": "dist/cli/oms.js",
9
9
  "oms": "dist/cli/oms.js",
10
- "oms-guard": "adapters/claude-code/hooks/oms-guard.mjs",
11
- "oms-post-guard": "adapters/claude-code/hooks/oms-post-guard.mjs"
10
+ "oms-guard": "assets/claude/hooks/oms-guard.mjs",
11
+ "oms-post-guard": "assets/claude/hooks/oms-post-guard.mjs"
12
12
  },
13
- "main": "dist/index.js",
14
- "types": "dist/index.d.ts",
13
+ "main": "dist/kernel/index.js",
14
+ "types": "dist/kernel/index.d.ts",
15
15
  "files": [
16
16
  "dist",
17
- "core",
18
- "adapters",
17
+ "core/AGENTS.md",
18
+ "core/ontology",
19
+ ".claude-plugin",
20
+ ".codex-plugin",
21
+ ".mcp.json",
22
+ ".mcp.codex.json",
23
+ "assets",
24
+ "docs/adapters.md",
19
25
  "docs/install.md",
20
- "docs/release.md",
21
26
  "scripts/install.sh",
22
27
  "scripts/uninstall.sh",
23
- "CHANGELOG.md"
28
+ "ACKNOWLEDGMENTS.md",
29
+ "CHANGELOG.md",
30
+ "CHANGELOG-kernel.md",
31
+ "CHANGELOG-cli.md",
32
+ "CHANGELOG-mcp.md",
33
+ "CHANGELOG-vendors.md",
34
+ "CHANGELOG-assets.md"
24
35
  ],
25
36
  "engines": {
26
37
  "node": ">=20"
@@ -30,6 +41,7 @@
30
41
  "postbuild": "chmod +x dist/cli/oms.js",
31
42
  "lint": "tsc -p tsconfig.json --noEmit",
32
43
  "test": "vitest run",
44
+ "check:docs": "node scripts/check-doc-mapping.mjs",
33
45
  "audit": "npm audit --omit=dev",
34
46
  "release": "node scripts/release.mjs",
35
47
  "release:pack": "node scripts/release-pack.mjs",
@@ -1,99 +0,0 @@
1
- # Adapter Contract
2
-
3
- ## Principle
4
-
5
- Oh My Second Brain's **core** (ontology loading, convention validation, graph/search runtime targets, and MCP server) is written once.
6
- Each **adapter** absorbs exactly one host's structural differences — manifest schema,
7
- hook format, invocation sigil, and convention-file name — so adding a new host
8
- means adding one new adapter directory, not touching core.
9
-
10
- Per-host structural asymmetry is documented here, **not abstracted away**.
11
- The goal is legibility: when something breaks on one host, you read its adapter,
12
- not a shared abstraction layer.
13
-
14
- ---
15
-
16
- ## Host Comparison Table
17
-
18
- | Host | Manifest | Convention file | Sigil | Status |
19
- |------|----------|----------------|-------|--------|
20
- | **claude-code** | `.claude-plugin/plugin.json` | `CLAUDE.md` | `/` | REAL installable v0 |
21
- | **codex** | `.codex-plugin/plugin.json` | `AGENTS.md` | `$` | Native skills + MCP install (v0) |
22
- | **hermes** | `manifest.json` | `SOUL.md` + context files | (built-in tools) | Native skills + MCP install (v0) |
23
-
24
- ---
25
-
26
- ## Adapter Structure
27
-
28
- Each adapter lives at `adapters/<host>/` and contains:
29
-
30
- ```
31
- adapters/<host>/
32
- <manifest-dir>/
33
- plugin.json # Host-specific manifest (schema varies per host — see below)
34
- skills/ # Host-specific skill wrappers/bundles
35
- <verb>/
36
- SKILL.md
37
- CLAUDE.md # OR AGENTS.md OR SOUL.md — convention-file shim for this host
38
- ```
39
-
40
- ---
41
-
42
- ## Per-Host Structural Notes
43
-
44
- ### claude-code (REAL installable v0)
45
-
46
- Release contract: the npm tarball must include `adapters/claude-code/` because `oms setup --install-claude` prints a packaged adapter path for `claude plugin install`.
47
-
48
- - **Manifest**: `.claude-plugin/plugin.json`
49
- - Schema: `{ name, version, description, author, license, keywords, skills: string[] }`
50
- - `skills` is an **array of directory-path strings** relative to the plugin root (e.g. `"./skills/setup/"`).
51
- - Each path must contain a `SKILL.md`.
52
- - **Convention file**: `CLAUDE.md` — append `adapters/claude-code/CLAUDE.md` to your project's `CLAUDE.md`.
53
- - **Sigil**: `/` (e.g. `/oms-setup`).
54
- - **Hooks**: `oms install --runtime claude` can upsert OMS guard entries in `~/.claude/settings.json` while preserving existing non-OMS hooks.
55
- - **Install**: `claude plugin install path/to/adapters/claude-code` or point Claude Code at the adapter directory.
56
-
57
- ### codex (native skills + MCP install v0)
58
-
59
- - **Manifest**: `.codex-plugin/plugin.json`
60
- - Schema differs from claude-code: codex declares its skill directory and MCP server manifest directly.
61
- - Skills are invoked with `$` sigil instead of `/`.
62
- - **Convention file**: `AGENTS.md` — append `adapters/codex/AGENTS.md` to your project's `AGENTS.md`.
63
- - **Status**: v0 native install. `oms install --runtime codex` installs `~/.codex/rules/oms.md`, namespaced `~/.codex/skills/oms-*`, a managed `[mcp_servers.oms]` block in `~/.codex/config.toml`, and a copy of the adapter under `~/.codex/plugins/oms`.
64
-
65
- ### hermes (native skills + MCP install v0)
66
-
67
- - **Manifest**: `manifest.json` (Hermes/Nous Research format — schema TBD).
68
- - Hermes skills register on agentskills.io; no local manifest equivalent exists yet.
69
- - **Convention file**: `SOUL.md` + context files — append `adapters/hermes/SOUL.md` to your Hermes session context.
70
- - **Sigil**: N/A (Hermes uses built-in tools + MCP, not a `/`/`$` sigil system).
71
- - **Status**: v0 native install. `oms install --runtime hermes` installs the skill bundle under `~/.hermes/skills/knowledge-management/oms/`, registers `mcp_servers.oms` in `~/.hermes/config.yaml`, and keeps an adapter copy under `~/.hermes/adapters/oms`.
72
-
73
- ---
74
-
75
- ## MCP Backbone
76
-
77
- The cross-host mechanism is an **MCP server** (`src/mcp/server.ts`) that exposes
78
- contract validation, retrieve, graph/status, and gated write tools.
79
-
80
- All three hosts natively support MCP (`.mcp.json` for claude-code and codex; "any MCP server" for Hermes).
81
- In the current repository, `src/mcp/server.ts` starts a real stdio MCP server via `oms mcp`.
82
-
83
- The MCP server currently exposes status/read/cache/retrieve/write tools:
84
- `oms_graph_status`, `oms_graph_build`, `oms_list_concepts`,
85
- `oms_retrieve_context`, `oms_sync_embeddings`, `oms_get_document`, `oms_multi_get_documents`,
86
- `oms_retrieve_by_axis`, `oms_lazy_load_note`,
87
- `oms_validate_contract`, and `write`.
88
- `write` is gated by path-safety, vault-confinement, and contract validation. The CLI (`oms setup`, `oms install`, `oms uninstall`, `oms doctor`) remains the real surface for lifecycle commands.
89
-
90
- ---
91
-
92
- ## Adding a New Host
93
-
94
- 1. Create `adapters/<host>/`.
95
- 2. Write the host-specific manifest in the correct subdirectory and schema.
96
- 3. Write the convention-file shim (`CLAUDE.md` / `AGENTS.md` / `SOUL.md` / whatever the host uses).
97
- 4. Write skill wrappers that shell out to `oms <verb>` (for lifecycle) or call the MCP server (for write/retrieve).
98
- 5. Document the host's structural differences in this table.
99
- 6. Do **not** modify `core/` or add host-specific logic to shared code.
@@ -1,27 +0,0 @@
1
- ---
2
- name: oms-compile
3
- description: Agent-guided concept compile — synthesize a concept wiki page from source materials with incremental skip, provenance weighting, and cascade backlinks.
4
- ---
5
-
6
- # Skill: oms-compile (Claude Code)
7
-
8
- Synthesize a concept wiki page from source materials.
9
-
10
- ## Invocation
11
-
12
- ```
13
- /oms-compile
14
- ```
15
-
16
- ## What this skill does
17
-
18
- Thin pointer to `core/skills/compile`. There is no `oms compile` CLI.
19
-
20
- 1. **Phase A** — load and grade materials; resolve backlinks (pure read).
21
- 2. Skip rewrite if the material SHA is unchanged.
22
- 3. **Phase B** — write the body to `processed/` only.
23
- 4. Pass affected backlinks to the wiki skill so those pages can be marked stale.
24
-
25
- Provenance order: authored > curated > external-raw.
26
- Use `oms_retrieve_context` or `oms_get_document` to gather source materials.
27
- Delete `{dotLlmwiki}/sha-cache.json` to force a full recompile.
@@ -1,51 +0,0 @@
1
- ---
2
- name: oms-define
3
- description: Grow the vault convention by adding a metadata field to a concept. Entry point is oms define (roadmap).
4
- ---
5
-
6
- # Skill: oms-define (Claude Code)
7
-
8
- Extend your vault convention field-by-field.
9
- Each frontmatter key is a unit of convention with a declared `intent`, type, and rules.
10
-
11
- ## Invocation
12
-
13
- ```
14
- /oms-define
15
- ```
16
-
17
- ## What this skill does
18
-
19
- Intended to shell out to:
20
-
21
- ```bash
22
- oms define
23
- ```
24
-
25
- **Roadmap note:** The `oms define` interactive runtime is not yet implemented in v0.
26
- Today this skill guides you through the same steps manually (agent-guided).
27
-
28
- ## Agent-guided steps (v0)
29
-
30
- 1. Identify which **concept** to extend (e.g. `literature`, `inbox`).
31
- 2. Choose a new **field name** (snake-case, e.g. `thesis`).
32
- 3. State the field's **intent** — why this knowledge matters.
33
- 4. Choose **type**: `string` | `string[]` | `date` | `url` | `boolean`.
34
- 5. Choose **required**: yes / no.
35
- 6. Optionally set **normalize** (e.g. `lowercase`) or **immutable** (lock after creation).
36
- 7. Append the entry to `vault/.oms/concepts/<concept>.yaml`.
37
- 8. Run `oms doctor` to validate existing notes against the updated schema.
38
-
39
- ## YAML snippet to append
40
-
41
- ```yaml
42
- fields:
43
- - name: thesis
44
- type: string
45
- required: false
46
- intent: "The central claim this source makes"
47
- ```
48
-
49
- ## When the runtime ships
50
-
51
- `oms define` will run the same Q&A interactively and write the YAML for you.
@@ -1,28 +0,0 @@
1
- ---
2
- name: oms-distill
3
- description: Standalone meta-absorption skill — analyzes any target (repo, document, skill, concept) in a clean-room context and produces a structured absorption report with patterns, risks, and attribution.
4
- ---
5
-
6
- # Skill: oms-distill (Claude Code)
7
-
8
- Run adversarial absorption analysis on a target and produce a structured report.
9
-
10
- ## Invocation
11
-
12
- ```
13
- /oms-distill <target-path-or-text>
14
- ```
15
-
16
- ## What this skill does
17
-
18
- Thin pointer to `core/skills/distill`. Vault-agnostic — `OMS_VAULT` is NOT
19
- required. The target is treated as inert read-only text and is never executed.
20
-
21
- 1. Load the target as inert data only.
22
- 2. Snapshot a content hash before analysis.
23
- 3. Run red-team analysis (read-only).
24
- 4. Write the report: §1 Patterns, §2 Risks, §3 Attribution.
25
- 5. Verify the hash is unchanged. Stop if anything mutated.
26
- 6. Return the report string. Write it only if the user explicitly requests it.
27
-
28
- No vault write occurs inside distill.
@@ -1,58 +0,0 @@
1
- ---
2
- name: oms-doctor
3
- description: Validate vault notes against the Oh My Second Brain convention by running oms doctor.
4
- ---
5
-
6
- # Skill: oms-doctor (Claude Code)
7
-
8
- Check every note in your vault against its declared concept schema.
9
- This skill is **REAL in v0** — it shells out to the fully-implemented CLI.
10
-
11
- ## Invocation
12
-
13
- ```
14
- /oms-doctor
15
- ```
16
-
17
- ## What this skill does
18
-
19
- Shells out to:
20
-
21
- ```bash
22
- oms doctor [--vault <path>]
23
- ```
24
-
25
- The CLI will:
26
- 1. Load `vault/.oms/` and `vault/.oms/taxonomy.yaml`.
27
- 2. Walk every `.md` note in the vault.
28
- 3. Resolve each note's concept from the taxonomy folder binding.
29
- 4. Validate frontmatter fields against the concept schema.
30
- 5. Print per-note violations (field, rule, message) and total counts.
31
- 6. **Always exits 0** — v0 is advisory only (`onViolation: warn`).
32
-
33
- ## Options
34
-
35
- | Flag | Description |
36
- |------|-------------|
37
- | `--vault <path>` | Path to your Obsidian vault root (default: current directory) |
38
-
39
- ## Example
40
-
41
- ```bash
42
- oms doctor --vault ~/Documents/MyVault
43
- ```
44
-
45
- ## Sample output
46
-
47
- ```
48
- vault/references/attention.md
49
- WARN title required Field "title" is required but missing
50
- WARN source-url type Expected url, got string
51
-
52
- Checked 12 notes. 2 violations found. (exits 0)
53
- ```
54
-
55
- ## Roadmap
56
-
57
- Doctor is fully real in v0. Run it after any `oms setup`, `oms define`,
58
- or bulk note edit to keep your vault clean.
@@ -1,87 +0,0 @@
1
- ---
2
- name: oms-link
3
- description: Two-path note-linking skill — Path A (pre-write): compose a new note body that already carries [[wikilinks]] to existing term notes; Path B (retrofit): add missing links to existing notes via oms linkify or oms_link_apply.
4
- ---
5
-
6
- # Skill: oms-link (Claude Code)
7
-
8
- Two-path skill — thin pointer to `core/skills/link`. Requires `OMS_VAULT`.
9
-
10
- ## Invocation
11
-
12
- ```
13
- /link
14
- ```
15
-
16
- ## Which path?
17
-
18
- Check **before acting**:
19
- - **Path A (pre-write):** you are about to write the note → learn the term
20
- vocabulary first, then draft a body that already contains `[[wikilinks]]`.
21
- - **Path B (retrofit):** the note already exists → `oms linkify` or
22
- MCP `oms_link_suggest` → `oms_link_apply`.
23
-
24
- These paths are **mutually exclusive**.
25
-
26
- ## The link universe
27
-
28
- Only notes bound to the `term` concept in `vault/.oms/taxonomy.yaml` are link
29
- targets; their surface forms are the basename and the frontmatter `aliases`.
30
- `0 term note(s) available as link targets` means the vault has no term layer —
31
- build one with the `wiki` skill first.
32
-
33
- Three engine rules, not negotiable:
34
- - **Surface-anchored** — a link exists only where the term literally appears.
35
- - **First occurrence only** — one link per target note per body.
36
- - **Ambiguity is reported, never resolved** — `ambiguous: true` plus `rivalPaths`
37
- means ask the user or skip the span.
38
-
39
- Frontmatter, code, existing links, headings, URLs, and tags are masked out; a
40
- "missing" link inside any of them is correct.
41
-
42
- ---
43
-
44
- ## Path A — pre-write linking
45
-
46
- *(Only while drafting, so no retrofit pass is ever needed for this note.)*
47
-
48
- ### Agent-guided steps
49
-
50
- 1. Call MCP `oms_link_suggest` on an existing note in the same folder (or
51
- `oms linkify --folder <folder>` in report mode) and read the `targetPath`
52
- list — that is the vault's current term vocabulary.
53
- 2. Draft the body with those exact surface forms, writing `[[wikilinks]]` inline
54
- at the first mention of each term.
55
- 3. Commit via MCP `write`. Host `Write`/`Edit` never touches vault `.md`.
56
- 4. Re-check with `oms_link_suggest`; zero candidates means the draft was already
57
- fully linked.
58
-
59
- ---
60
-
61
- ## Path B — retrofit existing notes
62
-
63
- *(Only when the note is already on disk. Report first, always.)*
64
-
65
- ### Batch
66
-
67
- ```bash
68
- oms linkify --folder notes # report only, writes nothing
69
- oms linkify --folder notes --apply --yes # rewrite in place
70
- ```
71
-
72
- `--apply` without `--yes` refuses before reading any note and writes nothing.
73
- Show the report and get agreement before adding `--yes`. Writes go through the
74
- capture kernel, so path safety and the concept contract hold.
75
-
76
- ### Single note
77
-
78
- 1. `oms_link_suggest { notePath, folder? }` → candidates + `baseContentHash`.
79
- 2. Present the candidates; drop ambiguous ones the user does not resolve.
80
- 3. `oms_link_apply { notePath, baseContentHash, candidateIds, folder? }` — pass
81
- back the same `baseContentHash` and the same `folder` scope.
82
-
83
- `oms_link_apply` refuses without writing on `note-changed`, `candidate-drift`,
84
- or overlapping candidates. Re-run `oms_link_suggest` for fresh offsets instead
85
- of retrying stale ids.
86
-
87
- After a retrofit run, run `oms doctor` (non-blocking, exits 0).
@@ -1,99 +0,0 @@
1
- ---
2
- name: oms-retrieve
3
- description: Retrieve knowledge from the vault through declared Oh My Second Brain retrieval views and axes (agent-guided; runtime is roadmap).
4
- ---
5
-
6
- # Skill: oms-retrieve (Claude Code)
7
-
8
- Surface the right notes and fields for a given purpose using the vault's declared retrieval axes and views (인출).
9
-
10
- ## Invocation
11
-
12
- ```
13
- /oms-retrieve
14
- ```
15
-
16
- ## What this skill does
17
-
18
- Conceptually shells out to:
19
-
20
- ```bash
21
- oms retrieve
22
- ```
23
-
24
- **Runtime note:** Retrieval is available through MCP tools. Prefer
25
- `oms_retrieve_context` for live graph + semantic context retrieval, use
26
- `oms_sync_embeddings` when the native semantic index must be refreshed, then
27
- `oms_get_document` or `oms_multi_get_documents` for selected semantic evidence
28
- or `oms_semantic_query`/`oms_semantic_status` for qmd-compatible follow-ups,
29
- and `oms_lazy_load_note` for selected vault-note bodies. `oms_retrieve_by_axis`
30
- remains available for legacy cache-backed axis retrieval.
31
-
32
- ## Typed query interface
33
-
34
- Pass `semanticSearches` to issue typed sub-queries in a single call:
35
-
36
- | type | behaviour |
37
- |---------|--------------------------------------------------|
38
- | `lex` | BM25 keyword search (exact terms, fast) |
39
- | `vec` | SQLite-vector semantic search (meaning-based) |
40
- | `hyde` | Hypothetical-document expansion before search |
41
-
42
- ```
43
- semanticSearches: [
44
- { type: "lex", query: "transformer attention" },
45
- { type: "vec", query: "self-attention replaces recurrence" },
46
- { type: "hyde", query: "a paper about attention mechanisms" }
47
- ]
48
- ```
49
-
50
- Use `semanticScope: "global"` (default) for vault-wide semantic search.
51
- Use `semanticScope: "graph"` (**gph mode**) to confine semantic candidates
52
- to the set already selected by the OMS graph traversal.
53
-
54
- ## Agent-guided steps (v0)
55
-
56
- 1. Clarify the user's **retrieval purpose** (synthesize, audit, plan, review, etc.).
57
- 2. Narrow by declared **folder/concept/property/wikilink axes** where possible.
58
- 3. Match the purpose to a declared **retrieval view** (`lenses` in YAML) in `vault/.oms/concepts/*.yaml`.
59
- 4. Call MCP `oms_retrieve_context` with the best available axes and query.
60
- 5. Choose semantic scope: `semanticScope: "global"` for broad vault-wide search;
61
- `semanticScope: "graph"` (gph mode) when candidates must stay inside the
62
- selected graph neighbors. Pass typed sub-queries via `semanticSearches`
63
- using `lex`, `vec`, or `hyde` types as appropriate.
64
- Pass `semanticMode`, `semanticIntent`, `semanticLex`, `semanticVec`,
65
- `semanticHyde`, and `semanticMinScore` for additional control.
66
- Set `embeddingSyncBeforeSearch: true` only when the native semantic
67
- index must be refreshed before retrieval.
68
- 6. Use `oms_sync_embeddings` for explicit update/embed sync.
69
- 7. Use `oms_semantic_query`, `oms_semantic_status`, `oms_semantic_collections`,
70
- or `oms_semantic_contexts` for qmd-compatible follow-ups on the native OMS index.
71
- 8. Use read-only `oms_get_document` or `oms_multi_get_documents` to rehydrate
72
- selected docids, paths, globs, or line ranges.
73
- 9. For each note, return the retrieval-view fields and lazy-load body only when needed.
74
- 10. Return results grouped by concept/folder with retrieval-view frontmatter.
75
-
76
- ## Example
77
-
78
- ```
79
- Purpose: "Synthesize my transformer papers"
80
-
81
- → concept: literature
82
- → view: synthesis (YAML key: lenses; fields: [title, thesis, source-url])
83
- → scan: vault/references/*.md
84
- → output:
85
-
86
- | title | thesis | source-url |
87
- |-------|--------|------------|
88
- | Attention Is All You Need | Self-attention replaces recurrence | https://arxiv.org/abs/1706.03762 |
89
- ```
90
-
91
- ## Runtime
92
-
93
- Use MCP `oms_retrieve_context` for live graph/semantic retrieval. Pass typed
94
- sub-queries via `semanticSearches` (types: `lex`, `vec`, `hyde`).
95
- Use `semanticScope: "graph"` (gph mode) to confine semantic candidates to
96
- graph neighbors. Use MCP `oms_sync_embeddings` for native semantic-index sync.
97
- Use MCP `oms_get_document` or `oms_multi_get_documents` for document rehydration.
98
- Use MCP `oms_retrieve_by_axis` only for legacy axis-first cache retrieval.
99
- Use MCP `oms_lazy_load_note` only after selecting candidate notes.
@@ -1,78 +0,0 @@
1
- ---
2
- name: oms-setup
3
- description: Adopt an existing Obsidian vault into the Oh My Second Brain convention by running oms setup.
4
- ---
5
-
6
- # Skill: oms-setup (Claude Code)
7
-
8
- Adopt your Obsidian vault into the Oh My Second Brain convention.
9
- This skill is **REAL in v0** — it shells out to the fully-implemented CLI.
10
-
11
- ## Invocation
12
-
13
- ```
14
- /oms-setup
15
- ```
16
-
17
- ## What this skill does
18
-
19
- Shells out to:
20
-
21
- ```bash
22
- oms setup [--vault <path>] [--yes] [--suggest-fields] [--install-claude]
23
- oms install [--runtime <auto|all|claude|codex|hermes>] [--vault <path>] [--dry-run] [--execute] [--yes]
24
- ```
25
-
26
- The CLI will:
27
- 1. Scan your vault's existing top-level folders (does NOT impose a structure).
28
- 2. Interactively ask each folder's intent and concept binding (use `--yes` to accept defaults).
29
- 3. Summarize observed frontmatter fields without changing notes.
30
- 4. Optionally add selected observed fields to concept schemas with `--suggest-fields`.
31
- 5. Ask for retrieval lenses and reject lenses that reference unknown fields.
32
- 6. Write `vault/.oms/taxonomy.yaml` and preserve existing `vault/.oms/concepts/` files while adding missing defaults.
33
-
34
- ## Options
35
-
36
- | Flag | Description |
37
- |------|-------------|
38
- | `--vault <path>` | Path to your Obsidian vault root (default: current directory) |
39
- | `--yes` | Non-interactive: accept all defaults, no prompts |
40
- | `--suggest-fields` | Merge observed note frontmatter fields into concept schemas without mutating notes. |
41
- | `--install-claude` | Legacy setup-only dry-run that prints the Claude Code plugin install command and plugin-owned MCP asset. |
42
- | `install --runtime <name>` | Install host adapter/MCP registration for `auto`, `all`, `claude`, `codex`, or `hermes`. |
43
- | `install --dry-run` | Preview host writes without mutating config. |
44
- | `install --execute` | Allow external host CLIs such as `claude plugin install` to run when available. |
45
-
46
- ## Example
47
-
48
- ```bash
49
- # Interactive (recommended first run):
50
- oms setup --vault ~/Documents/MyVault
51
-
52
- # Interactive setup with observed frontmatter field suggestions:
53
- oms setup --vault ~/Documents/MyVault --suggest-fields
54
-
55
- # Non-interactive (CI / scripted):
56
- oms setup --vault ~/Documents/MyVault --yes
57
-
58
- # Preview all host adapter installs:
59
- oms install --runtime all --vault ~/Documents/MyVault --dry-run
60
-
61
- # Install all host adapter/MCP registrations:
62
- oms install --runtime all --vault ~/Documents/MyVault --yes
63
-
64
- # Also run external host CLIs where available:
65
- oms install --runtime claude --vault ~/Documents/MyVault --yes --execute
66
- ```
67
-
68
- ## After setup
69
-
70
- Run `/oms-doctor` to validate your existing notes against the convention.
71
-
72
- ## Roadmap
73
-
74
- Setup plus `oms install`/`oms uninstall` host lifecycle commands are real and release-gated by unpacked npm tarball smoke tests. The plugin-owned MCP asset starts
75
- the status/read/cache/retrieve/write runtime (`oms_graph_status`, `oms_graph_build`,
76
- `oms_list_concepts`, `oms_retrieve_context`, `oms_retrieve_by_axis`,
77
- `oms_lazy_load_note`, `oms_validate_contract`, `write`).
78
- `write` is gated by path-safety and the kernel-owned contract.