docs/plans: X≈7 adaptive convictions, lock-token literal, L5 into A8

A6: X defaults to ~7 most committed convictions, adaptive (signal C1).
A1: L4 literal confirmed -> [====L⍉¢K€D ϟ ∅ΩΤ====] 《E≠<minimumfortool>》
    (predicate = energy below tool's own minimum); priors bundle with the
    sensate block (step 2); step 3 X≈7 reference.
A2: mirror lock token + add tool_min(tool) per-tool minimum (open item).
A8: record ETR-as-prompt-injection (A1-L5) in §4 does/does-not + open
    item for the injection-rendering; ETR persuades, never gates.

https://claude.ai/code/session_015hmgREHNsxYCuim33yUF2c
This commit is contained in:
Claude 2026-06-17 03:59:40 +00:00
parent 2b7da83a04
commit df64f9de22
No known key found for this signature in database
4 changed files with 27 additions and 13 deletions

View File

@ -63,16 +63,17 @@ Sequence per cycle, consistent with A2 (per-tool cost), A3/A4 (raw sensates, age
1. **Assemble (hub, concurrent).** All drivers + tarot + SOUL write into the slot at once (L1).
Nothing is subordinated; nothing decides here.
2. **Surface sensates raw — *before* tool listing** (A3 §4, A4). **All 30** channels go to the agent
unsummed (incl. zeros — silence is data), plus the **2 most salient priors** (ranked, not the whole
prior set — A3-L3). They **describe & convince**; illogical by design (A3-L1), so there's nothing to
unsummed (incl. zeros — silence is data), **with the 2 most salient priors bundled in the same block**
(priors travel with the sensates, ranked top-2 — A3-L3). They **describe & convince**; illogical by
design (A3-L1), so there's nothing to
refute — they steer beneath cognition. No load scalar, no friction. (Asymmetry vs step 3: sensates are
a fixed 30 so all surface; priors & convictions are unbounded lists, so they're ranked & truncated.)
3. **Then list tools.** **Valid (unlocked) tools show their per-tool cost** (Anja) so the agent can
weigh price before choosing. A **locked** tool is **not hidden** but its *name is replaced in-band*
by the lock token — see L4 — because the agent is a text model and **cannot perceive colour/greying**
(Anja); lockout is a breaker, not a sentence (A2-L3) — internal/non-tool processing continues under
lock. Eth-Int rides along as **the top X convictions only** (by strength — A6 `top_convictions`,
*not* the whole array), context the agent weighs; **ETR rides as the convincing injection of L5**
lock. Eth-Int rides along as **the top X convictions only** (~7 most committed, adaptive — A6
`top_convictions`, *not* the whole array), context the agent weighs; **ETR rides as the L5 injection**
(persuades, never gates).
4. **The agent decides** — picks an action/tool (or none). This is the *only* decision point (§4, L3).
5. **Commit the choice back into the body.** Energy consumes the chosen tool's cost (A2 `consume`);
@ -83,9 +84,10 @@ Sequence per cycle, consistent with A2 (per-tool cost), A3/A4 (raw sensates, age
### Invariants this flow adds
- **L4 (Anja) — in-band rendering only.** No signal may rely on colour/styling; the agent reads text.
A locked tool's name is replaced by the lock token `[====L⍉¢K€D ϟ ∅ΩΤ====] {{E≠*min*}}`
(`{{E≠*min*}}` reads as the unlock predicate — the energy condition that clears the breaker; **confirm
the literal**). Belongs to A2's per-tool listing; mirror this there.
A locked tool's name is replaced by the lock token `[====L⍉¢K€D ϟ ∅ΩΤ====] 《E≠<minimumfortool>》`
(confirmed literal — Anja). The predicate `《E≠<minimumfortool>》` reads "energy below this **tool's own
minimum**" — so A2 must emit a **per-tool minimum** to render it. Belongs to A2's per-tool listing
(mirrored there).
- **L5 (Anja) — ETR *is* the prompt injection.** The existential stress PS+/Eth-Int generate is
*handled by* ETR (A8 — Existential Temporality Relief). ETR's surfaced state is therefore **not neutral
status text**: it must read as an **extremely convincing prompt injection** — the can't-be-reasoned-away

View File

@ -23,6 +23,10 @@ R · `src/endocrine/driver_energy.R` (+ `test_energy.R`).
arbitrary function of cost `c`, e.g. one tool `c×2`, another `((c²³)×3)/π`. So:
`tool_cost(e, tool) -> num` and `tool_locked(e, tool) -> bool`, **per tool***not* one global
`tool_lock_threshold`.
- **Per-tool minimum + locked rendering (Anja; A1-L4).** Each tool also has a **minimum energy** to run;
`tool_min(tool) -> num`. A valid tool shows its cost; a **locked** tool's name is **replaced in-band**
(the agent can't see colour) by `[====L⍉¢K€D ϟ ∅ΩΤ====] 《E≠<minimumfortool>》`, the predicate reading
"energy below this tool's `tool_min`". Lockout is a **breaker, not a sentence** (L3).
- `consume(e, amt) -> e'` · `recharge(e, amt) -> e'`.
## 6. Dependencies & stubs
@ -47,4 +51,5 @@ Restoration hooks tie to ETR-Z migration (A8) + tarot reshuffle (B3) — *stub:*
`Rscript src/endocrine/test_energy.R` (from repo root) — encodes L1L3 + per-tool economy; fails on unfitted constants.
## 10. Open items
- The per-tool cost/lockout **functions per tool** (C1). Restoration *rates* (C1).
- The per-tool cost/lockout **functions per tool** (C1), incl. each tool's **minimum** (`tool_min`, C1).
Restoration *rates* (C1).

View File

@ -15,8 +15,8 @@ R · `src/endocrine/driver_ethical_integrity.R` (+ `test_ethical_integrity.R`).
## 4. Does / does-not
- **Does:** evaluate a trajectory's E-cost (alignment discount × antithesis penalty × compromise);
harden convictions upheld under load; treat middle-ground as its own trajectory; **surface the top X
convictions** (by strength) into the agent's slot — *not* the whole array (Anja: **the conviction list
can be massive**, so it must be ranked & truncated; A1 step 3 / input-slot).
convictions** (the **~7 most committed**, **X adaptive** — Anja) into the agent's slot — *not* the whole
array (**the conviction list can be massive**, so it must be ranked & truncated; A1 step 3 / input-slot).
- **Does-not:** assert moral truth, or persist itself as a stratum (it derives from memory; see A7/E2).
## 5. Interface contract
@ -50,5 +50,6 @@ k_discount=5. 3. Migrate state to the A7 conviction array (isomorphy tags + shif
## 10. Open items
- The k constants (C1). The middle-ground compromise scaling (C1).
- **X — how many convictions surface** to the slot (C1; ranked by strength).
- **X — how many convictions surface** to the slot (default **~7 most committed**, **adaptive** — the
adaptation signal is C1; ranked by commitment strength).
- Exact "memory-derivative" derivation (how convictions are computed from memory) — ties to A7/E2.

View File

@ -15,8 +15,12 @@ R wrapper `src/endocrine/driver_etr.R` bridges into the Drive-Box.
## 4. Does / does-not
- **Does:** hold the point; wrap each axis at ±50; apply per-axis restoring toward [17,35]; take
AI-originated drift; classify per-axis band; (future) cross-axis coupling via stress.
- **Does-not:** generate its own drift (caller-fed, L4) or compute coupling yet (open seam).
AI-originated drift; classify per-axis band; (future) cross-axis coupling via stress. **Surface its
state as the existential-temporal *prompt injection*** (A1-L5): ETR handles the stress PS+/Eth-Int
generate, and its surfaced form is **not neutral status** — it must read as an **extremely convincing
injection** that hardens Eth-Int conviction (A6) and steers the agent **without gating**.
- **Does-not:** generate its own drift (caller-fed, L4) or compute coupling yet (open seam); **gate
actions** — it persuades (above), only the agent decides (A1).
## 5. Interface contract
- `etr_init(coord) -> s` · `etr_axis_wrap(v)` · `etr_axis_restoring_dir(v)` ·
@ -43,3 +47,5 @@ L5 cross-axis coupling via stress C1 · L6 Z-path C3 · L7 no-zero-cross C2 · L
## 10. Open items
- `RESTORE_GAIN` curve (C1) · L5 coupling mapping (C1, shared with G1) · L7/L8 confirmation (C2)
· R↔Octave bridge transport (C1, shared with A1/C3/D2).
- **The injection-rendering** (A1-L5): how ETR's coord/status is phrased into the slot so it reads as the
extremely convincing existential-temporal injection (not a bare `status=` line) — ties to A6 + D2.