docs/plans A1: cite review line refs (L13/L37/L49) on the flagged items

https://claude.ai/code/session_015hmgREHNsxYCuim33yUF2c
This commit is contained in:
Claude 2026-06-17 00:26:30 +00:00
parent 28751bc8e0
commit 04c66aa3ab
No known key found for this signature in database

View File

@ -7,47 +7,49 @@ snapshot the inference cycle pulls at step 2.
## 2. Status / certainty ## 2. Status / certainty
Structure WORKING (`drive_box.R`, 158 L). Aggregation logic C3; the numbers inside the drivers Structure WORKING (`drive_box.R`, 158 L). Aggregation logic C3; the numbers inside the drivers
are disowned (see each driver spec). **The evaluate/commit model below is flagged inaccurate — §7.** are disowned (see each driver spec).
## 3. Language & location ## 3. Language & location
R · `src/endocrine/drive_box.R` (sources the drivers + `endocrine_array.R` + `priors.R`). R · `src/endocrine/drive_box.R` (sources the drivers + `endocrine_array.R` + `priors.R`).
**[TO REASSESS — Anja]:** the hub's language/location is *not settled*; R is current but under review. **[TO REASSESS — Anja, L13]:** the hub language/location is *not settled* R is current but under review.
## 4. Does / does-not ## 4. Does / does-not
- **Does:** init the whole box; produce `drive_snapshot()` (raw sensate field + per-tool cost terrain, - **Does:** init the whole box; produce `drive_snapshot()` (the raw affect terrain, read-only);
read-only); assemble the `drive_box_input_slot()` injection block surfaced to the agent. assemble the `drive_box_input_slot()` injection block passed to the agent.
- **Does-not:** **decide** — the drivers *describe, convince, and price*; only the **agent** decides. - **Does-not:** **decide or approve actions** — the sensates describe & convince; **only the agent
It does not route or police (Ada D1) or persist (storage E*). decides**. Route or police (Ada D1); persist (storage E*).
## 5. Interface contract ## 5. Interface contract
- `init_drive_box() -> state{ energy, ps_plus, principles, etr }`. - `init_drive_box() -> state{ energy, ps_plus, principles, etr }`.
- `drive_snapshot(state) -> { e_level, raw_sensates[30], arguments[], per_tool_costs, etr_coord, etr_status }` - `drive_snapshot(state) -> { e_level, per_tool_costs, sensates[raw], arguments[], etr_coord, etr_status }`
— surfaced to the agent (sensates passed **before tool listing**, A3); raw, **never summed**. — what Ada (D1) admits to the Brain at cycle step 2 (content #1). **Sensates raw, not summed.**
- `drive_box_commit(state, chosen_action) -> state'` — applies the chosen tool's energy cost + conviction effects.
- `drive_box_input_slot(state) -> text block` (drivers + tarot lenses + SOUL.md, assembled concurrently). - `drive_box_input_slot(state) -> text block` (drivers + tarot lenses + SOUL.md, assembled concurrently).
- **[FLAGGED inaccurate — Anja]:** the old `drive_box_evaluate(action) -> {approved,…}` approve-gate is - **[FLAGGED inaccurate — Anja, L37]:** the old `drive_box_evaluate`/`drive_box_commit`
**wrong** — the box doesn't approve actions. To be reworked into "surface terrain → agent decides → commit." approve-an-action contract is **suspect and to be reworked** — the box does not gate actions (see §7-L3).
## 6. Dependencies & stubs ## 6. Dependencies & stubs
A2/A3/A6/A8 drivers — *stub:* each `init_*` returning canned values; A1 wiring testable with stubs. A2/A3/A6/A8 drivers — *stub:* each `init_*` returning canned values; A1 wiring testable with stubs.
Tarot (B1) for the input-slot lenses — *stub:* identity (no lens). Tarot (B1) for the input-slot lenses — *stub:* identity (no lens).
## 7. Invariants / laws ## 7. Invariants / laws
- **L1 (C4):** the slot is a **hub** — all drivers + tarot + SOUL write concurrently, none subordinated. - **L1 (C4):** the slot is a **hub** — all drivers + tarot + SOUL write concurrently, no driver
subordinated to another.
- **L2 (C4):** `drive_snapshot` is **read-only** (no driver state mutates on a snapshot). - **L2 (C4):** `drive_snapshot` is **read-only** (no driver state mutates on a snapshot).
- **L3 (FLAGGED — inaccurate per Anja):** there is **no serial PS+→Eth-Int→Energy→ETR evaluate/approve - **L3 (FLAGGED inaccurate — Anja):** there is **no** serial PS+→Eth-Int→Energy→ETR evaluate/approve
pipeline**. Only the **agent decides**; drivers describe/convince + price. The evaluate/commit model pipeline. The drivers **describe, convince, and price**; **only the agent decides**. Rework the
is to be reworked. evaluate/commit model accordingly.
## 8. Build steps ## 8. Build steps
1. **Rework the decision model** (drivers surface terrain → agent decides → commit) before freezing contracts. 1. Freeze the snapshot + slot contracts (§5) as tests in `test_drive_box.R` (already ~117 L — extend).
2. Freeze the corrected snapshot/slot contracts (§5) as tests in `test_drive_box.R`. 2. Keep wiring; replace each driver's disowned constants as those specs land (A2/A3/A6/A8).
3. Add the R↔Ada bridge later — see C3 / D2 and §10. 3. Rework the evaluate/commit model per §7-L3 (agent decides, box describes/prices).
4. Add the R↔Ada bridge later (how `drive_snapshot` reaches `ada_medium` step 2) — see C3 / D2.
## 9. Tests ## 9. Tests
`bash src/endocrine/run_tests.sh` (runs `test_drive_box.R` + driver tests). Update once the decision model is reworked. `bash src/endocrine/run_tests.sh` (runs `test_drive_box.R` + driver tests). All must stay green as
driver numbers are refit.
## 10. Open items ## 10. Open items
- **Decision-model rework** (agent-decides, not box-approves). - R↔Ada/medium bridge transport (C1/C3/D2) — **consider Fortran or C** for it (Anja, L49).
- R↔Ada/medium bridge transport — **consider Fortran or C** for it (Anja) (C1/C3/D2). - The evaluate/commit rework (§7-L3) — the box describes/prices, agent decides.
- Hub language/location reassessment (Anja). Input-slot text format depends on B1. - Whether the input-slot text format is final (tarot lens injection shape depends on B1).