oh-my-second-brain 0.15.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +2 -3
- package/.codex-plugin/plugin.json +2 -2
- package/ACKNOWLEDGMENTS.md +22 -2
- package/CHANGELOG-assets.md +12 -0
- package/CHANGELOG-cli.md +12 -0
- package/CHANGELOG-kernel.md +16 -0
- package/CHANGELOG-mcp.md +11 -0
- package/CHANGELOG-vendors.md +11 -0
- package/CHANGELOG.md +7 -0
- package/README.ko.md +40 -118
- package/README.md +36 -105
- package/assets/claude/CLAUDE.md +36 -20
- package/assets/claude/hooks/oms-guard.mjs +304 -75
- package/assets/codex/AGENTS.md +40 -25
- package/assets/codex/rules/oms.md +26 -44
- package/assets/hermes/README.md +12 -1
- package/assets/hermes/SOUL.md +37 -37
- package/assets/hermes-manifest.json +2 -2
- package/assets/skills/distill/SKILL.md +6 -8
- package/assets/skills/doctor/SKILL.md +12 -12
- package/assets/skills/link/SKILL.md +14 -17
- package/assets/skills/search/SKILL.md +13 -32
- package/assets/skills/status/SKILL.md +14 -23
- package/assets/skills/write/SKILL.md +18 -66
- package/core/AGENTS.md +40 -40
- package/dist/cli/args.d.ts +6 -19
- package/dist/cli/args.js +11 -140
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/audit.js +42 -41
- package/dist/cli/audit.js.map +1 -1
- package/dist/cli/contract-command.d.ts +16 -0
- package/dist/cli/contract-command.js +259 -0
- package/dist/cli/contract-command.js.map +1 -0
- package/dist/cli/engine-session.d.ts +1 -1
- package/dist/cli/engine-session.js +4 -4
- package/dist/cli/engine-session.js.map +1 -1
- package/dist/cli/host-commands.d.ts +2 -2
- package/dist/cli/host-commands.js +2 -2
- package/dist/cli/host-commands.js.map +1 -1
- package/dist/cli/host-probe.js +24 -7
- package/dist/cli/host-probe.js.map +1 -1
- package/dist/cli/link-command.d.ts +2 -2
- package/dist/cli/link-command.js +108 -88
- package/dist/cli/link-command.js.map +1 -1
- package/dist/cli/model-command.js +7 -7
- package/dist/cli/model-command.js.map +1 -1
- package/dist/cli/note-command.js +11 -122
- package/dist/cli/note-command.js.map +1 -1
- package/dist/cli/oms.d.ts +1 -1
- package/dist/cli/oms.js +23 -80
- package/dist/cli/oms.js.map +1 -1
- package/dist/cli/search-usage.js +1 -1
- package/dist/cli/setup-command.d.ts +4 -24
- package/dist/cli/setup-command.js +41 -133
- package/dist/cli/setup-command.js.map +1 -1
- package/dist/cli/status-command.js +8 -17
- package/dist/cli/status-command.js.map +1 -1
- package/dist/cli/usage.js +14 -51
- package/dist/cli/usage.js.map +1 -1
- package/dist/kernel/capture/safe.d.ts +16 -44
- package/dist/kernel/capture/safe.js +48 -572
- package/dist/kernel/capture/safe.js.map +1 -1
- package/dist/kernel/contract/audit.d.ts +15 -0
- package/dist/kernel/contract/audit.js +51 -0
- package/dist/kernel/contract/audit.js.map +1 -0
- package/dist/kernel/contract/contract-vault-fixture.d.ts +45 -0
- package/dist/kernel/contract/contract-vault-fixture.js +53 -0
- package/dist/kernel/contract/contract-vault-fixture.js.map +1 -0
- package/dist/kernel/contract/drift.d.ts +6 -0
- package/dist/kernel/contract/drift.js +27 -0
- package/dist/kernel/contract/drift.js.map +1 -0
- package/dist/kernel/contract/extract.d.ts +37 -0
- package/dist/kernel/contract/extract.js +101 -0
- package/dist/kernel/contract/extract.js.map +1 -0
- package/dist/kernel/contract/folders-axis.d.ts +17 -0
- package/dist/kernel/contract/folders-axis.js +19 -0
- package/dist/kernel/contract/folders-axis.js.map +1 -0
- package/dist/kernel/contract/fs-private.d.ts +6 -0
- package/dist/kernel/contract/fs-private.js +42 -0
- package/dist/kernel/contract/fs-private.js.map +1 -0
- package/dist/kernel/contract/guard-events.d.ts +16 -0
- package/dist/kernel/contract/guard-events.js +40 -0
- package/dist/kernel/contract/guard-events.js.map +1 -0
- package/dist/kernel/contract/interview.d.ts +65 -0
- package/dist/kernel/contract/interview.js +525 -0
- package/dist/kernel/contract/interview.js.map +1 -0
- package/dist/kernel/contract/judge-write.d.ts +51 -0
- package/dist/kernel/contract/judge-write.js +99 -0
- package/dist/kernel/contract/judge-write.js.map +1 -0
- package/dist/kernel/contract/judge.d.ts +9 -0
- package/dist/kernel/contract/judge.js +285 -0
- package/dist/kernel/contract/judge.js.map +1 -0
- package/dist/kernel/contract/obsidian.d.ts +16 -0
- package/dist/kernel/contract/obsidian.js +68 -0
- package/dist/kernel/contract/obsidian.js.map +1 -0
- package/dist/kernel/contract/redact.d.ts +17 -0
- package/dist/kernel/contract/redact.js +99 -0
- package/dist/kernel/contract/redact.js.map +1 -0
- package/dist/kernel/contract/scan.d.ts +35 -0
- package/dist/kernel/contract/scan.js +409 -0
- package/dist/kernel/contract/scan.js.map +1 -0
- package/dist/kernel/contract/status.d.ts +60 -0
- package/dist/kernel/contract/status.js +89 -0
- package/dist/kernel/contract/status.js.map +1 -0
- package/dist/kernel/contract/store.d.ts +90 -0
- package/dist/kernel/contract/store.js +640 -0
- package/dist/kernel/contract/store.js.map +1 -0
- package/dist/kernel/contract/types.d.ts +92 -0
- package/dist/kernel/contract/types.js +42 -0
- package/dist/kernel/contract/types.js.map +1 -0
- package/dist/kernel/contract/vault-id.d.ts +21 -0
- package/dist/kernel/contract/vault-id.js +74 -0
- package/dist/kernel/contract/vault-id.js.map +1 -0
- package/dist/kernel/contracts/index.d.ts +1 -11
- package/dist/kernel/contracts/index.js +1 -88
- package/dist/kernel/contracts/index.js.map +1 -1
- package/dist/kernel/conventions/canonical.d.ts +7 -0
- package/dist/kernel/conventions/canonical.js +112 -0
- package/dist/kernel/conventions/canonical.js.map +1 -0
- package/dist/kernel/conventions/completion-contract.d.ts +94 -0
- package/dist/kernel/conventions/completion-contract.js +236 -0
- package/dist/kernel/conventions/completion-contract.js.map +1 -0
- package/dist/kernel/conventions/frontmatter.js +17 -1
- package/dist/kernel/conventions/frontmatter.js.map +1 -1
- package/dist/kernel/conventions/note-exclude.d.ts +26 -10
- package/dist/kernel/conventions/note-exclude.js +317 -144
- package/dist/kernel/conventions/note-exclude.js.map +1 -1
- package/dist/kernel/conventions/strict-json.d.ts +5 -0
- package/dist/kernel/conventions/strict-json.js +38 -0
- package/dist/kernel/conventions/strict-json.js.map +1 -0
- package/dist/kernel/conventions/template-paths.d.ts +11 -0
- package/dist/kernel/conventions/template-paths.js +138 -0
- package/dist/kernel/conventions/template-paths.js.map +1 -0
- package/dist/kernel/doctor/service.d.ts +1 -1
- package/dist/kernel/doctor/service.js +2 -3
- package/dist/kernel/doctor/service.js.map +1 -1
- package/dist/kernel/engine/assemble.d.ts +4 -3
- package/dist/kernel/engine/assemble.js +21 -16
- package/dist/kernel/engine/assemble.js.map +1 -1
- package/dist/kernel/engine/axes/store.js +3 -2
- package/dist/kernel/engine/axes/store.js.map +1 -1
- package/dist/kernel/engine/embed/config.d.ts +11 -9
- package/dist/kernel/engine/embed/config.js +36 -48
- package/dist/kernel/engine/embed/config.js.map +1 -1
- package/dist/kernel/engine/embed/deferred.d.ts +2 -2
- package/dist/kernel/engine/embed/deferred.js +2 -2
- package/dist/kernel/engine/embed/model.d.ts +9 -7
- package/dist/kernel/engine/embed/model.js +38 -89
- package/dist/kernel/engine/embed/model.js.map +1 -1
- package/dist/kernel/engine/embed/provider.js +18 -5
- package/dist/kernel/engine/embed/provider.js.map +1 -1
- package/dist/kernel/engine/embed/repair.d.ts +1 -1
- package/dist/kernel/engine/embed/repair.js +1 -1
- package/dist/kernel/engine/embed/store.d.ts +1 -1
- package/dist/kernel/engine/embed/store.js +44 -3
- package/dist/kernel/engine/embed/store.js.map +1 -1
- package/dist/kernel/engine/embed/sync.d.ts +1 -1
- package/dist/kernel/engine/embed/sync.js +9 -2
- package/dist/kernel/engine/embed/sync.js.map +1 -1
- package/dist/kernel/engine/graph/builder.d.ts +10 -9
- package/dist/kernel/engine/graph/builder.js +215 -75
- package/dist/kernel/engine/graph/builder.js.map +1 -1
- package/dist/kernel/engine/graph/node.d.ts +19 -4
- package/dist/kernel/engine/graph/node.js +41 -11
- package/dist/kernel/engine/graph/node.js.map +1 -1
- package/dist/kernel/engine/linkify/suggest.d.ts +1 -1
- package/dist/kernel/engine/mcp/facade.d.ts +5 -3
- package/dist/kernel/engine/mcp/facade.js +149 -90
- package/dist/kernel/engine/mcp/facade.js.map +1 -1
- package/dist/kernel/engine/mcp/query-mapper.d.ts +17 -1
- package/dist/kernel/engine/mcp/query-mapper.js +27 -4
- package/dist/kernel/engine/mcp/query-mapper.js.map +1 -1
- package/dist/kernel/engine/mcp/types.d.ts +8 -8
- package/dist/kernel/engine/paths.d.ts +12 -1
- package/dist/kernel/engine/paths.js +177 -2
- package/dist/kernel/engine/paths.js.map +1 -1
- package/dist/kernel/engine/retrieval/axes.d.ts +88 -0
- package/dist/kernel/engine/retrieval/axes.js +129 -0
- package/dist/kernel/engine/retrieval/axes.js.map +1 -0
- package/dist/kernel/engine/retrieval/dispatcher.d.ts +2 -2
- package/dist/kernel/engine/retrieval/dispatcher.js +2 -2
- package/dist/kernel/engine/retrieval/dispatcher.js.map +1 -1
- package/dist/kernel/engine/retrieval/folder-context.d.ts +31 -0
- package/dist/kernel/engine/retrieval/folder-context.js +108 -0
- package/dist/kernel/engine/retrieval/folder-context.js.map +1 -0
- package/dist/kernel/engine/retrieval/generator.js +1 -1
- package/dist/kernel/engine/retrieval/generator.js.map +1 -1
- package/dist/kernel/engine/retrieval/passthrough.test-helper.d.ts +1 -1
- package/dist/kernel/engine/retrieval/passthrough.test-helper.js +1 -1
- package/dist/kernel/engine/retrieval/reranker.js +1 -1
- package/dist/kernel/engine/retrieval/template-source.d.ts +15 -0
- package/dist/kernel/engine/retrieval/template-source.js +121 -0
- package/dist/kernel/engine/retrieval/template-source.js.map +1 -0
- package/dist/kernel/engine/tracer.d.ts +5 -4
- package/dist/kernel/engine/tracer.js +20 -12
- package/dist/kernel/engine/tracer.js.map +1 -1
- package/dist/kernel/graph/explore.d.ts +3 -1
- package/dist/kernel/graph/explore.js +15 -7
- package/dist/kernel/graph/explore.js.map +1 -1
- package/dist/kernel/harness/surface-registry.d.ts +10 -1
- package/dist/kernel/harness/surface-registry.js +46 -64
- package/dist/kernel/harness/surface-registry.js.map +1 -1
- package/dist/kernel/harness/validation.d.ts +2 -2
- package/dist/kernel/harness/validation.js +112 -2
- package/dist/kernel/harness/validation.js.map +1 -1
- package/dist/kernel/install/asset-health.d.ts +1 -0
- package/dist/kernel/install/asset-health.js.map +1 -1
- package/dist/kernel/install/connection-coordinator.d.ts +150 -0
- package/dist/kernel/install/connection-coordinator.js +762 -0
- package/dist/kernel/install/connection-coordinator.js.map +1 -0
- package/dist/kernel/install/connection-registry.d.ts +109 -0
- package/dist/kernel/install/connection-registry.js +963 -0
- package/dist/kernel/install/connection-registry.js.map +1 -0
- package/dist/kernel/install/project-connection.d.ts +63 -0
- package/dist/kernel/install/project-connection.js +382 -0
- package/dist/kernel/install/project-connection.js.map +1 -0
- package/dist/kernel/install/provenance.d.ts +8 -0
- package/dist/kernel/install/provenance.js +17 -0
- package/dist/kernel/install/provenance.js.map +1 -1
- package/dist/kernel/install/vault-settings-publish.d.ts +5 -0
- package/dist/kernel/install/vault-settings-publish.js +22 -0
- package/dist/kernel/install/vault-settings-publish.js.map +1 -0
- package/dist/kernel/link/link.d.ts +113 -74
- package/dist/kernel/link/link.js +588 -158
- package/dist/kernel/link/link.js.map +1 -1
- package/dist/kernel/link/workflow.d.ts +24 -37
- package/dist/kernel/link/workflow.js +77 -63
- package/dist/kernel/link/workflow.js.map +1 -1
- package/dist/kernel/search/morning-test-fixtures.d.ts +7 -1
- package/dist/kernel/search/morning-test-fixtures.js +35 -26
- package/dist/kernel/search/morning-test-fixtures.js.map +1 -1
- package/dist/kernel/searchbackend/engine-search-backend.js +6 -4
- package/dist/kernel/searchbackend/engine-search-backend.js.map +1 -1
- package/dist/kernel/searchbackend/search-backend.d.ts +1 -1
- package/dist/kernel/semantic/semantic-engine.d.ts +2 -2
- package/dist/kernel/semantic/semantic-engine.js +7 -7
- package/dist/kernel/semantic/semantic-engine.js.map +1 -1
- package/dist/kernel/vault/paths.d.ts +25 -0
- package/dist/kernel/vault/paths.js +161 -0
- package/dist/kernel/vault/paths.js.map +1 -0
- package/dist/kernel/vault/settings.d.ts +25 -0
- package/dist/kernel/vault/settings.js +154 -0
- package/dist/kernel/vault/settings.js.map +1 -0
- package/dist/mcp/link-tools.d.ts +14 -17
- package/dist/mcp/link-tools.js +23 -11
- package/dist/mcp/link-tools.js.map +1 -1
- package/dist/mcp/note-write.d.ts +12 -0
- package/dist/mcp/note-write.js +78 -0
- package/dist/mcp/note-write.js.map +1 -0
- package/dist/mcp/server.d.ts +0 -8
- package/dist/mcp/server.js +185 -548
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/update-notice.d.ts +2 -2
- package/dist/mcp/update-notice.js +3 -5
- package/dist/mcp/update-notice.js.map +1 -1
- package/dist/vendors/claude/claude-hooks.d.ts +8 -1
- package/dist/vendors/claude/claude-hooks.js +65 -58
- package/dist/vendors/claude/claude-hooks.js.map +1 -1
- package/dist/vendors/claude/claude.d.ts +2 -2
- package/dist/vendors/claude/claude.js +2 -2
- package/dist/vendors/claude/claude.js.map +1 -1
- package/dist/vendors/claude/hook/pre-tool-use.d.ts +23 -9
- package/dist/vendors/claude/hook/pre-tool-use.js +112 -92
- package/dist/vendors/claude/hook/pre-tool-use.js.map +1 -1
- package/dist/vendors/claude/hook/stdin.d.ts +10 -2
- package/dist/vendors/claude/hook/stdin.js +27 -26
- package/dist/vendors/claude/hook/stdin.js.map +1 -1
- package/dist/vendors/codex/codex.js +125 -29
- package/dist/vendors/codex/codex.js.map +1 -1
- package/dist/vendors/hermes/hermes.js +1 -1
- package/dist/vendors/hermes/hermes.js.map +1 -1
- package/docs/adapters.md +25 -39
- package/docs/architecture.md +52 -116
- package/docs/cli-map.md +28 -62
- package/docs/conventions.md +45 -201
- package/docs/install.md +32 -140
- package/docs/verified-target.md +11 -23
- package/package.json +2 -3
- package/skills/distill/SKILL.md +6 -8
- package/skills/doctor/SKILL.md +12 -12
- package/skills/link/SKILL.md +14 -17
- package/skills/search/SKILL.md +13 -32
- package/skills/status/SKILL.md +14 -23
- package/skills/write/SKILL.md +18 -66
- package/assets/claude/hooks/oms-post-guard.mjs +0 -108
- package/assets/skills/template/SKILL.md +0 -70
- package/dist/cli/linkify.d.ts +0 -22
- package/dist/cli/linkify.js +0 -63
- package/dist/cli/linkify.js.map +0 -1
- package/dist/cli/template-command.d.ts +0 -2
- package/dist/cli/template-command.js +0 -398
- package/dist/cli/template-command.js.map +0 -1
- package/dist/kernel/conventions/write-contract.d.ts +0 -14
- package/dist/kernel/conventions/write-contract.js +0 -73
- package/dist/kernel/conventions/write-contract.js.map +0 -1
- package/dist/kernel/engine/retrieval/taxonomy-context.d.ts +0 -24
- package/dist/kernel/engine/retrieval/taxonomy-context.js +0 -96
- package/dist/kernel/engine/retrieval/taxonomy-context.js.map +0 -1
- package/dist/kernel/setup/documents.d.ts +0 -34
- package/dist/kernel/setup/documents.js +0 -22
- package/dist/kernel/setup/documents.js.map +0 -1
- package/dist/kernel/setup/service.d.ts +0 -37
- package/dist/kernel/setup/service.js +0 -65
- package/dist/kernel/setup/service.js.map +0 -1
- package/dist/kernel/templates/axes.d.ts +0 -29
- package/dist/kernel/templates/axes.js +0 -45
- package/dist/kernel/templates/axes.js.map +0 -1
- package/dist/kernel/templates/canonical.d.ts +0 -15
- package/dist/kernel/templates/canonical.js +0 -248
- package/dist/kernel/templates/canonical.js.map +0 -1
- package/dist/kernel/templates/census.d.ts +0 -54
- package/dist/kernel/templates/census.js +0 -735
- package/dist/kernel/templates/census.js.map +0 -1
- package/dist/kernel/templates/compose-add.d.ts +0 -27
- package/dist/kernel/templates/compose-add.js +0 -29
- package/dist/kernel/templates/compose-add.js.map +0 -1
- package/dist/kernel/templates/content-contract.d.ts +0 -160
- package/dist/kernel/templates/content-contract.js +0 -608
- package/dist/kernel/templates/content-contract.js.map +0 -1
- package/dist/kernel/templates/contract-from-notes.d.ts +0 -32
- package/dist/kernel/templates/contract-from-notes.js +0 -285
- package/dist/kernel/templates/contract-from-notes.js.map +0 -1
- package/dist/kernel/templates/defaults.d.ts +0 -17
- package/dist/kernel/templates/defaults.js +0 -127
- package/dist/kernel/templates/defaults.js.map +0 -1
- package/dist/kernel/templates/doctor.d.ts +0 -49
- package/dist/kernel/templates/doctor.js +0 -418
- package/dist/kernel/templates/doctor.js.map +0 -1
- package/dist/kernel/templates/extract.d.ts +0 -30
- package/dist/kernel/templates/extract.js +0 -143
- package/dist/kernel/templates/extract.js.map +0 -1
- package/dist/kernel/templates/file-lock.d.ts +0 -3
- package/dist/kernel/templates/file-lock.js +0 -86
- package/dist/kernel/templates/file-lock.js.map +0 -1
- package/dist/kernel/templates/hints.d.ts +0 -36
- package/dist/kernel/templates/hints.js +0 -279
- package/dist/kernel/templates/hints.js.map +0 -1
- package/dist/kernel/templates/index.d.ts +0 -23
- package/dist/kernel/templates/index.js +0 -12
- package/dist/kernel/templates/index.js.map +0 -1
- package/dist/kernel/templates/interview-ledger.d.ts +0 -51
- package/dist/kernel/templates/interview-ledger.js +0 -236
- package/dist/kernel/templates/interview-ledger.js.map +0 -1
- package/dist/kernel/templates/interview-service.d.ts +0 -49
- package/dist/kernel/templates/interview-service.js +0 -484
- package/dist/kernel/templates/interview-service.js.map +0 -1
- package/dist/kernel/templates/interview.d.ts +0 -33
- package/dist/kernel/templates/interview.js +0 -813
- package/dist/kernel/templates/interview.js.map +0 -1
- package/dist/kernel/templates/migration.d.ts +0 -62
- package/dist/kernel/templates/migration.js +0 -548
- package/dist/kernel/templates/migration.js.map +0 -1
- package/dist/kernel/templates/naming.d.ts +0 -10
- package/dist/kernel/templates/naming.js +0 -47
- package/dist/kernel/templates/naming.js.map +0 -1
- package/dist/kernel/templates/note-index.d.ts +0 -33
- package/dist/kernel/templates/note-index.js +0 -125
- package/dist/kernel/templates/note-index.js.map +0 -1
- package/dist/kernel/templates/obsidian-core-time.d.ts +0 -19
- package/dist/kernel/templates/obsidian-core-time.js +0 -82
- package/dist/kernel/templates/obsidian-core-time.js.map +0 -1
- package/dist/kernel/templates/operations.d.ts +0 -8
- package/dist/kernel/templates/operations.js +0 -116
- package/dist/kernel/templates/operations.js.map +0 -1
- package/dist/kernel/templates/paths.d.ts +0 -32
- package/dist/kernel/templates/paths.js +0 -147
- package/dist/kernel/templates/paths.js.map +0 -1
- package/dist/kernel/templates/policy.d.ts +0 -145
- package/dist/kernel/templates/policy.js +0 -515
- package/dist/kernel/templates/policy.js.map +0 -1
- package/dist/kernel/templates/reconcile.d.ts +0 -12
- package/dist/kernel/templates/reconcile.js +0 -434
- package/dist/kernel/templates/reconcile.js.map +0 -1
- package/dist/kernel/templates/renderer.d.ts +0 -12
- package/dist/kernel/templates/renderer.js +0 -67
- package/dist/kernel/templates/renderer.js.map +0 -1
- package/dist/kernel/templates/resolver.d.ts +0 -71
- package/dist/kernel/templates/resolver.js +0 -1094
- package/dist/kernel/templates/resolver.js.map +0 -1
- package/dist/kernel/templates/review-context.d.ts +0 -22
- package/dist/kernel/templates/review-context.js +0 -201
- package/dist/kernel/templates/review-context.js.map +0 -1
- package/dist/kernel/templates/transaction.d.ts +0 -22
- package/dist/kernel/templates/transaction.js +0 -561
- package/dist/kernel/templates/transaction.js.map +0 -1
- package/dist/kernel/templates/types.d.ts +0 -426
- package/dist/kernel/templates/types.js +0 -2
- package/dist/kernel/templates/types.js.map +0 -1
- package/dist/mcp/template-notice.d.ts +0 -52
- package/dist/mcp/template-notice.js +0 -222
- package/dist/mcp/template-notice.js.map +0 -1
- package/dist/vendors/claude/hook/post-tool-use.d.ts +0 -8
- package/dist/vendors/claude/hook/post-tool-use.js +0 -91
- package/dist/vendors/claude/hook/post-tool-use.js.map +0 -1
- package/skills/template/SKILL.md +0 -70
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
{
|
|
11
11
|
"name": "oms",
|
|
12
12
|
"description": "Oh My Second Brain convention layer for Obsidian vaults — capture, retrieve, and validate knowledge under a declared semantic convention.",
|
|
13
|
-
"version": "0.
|
|
13
|
+
"version": "0.17.0",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "gobeumsu",
|
|
16
16
|
"email": "gobeumsu@gmail.com"
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
]
|
|
38
38
|
}
|
|
39
39
|
],
|
|
40
|
-
"version": "0.
|
|
40
|
+
"version": "0.17.0"
|
|
41
41
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oms",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Oh My Second Brain convention layer for Obsidian vaults —
|
|
3
|
+
"version": "0.17.0",
|
|
4
|
+
"description": "Oh My Second Brain convention layer for Obsidian vaults — eight shared skills and five MCP tools under a user-owned contract.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "gobeumsu"
|
|
7
7
|
},
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
"./assets/skills/link/",
|
|
21
21
|
"./assets/skills/search/",
|
|
22
22
|
"./assets/skills/status/",
|
|
23
|
-
"./assets/skills/template/",
|
|
24
23
|
"./assets/skills/write/"
|
|
25
24
|
]
|
|
26
25
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oms",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "Oh My Second Brain convention layer for Obsidian vaults — Codex native rules, skills, and MCP adapter.",
|
|
5
|
-
"_note": "oms host install writes Codex MCP config and provenance, installs ~/.codex/rules/oms.md, and installs the
|
|
5
|
+
"_note": "oms host install writes Codex MCP config and provenance, installs ~/.codex/rules/oms.md, and installs the eight shared skills under ~/.codex/skills/oms-*.",
|
|
6
6
|
"skills": "./assets/skills/",
|
|
7
7
|
"mcpServers": "./.mcp.codex.json"
|
|
8
8
|
}
|
package/ACKNOWLEDGMENTS.md
CHANGED
|
@@ -6,6 +6,26 @@ oh-my-secondbrain은 아래 공개 작업들의 아이디어와 구현에 빚지
|
|
|
6
6
|
> 우리가 무엇을 흡수했는지(설계 로직·근거)는 `docs/research/*` 에 기록한다.
|
|
7
7
|
> 관리 규칙: [`docs/rules/external-attribution.md`](https://github.com/GoBeromsu/oh-my-second-brain/blob/main/docs/rules/external-attribution.md)
|
|
8
8
|
|
|
9
|
+
## 계약·평가·인터뷰 설계
|
|
10
|
+
|
|
11
|
+
### Ouroboros
|
|
12
|
+
|
|
13
|
+
- **저자 / 기여자**: Q00와 Ouroboros 기여자
|
|
14
|
+
- **URL**: https://github.com/Q00/ouroboros
|
|
15
|
+
- **라이선스**: [MIT](https://github.com/Q00/ouroboros/blob/main/LICENSE)
|
|
16
|
+
- **흡수 종류**: absorbed logic — 설계 아이디어 참고, 코드 직접 이식 없음
|
|
17
|
+
- **배운 점**: 명시적 계약, 작성과 평가의 책임 분리, 기계 검사와 의미 평가의 구분, 실제 산출물의 근거에 기반한 완료 판정.
|
|
18
|
+
- **감사**: Ouroboros의 계약 중심 설계와 단계적 검증에서 많은 것을 배웠다. 그 배움을 사용자가 자신의 지식 체계와 정책을 소유하는 OMS의 철학으로 구체화할 수 있도록 공개해 주신 프로젝트와 기여자분들께 진심으로 감사드린다.
|
|
19
|
+
|
|
20
|
+
### Gajae Code
|
|
21
|
+
|
|
22
|
+
- **저자 / 기여자**: Yeachan-Heo와 Gajae Code 기여자
|
|
23
|
+
- **URL**: https://github.com/Yeachan-Heo/gajae-code
|
|
24
|
+
- **라이선스**: [MIT](https://github.com/Yeachan-Heo/gajae-code/blob/main/LICENSE)
|
|
25
|
+
- **흡수 종류**: absorbed logic — 인터뷰 상호작용 설계 참고, 코드 직접 이식 없음
|
|
26
|
+
- **배운 점**: [deep-interview](https://github.com/Yeachan-Heo/gajae-code/blob/main/packages/coding-agent/src/defaults/gjc/skills/deep-interview/SKILL.md)의 맥락 사전 확인, 한 번에 한 질문, 자유답변의 의도 확인, 결정 기록과 최종 승인.
|
|
27
|
+
- **감사**: 사용자에게 같은 설명을 반복하게 하기보다 이미 표현한 의도를 정리하고 필요한 결정만 확인하는 인터뷰 방식에서 배웠다. OMS의 설정·계약 인터뷰를 구체화하는 데 도움을 준 공개 작업에 감사드린다.
|
|
28
|
+
|
|
9
29
|
## LLM-Wiki 패턴 & 구현체
|
|
10
30
|
|
|
11
31
|
- https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f
|
|
@@ -146,9 +166,9 @@ M5 거버넌스/컨벤션/셋업/어댑터 레이어 구현 과정에서 아이
|
|
|
146
166
|
|
|
147
167
|
| Pattern | Source | License | Note |
|
|
148
168
|
|---------|--------|---------|------|
|
|
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) |
|
|
169
|
+
| 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; 현재 ADR-008) |
|
|
150
170
|
| 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 |
|
|
171
|
+
| Layer-1 CONTRACT / Layer-2 GOVERNANCE separation invariants | 구 ADR-006 (self; 현재 ADR-008) | N/A — internal | User-ratified 2026-06-13 |
|
|
152
172
|
|
|
153
173
|
**Shared skills** (`assets/skills/`)
|
|
154
174
|
|
package/CHANGELOG-assets.md
CHANGED
|
@@ -4,6 +4,18 @@ Skills, agents, templates, and host guidance changes belong here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.17.0] - 2026-09-25
|
|
8
|
+
|
|
9
|
+
- **Breaking: host guidance describes the sealed contract.** The `interview` and `template` skills are deleted, leaving six skills. Guidance tells agents to write whole notes through `write {path, content, template?}`, to stay inside the sealed property pool, never to read or write `~/.oms/`, and to ask the user to run `oms setup` on `contract-unreadable`.
|
|
10
|
+
- **The `link` skill describes the payload it returns.** A suggestion carries a `baseContentHash` and a stable `id` per candidate, and `link { op: "check" }` requires `notePath`.
|
|
11
|
+
|
|
12
|
+
## [0.16.0] - 2026-09-23
|
|
13
|
+
- Live host-facing docs no longer show a copyable `interview-next` call without `proposals`. Confirming the template notice still starts that mode, but the same proposals array must reach review, answer, and commit.
|
|
14
|
+
- Search, status, and write skills now say `templateNotice.next` is a mode hint, not a replayable `interview-next` CallToolRequest.
|
|
15
|
+
|
|
16
|
+
- Eight shared skills now include a tool-less contract interview. Guidance separates agent-owned note writing from OMS guidance, saved-file checks, and completion using a separate reviewer; search and ordinary note errors do not start configuration interviews. Generated GJC mirrors share the authored skill bytes.
|
|
17
|
+
- Reviewer guidance distinguishes host claims, agent transcription, and OMS-computed digests. Matching role-definition bytes is not proof of a separate launch, enforced tool restrictions, or whole-vault immutability.
|
|
18
|
+
|
|
7
19
|
## [0.15.0] - 2026-09-19
|
|
8
20
|
|
|
9
21
|
- **Host guidance now teaches selected-folder template sources instead of per-file registration or folder modes.** It documents the exact `템플릿에 변경이 있습니다` / `확인하기` / `나중에` notice, host-only deferral, long-lived `templateNotice` results, and the resumable `interview-next` → `interview-answer` → `commit-contracts` flow that publishes only user-confirmed controls. Placement is write-time only (explicit destination, then taxonomy default, then `ask`); source review preserves Markdown bytes and does not invent a registration prerequisite, widget, or host configuration.
|
package/CHANGELOG-cli.md
CHANGED
|
@@ -4,6 +4,18 @@ Changes to the `oms` command surface belong here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.17.0] - 2026-09-25
|
|
8
|
+
|
|
9
|
+
- **Breaking: `oms template` is removed; the contract lives under `oms setup` and `oms contract setup|extract|status|doctor`.** `oms setup` is interactive only and refuses to run without a TTY or under `OMS_NON_INTERACTIVE=1`. `oms note guide` and `oms note check` are removed; `oms note audit` judges existing notes against the seal. `oms hook pre` replaces the retired hook leaves. Older `.oms/*` files are ignored and a `templateRoots` settings key is rejected. Upgrade order: (1) install this release and run `oms host sync`; (2) back up `.oms/settings.json` and keep only `version`, `vaultId`, `templateFolder` (formerly `templateRoots`), `embedding`, and `agentRepair`; (3) run `oms setup` at a terminal to seal the vault; (4) run `oms contract doctor` and review the unexpected control files it lists under `.oms/`; (5) keep those backups while a rollback to 0.16.0 is still possible.
|
|
10
|
+
- **Breaking: `oms setup` is the interactive vault-contract seal, the same as `oms contract setup`.** It needs an interactive terminal and refuses `--dry-run`, `--yes`, `--approval-token`, `--approved-digest`, `--install-claude`, `--models-default`, `--models-descriptor`, `--models-no-default`, and `--template-folder`, naming the command that now owns each concern (`oms host install`, `oms model install --default`, `oms model install --descriptor`, `oms model waive --yes`). Embedding remedies point at `oms model install` and `oms model select` rather than `.oms/models.json`.
|
|
11
|
+
- **`oms --help` describes real vault resolution.** It said an omitted `--vault` defaults to the current directory, hiding that resolution checks local vault controls, a bridge link, and `OMS_VAULT` first and treats the current directory as a read-only fallback that cannot admit a mutation.
|
|
12
|
+
- **`oms note` drops an empty repeatable-flag branch.** The set was permanently empty, so its accumulation path could never execute and the option type promised arrays the parser never produced.
|
|
13
|
+
- **`oms bridge` reports the stage that actually blocked.** Vault publication, global registry, reservation, and project projection each report their own bounded code and reason; stages that were never attempted are reported as unattempted rather than as failures, and malformed registry bytes are preserved exactly as found.
|
|
14
|
+
|
|
15
|
+
## [0.16.0] - 2026-09-23
|
|
16
|
+
|
|
17
|
+
- Host discovery reports the eight actual Codex skill paths and installed reviewer-definition health instead of the retired setup skill. Discovery and installation now resolve relative host-home overrides consistently; definition health is not reviewer execution proof.
|
|
18
|
+
|
|
7
19
|
## [0.15.0] - 2026-09-19
|
|
8
20
|
|
|
9
21
|
- **Breaking: the template CLI now exposes a selected-folder census and linear review flow.** The exact leaves are `scan|list|show|add|update|move|remove|default|check|regenerate-types|review|answer|commit`; `scan` is read-only, `add <folder>` selects source scope, and `add --id <id> --from <file>` remains explicit source authoring rather than contract review. `answer <question-id> --answer <JSON> --census-digest <digest> --ledger-digest <digest|null>` forwards server-returned CAS fields, while `commit` adds the existing dry-run or `--yes --approved-digest` guard. This removes the per-file registration ritual without weakening verified-target writes; note creation considers `--folder <note-folder>` before a taxonomy default and then `ask`, with no template-creation target-folder form.
|
package/CHANGELOG-kernel.md
CHANGED
|
@@ -4,6 +4,22 @@ Domain logic changes belong here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.17.0] - 2026-09-25
|
|
8
|
+
|
|
9
|
+
- **Breaking: the sealed contract replaces the `.oms/` policy files.** Older `.oms/*` files (template policy, taxonomy, type projection) are no longer read; `oms contract doctor` reports them as unexpected control files. `.oms/settings.json` accepts only `version`, `vaultId`, `templateFolder`, `embedding`, and `agentRepair`, and a `templateRoots` key is rejected as `VAULT_SETTINGS_INVALID`. The contract is stored under `~/.oms/vaults/<vault-id>/` and one judge (`src/kernel/contract/judge.ts`) decides every write. Upgrade order: (1) install this release and run `oms host sync`; (2) back up `.oms/settings.json` and keep only `version`, `vaultId`, `templateFolder` (formerly `templateRoots`), `embedding`, and `agentRepair`; (3) run `oms setup` at a terminal to seal the vault; (4) run `oms contract doctor` and review the unexpected control files it lists under `.oms/`; (5) keep those backups while a rollback to 0.16.0 is still possible.
|
|
10
|
+
- **Breaking: folder meaning and exclusion come from the sealed `folders.json`, and the embedding model from `.oms/settings.json`.** Search intent, the graph folder axis, and the exclusion inventory no longer read `.oms/taxonomy.json`; runtime code no longer reads or writes `.oms/models.json`, `.oms/taxonomy.json`, `.oms/template-policy.json`, or `contract-public.json`, so a vault's `.oms/` holds only `settings.json`. The selected embedding model is `settings.json` `embedding.model`; a vault configured only through `models.json` must reselect its model with `oms model select`. `parseModelsConfig` and `ModelsConfigV1` remain in the embed config module for callers that still parse a descriptor. The contracts index no longer re-exports the template policy.
|
|
11
|
+
- Search query responses summarize at most 20 facet values and disclose truncation, keeping large link vocabularies out of ordinary agent responses without reducing hit counts or pagination. Collection facets are merged before summarizing. (#143)
|
|
12
|
+
- **The decision records are consolidated into nine topic records** under `docs/decisions/`, and `docs/release.md` uses version placeholders instead of fixed 0.13.0-to-0.14.0 examples that could go stale.
|
|
13
|
+
|
|
14
|
+
## [0.16.0] - 2026-09-23
|
|
15
|
+
- Guide now binds a saved note to the template it declares when the caller omits `templateId`, matching check. Passing `templateId: null` still uses the default layer only.
|
|
16
|
+
|
|
17
|
+
- Version 4 contracts compose a user-owned property pool, an always-on default layer, and optional additive template constraints. Approved Markdown remains byte-exact; raw source or managed-draft drift reports locally without replacing the approved snapshot. Full derived-projection validation and transaction-generation checks reject inconsistent writing evaluations.
|
|
18
|
+
- Contract publication confines outputs to approved controls and managed drafts, checks exact approval and current-byte preconditions, and supports honest interrupted-publication recovery. A completed publication marker does not make later user draft edits a global reading failure.
|
|
19
|
+
- Search source exclusions and taxonomy intent no longer require a valid writing contract. Missing raw templates or invalid policy cannot block ordinary-note scanning; explicit exclusion and taxonomy errors remain visible.
|
|
20
|
+
- Native embedding diagnostics now use stderr through node-llama-cpp's logger callback, keeping diagnostic output separate from MCP stdout without suppressing warnings. (#133)
|
|
21
|
+
- Native SQLite ABI mismatches report the actual Node executable, version, module ABI and addon path with rebuild guidance. The original loader error remains the cause; unrelated opening errors are not relabeled, and no backend fallback or automatic rebuild occurs. (#139)
|
|
22
|
+
|
|
7
23
|
## [0.15.0] - 2026-09-19
|
|
8
24
|
|
|
9
25
|
- **Breaking: template contracts now reconcile from an explicit selected-folder census instead of per-file registration or auto/manual modes.** Every `.md` beneath the selected scope is classified for add, edit, delete, or rename; source bytes stay in place and only user-confirmed `.oms` controls publish. The two-tier freshness gate hashes raw shared authorities first and then isolates changed templates as pending while preserving unrelated note writes. Metadata and bounded body-node contracts (with per-node requiredness/order) replace opaque body assumptions; anchored resumable questions and a locked CAS preserve unaffected answers. Historical ledger census is not blanket stale rejection: current request CAS and per-answer anchors govern validity. Ambiguous repeated body nodes remain contextualized, missing required-body rules require explicit disposition, and placement is optional during review then resolves at note creation by explicit destination, taxonomy default, or `ask`.
|
package/CHANGELOG-mcp.md
CHANGED
|
@@ -4,6 +4,17 @@ MCP server tools and resources belong here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.17.0] - 2026-09-25
|
|
8
|
+
|
|
9
|
+
- **Breaking: `write` takes `{path, content, template?}` with no `op`.** The whole note is judged against the sealed contract and saved atomically only when allowed; a denial returns `{field, kind}` violations and one guidance command. The `guide`, `check`, and `template` operations and the `folderIntents` input are removed. `search` `templates` returns the sealed folders, property names and types, and templates; `doctor` `validate` diagnoses the seal, and `doctor` `regenerate-types` is removed with no alias.
|
|
10
|
+
- **Breaking: retrieval metadata reads the sealed folder contract.** Search responses rename `taxonomyIntents` to `folderIntents`, semantic status reports `folderContext` instead of the taxonomy context, and `projectionSource` names `folders.json` (the sealed contract) instead of `.oms/template-policy.json`. A vault without a sealed contract reports `vault-invalid` and its remediation points at `oms setup`.
|
|
11
|
+
- **An unreachable search fallback is gone.** Every `oms_semantic_query` path returns inside its own block, so the later ephemeral-lexical branch keyed on that tool name could never run. Search's model-free lexical path stays where it actually executes.
|
|
12
|
+
- Tool schemas expose operation names and arguments at the top level so hosts can discover them without unpacking branch schemas. Strict operation-specific validation and approval requirements remain enforced. (#144)
|
|
13
|
+
|
|
14
|
+
## [0.16.0] - 2026-09-23
|
|
15
|
+
- Host-facing docs no longer show a copyable `interview-next` call without `proposals`. Confirming the template notice still starts that mode, but the same proposals array must reach review, answer, and commit.
|
|
16
|
+
- The machine template notice `next` field is a mode hint (`skill: interview`, `mode: interview-next`), not a replayable CallToolRequest. OMS still does not invent proposals; `확인하기` enters `/interview`.
|
|
17
|
+
|
|
7
18
|
## [0.15.0] - 2026-09-19
|
|
8
19
|
|
|
9
20
|
- The bundled MCP SDK now resolves `hono` 4.13.8, clearing the moderate advisory group that affected its HTTP transport's body and query parsing. Only the lockfile moves; no declared dependency is added or changed.
|
package/CHANGELOG-vendors.md
CHANGED
|
@@ -4,6 +4,17 @@ Per-host adapter and installer changes belong here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.17.0] - 2026-09-25
|
|
8
|
+
|
|
9
|
+
- **Breaking: the Claude guard follows the judge.** The PostToolUse hook and the `oms-post-guard` bin are removed, and `OMS_GUARD` no longer exists. The PreToolUse write matcher is now `Write|Edit|MultiEdit|NotebookEdit`, and a second PreToolUse entry for `Read|Grep|Glob` denies access under `~/.oms/`. A write that the judge finds in violation is denied; when the judge cannot run, the call is allowed with a warning. The hook output format changed accordingly. Codex and Hermes still declare no write hook. Run `oms host sync` after upgrading to rewrite the registration.
|
|
10
|
+
- **The `oms-reviewer` host role is retired.** It was built around a completion protocol that no longer exists, so no surface could produce its request or consume its result. The Claude plugin agent, the Codex custom-agent role and its shipped asset, the harness reviewer registry, and the reviewer asset-health lane are gone with no alias. `oms host remove` still deletes a role and provenance sidecar an earlier version installed, and only when the OMS-written provenance record proves ownership; a foreign agent file is still left in place and reported.
|
|
11
|
+
- **Shipped host instructions no longer describe a completion reviewer or a retry budget.** The Claude and Codex guidance and the installed Hermes adapter README drop the semantic reviewer handshake and the finite retry budget; `agentRepair` lives in the portable `.oms/settings.json`.
|
|
12
|
+
|
|
13
|
+
## [0.16.0] - 2026-09-23
|
|
14
|
+
|
|
15
|
+
- Codex installs an optional provenance-owned reviewer role while preserving unowned collisions; a genuine generic separate subagent remains valid without custom-role discovery. Dry-run skill paths now match the eight installed shared skills.
|
|
16
|
+
- Hermes guidance uses its native fresh-conversation delegation with inherited tools and explicit non-modification instructions, without claiming unavailable sandbox enforcement.
|
|
17
|
+
|
|
7
18
|
## [0.15.0] - 2026-09-19
|
|
8
19
|
|
|
9
20
|
- **Claude, Codex, and Hermes guidance now aligns with folder-sourced template contracts.** Each native host surface explains selected-folder census without per-file registration or folder modes, the exact minimal notice and host-only `나중에`, and the resumable `interview-next` → `interview-answer` → `commit-contracts` flow. Review preserves source bytes and publishes only user-confirmed controls; affected-template pending remains scoped while shared-authority failures stay fail-closed globally. Note creation uses explicit folder, taxonomy default, then `ask`, without changing the host-specific skill/tool asymmetry.
|
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,13 @@ This aggregate changelog contains changes that span multiple layers.
|
|
|
10
10
|
|
|
11
11
|
## [Unreleased]
|
|
12
12
|
|
|
13
|
+
## [0.17.0] - 2026-09-25
|
|
14
|
+
|
|
15
|
+
- **Breaking: the vault contract is sealed once by the user and judged on every write.** The interactive `oms setup` interviews folders, the property pool, and templates together and seals the contract under `~/.oms/vaults/<vault-id>/`, outside the vault; `.oms/settings.json` is the only OMS file inside it. One judge decides MCP `write {path, content, template?}` and the Claude guard hook, and a violation is refused with `{field, kind}` entries and one guidance command. `oms template`, the MCP `write` guide, check, and template operations, the `interview` and `template` skills, the PostToolUse hook, and `OMS_GUARD` are removed. The public surface is six skills, five MCP tools, and fourteen CLI families. Upgrade order: (1) install this release and run `oms host sync`; (2) back up `.oms/settings.json` and keep only `version`, `vaultId`, `templateFolder` (formerly `templateRoots`), `embedding`, and `agentRepair`; (3) run `oms setup` at a terminal to seal the vault; (4) run `oms contract doctor` and review the unexpected control files it lists under `.oms/`; (5) keep those backups while a rollback to 0.16.0 is still possible.
|
|
16
|
+
|
|
17
|
+
## [0.16.0] - 2026-09-23
|
|
18
|
+
- **Breaking: OMS is a user-owned contract and completion harness, not a note writer or template renderer.** Version 4 of `.oms/template-policy.json` is the only approved structure and meaning: an always-on empty default layer, optional templates that only add or tighten, and unmanaged frontmatter left unchecked. Agents write and repair notes. OMS guides, checks the saved file, and completes from a separate host review. Search stays read-only even when the contract is missing or mid-publish. Contract meaning enters only through explicit `proposals` on `interview-next`, `interview-answer`, and `commit-contracts`; a recorded answer whose proposals were omitted is refused rather than dropped. The public surface is eight skills (`interview` and `template` are tool-less), five MCP tools, and fourteen CLI families. Retired v3 registration, note-write, link-apply, and renderer paths are deleted, not aliased. The machine template notice `next` field is a mode hint into `/interview`, not a replayable CallToolRequest.
|
|
19
|
+
|
|
13
20
|
## [0.15.0] - 2026-09-19
|
|
14
21
|
|
|
15
22
|
- **Breaking: a selected template folder, not a per-file registration step, is what makes a template usable.** Every `.md` beneath a folder you explicitly select is a census candidate tracked by content hash, so adding, editing, deleting, or renaming a source is picked up without registering each file and without the retired auto/manual folder modes. This spans layers deliberately: the kernel owns the census, contract derivation, interview ledger, and guarded reconcile; the CLI gains `oms template review|answer|commit`; MCP gains the matching `interview-next`, `interview-answer`, and `commit-contracts` modes plus the notice carrier; and the shared skills and host guidance describe one vocabulary. The five MCP tools and seven skills are unchanged.
|
package/README.ko.md
CHANGED
|
@@ -1,143 +1,74 @@
|
|
|
1
1
|
# Oh My Second Brain
|
|
2
2
|
|
|
3
|
-
Oh My Second Brain(`oms`)은 기존 Obsidian
|
|
3
|
+
Oh My Second Brain(`oms`)은 기존 Obsidian·Markdown 볼트를 AI 호스트와 연결하되 노트의 소유권은 가져가지 않는다. 볼트는 계속 평문 Markdown이고, Obsidian이 사령탑으로 남는다. OMS가 꺼져 있어도 노트는 사람이 읽고 고칠 수 있는 파일이다. OMS는 속성·폴더·heading의 의미를 스스로 만들어내지 않는다.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 볼트 계약
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- 각 템플릿은 경로·digest와 독립적인 안정적 `templateId`를 가지며, 볼트 전체의 `BaseContract` 하나를 상속한다.
|
|
9
|
-
- `.obsidian/types.json`은 읽기 전용 타입 권위다.
|
|
10
|
-
- 사용자 소유 온톨로지는 계속 활성 상태다. `.oms/template-policy.json`은 노트·필드 의미와 필수값, 형식, 허용값, 기본값, 이름 규칙, 정체성, 바인딩을 기록한다.
|
|
11
|
-
- `.oms/taxonomy.json`은 폴더·링크 의미와 배치를 소유하며, 작성된 폴더 의미는 `folder-ontology` 검색 축으로 노출된다. runtime의 유일한 권위다.
|
|
12
|
-
- `.oms/types.json`은 쓰기·검색용 검증된 파생 projection이다. 직접 편집하지 않는다.
|
|
7
|
+
의미는 사용자에게 남는다. 사용자는 터미널에서 대화형 `oms setup`을 한 번 실행해 볼트 계약을 봉인한다. 인터뷰는 세 부분을 함께 다룬다. 폴더(각 폴더의 의미와 배치 가능 대상), 속성 pool(각 속성의 type과 intent), 템플릿(템플릿 폴더의 각 템플릿이 선언하는 것)이다. 제품은 속성 이름·폴더·페르소나를 하드코딩하지 않고 Inbox fallback도 없다.
|
|
13
8
|
|
|
14
|
-
|
|
9
|
+
봉인된 계약은 볼트 밖 `~/.oms/vaults/<vault-id>/`에 있다. 볼트 안의 OMS 파일은 `.oms/settings.json` 하나이며 `version`, `vaultId`, `templateFolder`, `embedding`, `agentRepair`를 담는다. `.oms/`의 다른 항목은 `oms contract doctor`가 예상하지 않은 제어 파일로 보고하고, 그 밖에는 무시한다. `.obsidian/types.json`은 읽기 전용 관측값이며 봉인을 덮어쓰지 않는다.
|
|
15
10
|
|
|
16
|
-
|
|
11
|
+
템플릿은 `templateFolder` 안의 사용자 Markdown 파일 그대로 남는다. 봉인은 템플릿이 선언한 것을 기록할 뿐이며, OMS는 템플릿을 다시 쓰거나 복사하거나 노트에 적용하지 않는다. `oms contract status`는 봉인된 각 템플릿을 live 파일과 비교해 `active`, `drift`, `missing`으로 보고한다. drift는 보고만 하고 조용히 재봉인하지 않는다. 재봉인은 사용자가 `oms setup`으로 한다. OMS는 Templater, JavaScript, 전용 token 언어를 해석하거나 실행하지 않는다.
|
|
17
12
|
|
|
18
|
-
|
|
19
|
-
migration을 제안한다. 노트 타입 기본값을 번들로 강요하지 않으며 노트를
|
|
20
|
-
수정하지 않는다.
|
|
13
|
+
노트를 쓰는 주체는 에이전트다. 하나의 판정자가 모든 쓰기를 봉인에 비추어 판정한다. 거부된 쓰기는 파일을 바꾸지 않고 `{field, kind}` 위반과 안내 명령 하나만 돌려주며, 규칙 값·저장소 경로·계약 본문은 돌려주지 않는다. 이 기기에 봉인이 없는 볼트는 판정하지 않는다. 이 기기의 봉인 증거가 볼트와 맞지 않으면 사용자가 `oms setup`을 다시 실행할 때까지 쓰기를 `contract-unreadable`로 거부한다. OMS에는 완료 호출도 리뷰어 대화도 없다. 허용된 쓰기는 노트가 봉인된 구조에 맞는다는 뜻이지 보존할 가치가 있다는 뜻이 아니다.
|
|
21
14
|
|
|
22
|
-
|
|
23
|
-
oms setup --vault /path/to/vault --dry-run
|
|
24
|
-
oms setup --vault /path/to/vault --yes --approved-digest <표시된-digest>
|
|
25
|
-
```
|
|
15
|
+
볼트 계약은 ADR-007(소스 저장소의 `docs/decisions/`)에 기록되며, 구 ADR-013–016을 대체한다. [ACKNOWLEDGMENTS](./ACKNOWLEDGMENTS.md)는 Ouroboros와 Gajae Code의 deep-interview를 설계 아이디어로 밝힌다. 이는 runtime 복제도 연구 결과도 아니다. 저장소의 도식은 설명용 스케치다. 이 문서들은 승인된 아키텍처 기록이지 host smoke 결과나 제품 gate 통과가 아니다.
|
|
26
16
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
## 템플릿 흐름
|
|
30
|
-
|
|
31
|
-
명시적으로 선택한 템플릿 폴더 아래의 모든 `.md`는 템플릿 원본
|
|
32
|
-
후보가 된다. review는 원본을 검증하고 같은 위치의 바이트를 보존하며,
|
|
33
|
-
파일별 등록 절차나 auto/manual 폴더 mode는 필요하지 않다. OMS는
|
|
34
|
-
메타데이터 계약(frontmatter key·type·requiredness·`filledBy`)과 제한된
|
|
35
|
-
본문 구조(ATX heading, fence code block, fence 밖의 ordered/unordered list
|
|
36
|
-
run, `<!-- oms:content -->`, 문서 순서/EOL/BOM/final-newline)를 함께
|
|
37
|
-
도출한다. paragraph, setext heading, 모든 Markdown을 강제한다고 주장하지
|
|
38
|
-
않는다. 원본이 바뀌면 의존하는 템플릿만 pending이 되므로 다른 템플릿
|
|
39
|
-
쓰기는 계속 가능하며, shared authority 변경이나 불일치는 볼트 전체를
|
|
40
|
-
fail-closed 한다.
|
|
41
|
-
|
|
42
|
-
선택한 폴더의 원본이 바뀌면 호스트에 처음 표시할 알림은 정확히
|
|
43
|
-
`템플릿에 변경이 있습니다`이며, 동작은 정확히 `확인하기`와 `나중에`다.
|
|
44
|
-
처음 알림에는 템플릿 이름·hash·change class를 표시하지 않는다.
|
|
45
|
-
`나중에`는 host-only로 server를 호출하지 않고 interview ledger도 바꾸지
|
|
46
|
-
않는다. `확인하기`는 MCP `write { op: "template", mode: "interview-next" }`로
|
|
47
|
-
선형 resumable interview를 시작한다. 서버가 반환한 다음 질문을 따라
|
|
48
|
-
진행하고 영향 없는 confirmed answer는 보존한다. 모든 필요한 질문 뒤에는
|
|
49
|
-
정확한 최종 digest를 보여주고 사용자가 승인한 경우에만
|
|
50
|
-
`mode: "commit-contracts"`로 `.oms` control만 publish한다. self-approve하지
|
|
51
|
-
않는다. `status`와 search는 계속 읽기 전용이며 boot instruction이 stale한
|
|
52
|
-
long-lived host도 반환된 `templateNotice`를 표시해야 한다.
|
|
53
|
-
|
|
54
|
-
정확한 CLI review 흐름은 다음과 같다.
|
|
17
|
+
권위 모델은 [아키텍처](./docs/architecture.md), 볼트 파일은 [컨벤션](./docs/conventions.md), leaf 목록은 [CLI 맵](./docs/cli-map.md)에 있다.
|
|
55
18
|
|
|
56
|
-
|
|
57
|
-
oms template review
|
|
58
|
-
oms template answer <question-id> --answer <JSON> --census-digest <digest> --ledger-digest <digest|null>
|
|
59
|
-
oms template commit --census-digest <digest> --ledger-digest <digest|null> --dry-run
|
|
60
|
-
oms template commit --census-digest <digest> --ledger-digest <digest|null> --yes --approved-digest <digest>
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
answer는 서버가 반환한 question과 CAS 값을 사용한다. commit은 같은 CAS
|
|
64
|
-
값과 기존 dry-run 또는 yes/approved-digest guard를 함께 사용한다.
|
|
19
|
+
## 설정
|
|
65
20
|
|
|
66
|
-
|
|
21
|
+
`oms setup`은 `oms contract setup`과 같은 명령이다. 볼트 전체를 인터뷰해 계약을 봉인한다. 볼트 안에는 `.oms/settings.json`만 쓰고 노트는 수정하지 않는다. 대화형 터미널이 없거나 `OMS_NON_INTERACTIVE=1`이면 실행을 거부하므로 에이전트는 실행하지 않는다. 언제든 다시 실행해 재봉인할 수 있다.
|
|
67
22
|
|
|
68
|
-
```
|
|
69
|
-
oms
|
|
23
|
+
```bash
|
|
24
|
+
oms setup --vault /path/to/vault
|
|
25
|
+
oms contract status --vault /path/to/vault
|
|
70
26
|
```
|
|
71
27
|
|
|
72
|
-
|
|
73
|
-
순서이며, 배치가 없다고 contract review를 막지 않는다.
|
|
28
|
+
`oms contract extract --template <path>`는 템플릿 하나가 선언하는 것을 값 없이 보여준다. `oms contract doctor`는 봉인, 오래된 lock, 고아 generation, 예상하지 않은 제어 파일, hook 전송 실패를 진단한다. `--fix`는 이동했거나 색인되지 않은 볼트를 다시 색인할 뿐이다. 그 밖의 깨진 봉인은 `oms setup`을 다시 실행해 복구한다. 모델 수명주기는 `oms model install|select|waive|status`로 따로 존재한다.
|
|
74
29
|
|
|
75
30
|
## CLI
|
|
76
31
|
|
|
77
32
|
```text
|
|
78
|
-
oms setup 기존 볼트 템플릿 탐색 및 채택
|
|
79
|
-
oms template scan|list|show|add|update|move|remove|default|check|regenerate-types|review|answer|commit
|
|
80
|
-
oms note create|append|update|audit|backfill|get
|
|
81
|
-
oms link check|suggest|apply 노트 wikilink 점검·제안·적용
|
|
82
33
|
oms bridge add|remove|status 저장소-볼트 target bridge 관리
|
|
83
|
-
oms
|
|
84
|
-
oms index sync|embed|repair|status|clean 파생 검색 상태 관리
|
|
34
|
+
oms contract setup|extract|status|doctor 볼트 계약 봉인, 조회, 진단
|
|
85
35
|
oms graph build|status 노트 그래프 생성 또는 조회
|
|
36
|
+
oms hook pre Claude 쓰기를 vault 계약으로 판정
|
|
86
37
|
oms host install|remove|sync|status 호스트 asset과 MCP 등록 관리
|
|
87
|
-
oms
|
|
38
|
+
oms index sync|embed|repair|status|clean 파생 검색 상태 관리
|
|
39
|
+
oms link suggest|check 노트 wikilink 제안 또는 검사
|
|
88
40
|
oms model install|select|waive|status 로컬 모델 선택 관리
|
|
41
|
+
oms note audit|get 노트를 계약으로 감사하거나 읽기
|
|
42
|
+
oms package check|update OMS 패키지 확인 또는 업데이트
|
|
43
|
+
oms search query|context 명시적 질의 실행 또는 구조화 context 조회
|
|
89
44
|
oms serve mcp|http stdio MCP 또는 로컬 HTTP 서버 시작
|
|
90
|
-
oms
|
|
91
|
-
oms status 읽기 전용
|
|
45
|
+
oms setup 볼트를 인터뷰하고 계약 봉인
|
|
46
|
+
oms status 읽기 전용 통합 상태 표시
|
|
92
47
|
```
|
|
93
48
|
|
|
94
|
-
`oh-my-second-brain
|
|
49
|
+
`oh-my-second-brain`이 전체 명령이고 `oms`는 짧은 별칭이다. 이 14개 family, 6개 스킬, 5개 MCP 도구는 서로 다른 집합이다. leaf 목록은 [CLI 맵](./docs/cli-map.md)에 있다.
|
|
95
50
|
|
|
96
51
|
### 도움말 계약
|
|
97
52
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
typed
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
Embedding은 명시적으로 `oms index embed`를 사용하며 sync와 repair는
|
|
106
|
-
서로 다른 index mode다. `oms index status --view status|collections|contexts`는
|
|
107
|
-
세 읽기 전용 view를 모두 보존하고, `oms index clean`은 제거 가능한 파생
|
|
108
|
-
상태를 정리한다.
|
|
109
|
-
|
|
110
|
-
Vector 검색에는 검증된 로컬 embedding capability가 필요하다. 선택 경로는
|
|
111
|
-
완전한 `OMS_EMBEDDING_PROVIDER`/`OMS_EMBEDDING_MODEL` 쌍, vault의
|
|
112
|
-
`.oms/models.json`과 검증된 설치 receipt, 또는 setup-installed default다.
|
|
113
|
-
HyDE에는 resolved generate capability가, reranking에는 resolved rerank
|
|
114
|
-
capability가 필요하다. 각각의 완전한 환경변수 쌍은
|
|
115
|
-
`OMS_GENERATE_PROVIDER`/`OMS_GENERATE_MODEL`과
|
|
116
|
-
`OMS_RERANK_PROVIDER`/`OMS_RERANK_MODEL`이다. 누락되거나 불완전하거나
|
|
117
|
-
설치되지 않은 선택은 크게 실패한다. G004
|
|
118
|
-
expansion은 명시적으로 사용할 수 있는 기능이며, 교체·parity·outperformance를
|
|
119
|
-
주장하지 않는다.
|
|
120
|
-
Setup에서는 로컬 검증 acquisition 정책 하나를 선택한다:
|
|
121
|
-
`--models-default`, `--models-descriptor <path>`, `--models-no-default`.
|
|
53
|
+
인식되는 모든 명령은 `--help`와 `-h`를 받으며, exit 0으로 끝나고 부작용이 없다. 알 수 없는 명령에 `--help`를 붙이면 exit 1이다.
|
|
54
|
+
|
|
55
|
+
일반 `oms search query <text>`는 lexical 전용이다. `--vec`와 `--hyde`는 각 채널을 선택하고, `--expand`는 G004 확장을 명시적으로 켜며, `--max-queries`는 1부터 32까지의 정수를 받고, `--rerank`는 opt-in이다. `oms search context`는 별도의 구조화 context 표면이다. embedding은 `oms index embed`이고 sync와 repair는 서로 다른 index 모드다. `oms index status --view status|collections|contexts`는 세 가지 읽기 전용 view를 유지하고, `oms index clean`은 제거 가능한 파생 상태를 지운다.
|
|
56
|
+
|
|
57
|
+
lexical, vector, HyDE, typed-axis 질의는 계약을 통과하지 못할 노트도 계속 포함한다. 계약이 없거나 손상되어도 검색은 멈추지 않는다. vector 검색에는 완전한 `OMS_EMBEDDING_PROVIDER`/`OMS_EMBEDDING_MODEL` 쌍이 필요하다. HyDE에는 `OMS_GENERATE_PROVIDER`/`OMS_GENERATE_MODEL`도 필요하다. reranking에는 `OMS_RERANK_PROVIDER`/`OMS_RERANK_MODEL`이 필요하다. 없거나 불완전하거나 설치되지 않은 선택은 크게 실패한다. G004 확장은 명시적으로 쓸 수 있는 기능이며 대체·동등·우월을 주장하지 않는다.
|
|
58
|
+
|
|
59
|
+
`oms note audit`는 기존 노트를 봉인에 비추어 판정하고 `{path, field, kind}` 항목을 보고한다. 노트를 다시 쓰지 않는다. create, append, update, backfill은 폐기된 노트 작업이다. link apply는 작업이 아니다. 폐기된 작업을 위한 노트 렌더러나 호환 경로는 없다.
|
|
122
60
|
|
|
123
61
|
## MCP 도구
|
|
124
62
|
|
|
125
|
-
`oms serve mcp`는 정확히 다섯 개의 공개 도구를
|
|
63
|
+
`oms serve mcp`는 정확히 다섯 개의 공개 도구를 노출한다.
|
|
126
64
|
|
|
127
65
|
`write` · `search` · `link` · `status` · `doctor`
|
|
128
66
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
쓰기는 하나의 `ResolvedTemplate`을 해석해 create, append, update를 수행한다. 템플릿 변경, projection 재생성, 한 노트 정체성 backfill은 검증된 target과 명시적 승인 digest가 필요하다. `status`와 모든 검색 동작은 읽기 전용이다.
|
|
67
|
+
6개 스킬(`distill`, `doctor`, `link`, `search`, `status`, `write`)은 호스트 workflow다. `distill`은 도구가 없다.
|
|
132
68
|
|
|
133
|
-
|
|
134
|
-
`interview-next`, `interview-answer`, `commit-contracts` mode를 사용한다.
|
|
135
|
-
정확한 CLI 대응은 `oms template review`, `oms template answer`,
|
|
136
|
-
`oms template commit`이다. answer는 서버가 반환한 question, request, CAS
|
|
137
|
-
field를 그대로 사용하며 parameter 이름을 만들지 않는다. 질문이 0개면
|
|
138
|
-
곧바로 최종 확인으로 간다.
|
|
69
|
+
다섯 도구는 스킬의 부분집합이며, 두 집합 모두 14개 CLI family와 다르다. 세부 기능은 다섯 도구 아래의 `op` 값으로 남는다. 봉인에는 MCP 작업도 스킬도 없다.
|
|
139
70
|
|
|
140
|
-
|
|
71
|
+
`write {path, content, template?}`는 노트 전체를 판정해 허용될 때만 저장한다. `template`은 선택 사항이며 노트가 따르는 봉인된 템플릿을 가리킨다. `status`와 모든 search 작업은 읽기 전용이다. `doctor` 도구는 봉인을 검증하고 노트를 감사하며 명시적인 index 유지보수를 실행한다. 노트를 backfill하지 않는다. 볼트 안에서 Claude의 기본 Write, Edit, MultiEdit, NotebookEdit는 `oms hook pre`를 통해 같은 판정자에 도달한다. Codex와 Hermes에는 쓰기 hook이 없으므로 MCP `write`로 쓴 노트만 판정된다.
|
|
141
72
|
|
|
142
73
|
## 설치
|
|
143
74
|
|
|
@@ -148,21 +79,12 @@ npm install -g oh-my-second-brain
|
|
|
148
79
|
oms host install --runtime all --vault /path/to/vault --yes
|
|
149
80
|
```
|
|
150
81
|
|
|
151
|
-
Gajae-Code에서는 npm 패키지를 marketplace plugin으로 설치한다: `gjc plugin install oms@oms`. GJC는 패키지 루트의 `skills/`
|
|
82
|
+
Gajae-Code에서는 npm 패키지를 marketplace plugin으로 설치한다: `gjc plugin install oms@oms`. GJC는 패키지 루트의 `skills/` 관례 경로에서 여섯 OMS 스킬을 찾는다.
|
|
152
83
|
|
|
153
|
-
호스트 설치는
|
|
154
|
-
`${XDG_CONFIG_HOME:-~/.config}/oms/vault.json`에 기록하고 각 관리형
|
|
155
|
-
등록에 `oms serve mcp --vault /path/to/vault`를 넣는다.
|
|
156
|
-
`oms host install|remove|sync|status`만 이 서명된 포인터로 호스트 통합을
|
|
157
|
-
관리한다.
|
|
158
|
-
`oms package update`는 패키지만 업데이트하고 호스트를 암묵적으로
|
|
159
|
-
동기화하지 않는다. `oms host sync`는 별도로 실행한다.
|
|
84
|
+
호스트 설치는 정식 볼트를 `${XDG_CONFIG_HOME:-~/.config}/oms/vault.json`에 기록하고, 관리하는 각 호스트 항목에 `oms serve mcp --vault /path/to/vault`를 새긴다. `oms host install|remove|sync|status`는 그 서명된 pointer를 호스트 통합 유지보수에만 쓴다. `oms package update`는 패키지를 업데이트하지만 호스트를 암묵적으로 sync하지 않는다. `oms host sync`를 따로 실행한다.
|
|
160
85
|
|
|
161
|
-
|
|
162
|
-
우선순위는 명시적 target, 로컬 볼트 control, bridge, `OMS_VAULT`, 그리고
|
|
163
|
-
안전한 읽기 전용 fallback으로서의 cwd 순서다. 변경 작업은 cwd fallback을
|
|
164
|
-
사용할 수 없다.
|
|
86
|
+
runtime target 해석은 호스트 유지보수 pointer를 읽지 않는다. 우선순위는 명시적 target, 로컬 볼트 제어 파일, bridge, `OMS_VAULT`, 그리고 안전한 읽기 전용 fallback으로서의 현재 디렉터리다. 봉인, 노트 쓰기, 파생 상태 repair는 그 fallback을 쓸 수 없다.
|
|
165
87
|
|
|
166
|
-
`OMS_VAULT`는 명시적·로컬·bridge target이 없을 때
|
|
88
|
+
`OMS_VAULT`는 명시적·로컬·bridge target이 없을 때 지원되는 환경 변수 fallback이다.
|
|
167
89
|
|
|
168
|
-
|
|
90
|
+
[설치](./docs/install.md), [아키텍처](./docs/architecture.md), [컨벤션](./docs/conventions.md), [CLI 맵](./docs/cli-map.md), [호스트 asset](./docs/adapters.md), [검증 대상](./docs/verified-target.md)을 참고한다.
|