okf: Bundle.init/open/join lifecycle API + first-contact doc pack (ADR-007/008) - #54
Open
indexzero wants to merge 4 commits into
Open
okf: Bundle.init/open/join lifecycle API + first-contact doc pack (ADR-007/008)#54indexzero wants to merge 4 commits into
indexzero wants to merge 4 commits into
Conversation
Nine decision records distilled from the six-agent confusion experiment: path-scoped ingest, status command, ingest report split, materialize exit codes, oversize preflight, wrong-tool guardrail, the first-contact doc pack, the Bundle lifecycle API, and the okf v0.2 alignment migration. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nVault/joinVault wrappers (ADR-008) The class is the sole lifecycle entry point: store/lib/vault.js -> store/lib/bundle.js, class Vault -> Bundle, and the three one-line free functions are gone. compact's injected store factory follows (opts.initVault -> opts.initBundle, COMPACT_NO_INITVAULT -> COMPACT_NO_INITBUNDLE). All in-repo callers, tests, examples, and the three README headline snippets swept to the Bundle API. Residual 'vault' vocabulary (okf-vault.json, CLI strings, <vault-dir>, GLOSSARY, SPEC prose) is deliberately untouched — ADR-009's scope. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…link auto-okf bin (ADR-007) - faces + cli READMEs gain 'Verifying content is in the log': the emission manifest (.okf-manifest.json) is per-target-directory, so a scratch-dir materialize never disturbs another bundle — an empty dir that fills is proof the content is in the log (ADR-007 item 1). - top-level packages/ removed — untracked scaffold (empty dirs + stray node_modules, outside the workspace globs), so this is filesystem-only (ADR-007 item 3). - .bin symmetry: root devDependencies now carries @auto-okf/cli like @autovault-ld/cli, and bin/auto-okf.js becomes executable (100755, as autovault-ld's bin already was) — node_modules/.bin now links both (ADR-007 item 4). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Maintainer approved the full set 2026-08-01; statuses flipped Proposed -> Accepted. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Aug 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The first PR of a three-PR stack implementing the accepted ADR set (
okf/docs/decisions/ADR-001…009), which distills a six-agent concurrent-writer usability experiment (the "confusion log") into features. This PR carries the decisions themselves plus the two zero-behavior-risk implementations everything else builds on.Bundle.init/open/join: theinitVault/openVault/joinVaultfree-function wrappers are deleted; the store class (renamedVault→Bundle,store/lib/vault.js→bundle.js) is the sole lifecycle entry point. Rationale: the wrappers were a second vocabulary for one operation (the source of a first-contact confusion), and upstream OKF v0.2 defines the bundle as the unit of distribution — no vault concept exists in OKF. vault-ld is untouched:Vault.{init,open,join}is already its shape and the correct noun for its ontology. Residual "vault" vocabulary inside okf (marker file, CLI strings,<vault-dir>args, GLOSSARY) is deliberately deferred to ADR-009 so that migration happens once, alongside the v0.2 conformance audit.packages/removed;@auto-okf/cliwired into root devDependencies soauto-okflinks into.binalongsideautovault-ld(bin mode fixed 644 → 755).Verification
grep -rn 'initVault|openVault|joinVault' okf/(excl. node_modules, decisions) → emptyokf/store/index.jsexportsBundle; noVaultexport remains in okfpnpm test:okf→ 125/125;pnpm test:okf-harness:clean→ 12/12node_modules/.bin/now carries bothauto-okfandautovault-ldNotes for review
compact's injected factory option renamedopts.initVault→opts.initBundle(error codeCOMPACT_NO_INITVAULT→COMPACT_NO_INITBUNDLE); no test asserted the old code.import()of the store insidefaces-materialize.test.jsshadowed the top-level import (TDZ); the redundant dynamic import is dropped.Stack: PR 2 (ADR-003/004/005/006 — CLI reporting honesty batch) and PR 3 (ADR-001/002 — path-scoped ingest +
status) follow on this branch. ADR-009 (OKF v0.2 alignment) is tracked as an issue, not a PR.