oh-my-second-brain 0.2.0 → 0.6.1

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 (494) 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 +162 -0
  5. package/CHANGELOG-assets.md +23 -0
  6. package/CHANGELOG-cli.md +24 -0
  7. package/CHANGELOG-kernel.md +48 -0
  8. package/CHANGELOG-mcp.md +36 -0
  9. package/CHANGELOG-vendors.md +26 -0
  10. package/CHANGELOG.md +51 -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 +3 -1
  30. package/dist/cli/args.js +14 -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 +24 -5
  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.d.ts +1 -1
  49. package/dist/cli/oms.js +45 -11
  50. package/dist/cli/oms.js.map +1 -1
  51. package/dist/cli/semantic-args.d.ts +1 -1
  52. package/dist/cli/semantic-args.js +102 -3
  53. package/dist/cli/semantic-args.js.map +1 -1
  54. package/dist/cli/semantic-http.js +3 -3
  55. package/dist/cli/semantic-http.js.map +1 -1
  56. package/dist/cli/semantic-usage.js +1 -1
  57. package/dist/cli/semantic-usage.js.map +1 -1
  58. package/dist/cli/semantic.js +31 -12
  59. package/dist/cli/semantic.js.map +1 -1
  60. package/dist/cli/setup-command.d.ts +17 -0
  61. package/dist/cli/setup-command.js +89 -145
  62. package/dist/cli/setup-command.js.map +1 -1
  63. package/dist/cli/update-notice.d.ts +1 -1
  64. package/dist/cli/update-notice.js +2 -2
  65. package/dist/cli/update-notice.js.map +1 -1
  66. package/dist/cli/usage.d.ts +1 -1
  67. package/dist/cli/usage.js +2 -2
  68. package/dist/cli/usage.js.map +1 -1
  69. package/dist/{capture → kernel/capture}/safe.d.ts +11 -1
  70. package/dist/{capture → kernel/capture}/safe.js +3 -3
  71. package/dist/kernel/capture/safe.js.map +1 -0
  72. package/dist/kernel/contracts/index.d.ts +144 -0
  73. package/dist/kernel/contracts/index.js +401 -0
  74. package/dist/kernel/contracts/index.js.map +1 -0
  75. package/dist/kernel/conventions/frontmatter.js.map +1 -0
  76. package/dist/kernel/conventions/lint.js.map +1 -0
  77. package/dist/kernel/conventions/report.js.map +1 -0
  78. package/dist/{conventions → kernel/conventions}/validate.d.ts +1 -1
  79. package/dist/kernel/conventions/validate.js.map +1 -0
  80. package/dist/kernel/conventions/vault-walk.js.map +1 -0
  81. package/dist/{conventions → kernel/conventions}/write-contract.d.ts +1 -1
  82. package/dist/kernel/conventions/write-contract.js.map +1 -0
  83. package/dist/kernel/conventions/write-protocol.js.map +1 -0
  84. package/dist/kernel/doctor/service.d.ts +71 -0
  85. package/dist/kernel/doctor/service.js +70 -0
  86. package/dist/kernel/doctor/service.js.map +1 -0
  87. package/dist/{engine → kernel/engine}/assemble.d.ts +46 -1
  88. package/dist/kernel/engine/assemble.js +483 -0
  89. package/dist/kernel/engine/assemble.js.map +1 -0
  90. package/dist/kernel/engine/axes/store.d.ts +90 -0
  91. package/dist/kernel/engine/axes/store.js +400 -0
  92. package/dist/kernel/engine/axes/store.js.map +1 -0
  93. package/dist/{engine → kernel/engine}/conventions/vault-lint.d.ts +1 -1
  94. package/dist/{engine → kernel/engine}/conventions/vault-lint.js +1 -1
  95. package/dist/kernel/engine/conventions/vault-lint.js.map +1 -0
  96. package/dist/kernel/engine/embed/chunker.js.map +1 -0
  97. package/dist/kernel/engine/embed/deferred.js.map +1 -0
  98. package/dist/{engine → kernel/engine}/embed/hash-stub.test-helper.d.ts +1 -1
  99. package/dist/{engine → kernel/engine}/embed/hash-stub.test-helper.js +1 -1
  100. package/dist/kernel/engine/embed/hash-stub.test-helper.js.map +1 -0
  101. package/dist/kernel/engine/embed/identity.d.ts +21 -0
  102. package/dist/kernel/engine/embed/identity.js +47 -0
  103. package/dist/kernel/engine/embed/identity.js.map +1 -0
  104. package/dist/kernel/engine/embed/model.d.ts +134 -0
  105. package/dist/kernel/engine/embed/model.js +302 -0
  106. package/dist/kernel/engine/embed/model.js.map +1 -0
  107. package/dist/{engine → kernel/engine}/embed/provider.d.ts +36 -5
  108. package/dist/kernel/engine/embed/provider.js +403 -0
  109. package/dist/kernel/engine/embed/provider.js.map +1 -0
  110. package/dist/{engine → kernel/engine}/embed/store.d.ts +13 -1
  111. package/dist/kernel/engine/embed/store.js +730 -0
  112. package/dist/kernel/engine/embed/store.js.map +1 -0
  113. package/dist/kernel/engine/embed/sync.d.ts +100 -0
  114. package/dist/kernel/engine/embed/sync.js +753 -0
  115. package/dist/kernel/engine/embed/sync.js.map +1 -0
  116. package/dist/{engine → kernel/engine}/graph/builder.d.ts +9 -5
  117. package/dist/{engine → kernel/engine}/graph/builder.js +213 -79
  118. package/dist/kernel/engine/graph/builder.js.map +1 -0
  119. package/dist/kernel/engine/graph/explore.js.map +1 -0
  120. package/dist/{engine → kernel/engine}/graph/node.d.ts +49 -1
  121. package/dist/kernel/engine/graph/node.js +315 -0
  122. package/dist/kernel/engine/graph/node.js.map +1 -0
  123. package/dist/kernel/engine/graph/resolver.js.map +1 -0
  124. package/dist/kernel/engine/graph/traverse.js.map +1 -0
  125. package/dist/kernel/engine/linkify/apply.js.map +1 -0
  126. package/dist/kernel/engine/linkify/josa.js.map +1 -0
  127. package/dist/kernel/engine/linkify/mask.js.map +1 -0
  128. package/dist/kernel/engine/linkify/suggest.js.map +1 -0
  129. package/dist/kernel/engine/linkify/types.js.map +1 -0
  130. package/dist/{engine → kernel/engine}/mcp/facade.d.ts +27 -1
  131. package/dist/kernel/engine/mcp/facade.js +1144 -0
  132. package/dist/kernel/engine/mcp/facade.js.map +1 -0
  133. package/dist/kernel/engine/mcp/op-mappers.js.map +1 -0
  134. package/dist/{engine → kernel/engine}/mcp/query-mapper.d.ts +27 -2
  135. package/dist/kernel/engine/mcp/query-mapper.js +247 -0
  136. package/dist/kernel/engine/mcp/query-mapper.js.map +1 -0
  137. package/dist/{engine → kernel/engine}/mcp/types.d.ts +69 -2
  138. package/dist/kernel/engine/mcp/types.js.map +1 -0
  139. package/dist/{engine → kernel/engine}/retrieval/dispatcher.d.ts +23 -1
  140. package/dist/{engine → kernel/engine}/retrieval/dispatcher.js +92 -14
  141. package/dist/kernel/engine/retrieval/dispatcher.js.map +1 -0
  142. package/dist/{engine → kernel/engine}/retrieval/index.d.ts +4 -1
  143. package/dist/{engine → kernel/engine}/retrieval/index.js +6 -3
  144. package/dist/kernel/engine/retrieval/index.js.map +1 -0
  145. package/dist/kernel/engine/retrieval/reranker.d.ts +124 -0
  146. package/dist/kernel/engine/retrieval/reranker.js +204 -0
  147. package/dist/kernel/engine/retrieval/reranker.js.map +1 -0
  148. package/dist/{engine → kernel/engine}/retrieval/rrf.d.ts +10 -2
  149. package/dist/kernel/engine/retrieval/rrf.js +77 -0
  150. package/dist/kernel/engine/retrieval/rrf.js.map +1 -0
  151. package/dist/{engine → kernel/engine}/tracer.d.ts +13 -0
  152. package/dist/{engine → kernel/engine}/tracer.js +63 -6
  153. package/dist/kernel/engine/tracer.js.map +1 -0
  154. package/dist/{engine → kernel/engine}/types.d.ts +4 -4
  155. package/dist/kernel/engine/types.js.map +1 -0
  156. package/dist/{graph → kernel/graph}/cache.d.ts +1 -1
  157. package/dist/{graph → kernel/graph}/cache.js +165 -21
  158. package/dist/kernel/graph/cache.js.map +1 -0
  159. package/dist/kernel/graph/explore.js.map +1 -0
  160. package/dist/{harness → kernel/harness}/surface-registry.d.ts +0 -1
  161. package/dist/kernel/harness/surface-registry.js +170 -0
  162. package/dist/kernel/harness/surface-registry.js.map +1 -0
  163. package/dist/{harness → kernel/harness}/validation.js +67 -4
  164. package/dist/kernel/harness/validation.js.map +1 -0
  165. package/dist/kernel/index.d.ts +13 -0
  166. package/dist/kernel/index.js +14 -0
  167. package/dist/kernel/index.js.map +1 -0
  168. package/dist/{install → kernel/install}/adapter-source.d.ts +10 -1
  169. package/dist/kernel/install/adapter-source.js +76 -0
  170. package/dist/kernel/install/adapter-source.js.map +1 -0
  171. package/dist/kernel/install/common.js.map +1 -0
  172. package/dist/{install → kernel/install}/hosts.d.ts +3 -3
  173. package/dist/{install → kernel/install}/hosts.js +3 -22
  174. package/dist/kernel/install/hosts.js.map +1 -0
  175. package/dist/{core/ontology → kernel/install}/types.js.map +1 -1
  176. package/dist/{link → kernel/link}/convention-note.js +2 -2
  177. package/dist/kernel/link/convention-note.js.map +1 -0
  178. package/dist/kernel/link/global-config.js.map +1 -0
  179. package/dist/kernel/link/link.js.map +1 -0
  180. package/dist/kernel/link/workflow.d.ts +55 -0
  181. package/dist/kernel/link/workflow.js +107 -0
  182. package/dist/kernel/link/workflow.js.map +1 -0
  183. package/dist/kernel/measurement/no-default-contract.d.ts +17 -0
  184. package/dist/kernel/measurement/no-default-contract.js +84 -0
  185. package/dist/kernel/measurement/no-default-contract.js.map +1 -0
  186. package/dist/{ontology → kernel/ontology}/active.d.ts +1 -1
  187. package/dist/{ontology → kernel/ontology}/active.js +2 -2
  188. package/dist/kernel/ontology/active.js.map +1 -0
  189. package/dist/kernel/ontology/loader.js.map +1 -0
  190. package/dist/kernel/ontology/resolver.js.map +1 -0
  191. package/dist/{install → kernel/ontology}/types.js.map +1 -1
  192. package/dist/kernel/plugin/index.d.ts +1 -0
  193. package/dist/kernel/plugin/index.js +2 -0
  194. package/dist/kernel/plugin/index.js.map +1 -0
  195. package/dist/{core → kernel}/runtime/assets.d.ts +2 -4
  196. package/dist/{core → kernel}/runtime/assets.js +1 -3
  197. package/dist/kernel/runtime/assets.js.map +1 -0
  198. package/dist/kernel/search/morning-test-fixtures.js.map +1 -0
  199. package/dist/{retrieve → kernel/search}/morning.d.ts +0 -1
  200. package/dist/kernel/search/morning.js.map +1 -0
  201. package/dist/kernel/search/semantic-contract.js.map +1 -0
  202. package/dist/kernel/searchbackend/engine-search-backend.d.ts +28 -0
  203. package/dist/kernel/searchbackend/engine-search-backend.js +153 -0
  204. package/dist/kernel/searchbackend/engine-search-backend.js.map +1 -0
  205. package/dist/kernel/searchbackend/index.d.ts +2 -0
  206. package/dist/kernel/searchbackend/index.js +2 -0
  207. package/dist/kernel/searchbackend/index.js.map +1 -0
  208. package/dist/kernel/searchbackend/search-backend.d.ts +57 -0
  209. package/dist/kernel/searchbackend/search-backend.js +110 -0
  210. package/dist/kernel/searchbackend/search-backend.js.map +1 -0
  211. package/dist/{mcp → kernel/semantic}/semantic-engine.d.ts +3 -2
  212. package/dist/kernel/semantic/semantic-engine.js +78 -0
  213. package/dist/kernel/semantic/semantic-engine.js.map +1 -0
  214. package/dist/{mcp → kernel/semantic}/semantic-retrieve-args.d.ts +20 -3
  215. package/dist/{mcp → kernel/semantic}/semantic-retrieve-args.js +81 -15
  216. package/dist/kernel/semantic/semantic-retrieve-args.js.map +1 -0
  217. package/dist/{mcp → kernel/semantic}/semantic-retrieve-schema.d.ts +0 -24
  218. package/dist/{mcp → kernel/semantic}/semantic-retrieve-schema.js +0 -8
  219. package/dist/kernel/semantic/semantic-retrieve-schema.js.map +1 -0
  220. package/dist/{mcp → kernel/semantic}/semantic-retrieve.js +5 -9
  221. package/dist/kernel/semantic/semantic-retrieve.js.map +1 -0
  222. package/dist/kernel/semantic/semantic-schemas.js.map +1 -0
  223. package/dist/{mcp → kernel/semantic}/semantic-tool-schemas.js +0 -28
  224. package/dist/kernel/semantic/semantic-tool-schemas.js.map +1 -0
  225. package/dist/{setup → kernel/setup}/axis.d.ts +1 -1
  226. package/dist/{setup → kernel/setup}/axis.js +1 -1
  227. package/dist/kernel/setup/axis.js.map +1 -0
  228. package/dist/{cli/setup-documents.d.ts → kernel/setup/documents.d.ts} +1 -1
  229. package/dist/{cli/setup-documents.js → kernel/setup/documents.js} +15 -49
  230. package/dist/kernel/setup/documents.js.map +1 -0
  231. package/dist/kernel/setup/service.d.ts +44 -0
  232. package/dist/kernel/setup/service.js +97 -0
  233. package/dist/kernel/setup/service.js.map +1 -0
  234. package/dist/{update → kernel/update}/update.d.ts +7 -0
  235. package/dist/{update → kernel/update}/update.js +106 -8
  236. package/dist/kernel/update/update.js.map +1 -0
  237. package/dist/mcp/engine-morning-backend.d.ts +4 -4
  238. package/dist/mcp/engine-morning-backend.js +4 -18
  239. package/dist/mcp/engine-morning-backend.js.map +1 -1
  240. package/dist/mcp/link-tools.d.ts +9 -56
  241. package/dist/mcp/link-tools.js +5 -129
  242. package/dist/mcp/link-tools.js.map +1 -1
  243. package/dist/mcp/server.d.ts +9 -2
  244. package/dist/mcp/server.js +373 -324
  245. package/dist/mcp/server.js.map +1 -1
  246. package/dist/mcp/update-notice.d.ts +1 -1
  247. package/dist/mcp/update-notice.js +1 -1
  248. package/dist/mcp/update-notice.js.map +1 -1
  249. package/dist/{install → vendors/claude}/claude-hooks.d.ts +1 -1
  250. package/dist/{install → vendors/claude}/claude-hooks.js +1 -1
  251. package/dist/vendors/claude/claude-hooks.js.map +1 -0
  252. package/dist/{install → vendors/claude}/claude-marketplace.d.ts +3 -3
  253. package/dist/{install → vendors/claude}/claude-marketplace.js +6 -9
  254. package/dist/vendors/claude/claude-marketplace.js.map +1 -0
  255. package/dist/{install → vendors/claude}/claude.d.ts +2 -2
  256. package/dist/{install → vendors/claude}/claude.js +2 -2
  257. package/dist/vendors/claude/claude.js.map +1 -0
  258. package/dist/{hook → vendors/claude/hook}/post-tool-use.js +5 -5
  259. package/dist/vendors/claude/hook/post-tool-use.js.map +1 -0
  260. package/dist/vendors/claude/hook/pre-tool-use.js.map +1 -0
  261. package/dist/vendors/claude/hook/stdin.js.map +1 -0
  262. package/dist/vendors/codex/codex.d.ts +10 -0
  263. package/dist/{install → vendors/codex}/codex.js +19 -37
  264. package/dist/vendors/codex/codex.js.map +1 -0
  265. package/dist/{install → vendors/hermes}/hermes.d.ts +2 -2
  266. package/dist/{install → vendors/hermes}/hermes.js +15 -7
  267. package/dist/vendors/hermes/hermes.js.map +1 -0
  268. package/docs/adapters.md +15 -0
  269. package/docs/install.md +10 -11
  270. package/package.json +23 -10
  271. package/adapters/README.md +0 -99
  272. package/adapters/claude-code/skills/compile/SKILL.md +0 -27
  273. package/adapters/claude-code/skills/define/SKILL.md +0 -51
  274. package/adapters/claude-code/skills/distill/SKILL.md +0 -28
  275. package/adapters/claude-code/skills/doctor/SKILL.md +0 -58
  276. package/adapters/claude-code/skills/link/SKILL.md +0 -87
  277. package/adapters/claude-code/skills/retrieve/SKILL.md +0 -99
  278. package/adapters/claude-code/skills/setup/SKILL.md +0 -78
  279. package/adapters/claude-code/skills/uninstall/SKILL.md +0 -34
  280. package/adapters/claude-code/skills/update/SKILL.md +0 -45
  281. package/adapters/claude-code/skills/vault-decision-record/SKILL.md +0 -52
  282. package/adapters/claude-code/skills/vault-lint/SKILL.md +0 -47
  283. package/adapters/claude-code/skills/vault-scaffold/SKILL.md +0 -47
  284. package/adapters/claude-code/skills/wiki/SKILL.md +0 -82
  285. package/adapters/claude-code/skills/write/SKILL.md +0 -16
  286. package/adapters/codex/skills/oms-compile/SKILL.md +0 -16
  287. package/adapters/codex/skills/oms-distill/SKILL.md +0 -14
  288. package/adapters/codex/skills/oms-doctor/SKILL.md +0 -14
  289. package/adapters/codex/skills/oms-install/SKILL.md +0 -19
  290. package/adapters/codex/skills/oms-link/SKILL.md +0 -35
  291. package/adapters/codex/skills/oms-retrieve/SKILL.md +0 -32
  292. package/adapters/codex/skills/oms-setup/SKILL.md +0 -34
  293. package/adapters/codex/skills/oms-uninstall/SKILL.md +0 -20
  294. package/adapters/codex/skills/oms-update/SKILL.md +0 -22
  295. package/adapters/codex/skills/oms-vault-lint/SKILL.md +0 -19
  296. package/adapters/codex/skills/oms-wiki/SKILL.md +0 -39
  297. package/adapters/codex/skills/oms-write/SKILL.md +0 -10
  298. package/adapters/hermes/skills/compile/SKILL.md +0 -13
  299. package/adapters/hermes/skills/distill/SKILL.md +0 -10
  300. package/adapters/hermes/skills/doctor/SKILL.md +0 -14
  301. package/adapters/hermes/skills/install/SKILL.md +0 -19
  302. package/adapters/hermes/skills/link/SKILL.md +0 -18
  303. package/adapters/hermes/skills/retrieve/SKILL.md +0 -32
  304. package/adapters/hermes/skills/setup/SKILL.md +0 -37
  305. package/adapters/hermes/skills/uninstall/SKILL.md +0 -20
  306. package/adapters/hermes/skills/update/SKILL.md +0 -22
  307. package/adapters/hermes/skills/wiki/SKILL.md +0 -14
  308. package/adapters/hermes/skills/write/SKILL.md +0 -10
  309. package/core/agents/librarian.md +0 -44
  310. package/core/agents/retriever.md +0 -62
  311. package/core/skills/compile/CHANGELOG.md +0 -24
  312. package/core/skills/compile/SKILL.md +0 -57
  313. package/core/skills/define/SKILL.md +0 -59
  314. package/core/skills/distill/CHANGELOG.md +0 -39
  315. package/core/skills/distill/SKILL.md +0 -62
  316. package/core/skills/doctor/SKILL.md +0 -49
  317. package/core/skills/link/SKILL.md +0 -130
  318. package/core/skills/retrieve/SKILL.md +0 -78
  319. package/core/skills/setup/CHANGELOG.md +0 -49
  320. package/core/skills/setup/SKILL.md +0 -246
  321. package/core/skills/uninstall/SKILL.md +0 -34
  322. package/core/skills/vault-decision-record/CHANGELOG.md +0 -24
  323. package/core/skills/vault-decision-record/SKILL.md +0 -93
  324. package/core/skills/vault-lint/CHANGELOG.md +0 -35
  325. package/core/skills/vault-lint/SKILL.md +0 -58
  326. package/core/skills/vault-scaffold/CHANGELOG.md +0 -21
  327. package/core/skills/vault-scaffold/SKILL.md +0 -72
  328. package/core/skills/wiki/CHANGELOG.md +0 -23
  329. package/core/skills/wiki/SKILL.md +0 -159
  330. package/core/skills/write/SKILL.md +0 -15
  331. package/dist/capture/safe.js.map +0 -1
  332. package/dist/cli/setup-documents.js.map +0 -1
  333. package/dist/conventions/frontmatter.js.map +0 -1
  334. package/dist/conventions/lint.js.map +0 -1
  335. package/dist/conventions/report.js.map +0 -1
  336. package/dist/conventions/validate.js.map +0 -1
  337. package/dist/conventions/vault-walk.js.map +0 -1
  338. package/dist/conventions/write-contract.js.map +0 -1
  339. package/dist/conventions/write-protocol.js.map +0 -1
  340. package/dist/core/ontology/loader.js.map +0 -1
  341. package/dist/core/ontology/resolver.js.map +0 -1
  342. package/dist/core/runtime/assets.js.map +0 -1
  343. package/dist/engine/assemble.js +0 -162
  344. package/dist/engine/assemble.js.map +0 -1
  345. package/dist/engine/conventions/vault-lint.js.map +0 -1
  346. package/dist/engine/embed/chunker.js.map +0 -1
  347. package/dist/engine/embed/deferred.js.map +0 -1
  348. package/dist/engine/embed/hash-stub.test-helper.js.map +0 -1
  349. package/dist/engine/embed/identity.d.ts +0 -11
  350. package/dist/engine/embed/identity.js +0 -15
  351. package/dist/engine/embed/identity.js.map +0 -1
  352. package/dist/engine/embed/provider.js +0 -266
  353. package/dist/engine/embed/provider.js.map +0 -1
  354. package/dist/engine/embed/store.js +0 -416
  355. package/dist/engine/embed/store.js.map +0 -1
  356. package/dist/engine/embed/sync.d.ts +0 -45
  357. package/dist/engine/embed/sync.js +0 -321
  358. package/dist/engine/embed/sync.js.map +0 -1
  359. package/dist/engine/graph/builder.js.map +0 -1
  360. package/dist/engine/graph/explore.js.map +0 -1
  361. package/dist/engine/graph/node.js +0 -110
  362. package/dist/engine/graph/node.js.map +0 -1
  363. package/dist/engine/graph/resolver.js.map +0 -1
  364. package/dist/engine/graph/traverse.js.map +0 -1
  365. package/dist/engine/linkify/apply.js.map +0 -1
  366. package/dist/engine/linkify/josa.js.map +0 -1
  367. package/dist/engine/linkify/mask.js.map +0 -1
  368. package/dist/engine/linkify/suggest.js.map +0 -1
  369. package/dist/engine/linkify/types.js.map +0 -1
  370. package/dist/engine/mcp/facade.js +0 -628
  371. package/dist/engine/mcp/facade.js.map +0 -1
  372. package/dist/engine/mcp/op-mappers.js.map +0 -1
  373. package/dist/engine/mcp/query-mapper.js +0 -102
  374. package/dist/engine/mcp/query-mapper.js.map +0 -1
  375. package/dist/engine/mcp/types.js.map +0 -1
  376. package/dist/engine/retrieval/dispatcher.js.map +0 -1
  377. package/dist/engine/retrieval/index.js.map +0 -1
  378. package/dist/engine/retrieval/reranker.d.ts +0 -46
  379. package/dist/engine/retrieval/reranker.js +0 -29
  380. package/dist/engine/retrieval/reranker.js.map +0 -1
  381. package/dist/engine/retrieval/rrf.js +0 -54
  382. package/dist/engine/retrieval/rrf.js.map +0 -1
  383. package/dist/engine/tracer.js.map +0 -1
  384. package/dist/engine/types.js.map +0 -1
  385. package/dist/graph/cache.js.map +0 -1
  386. package/dist/graph/explore.js.map +0 -1
  387. package/dist/harness/surface-registry.js +0 -397
  388. package/dist/harness/surface-registry.js.map +0 -1
  389. package/dist/harness/validation.js.map +0 -1
  390. package/dist/hook/post-tool-use.js.map +0 -1
  391. package/dist/hook/pre-tool-use.js.map +0 -1
  392. package/dist/hook/stdin.js.map +0 -1
  393. package/dist/index.d.ts +0 -12
  394. package/dist/index.js +0 -13
  395. package/dist/index.js.map +0 -1
  396. package/dist/install/adapter-source.js +0 -45
  397. package/dist/install/adapter-source.js.map +0 -1
  398. package/dist/install/claude-hooks.js.map +0 -1
  399. package/dist/install/claude-marketplace.js.map +0 -1
  400. package/dist/install/claude.js.map +0 -1
  401. package/dist/install/codex.d.ts +0 -24
  402. package/dist/install/codex.js.map +0 -1
  403. package/dist/install/common.js.map +0 -1
  404. package/dist/install/hermes.js.map +0 -1
  405. package/dist/install/hosts.js.map +0 -1
  406. package/dist/link/convention-note.js.map +0 -1
  407. package/dist/link/global-config.js.map +0 -1
  408. package/dist/link/link.js.map +0 -1
  409. package/dist/mcp/semantic-engine.js +0 -52
  410. package/dist/mcp/semantic-engine.js.map +0 -1
  411. package/dist/mcp/semantic-retrieve-args.js.map +0 -1
  412. package/dist/mcp/semantic-retrieve-schema.js.map +0 -1
  413. package/dist/mcp/semantic-retrieve.js.map +0 -1
  414. package/dist/mcp/semantic-schemas.js.map +0 -1
  415. package/dist/mcp/semantic-tool-schemas.js.map +0 -1
  416. package/dist/ontology/active.js.map +0 -1
  417. package/dist/retrieve/morning-test-fixtures.js.map +0 -1
  418. package/dist/retrieve/morning.js.map +0 -1
  419. package/dist/retrieve/semantic-contract.js.map +0 -1
  420. package/dist/setup/axis.js.map +0 -1
  421. package/dist/update/update.js.map +0 -1
  422. package/docs/release.md +0 -188
  423. /package/{adapters/codex/.mcp.json → .mcp.codex.json} +0 -0
  424. /package/{adapters/claude-code/.mcp.json → .mcp.json} +0 -0
  425. /package/{adapters/claude-code → assets/claude}/hooks/oms-guard.mjs +0 -0
  426. /package/{adapters/claude-code → assets/claude}/hooks/oms-post-guard.mjs +0 -0
  427. /package/dist/{conventions → kernel/conventions}/frontmatter.d.ts +0 -0
  428. /package/dist/{conventions → kernel/conventions}/frontmatter.js +0 -0
  429. /package/dist/{conventions → kernel/conventions}/lint.d.ts +0 -0
  430. /package/dist/{conventions → kernel/conventions}/lint.js +0 -0
  431. /package/dist/{conventions → kernel/conventions}/report.d.ts +0 -0
  432. /package/dist/{conventions → kernel/conventions}/report.js +0 -0
  433. /package/dist/{conventions → kernel/conventions}/validate.js +0 -0
  434. /package/dist/{conventions → kernel/conventions}/vault-walk.d.ts +0 -0
  435. /package/dist/{conventions → kernel/conventions}/vault-walk.js +0 -0
  436. /package/dist/{conventions → kernel/conventions}/write-contract.js +0 -0
  437. /package/dist/{conventions → kernel/conventions}/write-protocol.d.ts +0 -0
  438. /package/dist/{conventions → kernel/conventions}/write-protocol.js +0 -0
  439. /package/dist/{engine → kernel/engine}/embed/chunker.d.ts +0 -0
  440. /package/dist/{engine → kernel/engine}/embed/chunker.js +0 -0
  441. /package/dist/{engine → kernel/engine}/embed/deferred.d.ts +0 -0
  442. /package/dist/{engine → kernel/engine}/embed/deferred.js +0 -0
  443. /package/dist/{engine → kernel/engine}/graph/explore.d.ts +0 -0
  444. /package/dist/{engine → kernel/engine}/graph/explore.js +0 -0
  445. /package/dist/{engine → kernel/engine}/graph/resolver.d.ts +0 -0
  446. /package/dist/{engine → kernel/engine}/graph/resolver.js +0 -0
  447. /package/dist/{engine → kernel/engine}/graph/traverse.d.ts +0 -0
  448. /package/dist/{engine → kernel/engine}/graph/traverse.js +0 -0
  449. /package/dist/{engine → kernel/engine}/linkify/apply.d.ts +0 -0
  450. /package/dist/{engine → kernel/engine}/linkify/apply.js +0 -0
  451. /package/dist/{engine → kernel/engine}/linkify/josa.d.ts +0 -0
  452. /package/dist/{engine → kernel/engine}/linkify/josa.js +0 -0
  453. /package/dist/{engine → kernel/engine}/linkify/mask.d.ts +0 -0
  454. /package/dist/{engine → kernel/engine}/linkify/mask.js +0 -0
  455. /package/dist/{engine → kernel/engine}/linkify/suggest.d.ts +0 -0
  456. /package/dist/{engine → kernel/engine}/linkify/suggest.js +0 -0
  457. /package/dist/{engine → kernel/engine}/linkify/types.d.ts +0 -0
  458. /package/dist/{engine → kernel/engine}/linkify/types.js +0 -0
  459. /package/dist/{engine → kernel/engine}/mcp/op-mappers.d.ts +0 -0
  460. /package/dist/{engine → kernel/engine}/mcp/op-mappers.js +0 -0
  461. /package/dist/{engine → kernel/engine}/mcp/types.js +0 -0
  462. /package/dist/{engine → kernel/engine}/types.js +0 -0
  463. /package/dist/{graph → kernel/graph}/explore.d.ts +0 -0
  464. /package/dist/{graph → kernel/graph}/explore.js +0 -0
  465. /package/dist/{harness → kernel/harness}/validation.d.ts +0 -0
  466. /package/dist/{install → kernel/install}/common.d.ts +0 -0
  467. /package/dist/{install → kernel/install}/common.js +0 -0
  468. /package/dist/{install → kernel/install}/types.d.ts +0 -0
  469. /package/dist/{core/ontology → kernel/install}/types.js +0 -0
  470. /package/dist/{link → kernel/link}/convention-note.d.ts +0 -0
  471. /package/dist/{link → kernel/link}/global-config.d.ts +0 -0
  472. /package/dist/{link → kernel/link}/global-config.js +0 -0
  473. /package/dist/{link → kernel/link}/link.d.ts +0 -0
  474. /package/dist/{link → kernel/link}/link.js +0 -0
  475. /package/dist/{core → kernel}/ontology/loader.d.ts +0 -0
  476. /package/dist/{core → kernel}/ontology/loader.js +0 -0
  477. /package/dist/{core → kernel}/ontology/resolver.d.ts +0 -0
  478. /package/dist/{core → kernel}/ontology/resolver.js +0 -0
  479. /package/dist/{core → kernel}/ontology/types.d.ts +0 -0
  480. /package/dist/{install → kernel/ontology}/types.js +0 -0
  481. /package/dist/{retrieve → kernel/search}/morning-test-fixtures.d.ts +0 -0
  482. /package/dist/{retrieve → kernel/search}/morning-test-fixtures.js +0 -0
  483. /package/dist/{retrieve → kernel/search}/morning.js +0 -0
  484. /package/dist/{retrieve → kernel/search}/semantic-contract.d.ts +0 -0
  485. /package/dist/{retrieve → kernel/search}/semantic-contract.js +0 -0
  486. /package/dist/{mcp → kernel/semantic}/semantic-retrieve.d.ts +0 -0
  487. /package/dist/{mcp → kernel/semantic}/semantic-schemas.d.ts +0 -0
  488. /package/dist/{mcp → kernel/semantic}/semantic-schemas.js +0 -0
  489. /package/dist/{mcp → kernel/semantic}/semantic-tool-schemas.d.ts +0 -0
  490. /package/dist/{hook → vendors/claude/hook}/post-tool-use.d.ts +0 -0
  491. /package/dist/{hook → vendors/claude/hook}/pre-tool-use.d.ts +0 -0
  492. /package/dist/{hook → vendors/claude/hook}/pre-tool-use.js +0 -0
  493. /package/dist/{hook → vendors/claude/hook}/stdin.d.ts +0 -0
  494. /package/dist/{hook → vendors/claude/hook}/stdin.js +0 -0
@@ -1,49 +0,0 @@
1
- ---
2
- name: doctor
3
- description: Validate vault notes against the Oh My Second Brain convention and report violations (REAL today).
4
- ---
5
-
6
- # Skill: doctor
7
-
8
- Check every note in your vault against its declared concept schema.
9
- This skill is **REAL in v0** — the CLI command is fully implemented.
10
-
11
- ## Shell-out
12
-
13
- ```bash
14
- oms doctor [--vault <path>]
15
- ```
16
-
17
- - `--vault <path>` — path to your Obsidian vault root (default: current directory).
18
- - Always **exits 0** in v0 (non-blocking; `onViolation: warn`).
19
-
20
- ## What the command does
21
-
22
- 1. Loads `vault/.oms/` and `vault/.oms/taxonomy.yaml`.
23
- 2. Walks every `.md` note in the vault.
24
- 3. For each note, resolves its **concept** from the taxonomy folder binding.
25
- 4. Calls `validateFrontmatter(frontmatter, concept)` and collects `Violation[]`.
26
- 5. Prints a per-note summary of violations (field, rule, message).
27
- 6. Prints total counts: notes checked, violations found.
28
- 7. Exits 0 regardless of violation count (v0 is advisory only).
29
-
30
- ## Violation rules
31
-
32
- | Rule | Description |
33
- |------|-------------|
34
- | `required` | A field declared `required: true` is missing from the note's frontmatter |
35
- | `type` | The field value does not match the declared type |
36
- | `immutable` | Field changed after initial set — **suppressed in v0** (no baseline available) |
37
-
38
- Undeclared frontmatter fields are **never** reported as violations
39
- (`additionalProperties: preserve`).
40
-
41
- ## Recommended usage
42
-
43
- Run `oms doctor` after:
44
- - Any `oms setup` run
45
- - Adding a new field via `oms define`
46
- - Bulk-editing notes
47
-
48
- Integrate into CI by adding `npx oms doctor --vault ./vault` to your workflow.
49
- It will never fail the build in v0.
@@ -1,130 +0,0 @@
1
- ---
2
- name: link
3
- version: 0.1.0
4
- 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 notes that already exist, via oms linkify or oms_link_apply.
5
- trigger: /link
6
- tags: [link, wikilink, linkify, term, backlink, second-brain, oms]
7
- ---
8
-
9
- ## link
10
-
11
- Keep the vault interlinked. There is no autolink daemon — follow this recipe as
12
- the agent. Requires `OMS_VAULT` (or a resolved vault target).
13
-
14
- ## Which path?
15
-
16
- Determine which path applies **before acting**:
17
-
18
- | | Path A — pre-write | Path B — retrofit |
19
- |---|---|---|
20
- | **When to use** | You are about to write or rewrite a note | The note already exists on disk |
21
- | **Entry point** | MCP `oms_link_suggest` on a sibling note, then MCP `write` | `oms linkify` (report) → `oms linkify --apply --yes`, or MCP `oms_link_suggest` → `oms_link_apply` |
22
- | **Writes to** | The new note only | Existing notes in scope |
23
- | **Prerequisite** | Term notes exist to link at | Term notes exist to link at |
24
-
25
- These paths are **mutually exclusive and never combined in a single invocation.**
26
-
27
- ---
28
-
29
- ## The link universe — term notes only
30
-
31
- A link target is a note bound to the `term` concept in `vault/.oms/taxonomy.yaml`.
32
- Notes bound to any other concept are never proposed as targets, in either path.
33
- Surface forms of a target are its **basename** and its frontmatter **`aliases`**.
34
-
35
- If a run reports `0 term note(s) available as link targets`, the vault has no
36
- term layer yet — build one with the `wiki` skill (Path B) first. Linking is not
37
- the tool that creates vocabulary; it is the tool that connects it.
38
-
39
- ## Three rules the engine enforces — do not fight them
40
-
41
- 1. **Surface-anchored.** A candidate exists only because the term's basename or
42
- alias literally appears in the note. Retrieval never invents a link. Do not
43
- hand-add a `[[link]]` to a note whose title does not appear in the text —
44
- write the sentence that mentions it instead.
45
- 2. **First occurrence only.** One link per target note per body. A term linked
46
- ten times is noise, not navigation.
47
- 3. **Ambiguity is reported, never auto-resolved.** When 2+ notes claim one span,
48
- the candidate carries `ambiguous: true` and every `rivalPaths` entry. Ask the
49
- user which note is meant, or skip the span. Never guess.
50
-
51
- Protected regions are masked out before matching: frontmatter, fenced and inline
52
- code, existing wikilinks and markdown links, image embeds, HTML, headings, URLs,
53
- block ids, and tags. A "missing" link inside any of those is correct behavior.
54
-
55
- ---
56
-
57
- ## Path A — pre-write linking
58
-
59
- *(Use while drafting. The goal is that the body arrives on disk already linked,
60
- so no retrofit pass is ever needed for this note.)*
61
-
62
- ### Agent-guided steps
63
-
64
- 1. Establish the vocabulary **before** drafting: call MCP `oms_link_suggest` on
65
- an existing note in the same folder (or run `oms linkify --folder <folder>`
66
- in report mode) and read the `targetPath` list. That list IS the vault's
67
- current term vocabulary.
68
- 2. Draft the body using those exact surface forms, and write `[[wikilinks]]`
69
- inline as you compose — first mention of each term only.
70
- 3. Commit through MCP `write`. Host `Write`/`Edit` never touches vault `.md`.
71
- 4. Re-check with `oms_link_suggest` on the committed note. Zero candidates means
72
- the draft was already fully linked; remaining candidates are terms you missed.
73
-
74
- ### Example agent steps (Path A)
75
-
76
- ```
77
- User: "Write a note about our retrieval pipeline."
78
-
79
- 1. oms_link_suggest { notePath: "notes/software-engineering/indexing.md" }
80
- → targets: notes/terms/embedding.md, notes/terms/reranker.md, notes/terms/chunk.md
81
- 2. Draft body mentioning embedding / reranker / chunk, each first mention
82
- written as [[embedding]], [[reranker]], [[chunk]]
83
- 3. write { mode: "create", notePath: "notes/software-engineering/retrieval-pipeline.md", ... }
84
- 4. oms_link_suggest on the new note → 0 candidates ✓
85
- ```
86
-
87
- ---
88
-
89
- ## Path B — retrofit existing notes
90
-
91
- *(Use when the note is already on disk. Report first, always.)*
92
-
93
- ### Batch — `oms linkify` (whole vault or one folder)
94
-
95
- ```bash
96
- oms linkify --folder notes # report only, writes nothing
97
- oms linkify --folder notes --apply --yes # rewrite in place
98
- ```
99
-
100
- `--apply` without `--yes` refuses before reading a single note and writes
101
- nothing. Show the user the report and get agreement before adding `--yes`.
102
- Every write still goes through the capture kernel, so path safety and the
103
- concept contract hold exactly as they do for MCP `write`.
104
-
105
- ### Single note — `oms_link_suggest` → `oms_link_apply`
106
-
107
- Use when the user wants to accept some candidates and reject others:
108
-
109
- 1. `oms_link_suggest { notePath, folder? }` → candidates + `baseContentHash`.
110
- 2. Present the candidates; drop ambiguous ones the user does not resolve.
111
- 3. `oms_link_apply { notePath, baseContentHash, candidateIds, folder? }` —
112
- pass back the **same** `baseContentHash` and the **same** `folder` scope.
113
-
114
- `oms_link_apply` refuses without writing when the note changed since the
115
- suggest call (`note-changed`), when a candidate's text moved (`candidate-drift`),
116
- or when accepted candidates overlap. A refusal is a correct outcome: re-run
117
- `oms_link_suggest` for fresh offsets rather than retrying the stale ids.
118
-
119
- ### Example agent steps (Path B)
120
-
121
- ```
122
- User: "Link up the notes I wrote last week."
123
-
124
- 1. oms linkify --folder notes ← report only
125
- → 14 candidate(s) across 9 note(s); 2 marked ambiguous
126
- 2. Show the report; ask which note the 2 ambiguous spans mean
127
- 3. Accepted whole folder → oms linkify --folder notes --apply --yes
128
- Accepted per-note → oms_link_suggest → oms_link_apply with the chosen ids
129
- 4. Run `oms doctor` (non-blocking, exits 0)
130
- ```
@@ -1,78 +0,0 @@
1
- ---
2
- name: retrieve
3
- description: Retrieve knowledge from the vault through declared Oh My Second Brain lenses (인출).
4
- ---
5
-
6
- # Skill: retrieve
7
-
8
- Surface the right notes and fields for a given purpose using the vault's
9
- declared retrieval lenses.
10
-
11
- ## What this skill does
12
-
13
- 1. Identify the **retrieval purpose** from the user's request (e.g. "synthesize this topic", "audit my sources").
14
- 2. Match the purpose to a declared **lens** (e.g. `synthesis`, `audit`) on the relevant concept.
15
- 3. For each matching note, return only the fields listed in that lens — not all frontmatter.
16
- 4. Present results grouped by concept/folder with lens-filtered frontmatter.
17
-
18
- ## Lenses (인출 뷰)
19
-
20
- A lens is a pre-declared named retrieval view, not a query filter.
21
- Each concept declares which fields matter for which purpose:
22
-
23
- ```yaml
24
- lenses:
25
- - name: synthesis
26
- intent: "Surface what was argued and where to find it"
27
- fields: [title, thesis, source-url]
28
- - name: audit
29
- intent: "Check provenance and capture date"
30
- fields: [title, source-url, captured-at]
31
- ```
32
-
33
- The retrieval skill reads these declarations from `vault/.oms/concepts/*.yaml`.
34
-
35
- ## Engine
36
-
37
- Use MCP `oms_retrieve_context` first for natural-language retrieval. It combines:
38
-
39
- - live folder/frontmatter/wikilink graph exploration without requiring a warm cache
40
- - taxonomy-axis seeds from concept, folder, property, value, or wikilink inputs
41
- - graph neighbors through shared frontmatter values, wikilinks, and backlinks
42
- - optional OMS native semantic lexical, SQLite-vector, and HYDE candidates when the semantic index is available
43
-
44
- Use `semanticScope: "global"` for broad semantic search across the vault. Use
45
- `semanticScope: "graph"` when semantic candidates must stay inside the selected
46
- OMS graph candidates. The semantic provider is fail-soft: retrieval must still
47
- return OMS graph hits when the native semantic index is unavailable or disabled.
48
-
49
- For semantic retrieval, keep semantic-index and search controls on the OMS retrieve surface:
50
-
51
- - pass `semanticMode: "query" | "search" | "vsearch"` to choose hybrid, lexical, or vector search
52
- - pass `semanticIntent`, `semanticLex`, `semanticVec`, `semanticHyde`, or `semanticSearches` for typed query documents
53
- - pass `semanticMinScore`, `semanticAll`, `semanticFull`, `semanticLineNumbers`, or `semanticFullPath` when the retrieval task needs search flags
54
- - pass `embeddingSyncBeforeSearch: true` when the native semantic index must be fresh before retrieval
55
- - use `oms_sync_embeddings` for an explicit semantic-index sync without doing a retrieval query
56
- - use `oms_semantic_query`, `oms_semantic_status`, `oms_semantic_collections`, and `oms_semantic_contexts` for qmd-compatible semantic follow-ups on the native OMS index
57
- - use read-only `oms_get_document` or `oms_multi_get_documents` to rehydrate selected docids, paths, globs, or line ranges
58
-
59
- Use the older MCP tools only for narrower follow-up steps:
60
-
61
- - **`oms_retrieve_by_axis`** — legacy cache-backed axis retrieval by concept, folder, property, value, or wikilink.
62
- - **`oms_lazy_load_note`** — fetches the full body of a single selected note on demand, avoiding loading all note bodies upfront.
63
-
64
- ## Example agent steps
65
-
66
- ```
67
- User: "Synthesize my literature notes on transformers"
68
-
69
- 1. purpose = synthesis
70
- 2. concept = literature → lens = synthesis → fields = [title, thesis, source-url]
71
- 3. scan = vault/references/*.md
72
- 4. for each note: extract only those three frontmatter fields
73
- 5. return a grouped summary with citations
74
- ```
75
-
76
- ## Persona
77
-
78
- Use the **retriever** agent persona for this skill (`core/agents/retriever.md`).
@@ -1,49 +0,0 @@
1
- # setup — CHANGELOG
2
-
3
- ## 0.2.0 — 2026-06-13
4
-
5
- Rewrote skill to embed the Socratic setup interview methodology (M5 step 2).
6
-
7
- ### What changed
8
-
9
- - Added 5-key frontmatter (name, version, description, trigger, tags) per compile skill convention.
10
- - Embedded Socratic clarity loop with configurable ambiguity threshold (default 0.20),
11
- dimension scoring across Goal / Constraint / Criteria / Context, a Round-0 topology gate,
12
- and three challenge modes: Contrarian, Simplifier, Ontologist.
13
- - Defined exactly 6 binding dimensions: tier folder mapping, provenance grade mapping,
14
- lint schema SSOT, embedder selection, ignore_for_external_apis glob, agent-writable zone
15
- + write routing law.
16
- - Added Non-Sticky Guard (HARD): output written ONLY to `vault/.oms/taxonomy.yaml`.
17
- Engine default `core/ontology/taxonomy.yaml` is never modified.
18
- - Added output shape YAML spec and executable helper reference.
19
- - Created `src/engine/setup/` with pure stateless helpers + co-located vitest tests.
20
-
21
- ### Attribution
22
-
23
- - **omc deep-interview methodology** (self-reimplemented — method only, no code copied):
24
- Socratic clarity loop structure, ambiguity scoring formula (1 − mean of sub-dimension scores),
25
- Round-0 topology gate pattern, and Contrarian / Simplifier / Ontologist challenge modes
26
- are reimplemented from the omc deep-interview skill methodology.
27
- No source code was copied. The implementation is original TypeScript.
28
-
29
- ### Files created or modified
30
-
31
- - `core/skills/setup/SKILL.md` — rewritten (this milestone)
32
- - `core/skills/setup/CHANGELOG.md` — created
33
- - `core/skills/setup/ACKNOWLEDGMENTS.partial.md` — created
34
- - `src/engine/setup/types.ts` — local types (DimensionScore, InterviewConfig, TaxonomyOutput)
35
- - `src/engine/setup/ambiguity.ts` — ambiguity scoring (computeAmbiguity, meetsThreshold, validateScores)
36
- - `src/engine/setup/writer.ts` — Non-Sticky Guard writer (writeTaxonomyToVaultOverride)
37
- - `src/engine/setup/ambiguity.test.ts` — vitest suite for ambiguity functions
38
- - `src/engine/setup/writer.test.ts` — vitest suite for Non-Sticky Guard enforcement
39
-
40
- ---
41
-
42
- ## 0.1.0 — 2026-06-01
43
-
44
- Initial release (M0 setup CLI, `oms setup`).
45
-
46
- - Scanned existing top-level vault folders.
47
- - Asked intent and concept binding per folder.
48
- - Wrote `vault/.oms/taxonomy.yaml` with `version: 0`.
49
- - Copied shipped default concepts into `vault/.oms/concepts/`.
@@ -1,246 +0,0 @@
1
- ---
2
- name: setup
3
- version: 0.2.0
4
- description: Socratic setup interview — guides the vault owner through exactly 6 binding dimensions (tier-folder mapping, provenance grades, lint-schema SSOT, embedder, ignore glob, agent-writable zone) and writes the result ONLY to vault/.oms/taxonomy.yaml.
5
- trigger: /setup
6
- tags: [setup, interview, socratic, taxonomy, config, oms]
7
- ---
8
-
9
- # Skill: setup
10
-
11
- Adopt an existing Obsidian vault into the Oh My Second Brain convention via a self-contained
12
- Socratic interview. This skill is the engine's OWN config/setup interview — it does NOT import
13
- or depend on the omc deep-interview skill. It self-reimplements the methodology; see CHANGELOG.md
14
- for attribution.
15
-
16
- **Non-Sticky Guard (HARD):** Interview output is written ONLY to
17
- `vault/.oms/taxonomy.yaml`. The engine default `core/ontology/taxonomy.yaml` is NEVER modified.
18
-
19
- ## Methodology
20
-
21
- This skill embeds a Socratic clarity loop self-reimplemented from the omc deep-interview
22
- methodology (method only — no code copied; see CHANGELOG.md and ACKNOWLEDGMENTS.partial.md).
23
-
24
- ### Ambiguity scoring
25
-
26
- Each response is scored across four sub-dimensions:
27
-
28
- | Sub-dimension | Question |
29
- |---------------|----------|
30
- | Goal | Does this dimension have a clear, testable outcome? |
31
- | Constraint | Are hard limits (paths, protocols, formats) explicit? |
32
- | Criteria | Can we verify completeness or correctness? |
33
- | Context | Is vault-specific context captured (not generic defaults)? |
34
-
35
- Score each sub-dimension 0–1 (1 = fully resolved).
36
-
37
- ```
38
- ambiguity = 1 − mean(goal, constraint, criteria, context)
39
- ```
40
-
41
- Loop continues while `ambiguity > threshold`. Default threshold: **0.20**.
42
-
43
- Threshold is configurable: set `OMS_AMBIGUITY_THRESHOLD=<float>` or pass
44
- `--ambiguity-threshold <float>` at the CLI.
45
-
46
- ### Round-0 topology gate
47
-
48
- Run Round 0 before any dimension interview:
49
-
50
- 1. List all top-level folders in the vault.
51
- 2. Ask the owner to describe the vault's purpose in one sentence.
52
- 3. Provisionally map folders to three canonical tiers: `raw`, `processed`, `wiki`.
53
- 4. Gate check: if all three tiers cannot be provisionally assigned, stay in Round 0.
54
- Do not advance to D1–D6 until the topology is clear.
55
-
56
- Round 0 has no round limit — it is a prerequisite, not a binding dimension.
57
-
58
- ### Challenge modes
59
-
60
- After each dimension reaches `ambiguity ≤ threshold`, run one challenge pass in sequence:
61
-
62
- - **Contrarian**: Argue the opposite mapping. Does the dimension still hold?
63
- - **Simplifier**: Is there a simpler folder/path that achieves the same goal?
64
- - **Ontologist**: Is this dimension naming the right concept, or a surface symptom?
65
-
66
- A challenge that raises ambiguity above threshold re-opens the Socratic loop for that
67
- dimension only (up to the per-dimension round limit).
68
-
69
- ## 6 Binding Dimensions
70
-
71
- Exactly these 6 — no more, no less. Each is time-boxed to **≤ 5 exchange rounds**.
72
-
73
- ### D1 — Tier folder mapping
74
-
75
- Map vault top-level folders to the three canonical tiers:
76
-
77
- - `raw` — unprocessed captures; nothing required yet
78
- - `processed` — synthesised / reformatted external material
79
- - `wiki` — compiled concept pages (output of `oms compile`)
80
-
81
- **Output key:** `folders.<name>.tier` (`raw` | `processed` | `wiki`)
82
-
83
- Reference defaults (Ataraxia vault — clearly-labelled example; do NOT pre-fill):
84
- ```yaml
85
- # Ataraxia reference only — discover the user's actual mapping
86
- raw: ["Inbox", "Fleeting"]
87
- processed: ["Literature", "Notes"]
88
- wiki: ["Wiki", "Concepts"]
89
- ```
90
-
91
- ### D2 — Provenance grade mapping
92
-
93
- Map vault folders to provenance grades used by the compile engine:
94
-
95
- - `authored` — written by the vault owner
96
- - `curated` — external sources the owner has read and synthesised
97
- - `external-raw` — raw captures, unverified external material
98
-
99
- **Output key:** `folders.<name>.provenance` (`authored` | `curated` | `external-raw`)
100
-
101
- Reference defaults (Ataraxia vault — example only; do NOT pre-fill):
102
- ```yaml
103
- # Ataraxia reference only
104
- authored: ["Journal", "Essays"]
105
- curated: ["Literature", "Notes"]
106
- external-raw: ["Inbox"]
107
- ```
108
-
109
- ### D3 — Lint schema SSOT location
110
-
111
- Identify the single source of truth for the lint schema used by `oms doctor`:
112
-
113
- - `engine_default` — use the shipped defaults at `core/ontology/` unchanged
114
- - `vault_override` — the vault extends/overrides via `vault/.oms/concepts/`
115
-
116
- Elicit: has the owner customised any concept fields beyond the shipped defaults?
117
-
118
- **Output key:** `lint.schema_ssot` (`engine_default` | `vault_override`)
119
-
120
- ### D4 — Embedder selection
121
-
122
- Select the embedding strategy for semantic retrieval:
123
-
124
- - `local` — local model (e.g. nomic-embed-text, all-MiniLM-L6-v2)
125
- - `openai` — OpenAI text-embedding-* API
126
- - `stub` — deterministic test stub (no real calls; for CI / offline use)
127
-
128
- **Output key:** `embedder.provider` and `embedder.model`
129
-
130
- ### D5 — ignore_for_external_apis glob
131
-
132
- One or more glob patterns identifying notes that MUST NOT be sent to any external API.
133
-
134
- Discover from the vault — do NOT pre-fill categories. Prompt the owner to identify:
135
- - Sensitivity categories they care about
136
- - Existing frontmatter fields that signal privacy (e.g. `private: true`)
137
- - Folder naming conventions that imply sensitivity
138
-
139
- **Output key:** `ignore_for_external_apis` (array of glob strings)
140
-
141
- ### D6 — Agent-writable zone + write routing law
142
-
143
- Define the paths agents are permitted to write to, and the routing law:
144
-
145
- - `agent_writable_zone` — array of vault-relative path prefixes agents may write
146
- - `write_routing_law`:
147
- - `append_only` — agents may only append; never overwrite existing content
148
- - `overwrite_allowed` — agents may create or overwrite within the zone
149
- - `create_only` — agents may only create new files; never modify existing ones
150
-
151
- Paths outside `agent_writable_zone` are read-only to all agents.
152
-
153
- **Output key:** `agent_writable_zone` (string[]) and `write_routing_law`
154
-
155
- ## Non-Sticky Guard (HARD)
156
-
157
- > Interview output is written ONLY to `vault/.oms/taxonomy.yaml`.
158
- > Writing to `core/ontology/taxonomy.yaml` or any engine path is FORBIDDEN.
159
-
160
- This guard is enforced by `oms setup` (`src/cli/setup-command.ts`) and by this skill:
161
-
162
- - The only write target is `{vaultRoot}/.oms/taxonomy.yaml`.
163
- - Never write to `core/ontology/taxonomy.yaml` or any other engine path.
164
-
165
- **Why this matters:** The engine default at `core/ontology/taxonomy.yaml` is the shared
166
- fallback for every vault. Overwriting it would silently propagate one vault's assumptions
167
- to all future users. Vault-local overrides preserve this separation permanently.
168
-
169
- ## Recipe
170
-
171
- 1. **Round-0 topology gate** — list folders, elicit one-sentence vault purpose, provisionally
172
- map tiers. Block until three tiers are provisionally assigned.
173
-
174
- 2. **Compute initial ambiguity** across Goal / Constraint / Criteria / Context for all 6
175
- dimensions together. First pass always yields high ambiguity (~0.8); record it.
176
-
177
- 3. **Interview D1–D6 in order.** For each dimension:
178
- a. Ask the targeted dimension question.
179
- b. Score all four sub-dimensions (goal / constraint / criteria / context).
180
- c. While `ambiguity > threshold`, probe deeper (max 5 rounds per dimension).
181
- d. Run Contrarian → Simplifier → Ontologist challenge passes.
182
- e. If any challenge re-raises ambiguity, re-enter the loop for that dimension only.
183
-
184
- 4. **Validate completeness** — confirm all 6 output keys are present and non-empty.
185
-
186
- 5. **Write** to `{vaultRoot}/.oms/taxonomy.yaml` ONLY:
187
- - Prefer `oms setup --vault <path>` for the non-interactive/default path.
188
- - If writing during the interview, create `{vaultRoot}/.oms/` if needed, merge
189
- with any existing file (do not clobber unrelated keys), and keep `version: 1`.
190
-
191
- 6. **Confirm** — print the written path and the resolved values. Never silently succeed.
192
-
193
- ## Output shape
194
-
195
- ```yaml
196
- version: 1
197
- folders:
198
- <name>:
199
- intent: "<elicited intent>"
200
- tier: raw | processed | wiki
201
- provenance: authored | curated | external-raw
202
- concept: <concept-name> | null
203
- lint:
204
- schema_ssot: engine_default | vault_override
205
- embedder:
206
- provider: local | openai | stub
207
- model: "<model-id>"
208
- ignore_for_external_apis:
209
- - "<glob>"
210
- agent_writable_zone:
211
- - "<vault-relative-prefix>"
212
- write_routing_law: append_only | overwrite_allowed | create_only
213
- ```
214
-
215
- ## Shell-out (legacy CLI)
216
-
217
- The legacy `oms setup` CLI command remains available for non-interactive use:
218
-
219
- ```bash
220
- oms setup [--vault <path>] [--yes]
221
- ```
222
-
223
- `--yes` / `OMS_NON_INTERACTIVE=1` skips all interview prompts and accepts defaults (CI / non-TTY).
224
-
225
- ## What setup does NOT do
226
-
227
- - Does NOT rename, move, or delete any existing notes.
228
- - Does NOT impose a new folder structure.
229
- - Does NOT modify existing frontmatter.
230
- - Does NOT touch `core/ontology/taxonomy.yaml`.
231
-
232
- ## After setup
233
-
234
- Run the `doctor` skill to validate existing notes against the resolved convention:
235
-
236
- ```bash
237
- oms doctor [--vault <path>]
238
- ```
239
-
240
- ## Executable helper
241
-
242
- Use the live CLI writer, not a parallel engine setup module:
243
-
244
- ```bash
245
- oms setup [--vault <path>] [--yes]
246
- ```
@@ -1,34 +0,0 @@
1
- ---
2
- name: oms-uninstall
3
- description: Remove Oh My Second Brain host adapter and MCP registrations by running oms uninstall.
4
- ---
5
-
6
- # Skill: oms-uninstall (Claude Code)
7
-
8
- Remove Oh My Second Brain host registrations and adapter files. This does **not** delete vault notes or `vault/.oms/` ontology data.
9
-
10
- ## Invocation
11
-
12
- ```
13
- /oms-uninstall
14
- ```
15
-
16
- ## What this skill does
17
-
18
- Shells out to:
19
-
20
- ```bash
21
- oms uninstall [--runtime <all|claude|codex|hermes>] [--dry-run] [--execute] [--yes]
22
- ```
23
-
24
- ## Recommended flow
25
-
26
- ```bash
27
- # Preview first:
28
- oms uninstall --runtime all --dry-run
29
-
30
- # Remove Oh My Second Brain host registrations:
31
- oms uninstall --runtime all --yes
32
- ```
33
-
34
- Use `--execute` only when you want Oh My Second Brain to call external host CLIs such as `claude mcp remove oms` or `claude plugin uninstall oms`.
@@ -1,24 +0,0 @@
1
- # vault-decision-record — CHANGELOG
2
-
3
- ## 0.1.0 — 2026-06-13
4
-
5
- Initial release (M5 governance skills, step 5).
6
-
7
- ### Added
8
-
9
- - `core/skills/vault-decision-record/SKILL.md` — /skillify recipe for recording vault
10
- structural changes as ADR markdown under .oms/governance/decisions/, with SUPERSEDE-ONLY
11
- update semantics and an explicit Layer 1 CONTRACT guard.
12
-
13
- ### Attribution
14
-
15
- - **ADR format (id / title / date / status / supersedes / superseded_by / context /
16
- decision / consequences)**: derived from Michael Nygard's original ADR template
17
- (https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions) —
18
- IDEA-ONLY, no verbatim text, format reimplemented independently.
19
- - **SUPERSEDE-ONLY immutability rule**: self-authored; extends the append-only ledger
20
- convention established in `src/engine/wiki/ledger.ts` (M3 staleness FSM).
21
- - **Layer 1 CONTRACT guard**: self-authored; mirrors the vault-confinement guard already
22
- present in `src/capture/safe.ts` (`oms_capture_commit` rejects writes to `.oms/`).
23
- - **decisions/ zone**: generalised from the Ataraxia "95. Decisions" folder convention —
24
- CONCEPT-ONLY, no verbatim content. Paired with `vault-scaffold` skill.