sica-fondt/core/docs/plans/E1-gnucobol-invariant.md
Claude b6bcab794f
Reorg step 1: consolidate repo under core/, drop the mafiabot label
Mechanical structure-only pass (no document/guide content edits):

- Move src/ichor, src/endocrine, and docs/ into core/; the old top-level
  mafiabot_core/ becomes core/. Everything now lives under a single core/ root.
- Drop the "mafiabot" label from the Ada/Alire crate: core.gpr (project Core),
  alire.toml name = "core"; the generated *_config.* regenerate as core_config.*.
- Repoint build-critical wiring only:
  - .claude/skills/run-sica-fondt/smoke.sh (ponyc + Ada + COBOL paths)
  - core/src/endocrine R source()/runner paths and the test glob
  - .github/workflows/ci.yml (working-directory + gpr name)

Verified green: smoke ALL GREEN (Pony Ichor, Ada core crate + tests, COBOL E1
vault); R endocrine 14/0; Octave ETR 26/0/1.

Deferred (reserved for a less-ephemeral doc/guide pass): docmap.yaml, the guide
files and nested AGENTS.md/README prose + now-stale relative links, SOUL.md, and
the deeper ring/storage restructure.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015hmgREHNsxYCuim33yUF2c
2026-06-23 07:46:47 +00:00

2.0 KiB

E1 — The 3 GnuCOBOL invariant stores (DESIGN-FIRST)

1. Component

The foundational non-shifting memory layer: three GnuCOBOL stores — sparse, fixed-format, write-only-at-downtime, built to outlive the model. The bedrock the rest of memory sits on.

2. Status / certainty

DESIGN-FIRST · store-format C5 (GnuCOBOL chosen), but the 3 roles + contents are C1 (skeletal — arch §10 said "contents more complex than modeled"). What the three stores ARE needs confirmation.

3. Language & location

GnuCOBOL · new location e.g. src/invariant/ (three programs/copybooks).

4. Does / does-not

  • Does: hold the invariant core(s) in fixed-format records; admit writes only at downtime; serve reads.
  • Does-not: hold shifting state (that's VARIANT E2 / RAG E3) or compute (it's storage).

5. Interface contract (proposed)

  • Three fixed-format record sets (copybooks), one per store. read(store, key) -> record ; write(store, record) gated to downtime only (per arch §10).
  • Sits behind Ada (D1); writes carry provenance.

6. Dependencies & stubs

None upstream. Consumers (Eth-Int memory-derivative A7, priors A5, VARIANT E2) read it — stub: an in-memory fixed-format map until the COBOL programs exist.

7. Invariants / laws

  • L1 (C5): write-only-at-downtime — no mid-run mutation of the invariant core.
  • L2 (C5): sparse, fixed-format, model-outliving (survives a Brain swap).
  • L3 (C4): all writes carry provenance (D1).

8. Build steps

  1. Confirm the 3 stores' roles (the blocking question — see Open). 2. Define the three copybooks.
  2. Implement read + downtime-gated write. 4. Wire consumers (A5/A7/E2) via stubs first.

9. Tests

Downtime-write gate (rejects mid-run write); fixed-format round-trip per store; read-after-downtime-write.

10. Open items

  • What are the 3 GnuCOBOL stores? (roles/division of the invariant core) — needs Anja's call (C1).
  • Exact record schemas (C1). Downtime definition / trigger (C1).