Repository navigation
feat(store): M1 invoke slice — pure-Zig voc store with honest gate (ADR-0002) - #13
Conversation
…DR-0002) The first real vocarium implementation. Owner ruling 2026-07-28: pure Zig, wire boundary, NO C — the store's only contract is Trope IR v0.2 JSON over process I/O; tropecheck is the verifier. - src/store/: the voc executable. Append-only JSONL replay into in-memory indexes; warrant-door validation (an edge citing no/unknown warrant is refused at exit 2 — EXPLAINME falsifiability item 7); voc invoke emits the IR Document for the path into a trope under a named use-model. Grades and floors are carried opaque — vocarium never interprets the grading algebra. - tests/e2e/invoke_slice.sh: the honest gate. Tool-pin hard asserts BEFORE tests (zig version vs .tool-versions; tropecheck built from pinned SHA 69221ad6); then zig build test, canonical ingest, the use-relativity pair (casual-note -> p-sufficient exit 0 AND critical-paraphrase -> p-insufficient exit 1 with witness=e_paraphrase), and the unwarranted-edge refusal. Falsifiers verified: missing tropecheck and zig-pin skew both fail the gate loudly. - .github/workflows/vocarium-ci.yml: the gate in CI; self-contained steps, SHA-pinned actions (repo has sha_pinning_required). - Scaffold cure per ADR-0002: deleted src/interface/ (C-ABI shim template, wrong shape by ruling), abi.ipkg, template test machinery, validate-template.sh, docs-template/; CLAUDE.md identity corrected from rsr-template-repo to vocarium + architecture section; Justfile build/test/e2e/gate now run real zig commands (were echo-pass fakes); README gains an honest Status section. - examples/vocarium-ingest.jsonl: the README's worked example as the canonical fixture (authentic language -> real language, Attenuated(6)). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
| @@ -0,0 +1,55 @@ | |||
| // SPDX-License-Identifier: CC-BY-SA-4.0 | |||
|
|
Note Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime. Code Review ✅ Approved 2 resolved / 2 findingsImplements the M1 invoke slice with a pure-Zig JSONL voc store and honest gate according to ADR-0002, but introduces a critical use-after-free bug in store aliases and a minor hardcoded Zig version issue in CI. ✅ 2 resolved✅ Quality: CI hardcodes Zig version instead of reading .tool-versions
✅ Bug: Store aliases freed file buffer (use-after-free)
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |



What
The first real vocarium implementation, per the approved 2026-07-28 plan and owner rulings: pure Zig, wire boundary, no C.
voc(src/store/): append-only JSONL store replayed into in-memory indexes.voc ingestvalidates (the warrant door: any edge citing a missing/unknown warrant is refused at exit 2 — EXPLAINME's falsifiability item, 'unwarranted substitutions').voc invoke --use-model <id> <trope>emits a Trope IR v0.2 Document — the wire contract; grades/floors pass through opaque because the grading algebra belongs to trope-checker, never here.tests/e2e/invoke_slice.sh,just gate,vocarium-ci.yml): tool-pin hard-asserts before any test (zig exact-version vs.tool-versions; tropecheck-rs built from pinned SHA69221ad6), then unit tests, canonical ingest, and the use-relativity proof: the same stored trope (README's 'authentic language' → 'real language', quality Attenuated(6)) must bep-sufficient(exit 0) undercasual-noteandp-insufficient(exit 1,witness=e_paraphrase coord=fate.quality) undercritical-paraphrase. Neither an empty store nor a stubbed path can pass both. Negative case: unwarranted edge → exit 2.src/interface/,abi.ipkg), template test machinery,validate-template.sh,docs-template/. CLAUDE.md identity corrected (was claimingrsr-template-repo). Justfilebuild/test/e2ewere echo-pass fakes — now real zig commands.docs/decisions/): the ruling and its consequences, including the only sanctioned future linkage path (Zigexport fn, still zero C source).Verified locally (evidence, not claims)
just gate→GATE PASS(full path incl. clone+build of tropecheck at pin).TROPECHECK_BIN=/nonexistent→GATE FAIL: tropecheck binary not executable(exit 1)..tool-versionspin altered →GATE FAIL: zig version skew(exit 1).zig fmt --checkclean; 6/6 unit tests.Follow-ups (out of M1 scope, tracked in plan)
hermeneia_store::StoreProviderby drivingvoc.{{PROJECT*}}template placeholders (docs/config, not code) — estate RSR-cure scope..machine_readable/identity (uuid/clade) still template-minted; needs cure +just claude-mdregeneration.🤖 Generated with Claude Code