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.
- package/.claude-plugin/marketplace.json +41 -0
- package/{adapters/claude-code/.claude-plugin → .claude-plugin}/plugin.json +7 -8
- package/{adapters/codex/.codex-plugin → .codex-plugin}/plugin.json +4 -4
- package/ACKNOWLEDGMENTS.md +162 -0
- package/CHANGELOG-assets.md +23 -0
- package/CHANGELOG-cli.md +24 -0
- package/CHANGELOG-kernel.md +48 -0
- package/CHANGELOG-mcp.md +36 -0
- package/CHANGELOG-vendors.md +26 -0
- package/CHANGELOG.md +51 -7
- package/README.ko.md +2 -2
- package/README.md +16 -16
- package/{adapters/claude-code → assets/claude}/CLAUDE.md +4 -4
- package/{adapters → assets}/codex/AGENTS.md +3 -3
- package/{adapters → assets}/codex/rules/oms.md +5 -5
- package/{adapters → assets}/hermes/README.md +1 -1
- package/{adapters → assets}/hermes/SOUL.md +3 -3
- package/{adapters/hermes/manifest.json → assets/hermes-manifest.json} +3 -4
- package/assets/skills/distill/SKILL.md +20 -0
- package/assets/skills/doctor/SKILL.md +23 -0
- package/assets/skills/link/SKILL.md +24 -0
- package/assets/skills/search/SKILL.md +25 -0
- package/assets/skills/status/SKILL.md +22 -0
- package/assets/skills/write/SKILL.md +30 -0
- package/core/ontology/schemas/README.md +20 -14
- package/dist/assets/shared-skills.d.ts +4 -0
- package/dist/assets/shared-skills.js +8 -0
- package/dist/assets/shared-skills.js.map +1 -0
- package/dist/cli/args.d.ts +3 -1
- package/dist/cli/args.js +14 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/audit.js +3 -3
- package/dist/cli/audit.js.map +1 -1
- package/dist/cli/claude-install-plan.js +2 -2
- package/dist/cli/claude-install-plan.js.map +1 -1
- package/dist/cli/doctor-lint.js +8 -8
- package/dist/cli/doctor-lint.js.map +1 -1
- package/dist/cli/global-writeback.js +1 -1
- package/dist/cli/global-writeback.js.map +1 -1
- package/dist/cli/host-commands.d.ts +1 -1
- package/dist/cli/host-commands.js +24 -5
- package/dist/cli/host-commands.js.map +1 -1
- package/dist/cli/link-command.d.ts +1 -1
- package/dist/cli/link-command.js +2 -2
- package/dist/cli/link-command.js.map +1 -1
- package/dist/cli/linkify.js +16 -71
- package/dist/cli/linkify.js.map +1 -1
- package/dist/cli/oms.d.ts +1 -1
- package/dist/cli/oms.js +45 -11
- package/dist/cli/oms.js.map +1 -1
- package/dist/cli/semantic-args.d.ts +1 -1
- package/dist/cli/semantic-args.js +102 -3
- package/dist/cli/semantic-args.js.map +1 -1
- package/dist/cli/semantic-http.js +3 -3
- package/dist/cli/semantic-http.js.map +1 -1
- package/dist/cli/semantic-usage.js +1 -1
- package/dist/cli/semantic-usage.js.map +1 -1
- package/dist/cli/semantic.js +31 -12
- package/dist/cli/semantic.js.map +1 -1
- package/dist/cli/setup-command.d.ts +17 -0
- package/dist/cli/setup-command.js +89 -145
- package/dist/cli/setup-command.js.map +1 -1
- package/dist/cli/update-notice.d.ts +1 -1
- package/dist/cli/update-notice.js +2 -2
- package/dist/cli/update-notice.js.map +1 -1
- package/dist/cli/usage.d.ts +1 -1
- package/dist/cli/usage.js +2 -2
- package/dist/cli/usage.js.map +1 -1
- package/dist/{capture → kernel/capture}/safe.d.ts +11 -1
- package/dist/{capture → kernel/capture}/safe.js +3 -3
- package/dist/kernel/capture/safe.js.map +1 -0
- package/dist/kernel/contracts/index.d.ts +144 -0
- package/dist/kernel/contracts/index.js +401 -0
- package/dist/kernel/contracts/index.js.map +1 -0
- package/dist/kernel/conventions/frontmatter.js.map +1 -0
- package/dist/kernel/conventions/lint.js.map +1 -0
- package/dist/kernel/conventions/report.js.map +1 -0
- package/dist/{conventions → kernel/conventions}/validate.d.ts +1 -1
- package/dist/kernel/conventions/validate.js.map +1 -0
- package/dist/kernel/conventions/vault-walk.js.map +1 -0
- package/dist/{conventions → kernel/conventions}/write-contract.d.ts +1 -1
- package/dist/kernel/conventions/write-contract.js.map +1 -0
- package/dist/kernel/conventions/write-protocol.js.map +1 -0
- package/dist/kernel/doctor/service.d.ts +71 -0
- package/dist/kernel/doctor/service.js +70 -0
- package/dist/kernel/doctor/service.js.map +1 -0
- package/dist/{engine → kernel/engine}/assemble.d.ts +46 -1
- package/dist/kernel/engine/assemble.js +483 -0
- package/dist/kernel/engine/assemble.js.map +1 -0
- package/dist/kernel/engine/axes/store.d.ts +90 -0
- package/dist/kernel/engine/axes/store.js +400 -0
- package/dist/kernel/engine/axes/store.js.map +1 -0
- package/dist/{engine → kernel/engine}/conventions/vault-lint.d.ts +1 -1
- package/dist/{engine → kernel/engine}/conventions/vault-lint.js +1 -1
- package/dist/kernel/engine/conventions/vault-lint.js.map +1 -0
- package/dist/kernel/engine/embed/chunker.js.map +1 -0
- package/dist/kernel/engine/embed/deferred.js.map +1 -0
- package/dist/{engine → kernel/engine}/embed/hash-stub.test-helper.d.ts +1 -1
- package/dist/{engine → kernel/engine}/embed/hash-stub.test-helper.js +1 -1
- package/dist/kernel/engine/embed/hash-stub.test-helper.js.map +1 -0
- package/dist/kernel/engine/embed/identity.d.ts +21 -0
- package/dist/kernel/engine/embed/identity.js +47 -0
- package/dist/kernel/engine/embed/identity.js.map +1 -0
- package/dist/kernel/engine/embed/model.d.ts +134 -0
- package/dist/kernel/engine/embed/model.js +302 -0
- package/dist/kernel/engine/embed/model.js.map +1 -0
- package/dist/{engine → kernel/engine}/embed/provider.d.ts +36 -5
- package/dist/kernel/engine/embed/provider.js +403 -0
- package/dist/kernel/engine/embed/provider.js.map +1 -0
- package/dist/{engine → kernel/engine}/embed/store.d.ts +13 -1
- package/dist/kernel/engine/embed/store.js +730 -0
- package/dist/kernel/engine/embed/store.js.map +1 -0
- package/dist/kernel/engine/embed/sync.d.ts +100 -0
- package/dist/kernel/engine/embed/sync.js +753 -0
- package/dist/kernel/engine/embed/sync.js.map +1 -0
- package/dist/{engine → kernel/engine}/graph/builder.d.ts +9 -5
- package/dist/{engine → kernel/engine}/graph/builder.js +213 -79
- package/dist/kernel/engine/graph/builder.js.map +1 -0
- package/dist/kernel/engine/graph/explore.js.map +1 -0
- package/dist/{engine → kernel/engine}/graph/node.d.ts +49 -1
- package/dist/kernel/engine/graph/node.js +315 -0
- package/dist/kernel/engine/graph/node.js.map +1 -0
- package/dist/kernel/engine/graph/resolver.js.map +1 -0
- package/dist/kernel/engine/graph/traverse.js.map +1 -0
- package/dist/kernel/engine/linkify/apply.js.map +1 -0
- package/dist/kernel/engine/linkify/josa.js.map +1 -0
- package/dist/kernel/engine/linkify/mask.js.map +1 -0
- package/dist/kernel/engine/linkify/suggest.js.map +1 -0
- package/dist/kernel/engine/linkify/types.js.map +1 -0
- package/dist/{engine → kernel/engine}/mcp/facade.d.ts +27 -1
- package/dist/kernel/engine/mcp/facade.js +1144 -0
- package/dist/kernel/engine/mcp/facade.js.map +1 -0
- package/dist/kernel/engine/mcp/op-mappers.js.map +1 -0
- package/dist/{engine → kernel/engine}/mcp/query-mapper.d.ts +27 -2
- package/dist/kernel/engine/mcp/query-mapper.js +247 -0
- package/dist/kernel/engine/mcp/query-mapper.js.map +1 -0
- package/dist/{engine → kernel/engine}/mcp/types.d.ts +69 -2
- package/dist/kernel/engine/mcp/types.js.map +1 -0
- package/dist/{engine → kernel/engine}/retrieval/dispatcher.d.ts +23 -1
- package/dist/{engine → kernel/engine}/retrieval/dispatcher.js +92 -14
- package/dist/kernel/engine/retrieval/dispatcher.js.map +1 -0
- package/dist/{engine → kernel/engine}/retrieval/index.d.ts +4 -1
- package/dist/{engine → kernel/engine}/retrieval/index.js +6 -3
- package/dist/kernel/engine/retrieval/index.js.map +1 -0
- package/dist/kernel/engine/retrieval/reranker.d.ts +124 -0
- package/dist/kernel/engine/retrieval/reranker.js +204 -0
- package/dist/kernel/engine/retrieval/reranker.js.map +1 -0
- package/dist/{engine → kernel/engine}/retrieval/rrf.d.ts +10 -2
- package/dist/kernel/engine/retrieval/rrf.js +77 -0
- package/dist/kernel/engine/retrieval/rrf.js.map +1 -0
- package/dist/{engine → kernel/engine}/tracer.d.ts +13 -0
- package/dist/{engine → kernel/engine}/tracer.js +63 -6
- package/dist/kernel/engine/tracer.js.map +1 -0
- package/dist/{engine → kernel/engine}/types.d.ts +4 -4
- package/dist/kernel/engine/types.js.map +1 -0
- package/dist/{graph → kernel/graph}/cache.d.ts +1 -1
- package/dist/{graph → kernel/graph}/cache.js +165 -21
- package/dist/kernel/graph/cache.js.map +1 -0
- package/dist/kernel/graph/explore.js.map +1 -0
- package/dist/{harness → kernel/harness}/surface-registry.d.ts +0 -1
- package/dist/kernel/harness/surface-registry.js +170 -0
- package/dist/kernel/harness/surface-registry.js.map +1 -0
- package/dist/{harness → kernel/harness}/validation.js +67 -4
- package/dist/kernel/harness/validation.js.map +1 -0
- package/dist/kernel/index.d.ts +13 -0
- package/dist/kernel/index.js +14 -0
- package/dist/kernel/index.js.map +1 -0
- package/dist/{install → kernel/install}/adapter-source.d.ts +10 -1
- package/dist/kernel/install/adapter-source.js +76 -0
- package/dist/kernel/install/adapter-source.js.map +1 -0
- package/dist/kernel/install/common.js.map +1 -0
- package/dist/{install → kernel/install}/hosts.d.ts +3 -3
- package/dist/{install → kernel/install}/hosts.js +3 -22
- package/dist/kernel/install/hosts.js.map +1 -0
- package/dist/{core/ontology → kernel/install}/types.js.map +1 -1
- package/dist/{link → kernel/link}/convention-note.js +2 -2
- package/dist/kernel/link/convention-note.js.map +1 -0
- package/dist/kernel/link/global-config.js.map +1 -0
- package/dist/kernel/link/link.js.map +1 -0
- package/dist/kernel/link/workflow.d.ts +55 -0
- package/dist/kernel/link/workflow.js +107 -0
- package/dist/kernel/link/workflow.js.map +1 -0
- package/dist/kernel/measurement/no-default-contract.d.ts +17 -0
- package/dist/kernel/measurement/no-default-contract.js +84 -0
- package/dist/kernel/measurement/no-default-contract.js.map +1 -0
- package/dist/{ontology → kernel/ontology}/active.d.ts +1 -1
- package/dist/{ontology → kernel/ontology}/active.js +2 -2
- package/dist/kernel/ontology/active.js.map +1 -0
- package/dist/kernel/ontology/loader.js.map +1 -0
- package/dist/kernel/ontology/resolver.js.map +1 -0
- package/dist/{install → kernel/ontology}/types.js.map +1 -1
- package/dist/kernel/plugin/index.d.ts +1 -0
- package/dist/kernel/plugin/index.js +2 -0
- package/dist/kernel/plugin/index.js.map +1 -0
- package/dist/{core → kernel}/runtime/assets.d.ts +2 -4
- package/dist/{core → kernel}/runtime/assets.js +1 -3
- package/dist/kernel/runtime/assets.js.map +1 -0
- package/dist/kernel/search/morning-test-fixtures.js.map +1 -0
- package/dist/{retrieve → kernel/search}/morning.d.ts +0 -1
- package/dist/kernel/search/morning.js.map +1 -0
- package/dist/kernel/search/semantic-contract.js.map +1 -0
- package/dist/kernel/searchbackend/engine-search-backend.d.ts +28 -0
- package/dist/kernel/searchbackend/engine-search-backend.js +153 -0
- package/dist/kernel/searchbackend/engine-search-backend.js.map +1 -0
- package/dist/kernel/searchbackend/index.d.ts +2 -0
- package/dist/kernel/searchbackend/index.js +2 -0
- package/dist/kernel/searchbackend/index.js.map +1 -0
- package/dist/kernel/searchbackend/search-backend.d.ts +57 -0
- package/dist/kernel/searchbackend/search-backend.js +110 -0
- package/dist/kernel/searchbackend/search-backend.js.map +1 -0
- package/dist/{mcp → kernel/semantic}/semantic-engine.d.ts +3 -2
- package/dist/kernel/semantic/semantic-engine.js +78 -0
- package/dist/kernel/semantic/semantic-engine.js.map +1 -0
- package/dist/{mcp → kernel/semantic}/semantic-retrieve-args.d.ts +20 -3
- package/dist/{mcp → kernel/semantic}/semantic-retrieve-args.js +81 -15
- package/dist/kernel/semantic/semantic-retrieve-args.js.map +1 -0
- package/dist/{mcp → kernel/semantic}/semantic-retrieve-schema.d.ts +0 -24
- package/dist/{mcp → kernel/semantic}/semantic-retrieve-schema.js +0 -8
- package/dist/kernel/semantic/semantic-retrieve-schema.js.map +1 -0
- package/dist/{mcp → kernel/semantic}/semantic-retrieve.js +5 -9
- package/dist/kernel/semantic/semantic-retrieve.js.map +1 -0
- package/dist/kernel/semantic/semantic-schemas.js.map +1 -0
- package/dist/{mcp → kernel/semantic}/semantic-tool-schemas.js +0 -28
- package/dist/kernel/semantic/semantic-tool-schemas.js.map +1 -0
- package/dist/{setup → kernel/setup}/axis.d.ts +1 -1
- package/dist/{setup → kernel/setup}/axis.js +1 -1
- package/dist/kernel/setup/axis.js.map +1 -0
- package/dist/{cli/setup-documents.d.ts → kernel/setup/documents.d.ts} +1 -1
- package/dist/{cli/setup-documents.js → kernel/setup/documents.js} +15 -49
- package/dist/kernel/setup/documents.js.map +1 -0
- package/dist/kernel/setup/service.d.ts +44 -0
- package/dist/kernel/setup/service.js +97 -0
- package/dist/kernel/setup/service.js.map +1 -0
- package/dist/{update → kernel/update}/update.d.ts +7 -0
- package/dist/{update → kernel/update}/update.js +106 -8
- package/dist/kernel/update/update.js.map +1 -0
- package/dist/mcp/engine-morning-backend.d.ts +4 -4
- package/dist/mcp/engine-morning-backend.js +4 -18
- package/dist/mcp/engine-morning-backend.js.map +1 -1
- package/dist/mcp/link-tools.d.ts +9 -56
- package/dist/mcp/link-tools.js +5 -129
- package/dist/mcp/link-tools.js.map +1 -1
- package/dist/mcp/server.d.ts +9 -2
- package/dist/mcp/server.js +373 -324
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/update-notice.d.ts +1 -1
- package/dist/mcp/update-notice.js +1 -1
- package/dist/mcp/update-notice.js.map +1 -1
- package/dist/{install → vendors/claude}/claude-hooks.d.ts +1 -1
- package/dist/{install → vendors/claude}/claude-hooks.js +1 -1
- package/dist/vendors/claude/claude-hooks.js.map +1 -0
- package/dist/{install → vendors/claude}/claude-marketplace.d.ts +3 -3
- package/dist/{install → vendors/claude}/claude-marketplace.js +6 -9
- package/dist/vendors/claude/claude-marketplace.js.map +1 -0
- package/dist/{install → vendors/claude}/claude.d.ts +2 -2
- package/dist/{install → vendors/claude}/claude.js +2 -2
- package/dist/vendors/claude/claude.js.map +1 -0
- package/dist/{hook → vendors/claude/hook}/post-tool-use.js +5 -5
- package/dist/vendors/claude/hook/post-tool-use.js.map +1 -0
- package/dist/vendors/claude/hook/pre-tool-use.js.map +1 -0
- package/dist/vendors/claude/hook/stdin.js.map +1 -0
- package/dist/vendors/codex/codex.d.ts +10 -0
- package/dist/{install → vendors/codex}/codex.js +19 -37
- package/dist/vendors/codex/codex.js.map +1 -0
- package/dist/{install → vendors/hermes}/hermes.d.ts +2 -2
- package/dist/{install → vendors/hermes}/hermes.js +15 -7
- package/dist/vendors/hermes/hermes.js.map +1 -0
- package/docs/adapters.md +15 -0
- package/docs/install.md +10 -11
- package/package.json +23 -10
- package/adapters/README.md +0 -99
- package/adapters/claude-code/skills/compile/SKILL.md +0 -27
- package/adapters/claude-code/skills/define/SKILL.md +0 -51
- package/adapters/claude-code/skills/distill/SKILL.md +0 -28
- package/adapters/claude-code/skills/doctor/SKILL.md +0 -58
- package/adapters/claude-code/skills/link/SKILL.md +0 -87
- package/adapters/claude-code/skills/retrieve/SKILL.md +0 -99
- package/adapters/claude-code/skills/setup/SKILL.md +0 -78
- package/adapters/claude-code/skills/uninstall/SKILL.md +0 -34
- package/adapters/claude-code/skills/update/SKILL.md +0 -45
- package/adapters/claude-code/skills/vault-decision-record/SKILL.md +0 -52
- package/adapters/claude-code/skills/vault-lint/SKILL.md +0 -47
- package/adapters/claude-code/skills/vault-scaffold/SKILL.md +0 -47
- package/adapters/claude-code/skills/wiki/SKILL.md +0 -82
- package/adapters/claude-code/skills/write/SKILL.md +0 -16
- package/adapters/codex/skills/oms-compile/SKILL.md +0 -16
- package/adapters/codex/skills/oms-distill/SKILL.md +0 -14
- package/adapters/codex/skills/oms-doctor/SKILL.md +0 -14
- package/adapters/codex/skills/oms-install/SKILL.md +0 -19
- package/adapters/codex/skills/oms-link/SKILL.md +0 -35
- package/adapters/codex/skills/oms-retrieve/SKILL.md +0 -32
- package/adapters/codex/skills/oms-setup/SKILL.md +0 -34
- package/adapters/codex/skills/oms-uninstall/SKILL.md +0 -20
- package/adapters/codex/skills/oms-update/SKILL.md +0 -22
- package/adapters/codex/skills/oms-vault-lint/SKILL.md +0 -19
- package/adapters/codex/skills/oms-wiki/SKILL.md +0 -39
- package/adapters/codex/skills/oms-write/SKILL.md +0 -10
- package/adapters/hermes/skills/compile/SKILL.md +0 -13
- package/adapters/hermes/skills/distill/SKILL.md +0 -10
- package/adapters/hermes/skills/doctor/SKILL.md +0 -14
- package/adapters/hermes/skills/install/SKILL.md +0 -19
- package/adapters/hermes/skills/link/SKILL.md +0 -18
- package/adapters/hermes/skills/retrieve/SKILL.md +0 -32
- package/adapters/hermes/skills/setup/SKILL.md +0 -37
- package/adapters/hermes/skills/uninstall/SKILL.md +0 -20
- package/adapters/hermes/skills/update/SKILL.md +0 -22
- package/adapters/hermes/skills/wiki/SKILL.md +0 -14
- package/adapters/hermes/skills/write/SKILL.md +0 -10
- package/core/agents/librarian.md +0 -44
- package/core/agents/retriever.md +0 -62
- package/core/skills/compile/CHANGELOG.md +0 -24
- package/core/skills/compile/SKILL.md +0 -57
- package/core/skills/define/SKILL.md +0 -59
- package/core/skills/distill/CHANGELOG.md +0 -39
- package/core/skills/distill/SKILL.md +0 -62
- package/core/skills/doctor/SKILL.md +0 -49
- package/core/skills/link/SKILL.md +0 -130
- package/core/skills/retrieve/SKILL.md +0 -78
- package/core/skills/setup/CHANGELOG.md +0 -49
- package/core/skills/setup/SKILL.md +0 -246
- package/core/skills/uninstall/SKILL.md +0 -34
- package/core/skills/vault-decision-record/CHANGELOG.md +0 -24
- package/core/skills/vault-decision-record/SKILL.md +0 -93
- package/core/skills/vault-lint/CHANGELOG.md +0 -35
- package/core/skills/vault-lint/SKILL.md +0 -58
- package/core/skills/vault-scaffold/CHANGELOG.md +0 -21
- package/core/skills/vault-scaffold/SKILL.md +0 -72
- package/core/skills/wiki/CHANGELOG.md +0 -23
- package/core/skills/wiki/SKILL.md +0 -159
- package/core/skills/write/SKILL.md +0 -15
- package/dist/capture/safe.js.map +0 -1
- package/dist/cli/setup-documents.js.map +0 -1
- package/dist/conventions/frontmatter.js.map +0 -1
- package/dist/conventions/lint.js.map +0 -1
- package/dist/conventions/report.js.map +0 -1
- package/dist/conventions/validate.js.map +0 -1
- package/dist/conventions/vault-walk.js.map +0 -1
- package/dist/conventions/write-contract.js.map +0 -1
- package/dist/conventions/write-protocol.js.map +0 -1
- package/dist/core/ontology/loader.js.map +0 -1
- package/dist/core/ontology/resolver.js.map +0 -1
- package/dist/core/runtime/assets.js.map +0 -1
- package/dist/engine/assemble.js +0 -162
- package/dist/engine/assemble.js.map +0 -1
- package/dist/engine/conventions/vault-lint.js.map +0 -1
- package/dist/engine/embed/chunker.js.map +0 -1
- package/dist/engine/embed/deferred.js.map +0 -1
- package/dist/engine/embed/hash-stub.test-helper.js.map +0 -1
- package/dist/engine/embed/identity.d.ts +0 -11
- package/dist/engine/embed/identity.js +0 -15
- package/dist/engine/embed/identity.js.map +0 -1
- package/dist/engine/embed/provider.js +0 -266
- package/dist/engine/embed/provider.js.map +0 -1
- package/dist/engine/embed/store.js +0 -416
- package/dist/engine/embed/store.js.map +0 -1
- package/dist/engine/embed/sync.d.ts +0 -45
- package/dist/engine/embed/sync.js +0 -321
- package/dist/engine/embed/sync.js.map +0 -1
- package/dist/engine/graph/builder.js.map +0 -1
- package/dist/engine/graph/explore.js.map +0 -1
- package/dist/engine/graph/node.js +0 -110
- package/dist/engine/graph/node.js.map +0 -1
- package/dist/engine/graph/resolver.js.map +0 -1
- package/dist/engine/graph/traverse.js.map +0 -1
- package/dist/engine/linkify/apply.js.map +0 -1
- package/dist/engine/linkify/josa.js.map +0 -1
- package/dist/engine/linkify/mask.js.map +0 -1
- package/dist/engine/linkify/suggest.js.map +0 -1
- package/dist/engine/linkify/types.js.map +0 -1
- package/dist/engine/mcp/facade.js +0 -628
- package/dist/engine/mcp/facade.js.map +0 -1
- package/dist/engine/mcp/op-mappers.js.map +0 -1
- package/dist/engine/mcp/query-mapper.js +0 -102
- package/dist/engine/mcp/query-mapper.js.map +0 -1
- package/dist/engine/mcp/types.js.map +0 -1
- package/dist/engine/retrieval/dispatcher.js.map +0 -1
- package/dist/engine/retrieval/index.js.map +0 -1
- package/dist/engine/retrieval/reranker.d.ts +0 -46
- package/dist/engine/retrieval/reranker.js +0 -29
- package/dist/engine/retrieval/reranker.js.map +0 -1
- package/dist/engine/retrieval/rrf.js +0 -54
- package/dist/engine/retrieval/rrf.js.map +0 -1
- package/dist/engine/tracer.js.map +0 -1
- package/dist/engine/types.js.map +0 -1
- package/dist/graph/cache.js.map +0 -1
- package/dist/graph/explore.js.map +0 -1
- package/dist/harness/surface-registry.js +0 -397
- package/dist/harness/surface-registry.js.map +0 -1
- package/dist/harness/validation.js.map +0 -1
- package/dist/hook/post-tool-use.js.map +0 -1
- package/dist/hook/pre-tool-use.js.map +0 -1
- package/dist/hook/stdin.js.map +0 -1
- package/dist/index.d.ts +0 -12
- package/dist/index.js +0 -13
- package/dist/index.js.map +0 -1
- package/dist/install/adapter-source.js +0 -45
- package/dist/install/adapter-source.js.map +0 -1
- package/dist/install/claude-hooks.js.map +0 -1
- package/dist/install/claude-marketplace.js.map +0 -1
- package/dist/install/claude.js.map +0 -1
- package/dist/install/codex.d.ts +0 -24
- package/dist/install/codex.js.map +0 -1
- package/dist/install/common.js.map +0 -1
- package/dist/install/hermes.js.map +0 -1
- package/dist/install/hosts.js.map +0 -1
- package/dist/link/convention-note.js.map +0 -1
- package/dist/link/global-config.js.map +0 -1
- package/dist/link/link.js.map +0 -1
- package/dist/mcp/semantic-engine.js +0 -52
- package/dist/mcp/semantic-engine.js.map +0 -1
- package/dist/mcp/semantic-retrieve-args.js.map +0 -1
- package/dist/mcp/semantic-retrieve-schema.js.map +0 -1
- package/dist/mcp/semantic-retrieve.js.map +0 -1
- package/dist/mcp/semantic-schemas.js.map +0 -1
- package/dist/mcp/semantic-tool-schemas.js.map +0 -1
- package/dist/ontology/active.js.map +0 -1
- package/dist/retrieve/morning-test-fixtures.js.map +0 -1
- package/dist/retrieve/morning.js.map +0 -1
- package/dist/retrieve/semantic-contract.js.map +0 -1
- package/dist/setup/axis.js.map +0 -1
- package/dist/update/update.js.map +0 -1
- package/docs/release.md +0 -188
- /package/{adapters/codex/.mcp.json → .mcp.codex.json} +0 -0
- /package/{adapters/claude-code/.mcp.json → .mcp.json} +0 -0
- /package/{adapters/claude-code → assets/claude}/hooks/oms-guard.mjs +0 -0
- /package/{adapters/claude-code → assets/claude}/hooks/oms-post-guard.mjs +0 -0
- /package/dist/{conventions → kernel/conventions}/frontmatter.d.ts +0 -0
- /package/dist/{conventions → kernel/conventions}/frontmatter.js +0 -0
- /package/dist/{conventions → kernel/conventions}/lint.d.ts +0 -0
- /package/dist/{conventions → kernel/conventions}/lint.js +0 -0
- /package/dist/{conventions → kernel/conventions}/report.d.ts +0 -0
- /package/dist/{conventions → kernel/conventions}/report.js +0 -0
- /package/dist/{conventions → kernel/conventions}/validate.js +0 -0
- /package/dist/{conventions → kernel/conventions}/vault-walk.d.ts +0 -0
- /package/dist/{conventions → kernel/conventions}/vault-walk.js +0 -0
- /package/dist/{conventions → kernel/conventions}/write-contract.js +0 -0
- /package/dist/{conventions → kernel/conventions}/write-protocol.d.ts +0 -0
- /package/dist/{conventions → kernel/conventions}/write-protocol.js +0 -0
- /package/dist/{engine → kernel/engine}/embed/chunker.d.ts +0 -0
- /package/dist/{engine → kernel/engine}/embed/chunker.js +0 -0
- /package/dist/{engine → kernel/engine}/embed/deferred.d.ts +0 -0
- /package/dist/{engine → kernel/engine}/embed/deferred.js +0 -0
- /package/dist/{engine → kernel/engine}/graph/explore.d.ts +0 -0
- /package/dist/{engine → kernel/engine}/graph/explore.js +0 -0
- /package/dist/{engine → kernel/engine}/graph/resolver.d.ts +0 -0
- /package/dist/{engine → kernel/engine}/graph/resolver.js +0 -0
- /package/dist/{engine → kernel/engine}/graph/traverse.d.ts +0 -0
- /package/dist/{engine → kernel/engine}/graph/traverse.js +0 -0
- /package/dist/{engine → kernel/engine}/linkify/apply.d.ts +0 -0
- /package/dist/{engine → kernel/engine}/linkify/apply.js +0 -0
- /package/dist/{engine → kernel/engine}/linkify/josa.d.ts +0 -0
- /package/dist/{engine → kernel/engine}/linkify/josa.js +0 -0
- /package/dist/{engine → kernel/engine}/linkify/mask.d.ts +0 -0
- /package/dist/{engine → kernel/engine}/linkify/mask.js +0 -0
- /package/dist/{engine → kernel/engine}/linkify/suggest.d.ts +0 -0
- /package/dist/{engine → kernel/engine}/linkify/suggest.js +0 -0
- /package/dist/{engine → kernel/engine}/linkify/types.d.ts +0 -0
- /package/dist/{engine → kernel/engine}/linkify/types.js +0 -0
- /package/dist/{engine → kernel/engine}/mcp/op-mappers.d.ts +0 -0
- /package/dist/{engine → kernel/engine}/mcp/op-mappers.js +0 -0
- /package/dist/{engine → kernel/engine}/mcp/types.js +0 -0
- /package/dist/{engine → kernel/engine}/types.js +0 -0
- /package/dist/{graph → kernel/graph}/explore.d.ts +0 -0
- /package/dist/{graph → kernel/graph}/explore.js +0 -0
- /package/dist/{harness → kernel/harness}/validation.d.ts +0 -0
- /package/dist/{install → kernel/install}/common.d.ts +0 -0
- /package/dist/{install → kernel/install}/common.js +0 -0
- /package/dist/{install → kernel/install}/types.d.ts +0 -0
- /package/dist/{core/ontology → kernel/install}/types.js +0 -0
- /package/dist/{link → kernel/link}/convention-note.d.ts +0 -0
- /package/dist/{link → kernel/link}/global-config.d.ts +0 -0
- /package/dist/{link → kernel/link}/global-config.js +0 -0
- /package/dist/{link → kernel/link}/link.d.ts +0 -0
- /package/dist/{link → kernel/link}/link.js +0 -0
- /package/dist/{core → kernel}/ontology/loader.d.ts +0 -0
- /package/dist/{core → kernel}/ontology/loader.js +0 -0
- /package/dist/{core → kernel}/ontology/resolver.d.ts +0 -0
- /package/dist/{core → kernel}/ontology/resolver.js +0 -0
- /package/dist/{core → kernel}/ontology/types.d.ts +0 -0
- /package/dist/{install → kernel/ontology}/types.js +0 -0
- /package/dist/{retrieve → kernel/search}/morning-test-fixtures.d.ts +0 -0
- /package/dist/{retrieve → kernel/search}/morning-test-fixtures.js +0 -0
- /package/dist/{retrieve → kernel/search}/morning.js +0 -0
- /package/dist/{retrieve → kernel/search}/semantic-contract.d.ts +0 -0
- /package/dist/{retrieve → kernel/search}/semantic-contract.js +0 -0
- /package/dist/{mcp → kernel/semantic}/semantic-retrieve.d.ts +0 -0
- /package/dist/{mcp → kernel/semantic}/semantic-schemas.d.ts +0 -0
- /package/dist/{mcp → kernel/semantic}/semantic-schemas.js +0 -0
- /package/dist/{mcp → kernel/semantic}/semantic-tool-schemas.d.ts +0 -0
- /package/dist/{hook → vendors/claude/hook}/post-tool-use.d.ts +0 -0
- /package/dist/{hook → vendors/claude/hook}/pre-tool-use.d.ts +0 -0
- /package/dist/{hook → vendors/claude/hook}/pre-tool-use.js +0 -0
- /package/dist/{hook → vendors/claude/hook}/stdin.d.ts +0 -0
- /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.
|