mirror of
https://github.com/SHOGGOTH-SECTOR/sica-fondt.git
synced 2026-07-31 16:16: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
48 lines
2.6 KiB
Markdown
48 lines
2.6 KiB
Markdown
# A7 — Conviction array *(sub-organ of Eth-Int)*
|
|
|
|
## 1. Component
|
|
The lattice Eth-Int reads: the set of active principles with their convictions, **semantic-isomorphy
|
|
tags**, and **stress-driven shift-rates**. The structural self that defines the agent's integrity,
|
|
and the thing the SAE checks outputs against in the G1 stress loop.
|
|
|
|
## 2. Status / certainty
|
|
DESIGN-FIRST (extends today's flat principle list in `driver_ethical_integrity.R`). Tags + shift-rates
|
|
are new — C2/C1.
|
|
|
|
## 3. Language & location
|
|
R · new module under `src/endocrine/` (e.g. `conviction_array.R`), consumed by A6.
|
|
|
|
## 4. Does / does-not
|
|
- **Does:** hold principle entries with conviction + isomorphy tags + per-entry shift-rate; expose the
|
|
**top convictions** for SAE matching (G1); apply hardening and stress-modulated shift-rate changes.
|
|
- **Does-not:** evaluate cost (A6 does that) or detect opposition (SAE F2 does); it is the data + its update rules.
|
|
|
|
## 5. Interface contract
|
|
- **Entry:** `{ id, conviction(0..1), antithesis[], isomorphy_tags[], shift_rate }`.
|
|
- `top_convictions(array, n) -> [entry]` (what SAE matches outputs against, G1 step 2).
|
|
- `harden(array, ids, load) -> array'` · `set_shift_rate(array, delta_from_stress) -> array'`.
|
|
- The **memory-derivative** rule: convictions are computed from memory-weighted entries (per arch §6) —
|
|
shape = "complex entries with memory-weighted shifting numerics," same family as PS+'s priors stray.
|
|
|
|
## 6. Dependencies & stubs
|
|
SAE (F2) feeds opposition events; stress endomotiv (A4/G1) feeds shift-rate deltas — *stub:* call
|
|
`set_shift_rate` directly. Memory source (E2) for the derivative — *stub:* in-memory seed entries.
|
|
|
|
## 7. Invariants / laws
|
|
- **L1 (C2):** every conviction carries ≥1 **semantic-isomorphy tag** (so SAE can match outputs to it).
|
|
- **L2 (C2):** under G1 stress, **shift-rates increase** (convictions move faster — harden or revise).
|
|
- **L3 (C3):** hardening is bounded (→1.0, diminishing); convictions never exceed [0,1].
|
|
- **L4 (C1):** the memory-derivative formula (how memory weights produce the live conviction) — undefined.
|
|
|
|
## 8. Build steps
|
|
1. Define the entry record + tag vocabulary; encode L1/L3 as tests. 2. Add shift-rate mechanics +
|
|
the G1 hook (L2). 3. Define the memory-derivative (L4) once E2 storage lands. 4. Migrate A6 to use it.
|
|
|
|
## 9. Tests
|
|
`Rscript src/endocrine/test_conviction_array.R` (new) — L1 (tags present), L2 (stress↑ → shift-rate↑), L3 (bounds).
|
|
|
|
## 10. Open items
|
|
- **Isomorphy tag vocabulary** + how SAE matches outputs to it (C2, shared with F2/G1).
|
|
- The **memory-derivative formula** (C1).
|
|
- Shift-rate response curve to stress (C1).
|