diff --git a/CLAUDE.md b/CLAUDE.md index 5b8393b..6c98d62 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -12,8 +12,9 @@ v-stdlib is **VistA-specific** (needs Kernel/FileMan/KIDS). The waterline rule - **Dependency is one-way: `v → m`.** A `VSL*` routine MAY call an `STD*` routine; an `STD*` routine MUST NOT call a `VSL*` routine. Never invert it. -- Layer is declared in `dist/repo.meta.json` (`"layer": "v"`) and enforced by - `m arch check` (G1). v-stdlib passes G1 trivially but must keep the tag. +- Layer is declared in the root `repo.meta.json` (`"layer": "v"`) and enforced + by `m arch check` (G1–G4 + meta-shape). v-stdlib passes G1/G2 trivially but + must keep the tag and a well-formed meta. - VistA vocabulary (FileMan globals, KIDS, XPAR, Broker) lives **here**, never below the waterline in m-stdlib. diff --git a/Makefile b/Makefile index 4eb53c6..22772ad 100644 --- a/Makefile +++ b/Makefile @@ -30,9 +30,9 @@ fmt-check: lint: $(M) lint --check $(SRC) $(TESTS) -# m/v waterline G1 gate (dependency-direction). v-stdlib is layer v -# (dist/repo.meta.json); it passes G1 trivially (v -> m is allowed) but must -# declare its layer so the gate runs everywhere with no exception. +# m/v waterline gates. v-stdlib is layer v (root repo.meta.json); it passes +# G1/G2 trivially (v -> m, and VistA above the line, are allowed) but must +# declare its layer so the gates run everywhere with no exception. arch: $(M) arch check . diff --git a/docs/memory/MEMORY.md b/docs/memory/MEMORY.md new file mode 100644 index 0000000..0c94bd5 --- /dev/null +++ b/docs/memory/MEMORY.md @@ -0,0 +1,5 @@ +# v-stdlib — per-repo memory index + +One line per memory file. Content lives in the files, not here. + +- [meta-root + owed VSLSEED filer](meta-root-and-owed.md) — layer declared in **root `repo.meta.json`** (migrated off `dist/` 2026-06-15, Phase B item 1); the owed `fileViaDie^VSLSEED` FileMan filer (re-homed from m-stdlib STDSEED per the G2 waterline decision) lands here when a v-layer seeding consumer needs it. diff --git a/docs/memory/meta-root-and-owed.md b/docs/memory/meta-root-and-owed.md new file mode 100644 index 0000000..ab74c79 --- /dev/null +++ b/docs/memory/meta-root-and-owed.md @@ -0,0 +1,23 @@ +--- +name: meta-root-and-owed +description: v-stdlib declares its layer in root repo.meta.json (migrated off dist/); the owed fileViaDie^VSLSEED FileMan filer lands here +metadata: + type: project +--- + +**Meta location (Phase B item 1, 2026-06-15):** v-stdlib's layer tag lives in +the **root `repo.meta.json`** (`"layer": "v"`), migrated off `dist/repo.meta.json` +now that `m arch check` reads the meta root-first. The meta must keep the four +required fields (id, layer, language, verification_commands) — `m arch check` +validates the shape (`Gate:"META"`). v-stdlib passes G1/G2 trivially (v → m, and +VistA above the line, are allowed) and runs G3/G4 + meta like every repo. + +**Owed — `fileViaDie^VSLSEED`:** when m-stdlib's STDSEED was made engine-neutral +for the waterline G2 (the FileMan default filer `do FILE^DIE` removed; filer now +required), the FileMan-backed filer was re-homed to the **v layer** here as +`fileViaDie^VSLSEED`. It is **not yet implemented** — deferred because (a) no +v-layer seeding consumer exists yet, and (b) a real test needs a live FOIA VistA +(FileMan isn't on the bare m-test engines). Land it with its first consumer or as +a dedicated FOIA-up increment. m-stdlib's `docs/modules/stdseed.md` + the org +docs `docs/vsl-msl/` already forward-reference the name. See m-stdlib memory +`stdseed-g2-engine-neutral`. diff --git a/dist/repo.meta.json b/repo.meta.json similarity index 100% rename from dist/repo.meta.json rename to repo.meta.json