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
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
|
|
3
|
+
"name": "oms",
|
|
4
|
+
"description": "Oh My Second Brain: a host-agnostic, user-owned convention layer for Obsidian and plain-markdown knowledge vaults.",
|
|
5
|
+
"owner": {
|
|
6
|
+
"name": "gobeumsu",
|
|
7
|
+
"email": "gobeumsu@gmail.com"
|
|
8
|
+
},
|
|
9
|
+
"plugins": [
|
|
10
|
+
{
|
|
11
|
+
"name": "oms",
|
|
12
|
+
"description": "Oh My Second Brain convention layer for Obsidian vaults — capture, retrieve, and validate knowledge under a declared semantic convention.",
|
|
13
|
+
"version": "0.6.1",
|
|
14
|
+
"author": {
|
|
15
|
+
"name": "gobeumsu",
|
|
16
|
+
"email": "gobeumsu@gmail.com"
|
|
17
|
+
},
|
|
18
|
+
"source": "./",
|
|
19
|
+
"category": "productivity",
|
|
20
|
+
"homepage": "https://github.com/GoBeromsu/oh-my-second-brain#readme",
|
|
21
|
+
"repository": "https://github.com/GoBeromsu/oh-my-second-brain",
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"keywords": [
|
|
24
|
+
"obsidian",
|
|
25
|
+
"knowledge-base",
|
|
26
|
+
"mcp",
|
|
27
|
+
"frontmatter",
|
|
28
|
+
"markdown",
|
|
29
|
+
"claude-code"
|
|
30
|
+
],
|
|
31
|
+
"tags": [
|
|
32
|
+
"obsidian",
|
|
33
|
+
"knowledge-management",
|
|
34
|
+
"convention",
|
|
35
|
+
"frontmatter",
|
|
36
|
+
"vault"
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"version": "0.6.1"
|
|
41
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oms",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "Oh My Second Brain convention layer for Obsidian vaults — capture, retrieve, and validate knowledge under a declared semantic convention.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "gobeumsu"
|
|
@@ -15,12 +15,11 @@
|
|
|
15
15
|
"vault"
|
|
16
16
|
],
|
|
17
17
|
"skills": [
|
|
18
|
-
"./skills/
|
|
19
|
-
"./skills/doctor/",
|
|
20
|
-
"./skills/
|
|
21
|
-
"./skills/
|
|
22
|
-
"./skills/
|
|
23
|
-
"./skills/
|
|
24
|
-
"./skills/update/"
|
|
18
|
+
"./assets/skills/distill/",
|
|
19
|
+
"./assets/skills/doctor/",
|
|
20
|
+
"./assets/skills/link/",
|
|
21
|
+
"./assets/skills/search/",
|
|
22
|
+
"./assets/skills/status/",
|
|
23
|
+
"./assets/skills/write/"
|
|
25
24
|
]
|
|
26
25
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oms",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Oh My Second Brain convention layer for Obsidian vaults
|
|
3
|
+
"version": "0.6.1",
|
|
4
|
+
"description": "Oh My Second Brain convention layer for Obsidian vaults — Codex native rules, skills, and MCP adapter.",
|
|
5
5
|
"_note": "oms install writes Codex MCP config, installs ~/.codex/rules/oms.md, and installs ~/.codex/skills/oms-*.",
|
|
6
|
-
"skills": "./skills/",
|
|
7
|
-
"mcpServers": "./.mcp.json"
|
|
6
|
+
"skills": "./assets/skills/",
|
|
7
|
+
"mcpServers": "./.mcp.codex.json"
|
|
8
8
|
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# ACKNOWLEDGMENTS
|
|
2
|
+
|
|
3
|
+
oh-my-secondbrain은 아래 공개 작업들의 아이디어와 구현에 빚지고 있다.
|
|
4
|
+
만들고 아낌없이 공개해주신 모든 분들께 진심으로 감사드린다.
|
|
5
|
+
|
|
6
|
+
> 우리가 무엇을 흡수했는지(설계 로직·근거)는 `docs/research/*` 에 기록한다.
|
|
7
|
+
> 관리 규칙: [`docs/rules/external-attribution.md`](https://github.com/GoBeromsu/oh-my-second-brain/blob/main/docs/rules/external-attribution.md)
|
|
8
|
+
|
|
9
|
+
## LLM-Wiki 패턴 & 구현체
|
|
10
|
+
|
|
11
|
+
- https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f
|
|
12
|
+
- https://github.com/Astro-Han/karpathy-llm-wiki
|
|
13
|
+
- https://github.com/nashsu/llm_wiki — GPL-3.0: **아이디어만 참조, 코드 미사용**
|
|
14
|
+
- https://github.com/nashsu/llm_wiki_skill — 무라이선스: 개념 참조만
|
|
15
|
+
- https://github.com/nvk/llm-wiki
|
|
16
|
+
- https://github.com/lucasastorian/llmwiki
|
|
17
|
+
- https://github.com/atomicstrata/llm-wiki-compiler
|
|
18
|
+
- https://github.com/shannhk/llm-wikid
|
|
19
|
+
- https://github.com/AgriciDaniel/claude-obsidian
|
|
20
|
+
- https://github.com/NicholasSpisak/second-brain
|
|
21
|
+
- 박제창(Dreamwalker) — https://medium.com/@aristojeff
|
|
22
|
+
- @aboutcorelab — https://www.threads.com/@aboutcorelab
|
|
23
|
+
- 패스트캠퍼스 — https://fastcampus.co.kr/biz_camp_llmwiki
|
|
24
|
+
- MindStudio — https://www.mindstudio.ai/blog/ai-second-brain-obsidian-vault-folder-architecture
|
|
25
|
+
|
|
26
|
+
## 검색 / 임베딩 엔진
|
|
27
|
+
|
|
28
|
+
- https://github.com/tobi/qmd
|
|
29
|
+
- gbrain — 원 repo URL 미확인 `TODO(verify)`
|
|
30
|
+
- https://github.com/pgvector/pgvector
|
|
31
|
+
- https://github.com/electric-sql/pglite
|
|
32
|
+
|
|
33
|
+
## 그래프 접근
|
|
34
|
+
|
|
35
|
+
- https://github.com/safishamsi/graphify (후원: https://github.com/sponsors/safishamsi)
|
|
36
|
+
|
|
37
|
+
## Obsidian 플러그인
|
|
38
|
+
|
|
39
|
+
- [obsidian-linter](https://github.com/platers/obsidian-linter) — MIT, Victor Tao.
|
|
40
|
+
- [metadata-menu](https://github.com/mdelobelle/metadatamenu)
|
|
41
|
+
|
|
42
|
+
이 프로젝트의 convention contract에는 typed frontmatter fields, allowed values, 그리고 field-level metadata를 1급 계약으로 다루는 **개념만** 흡수했다. 서식화 및 lint 규칙은 의도적으로 obsidian-linter에 남겨두며, 여기서 재구현하지 않는다.
|
|
43
|
+
|
|
44
|
+
## Agent Skills 생태계
|
|
45
|
+
|
|
46
|
+
- https://github.com/anthropics/skills
|
|
47
|
+
- https://github.com/VoltAgent/awesome-agent-skills
|
|
48
|
+
- https://github.com/code-yeongyu/lazycodex — MIT, **vendored**: `programming` 스킬 직접 설치, LICENSE+저작권 고지 보존 (`~/.claude/skills/programming/`)
|
|
49
|
+
- https://github.com/Yeachan-Heo/oh-my-claudecode
|
|
50
|
+
- https://github.com/Yeachan-Heo/oh-my-codex
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## M1 Retrieval Engine — Absorbed Patterns
|
|
55
|
+
|
|
56
|
+
아래 패턴들은 M1 엔진(`src/kernel/engine/`) 구현 과정에서 아이디어/알고리즘만 흡수한 목록이다.
|
|
57
|
+
**verbatim 코드 사용 없음** — 모든 구현은 독립적으로 작성되었다.
|
|
58
|
+
|
|
59
|
+
| Pattern | Source | License | Note |
|
|
60
|
+
|---------|--------|---------|------|
|
|
61
|
+
| Adamic-Adar co-link scoring: AA(u,v) = Σ_{w∈N(u)∩N(v)} 1/log(deg(w)). Implemented by iterating each node w, enumerating pairs of its neighbours, and accumulating 1/log(deg(w)) into a canonical pair key. | [nashsu/llm_wiki](https://github.com/nashsu/llm_wiki) | GPL-3.0 | **IDEA-ONLY — zero verbatim code** |
|
|
62
|
+
| Composite edge weight = weighted sum of per-tier contributions (wikilink×3.0, frontmatter×4.0, adamic-adar×1.5, type-affinity×1.0). Frontmatter relation extraction from `sources[]`/`relations[]` YAML keys. | [nashsu/llm_wiki](https://github.com/nashsu/llm_wiki) | GPL-3.0 | **IDEA-ONLY — zero verbatim code** |
|
|
63
|
+
| Reciprocal Rank Fusion weight schedule: score(d) = Σ 1/(k+rank_i(d)), k=60 default calibration | [nashsu/llm_wiki](https://github.com/nashsu/llm_wiki) + MS GraphRAG technical report | GPL-3.0 (idea-only) / public algorithm | Zero verbatim code |
|
|
64
|
+
| HyDE (Hypothetical Document Embeddings) — generate a hypothetical answer passage then embed it for retrieval | [nashsu/llm_wiki](https://github.com/nashsu/llm_wiki) | GPL-3.0 | **IDEA-ONLY — zero verbatim code** |
|
|
65
|
+
| P-08-style two-layer retry: inner immediate retry + outer 50 ms back-off, abort on CancelToken | P-08 resilience pattern (architecture concept) | idea-only | No external code |
|
|
66
|
+
| Lightweight cancel token: mutable boolean wrapped in a getter+cancel() object, threaded through every async call | gajae-code patterns | MIT | idea-only, implementation is original |
|
|
67
|
+
| Lazy-load + 5-minute idle unload guard (`src/kernel/engine/embed/provider.ts`): model/contexts not initialised until first `embed()` call; a `setTimeout` resets per call; no calls for 5 min → dispose pool; next `embed()` reloads lazily. The only permitted timer (plan.md:83, R2). | [qmd (tobi)](https://github.com/tobi/qmd) | MIT | **IDEA-ONLY — zero verbatim code** |
|
|
68
|
+
| Hardware-adaptive parallel embed pool (`src/kernel/engine/embed/provider.ts`): `poolSize = min(4, cpuCount-1)`, round-robin context selection across the pool, `Promise.all` parallel context init, 2-stage batch distribution. | [qmd (tobi)](https://github.com/tobi/qmd) | MIT | **IDEA-ONLY — zero verbatim code** |
|
|
69
|
+
| SHA-256 chunk-level incremental diff (`src/kernel/engine/embed/sync.ts`): compute SHA-256 of each chunk text; compare with stored SHA from `EngineStore.getShas()`; skip `embed()` call when SHA matches — only changed chunks are re-embedded. | [qmd (tobi)](https://github.com/tobi/qmd) | MIT | **IDEA-ONLY — zero verbatim code** |
|
|
70
|
+
| Axis-aware `query` fold (same-axis OR / cross-axis AND), bounded cursor pagination, facet counts, and deterministic query receipts (R4 FM-9 / SU-1..SU-6). | Oh My Second Brain R4 surface contract | Internal | **SELF-AUTHORED — no external code** |
|
|
71
|
+
|
|
72
|
+
> **⚠ License flag — gbrain**: The gbrain project was referenced for logic/architecture patterns only. The original repo URL and license are unconfirmed (`TODO(verify)`). No code was copied. Attribution will be updated once the license is confirmed.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## M2 Compile Engine — Absorbed Patterns
|
|
77
|
+
|
|
78
|
+
M2 컴파일 기능의 이전 구현 과정에서 아이디어/알고리즘만 흡수한 목록이다.
|
|
79
|
+
**verbatim 코드 사용 없음** — 모든 구현은 독립적으로 작성되었다.
|
|
80
|
+
|
|
81
|
+
| Pattern | Source | License | Note |
|
|
82
|
+
|---------|--------|---------|------|
|
|
83
|
+
| SHA-incremental per-compile-unit: fingerprint materials → diff SHA → skip or recompile → persist SHA (`.llmwiki/sha-cache.json`) | bstack `terminology` skill | Self-authored | Full idea absorption |
|
|
84
|
+
| 2-step Chain-of-Thought: Step 1 analysis (entity/concept/argument/contradiction/structure) → Step 2 synthesis (source summary + concept page + `[[wikilink]]`); Step 1 output is Step 2 context, always sequential | [nashsu/llm_wiki](https://github.com/nashsu/llm_wiki) | GPL-3.0 | **IDEA-ONLY — zero verbatim code** |
|
|
85
|
+
| 2-phase separation: Phase A extract-all-without-writing (pure read) / Phase B generate (writes to `processed/`, never `wiki/`); A·B never overlap in one execution context | atomicstrata | License TBD | **CONCEPT-ONLY — no code** |
|
|
86
|
+
| Cascade return: every compile write returns `{ affected_backlinks: string[] }` so the M3 caller schedules staleness updates | lucasastorian/llmwiki | Terminology only | **CONCEPT-ONLY — no code** |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## M4 Distill — Absorbed Patterns
|
|
91
|
+
|
|
92
|
+
M4 Distill 스킬(`assets/skills/distill/`)은 standalone 흡수-분석기다.
|
|
93
|
+
**verbatim 코드 사용 없음** — 패턴 시그니처는 self-authored mining 문서에서 도출했다.
|
|
94
|
+
|
|
95
|
+
| Pattern | Source | License | Note |
|
|
96
|
+
|---------|--------|---------|------|
|
|
97
|
+
| Provider-injection seam (`AnalyzerProvider` mirrors `EmbeddingProvider`) — deterministic stub for tests, real LLM injected in production | oh-my-secondbrain M1 (self) | Internal | 코드베이스 1급 설계 패턴 |
|
|
98
|
+
| Red-team pattern signatures: parallel pool, SHA-256 fingerprint, sqlite-vec store, token chunker, retry, RRF fusion, typed sub-query | [qmd (tobi)](https://github.com/tobi/qmd) | MIT | mining doc 도출, verbatim 없음 |
|
|
99
|
+
| Red-team pattern signatures: 4-pass entity dedup, Leiden/Louvain community detection, grow-only build_merge, 3-tier edge confidence, pipeline-as-modules, 2-pass extraction | [graphify (Safi Shamsi)](https://github.com/safishamsi/graphify) | MIT | mining doc 도출, verbatim 없음 |
|
|
100
|
+
| Clean-room mechanism (pure data spec, caller spawns subagent) + mutation-detector SHA snapshot protocol | plan.md M4 / deep-interview R13·R16 | Internal | Self-authored |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## M3 Wiki Engine — Absorbed Patterns
|
|
105
|
+
|
|
106
|
+
M3 위키 컬렉션은 이전 구현에서 아이디어/알고리즘만 흡수한 목록이다.
|
|
107
|
+
**verbatim 코드 사용 없음** — 모든 구현은 독립적으로 작성되었다.
|
|
108
|
+
|
|
109
|
+
| Pattern | Source | License | Note |
|
|
110
|
+
|---------|--------|---------|------|
|
|
111
|
+
| Navigation conventions: `wiki/index.md` global catalog regenerated after every compile run; `wiki/log.md` append-only compile log (`## [YYYY-MM-DD] compile \| ConceptName`) | [Karpathy wiki gist](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) | No license declared | **IDEA-ONLY — no verbatim code** |
|
|
112
|
+
| Collection owner pattern: five responsibilities (namespace/identity, link-graph closure, staleness-ledger delegation, navigation delegation, processed→wiki promotion) | [Astro-Han/karpathy-llm-wiki](https://github.com/Astro-Han/karpathy-llm-wiki) | MIT | **IDEA-ONLY — no verbatim code** |
|
|
113
|
+
| 3-phase hard separation: Research→Compile(sequential)→Wiki(read-only query surface); compile never writes wiki/ directly, a wiki query never triggers compile, promotion is the sole path into wiki/ | [nvk/llm-wiki](https://github.com/nvk/llm-wiki) | Apache-2.0 | **IDEA-ONLY — no verbatim code** |
|
|
114
|
+
| Cascade consumption: consume `affected_backlinks` from the M2 compile result to schedule staleness flips (CLEAN→DIRTY) | [lucasastorian/llmwiki](https://github.com/lucasastorian/llmwiki) | Terminology only | **CONCEPT-ONLY — no code** |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## M5 Governance, Conventions, Setup & Adapters — Absorbed Patterns
|
|
119
|
+
|
|
120
|
+
M5 거버넌스/컨벤션/셋업/어댑터 레이어 구현 과정에서 아이디어/방법론만 흡수한 목록이다.
|
|
121
|
+
**verbatim 코드 사용 없음** — 모든 구현은 독립적으로 작성되었다.
|
|
122
|
+
|
|
123
|
+
**Conventions / vault-lint** (`src/kernel/engine/conventions/`)
|
|
124
|
+
|
|
125
|
+
| Pattern | Source | License | Note |
|
|
126
|
+
|---------|--------|---------|------|
|
|
127
|
+
| `validateFrontmatter()` + `parseNote()` delegated for required/type checks; wrapper adds checks 1/4/5 around them | `src/kernel/conventions/{validate,frontmatter}.ts` (self) | Self-authored | Direct import, read-only |
|
|
128
|
+
| Directory-walk pattern (SKIP_DIRS + recursive readdir generator) reimplemented independently to avoid coupling to link-issue logic | `src/kernel/conventions/lint.ts` (self) | Self-authored | Pattern absorbed, not imported |
|
|
129
|
+
|
|
130
|
+
**Setup interview**
|
|
131
|
+
|
|
132
|
+
| Pattern | Source | License | Note |
|
|
133
|
+
|---------|--------|---------|------|
|
|
134
|
+
| Socratic clarity loop; ambiguity scoring `1 − mean(goal, constraint, criteria, context)`; Round-0 topology gate; Contrarian / Simplifier / Ontologist challenge modes | omc deep-interview methodology | Self-reimplemented | **METHOD-ONLY — no source code copied**; loop, scoring, gate, modes independently authored in TypeScript |
|
|
135
|
+
|
|
136
|
+
**Governance skills**
|
|
137
|
+
|
|
138
|
+
| Pattern | Source | License | Note |
|
|
139
|
+
|---------|--------|---------|------|
|
|
140
|
+
| decisions/ zone pattern — a dedicated top-level folder for structural decision artefacts | Ataraxia vault "95. Decisions" | Private vault, no external license | CONCEPT-ONLY — no verbatim content |
|
|
141
|
+
| Six-field ADR structure (context/decision/consequences/status/supersedes/superseded_by) | Michael Nygard ADR template (cognitect.com/blog/2011) | No license stated | IDEA-ONLY — format reimplemented |
|
|
142
|
+
| Taxonomy seeder (read engine DEFAULT → write per-vault override) + vault-confinement guard mirroring `src/kernel/capture/safe.ts` | bstack second-brain design (self) | Self-authored | Full idea absorption |
|
|
143
|
+
| Append-only/immutability → SUPERSEDE-ONLY ADR update rule; architecture.md stub follows the sub-dir README (R21) convention | M3 wiki ledger (self) | Self-authored | Internal reuse, same codebase |
|
|
144
|
+
|
|
145
|
+
**Governance scaffold & ontology schemas** (`.oms/governance/`, `core/ontology/schemas/`)
|
|
146
|
+
|
|
147
|
+
| Pattern | Source | License | Note |
|
|
148
|
+
|---------|--------|---------|------|
|
|
149
|
+
| Two-layer `.oms/governance/` (decisions/ + rules/ + architecture.md) mirroring document-ontology discipline | craft-skills `documents` skill | Internal skill, no external restriction | STRUCTURE-ONLY — all YAML independently authored (ADR-003 / ADR-006) |
|
|
150
|
+
| Thick-router (private) + generic-leaf (public) topology; monorepo + `private/` gitignore isolation | deep-interview R19 / R20 (self) | N/A — internal | No external code; user-ratified design decisions |
|
|
151
|
+
| Layer-1 CONTRACT / Layer-2 GOVERNANCE separation invariants | ADR-006 (self) | N/A — internal | User-ratified 2026-06-13 |
|
|
152
|
+
|
|
153
|
+
**Shared skills** (`assets/skills/`)
|
|
154
|
+
|
|
155
|
+
| Work | Source | License | Note |
|
|
156
|
+
|------|--------|---------|------|
|
|
157
|
+
| Shared skill source consumed by Claude, Codex, and Hermes | `assets/skills/*/SKILL.md` (self) | Self-authored | No external sources absorbed |
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
공개적으로 작업하고 공유해주신 위 모든 분들께 다시 한번 진심으로 감사드린다.
|
|
162
|
+
새로운 흡수가 있을 때마다 이 목록을 갱신한다.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Assets Changelog
|
|
2
|
+
|
|
3
|
+
Skills, agents, and ontology data changes belong here.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.6.1] - 2026-08-27
|
|
8
|
+
|
|
9
|
+
## [0.6.0] - 2026-08-27
|
|
10
|
+
|
|
11
|
+
## [0.3.0] - 2026-08-24
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Packaged host guidance names the invocations each host actually installs. Codex namespaces every skill under an `oms-` prefix, so its guidance now says `$oms-write` rather than `$write`, which would fail on a real install. A reference to `core/agents/retriever.md` was also removed: that path never shipped in the npm artifact, so it was broken for every installed user while resolving fine in the repository.
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- `assets/skills/` is the single authored source for all six skills — `write`, `search`, `link`, `distill`, `status`, `doctor` — replacing four drifted copies. Frontmatter is restricted to `name`, `description`, `aliases`, `mcp_tool` and `mcp_args`; the five skills that declare a tool are validated against that tool's advertised schema, so a skill cannot ship arguments its tool would reject.
|
|
20
|
+
|
|
21
|
+
### Removed
|
|
22
|
+
|
|
23
|
+
- `skills-manifest.yaml`. It declared itself generated while no generator existed, had no consumer anywhere in the source, scripts or CI, and never shipped in the package.
|
package/CHANGELOG-cli.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# CLI Changelog
|
|
2
|
+
|
|
3
|
+
Changes to the `oms` command surface belong here.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.6.1] - 2026-08-27
|
|
8
|
+
|
|
9
|
+
## [0.6.0] - 2026-08-27
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- `oms update` now requires confirmation before mutating from a TTY, refuses to mutate without `--yes` in non-TTY environments, and keeps `--dry-run`/`--check` read-only.
|
|
14
|
+
- Update reconciliation now propagates host installation failures to a non-zero exit status and resolves implicit vault targets through the verified vault chain, refusing an unverified current-directory target.
|
|
15
|
+
|
|
16
|
+
## [0.3.0] - 2026-08-24
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- An unrecognised command now exits 1 instead of printing usage and exiting 0. Silent success on a typo made a removed command indistinguishable from a working one.
|
|
21
|
+
|
|
22
|
+
### Removed
|
|
23
|
+
|
|
24
|
+
- The top-level qmd-compatible aliases `oms query`, `oms vsearch`, `oms get`, `oms multi-get` and `oms status` are gone, with ADR-009's D2. The canonical nested commands — `oms semantic query|status|get|multi-get|vsearch` — are unaffected and remain the supported surface.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Kernel Changelog
|
|
2
|
+
|
|
3
|
+
Domain logic changes belong here.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.6.1] - 2026-08-27
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Measurement environment variables now treat empty or whitespace-only values as unset. This preserves CI behavior when an unset GitHub Actions variable expands to an empty string, while non-empty malformed digests, attestations, arms, and other measurement values still fail loudly.
|
|
12
|
+
|
|
13
|
+
## [0.6.0] - 2026-08-27
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- The shipped ranking default remains the released v0.3.0 `boost-additive` baseline — RRF score plus provenance boost with no per-list reordering — instead of an unmeasured multiplicative boost. The frozen `boost-k-scale`, `boost-per-list`, and `boost-zero` arms remain experiments, so released ranking behavior stays evidence-backed and reproducible.
|
|
18
|
+
- The `boost-c040` measurement gate now applies only when a release changes the shipped ranking default from that baseline. Baseline releases pass with a receipt and need no manifest, while adopting an experiment arm still requires the real-vault signed manifest with no waiver; this targets the strict evidence requirement at the decision that can change user results.
|
|
19
|
+
- Default embedding-model acquisition is deferred to a later release. No real-vault `model-default` measurement exists, so the vault owner invoked the preregistered E-1 Rule 1 fallback when authorising this release: no new default embedding model ships here. Explicit `OMS_EMBEDDING_PROVIDER` / `OMS_EMBEDDING_MODEL` behavior is unchanged, and `oms setup --embedding-descriptor <path>` accepts an operator-supplied descriptor with SHA-256 verification. The no-default contract is machine-verified and fails closed: it checks at runtime that no default descriptor pointer is introduced, that the explicit environment pair resolves identically with and without the fallback while a half pair still fails loudly naming both variables, and that the fallback and MCP paths perform zero downloads. `boost-c040` remains a separate required, never-waivable measurement. Choosing a different model would be a contract change requiring replanning, and the deferral closes only with a validator-accepted, green `model-default` manifest from the real vault owner. The repository records that decision under `docs/measurements/`.
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- `oms update` now compares versions with SemVer prerelease and build-metadata precedence instead of treating every dotted component as a number.
|
|
24
|
+
- Embedding reindexing now builds and validates a complete shadow generation before an atomic swap, with cross-process writer locking and crash-point recovery coverage; a failed rebuild preserves the active generation.
|
|
25
|
+
- Embedding model resolution now rejects half-configured environment pairs, verifies setup artifacts by SHA-256 outside the vault, and reports unavailable vector capability with actionable `OMS_EMBEDDING_PROVIDER` / `OMS_EMBEDDING_MODEL` guidance.
|
|
26
|
+
- Lex-only retrieval remains available without a configured embedding provider, while the opt-in reranker lazy-loads with a bounded candidate set and no fake model fallback.
|
|
27
|
+
- Added the JSON frontmatter contract and typed EAV axis store with read-only `.obsidian/types.json` authority; legacy YAML remains ignored and unknown contract properties are preserved.
|
|
28
|
+
- Search query envelopes now expose total counts, cursors, facets, intent metadata, and folder/field/link axis filtering with same-axis OR and cross-axis AND semantics.
|
|
29
|
+
|
|
30
|
+
## [0.3.0] - 2026-08-24
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Collection scoping now constrains the candidate set before result limiting. A filtered query previously ran against already-truncated results, so it could return nothing while matching in-collection documents sat below the limit.
|
|
35
|
+
- Collection names are matched literally. They were interpolated into a SQL `LIKE` pattern unescaped, so `_` and `%` acted as wildcards and a request for `my_notes` also matched `myXnotes`.
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
39
|
+
- A `SearchBackend` seam names the retrieval capability OMS actually ships, so a second backend has something to implement against instead of reaching into the engine's own types. A request is either a plain `query` or typed `searches` sub-queries — never both — plus `limit`, `minScore`, and an `intent` field that disambiguates without itself searching. That exclusive choice is enforced at runtime as well as in the type, because a request parsed from JSON at the MCP boundary arrives unchecked.
|
|
40
|
+
- A conformance suite defines what "a search backend" means. A new backend implements the interface and must pass `src/kernel/searchbackend/conformance.test.ts`; anything that can't is not a backend.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- The in-repo engine is the **default** search backend. qmd is pluggable, neither default nor required, and no dependency was added or removed to make the seam exist — a third-party binary is never mandatory for a core capability.
|
|
45
|
+
- A plain `query` expands to lexical search only. Expanding it to lexical + vector was tried and rejected: on a vault with no embeddings that converts a perfectly good lexical answer into a loud failure. Asking for `vec` explicitly still fails loudly with `available: false` naming `OMS_EMBEDDING_PROVIDER` and `OMS_EMBEDDING_MODEL`, which is ADR-007 behaving exactly as locked.
|
|
46
|
+
- **Breaking:** every domain module now lives under `src/kernel/`, and `src/index.ts` moved with it. The package `main` and `types` are now `dist/kernel/index.js` and `dist/kernel/index.d.ts`. Importing the package by name is unaffected; anything reaching into a deep `dist/` path must update, since the package publishes no `exports` map to shield those paths.
|
|
47
|
+
- **Breaking:** `retrieve/` is now `kernel/search/`, matching the `search` skill and the `oms_search` tool that already carried that name.
|
|
48
|
+
- ADR-009 is superseded only in part. D2, the qmd-compatible surface as a product interface, is retired. D1, link-based `resolveEffectiveVault`, remains in force and is load-bearing for the verified-target write kernel — marking the whole ADR dead would have silently retired a live contract.
|
package/CHANGELOG-mcp.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# MCP Changelog
|
|
2
|
+
|
|
3
|
+
MCP server tools and resources belong here.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.6.1] - 2026-08-27
|
|
8
|
+
|
|
9
|
+
## [0.6.0] - 2026-08-27
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- MCP semantic retrieval now forwards explicit rerank and candidate-limit requests through ephemeral lexical fallback paths without downloading models or silently dropping rerank behavior.
|
|
14
|
+
- **Breaking:** `oms_search` folds axis retrieval into the `query` operation. The retired `axis` and `semantic-query` operation names now fail loudly; collection, context, and status operations likewise drop their `semantic-` prefixes. Query responses expose `hits`, `totalCount`, `facets`, a cursor, and a deterministic receipt.
|
|
15
|
+
- **Breaking:** `oms_doctor` uses `op: "cleanup"` instead of the removed `semantic-cleanup` spelling. No compatibility aliases are retained.
|
|
16
|
+
|
|
17
|
+
## [0.3.0] - 2026-08-24
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- `oms_search` is genuinely read-only and is now annotated as such. It previously advertised `readOnlyHint: false`, and truthfully so: searching a vault with no index silently created `.oms/` and initialised an SQLite store, and the `embeddingSyncBeforeSearch` family of parameters let any caller turn a search into a write by passing a flag. Neither is possible now. This matters beyond tidiness, because MCP hosts may auto-approve tools that declare themselves read-only.
|
|
22
|
+
|
|
23
|
+
Searching an unindexed vault still returns results. Rather than refusing until you run a command, the server builds the lexical index in memory for the life of the session and answers from that, so a first search on a fresh vault behaves as it always did while leaving the vault byte-identical. Once a persistent index exists it is used as-is and a search never rewrites it; refreshing it is `oms semantic sync`'s job.
|
|
24
|
+
|
|
25
|
+
Preparing lexical or embedding data on disk is now exclusively `oms_doctor { op: "sync-embeddings" }`, which is annotated as writing and routes through the verified-target kernel. Asking for vector retrieval on a vault with no vectors still fails loudly rather than quietly degrading to lexical.
|
|
26
|
+
- `oms_search` advertises `limit` (default 10), `minScore` (default 0) and `rerank` (default false). The first two are applied at the normalizer, so an options-free query is bounded rather than unlimited. `rerank` is opt-in per ADR-011: `true` reranks only when startup was given a real reranker and otherwise fails loudly with configuration guidance, rather than silently returning unreranked results as if the request had been honoured.
|
|
27
|
+
|
|
28
|
+
- The public MCP surface is now five tools — `oms_write`, `oms_search`, `oms_link`, `oms_status`, `oms_doctor` — down from twenty-three. The eighteen detail tools are reachable through an `op` parameter on the tool that owns them; nothing was deleted, so no capability is lost, but any client calling a detail tool by its old name must switch to the owning tool plus `op`.
|
|
29
|
+
- `oms_search` routes through the `SearchBackend` seam. A plain `query` now expands to lexical retrieval and returns results on a vault with no embedding provider, where it previously failed. Asking explicitly for vector retrieval — through a typed `vec` or `hyde` sub-search, the `vec`/`hyde` shorthands, or `mode: "vsearch"` — still fails loudly naming `OMS_EMBEDDING_PROVIDER` and `OMS_EMBEDDING_MODEL`. Lexical is a default for callers who did not choose a strategy, never a substitute for one that was asked for.
|
|
30
|
+
- Supplying an explicit `mode` together with explicit `searches` is refused as contradictory rather than resolved by discarding one of them.
|
|
31
|
+
- `oms_write` refuses a request that addresses the note both ways at once. `notePath` and `folder`/`filename` are alternatives; supplying both used to write one form while reporting the other's implications.
|
|
32
|
+
- Every mutating `oms_doctor` repair returns a typed receipt whose postcondition the server verified by reading persisted state back. Repairs are admitted through the verified-target kernel before anything touches disk, so a `cwd`-inferred target is rejected while diagnosis still works.
|
|
33
|
+
|
|
34
|
+
### Removed
|
|
35
|
+
|
|
36
|
+
- The qmd-compatible aliases `query`, `get`, `multi_get` and `status`, and the `qmd://` resource, are gone. ADR-009's D2 is superseded by ADR-010; D1 remains in force.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Vendors Changelog
|
|
2
|
+
|
|
3
|
+
Per-host adapter and installer changes belong here.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.6.1] - 2026-08-27
|
|
8
|
+
|
|
9
|
+
## [0.6.0] - 2026-08-27
|
|
10
|
+
|
|
11
|
+
## [0.3.0] - 2026-08-24
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Plugin roots moved to the repository root. `.claude-plugin/plugin.json` and `.codex-plugin/plugin.json` now reference `./assets/skills/` as an in-root path, which is what makes a single authored skill source possible; each host keeps its own manifest shape and its own MCP config. Hermes is deliberately asymmetric: it has no repo plugin manifest because `~/.hermes/skills/` is its native surface, and its installer reads the same shared source.
|
|
16
|
+
|
|
17
|
+
### Removed
|
|
18
|
+
|
|
19
|
+
- The `adapters/` tree is gone. Its skills were four copies that had drifted to thirteen, fourteen, twelve and eleven entries; hooks, rules and guidance moved under `assets/`.
|
|
20
|
+
|
|
21
|
+
## [0.1.6] - 2026-06-02
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- The project is published to npm as `oh-my-second-brain`, while `oms` stays the CLI, MCP, skill, and repo slug.
|
|
25
|
+
- The installer defaults to the published npm package instead of `npx` against GitHub release URLs.
|
|
26
|
+
- Host MCP registration now points at the installed `oms mcp --vault ...` command.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,58 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
This aggregate changelog contains changes that span multiple layers.
|
|
4
|
+
|
|
5
|
+
- [Kernel changelog](./CHANGELOG-kernel.md) — domain logic
|
|
6
|
+
- [CLI changelog](./CHANGELOG-cli.md) — the `oms` command surface
|
|
7
|
+
- [MCP changelog](./CHANGELOG-mcp.md) — MCP server tools and resources
|
|
8
|
+
- [Vendors changelog](./CHANGELOG-vendors.md) — per-host adapters and installers
|
|
9
|
+
- [Assets changelog](./CHANGELOG-assets.md) — skills, agents, and ontology data
|
|
10
|
+
|
|
3
11
|
## [Unreleased]
|
|
4
12
|
|
|
13
|
+
## [0.6.1] - 2026-08-27
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- **0.6.1 is the first published build of the 0.6.0 changes.** The `oms-v0.6.0` tag was cut but its release job failed before publishing, so that version reached neither npm nor a GitHub Release. Tags are immutable here, so the fix ships forward rather than by retagging. Everything listed under 0.6.0 below is delivered by this release.
|
|
18
|
+
- **Measurement configuration no longer misreads an unset CI variable.** An unset GitHub Actions variable expands to an empty string, so the release job supplied an empty preregistered qrels digest and the evaluation harness rejected it as malformed. Empty and whitespace-only measurement environment values now mean not configured; a non-empty malformed value still fails loudly. The measurement test suites also read that ambient job configuration instead of the case under test, and are now isolated from it.
|
|
19
|
+
|
|
20
|
+
## [0.6.0] - 2026-08-27
|
|
21
|
+
|
|
22
|
+
### Breaking
|
|
23
|
+
|
|
24
|
+
- **MCP search and doctor operation names have changed.** Use `oms_search` with `op: "query"` for axis retrieval; the retired `axis` and `semantic-query` names now fail loudly. Collection, context, and status operations have likewise dropped their `semantic-` prefixes, and `oms_doctor` cleanup is now `op: "cleanup"` rather than `semantic-cleanup`. There are no compatibility aliases, so update MCP clients to these names. Every query response now includes `hits`, `totalCount`, `facets`, a cursor, and a receipt.
|
|
25
|
+
- **Existing vector indexes must be rebuilt.** The embedding metadata version is now `oms-embed-meta-v2`, and the index identity includes dimensions, context length, MRL dimension, normalization, and prefix scheme. OMS rejects an index whose metadata or identity does not match rather than using vectors produced under a different contract. Rebuild it with `oms semantic sync --force`.
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- **Frontmatter axes are now typed and queryable.** The user-owned JSON contract lives at `.oms/types.json`; `.obsidian/types.json` is read as a read-only type authority. Legacy YAML is ignored without migration. Search can filter typed frontmatter axes, return their facets, and page results with a cursor.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- **Released ranking stays evidence-backed.** The default remains the v0.3.0 additive provenance baseline, with no unmeasured ranking change in this release. The `boost-k-scale`, `boost-per-list`, and `boost-zero` arms remain candidates pending the C040 experiment.
|
|
34
|
+
- **Embedding setup remains explicit.** Default model acquisition is still deferred: configure `OMS_EMBEDDING_PROVIDER` and `OMS_EMBEDDING_MODEL` as before. To install an operator-supplied model, use `oms setup --embedding-descriptor <path>`; OMS verifies its SHA-256 before accepting it.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- **`oms update` is safer in interactive and automated use.** It asks for confirmation from a TTY, requires `--yes` without one, and keeps `--dry-run` and `--check` read-only. Version comparison now follows SemVer precedence, failed host reconciliation returns a non-zero exit status, and an unverified current-directory target is refused rather than updated.
|
|
39
|
+
|
|
40
|
+
## [0.3.0] - 2026-08-24
|
|
41
|
+
|
|
42
|
+
### Breaking
|
|
43
|
+
|
|
44
|
+
- **The MCP surface is five tools.** `oms_write`, `oms_search`, `oms_link`, `oms_status` and `oms_doctor` replace the previous twenty-three. The eighteen detail tools were not deleted: each is reachable through an `op` parameter on the tool that owns it, so no capability was lost. A client that calls a detail tool by its old name must switch to the owning tool plus `op`. See [CHANGELOG-mcp.md](./CHANGELOG-mcp.md) for the operation map.
|
|
45
|
+
- **The qmd-compatible aliases are gone.** The `query`, `get`, `multi_get` and `status` commands and the `qmd://` resource were retired; ADR-009's D2 is superseded by ADR-010, while D1 remains in force. The canonical nested commands `oms semantic query|status|get|multi-get|vsearch` are unaffected.
|
|
46
|
+
- **`oms_search` no longer accepts sync parameters.** `embeddingSyncBeforeSearch` and its siblings let a caller turn a search into a write, which is incompatible with the read-only guarantee the tool now makes. Preparing index data on disk is `oms_doctor { op: "sync-embeddings" }`, which is annotated as writing.
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- **`src/` is five role layers.** `kernel`, `cli`, `mcp`, `vendors` and `assets` replace twenty-one top-level entries, and `adapters/` is dissolved. The domain library is the kernel; the CLI and MCP server are thin entrypoints over it. Three import-direction, module-size and surface-parity gates enforce the boundaries, and all of them fail closed rather than passing on an empty scan.
|
|
51
|
+
- **Skills exist once.** `assets/skills/` holds exactly six — `write`, `search`, `link`, `distill`, `status`, `doctor` — replacing near-duplicate copies that had drifted across four vendor trees. This works because the plugin root is the repository root, so every host manifest points at the same directory; there is no copy step and no generated manifest.
|
|
52
|
+
- **`oms_search` is genuinely read-only** and is annotated as such. It previously created `.oms/` and an SQLite store on a plain search. Searching an unindexed vault still returns results, now from an index built in memory for the session, so the vault is left byte-identical. This matters because MCP hosts may auto-approve tools that declare themselves read-only.
|
|
53
|
+
- The published package now ships `ACKNOWLEDGMENTS.md`, because the licence section links to it and shipping the note without its target left a dangling reference in the artifact.
|
|
54
|
+
- `docs/release.md` no longer ships. It documents how to release this package, which an installed consumer cannot do; the READMEs link to the repository copy instead.
|
|
55
|
+
|
|
5
56
|
## [0.2.0] - 2026-08-19
|
|
6
57
|
|
|
7
58
|
### Added
|
|
@@ -74,13 +125,6 @@
|
|
|
74
125
|
### Fixed
|
|
75
126
|
- Frontmatter diagnostics are tolerant: malformed frontmatter no longer blocks retrieve or build paths.
|
|
76
127
|
|
|
77
|
-
## [0.1.6] - 2026-06-02
|
|
78
|
-
|
|
79
|
-
### Changed
|
|
80
|
-
- The project is published to npm as `oh-my-second-brain`, while `oms` stays the CLI, MCP, skill, and repo slug.
|
|
81
|
-
- The installer defaults to the published npm package instead of `npx` against GitHub release URLs.
|
|
82
|
-
- Host MCP registration now points at the installed `oms mcp --vault ...` command.
|
|
83
|
-
|
|
84
128
|
## [0.1.5] - 2026-06-02
|
|
85
129
|
|
|
86
130
|
### Changed
|
package/README.ko.md
CHANGED
|
@@ -65,7 +65,7 @@ oms install --runtime all --vault /path/to/vault --yes # 적용
|
|
|
65
65
|
| **codex** | `.codex-plugin/plugin.json` | `AGENTS.md` | `$` | 네이티브 스킬 + MCP |
|
|
66
66
|
| **hermes** | `manifest.json` | `SOUL.md` | (MCP/tools) | 네이티브 스킬 + MCP |
|
|
67
67
|
|
|
68
|
-
`oms install`은 호스트 네이티브 규칙/스킬과 관리형 `oms` MCP 등록을 작성하며, `oms uninstall`로 되돌릴 수 있다.
|
|
68
|
+
`oms install`은 호스트 네이티브 규칙/스킬과 관리형 `oms` MCP 등록을 작성하며, `oms uninstall`로 되돌릴 수 있다.
|
|
69
69
|
|
|
70
70
|
## CLI
|
|
71
71
|
|
|
@@ -120,7 +120,7 @@ npm test
|
|
|
120
120
|
npm run release:check # lint + build + test + audit + pack + artifact-smoke + plugin 검증
|
|
121
121
|
```
|
|
122
122
|
|
|
123
|
-
릴리스 절차: [docs/release.md](
|
|
123
|
+
릴리스 절차: [docs/release.md](https://github.com/GoBeromsu/oh-my-second-brain/blob/main/docs/release.md).
|
|
124
124
|
|
|
125
125
|
## 라이선스
|
|
126
126
|
|
package/README.md
CHANGED
|
@@ -14,15 +14,15 @@ It is **convention-first and user-owned**: your vault stays plain markdown, the
|
|
|
14
14
|
## How it works
|
|
15
15
|
|
|
16
16
|
```
|
|
17
|
-
|
|
18
|
-
ontology
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
MCP
|
|
17
|
+
kernel (written once) root host surfaces
|
|
18
|
+
ontology + convention logic .claude-plugin/ Claude plugin manifest
|
|
19
|
+
graph + semantic runtime + .codex-plugin/ Codex plugin manifest
|
|
20
|
+
gated note operations .mcp.json Claude MCP registration
|
|
21
|
+
CLI and MCP entry points .mcp.codex.json Codex MCP registration
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
- **
|
|
25
|
-
-
|
|
24
|
+
- **kernel** is host-agnostic: ontology, validation, graph/semantic logic, and note operations.
|
|
25
|
+
- host-specific assets live at the package root: Claude hooks are in `assets/claude/hooks/`, Codex rules are in `assets/codex/rules/`, and Hermes metadata is `assets/hermes-manifest.json`.
|
|
26
26
|
- the cross-host mechanism is one **MCP server** (`oms mcp`) that every host talks to.
|
|
27
27
|
|
|
28
28
|
## Requirements
|
|
@@ -63,17 +63,17 @@ Full guide: [docs/install.md](./docs/install.md).
|
|
|
63
63
|
|------|----------|-----------------|-------|--------|
|
|
64
64
|
| **claude-code** | `.claude-plugin/plugin.json` | `CLAUDE.md` | `/` | installable |
|
|
65
65
|
| **codex** | `.codex-plugin/plugin.json` | `AGENTS.md` | `$` | native skills + MCP |
|
|
66
|
-
| **hermes** | `manifest.json` | `SOUL.md` | (MCP/tools) | native skills + MCP |
|
|
66
|
+
| **hermes** | `assets/hermes-manifest.json` | `SOUL.md` | (MCP/tools) | native skills + MCP |
|
|
67
67
|
|
|
68
|
-
`oms install` writes the host-native rules/skills and a managed `oms` MCP registration, and is reversible with `oms uninstall`. Per-host details: [
|
|
68
|
+
`oms install` writes the host-native rules/skills and a managed `oms` MCP registration, and is reversible with `oms uninstall`. Per-host details: [docs/install.md](./docs/install.md).
|
|
69
69
|
|
|
70
70
|
## CLI
|
|
71
71
|
|
|
72
72
|
```
|
|
73
73
|
oms setup Adopt an existing vault into the convention (writes .oms/taxonomy.yaml; never edits notes)
|
|
74
|
-
oms install Install host
|
|
75
|
-
oms uninstall Remove host
|
|
76
|
-
oms update Check/apply a package update, then reconcile
|
|
74
|
+
oms install Install host assets + MCP registration
|
|
75
|
+
oms uninstall Remove host assets + MCP registration
|
|
76
|
+
oms update Check/apply a package update, then reconcile host assets
|
|
77
77
|
oms doctor Validate note frontmatter against the ontology (aggregated by field & concept)
|
|
78
78
|
oms lint Check vault link health: broken [[wikilinks]] + orphan notes
|
|
79
79
|
oms semantic Native markdown semantic index / search / get
|
|
@@ -85,11 +85,11 @@ oms hook Vault guard hooks (Claude Code pre/post tool-use)
|
|
|
85
85
|
|
|
86
86
|
## MCP tools
|
|
87
87
|
|
|
88
|
-
`oms mcp` exposes
|
|
88
|
+
`oms mcp` exposes exactly five public tools:
|
|
89
89
|
|
|
90
|
-
`
|
|
90
|
+
`oms_write` · `oms_search` · `oms_link` · `oms_status` · `oms_doctor`
|
|
91
91
|
|
|
92
|
-
`
|
|
92
|
+
`oms_write` is gated by path-safety, vault-confinement, and the kernel-owned concept contract.
|
|
93
93
|
|
|
94
94
|
## Vault layout (`.oms/`)
|
|
95
95
|
|
|
@@ -121,7 +121,7 @@ npm test
|
|
|
121
121
|
npm run release:check # lint + build + test + audit + pack + artifact-smoke + plugin validate
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
Release process: [docs/release.md](
|
|
124
|
+
Release process: [docs/release.md](https://github.com/GoBeromsu/oh-my-second-brain/blob/main/docs/release.md).
|
|
125
125
|
|
|
126
126
|
## License
|
|
127
127
|
|
|
@@ -13,13 +13,13 @@ All knowledge capture and retrieval must follow the declared semantic convention
|
|
|
13
13
|
- Read `.oms/concepts/*.yaml` to understand field requirements and lenses.
|
|
14
14
|
|
|
15
15
|
**When writing vault notes:**
|
|
16
|
-
- Use the `/
|
|
17
|
-
- The kernel fills and checks frontmatter from `.oms`. `ask` or `rejected` means fix and call `
|
|
16
|
+
- Use the `/write` skill. Call MCP `oms_write`. Do not use host Write/Edit for vault `.md` files.
|
|
17
|
+
- The kernel fills and checks frontmatter from `.oms`. `ask` or `rejected` means fix and call `oms_write` again.
|
|
18
18
|
|
|
19
19
|
**When retrieving knowledge:**
|
|
20
|
-
- Use the `/
|
|
20
|
+
- Use the `/search` skill.
|
|
21
21
|
- Apply the concept's declared lens for the retrieval purpose (synthesis, audit, etc.).
|
|
22
22
|
- Return only the fields the lens specifies — do not dump full frontmatter.
|
|
23
23
|
|
|
24
24
|
**Doctor is advisory. Write is not.**
|
|
25
|
-
`oms doctor` always exits 0. MCP `
|
|
25
|
+
`oms doctor` always exits 0. MCP `oms_write` rejects contract violations.
|
|
@@ -10,7 +10,7 @@ This vault is governed by Oh My Second Brain conventions stored in `.oms/`.
|
|
|
10
10
|
- Run `oms doctor` to validate notes against the convention (exits 0, non-blocking).
|
|
11
11
|
- Read `.oms/taxonomy.yaml` and `.oms/concepts/*.yaml` for folder and field declarations.
|
|
12
12
|
|
|
13
|
-
**Write:** Use `$oms-write`. Call MCP `
|
|
14
|
-
**Retrieve:** Use `$oms-
|
|
13
|
+
**Write:** Use `$oms-write`. Call MCP `oms_write`. Do not use host Write/Edit for vault `.md` files.
|
|
14
|
+
**Retrieve:** Use the `$oms-search` skill with declared lenses.
|
|
15
15
|
|
|
16
|
-
> **v0 native install:** `oms install --runtime codex` installs Codex rules, `$oms
|
|
16
|
+
> **v0 native install:** `oms install --runtime codex` installs Codex rules, the `$oms-write`, `$oms-search`, `$oms-link`, `$oms-distill`, `$oms-status`, and `$oms-doctor` skills, and a managed Codex MCP config. Use Oh My Second Brain MCP tools for vault operations and CLI commands for lifecycle.
|