mirror of
https://github.com/SHOGGOTH-SECTOR/sica-fondt.git
synced 2026-07-31 08:06:26 +00:00
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
43 lines
2.1 KiB
Markdown
43 lines
2.1 KiB
Markdown
# B2 — SOUL.md identity organ + Big-3
|
|
|
|
## 1. Component
|
|
The standing self-definition loaded at the top of a run (Hermes `soul.md` / `CLAUDE.md` equivalent):
|
|
the **Big-3** (Sun/Ascendant/Moon) drawn from the tarot (B1), plus the **two reshuffle clocks** that
|
|
govern when identity re-rolls vs persists.
|
|
|
|
## 2. Status / certainty
|
|
Exists in Ada (`organs/soul/soul-state.{ads,adb}` — Big-3 + session table) but **defunct-flagged**;
|
|
re-home decision open. Schema C4.
|
|
|
|
## 3. Language & location
|
|
TBD (lives "in the brain"; written to `~/.hermes/SOUL.md` at boot by C1). New location e.g. `src/soul/`.
|
|
|
|
## 4. Does / does-not
|
|
- **Does:** hold the Big-3 (each card → its own reference doc); render SOUL.md; manage the two
|
|
reshuffles; carry one self into many rooms.
|
|
- **Does-not:** draw cards (B1) or run the metacog (C2). It is the persistent face.
|
|
|
|
## 5. Interface contract
|
|
- **Big-3:** `{ Sun: card (core/spine), Ascendant: card (outward mask), Moon: card (inner, shown only when vulnerable) }`, **immutable between reshuffles**.
|
|
- `generate_soul_md(big3) -> text` (written to `~/.hermes/SOUL.md`).
|
|
- **Two reshuffles:** `full_renatal()` (boot · deep · **strong stress endomotiv** via G1) → Big-3 **re-rolled** + fresh cross;
|
|
`cross_only(trigger)` (new room · "went long enough") → Big-3 **kept**, prior cross folded back, new cross.
|
|
|
|
## 6. Dependencies & stubs
|
|
B1 tarot (draws) — *stub:* fixed Big-3. G1 stress (full-reshuffle trigger) — *stub:* call `full_renatal()` directly.
|
|
|
|
## 7. Invariants / laws
|
|
- **L1 (C4):** Big-3 immutable between reshuffles (identity is the slow layer).
|
|
- **L2 (C4):** full reshuffle re-rolls Big-3; cross-only keeps it — one self, many rooms.
|
|
- **L3 (C2):** a strong stress endomotiv (G1) can fire a full reshuffle.
|
|
|
|
## 8. Build steps
|
|
1. Decide language/re-home. 2. Port Big-3 + SOUL.md render. 3. Implement the two reshuffle clocks +
|
|
the G1 trigger hook. 4. Wire boot write to `~/.hermes/SOUL.md` (C1).
|
|
|
|
## 9. Tests
|
|
Big-3 immutability across a cross-only reshuffle; re-roll on full; SOUL.md render snapshot.
|
|
|
|
## 10. Open items
|
|
- Reuse-vs-rebuild + language (open). "Went long enough" trigger threshold (C1). G1 stress→reshuffle threshold (C1/C2).
|