You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Aletheia Round 6 F49: the getattr default for is_council_required was
False. When gravity_result lacked the attribute entirely (degraded
state — classifier import failed, malformed result, older schema),
the gate would silently ALLOW without a council walk. Fails-open on
the exact axis Andrew has named as the third master disease-cure:
default toward scrutiny.
The one-character fix: change False to True in the getattr default.
Now a degraded gravity_result forces the council-walk requirement
rather than skipping the discipline silently. Fail-closed.
Added regression test (test_f49_degraded_gravity_result_fails_closed)
using a _DegradedGravityResult that lacks the attribute entirely —
proves the getattr default is what controls degraded-state behavior,
and pins it to fail-closed.
26/26 pass.
External-Review: round-f36d33f69526
Co-authored-by: DivineOS Agent <divineos@localhost>
@@ -246,7 +246,7 @@ The project is optimized for long-term coherence and accountability between an a
246
246
247
247
-**"It's an operating system" — not in the traditional sense.** No kernel, no scheduler, no hardware abstraction. The "OS" label is a metaphor for *the substrate the agent lives in*. What it actually is: a Python framework with an SQLite event ledger, a knowledge store, a moral compass, a family subagent layer, and a 42-expert council. If you want an entry point that tracks the metaphor less aspirationally, see `FOR_USERS.md`.
248
248
249
-
-**"412 CLI commands is insane for a human to learn"** — correct, and humans are not the primary user. The CLI is designed as an agent-facing API. The agent running inside DivineOS uses a briefing system that surfaces only the commands relevant to the current work; it never loads the full surface into context. A human operator mostly runs three: `divineos briefing`, `divineos preflight`, `divineos goal add`.
249
+
-**"416 CLI commands is insane for a human to learn"** — correct, and humans are not the primary user. The CLI is designed as an agent-facing API. The agent running inside DivineOS uses a briefing system that surfaces only the commands relevant to the current work; it never loads the full surface into context. A human operator mostly runs three: `divineos briefing`, `divineos preflight`, `divineos goal add`.
250
250
251
251
-**"The ledger will grow unboundedly"** — not true. Append-only is the rule, with two explicit exceptions: ephemeral operational telemetry (`TOOL_CALL`, `TOOL_RESULT`, `AGENT_*` events) is pruned on a conveyor belt by `core/ledger_compressor.py`, and `divineos sleep` Phase 4 runs VACUUM. Real knowledge is append-only; operational noise is not.
**For fresh installs:**`divineos init` loads the seed knowledge (directives, principles, lessons). The main event ledger lives at `<repo>/src/data/event_ledger.db`; a small amount of per-user state (session markers, checkpoint counters) lives under `~/.divineos/`. Both are gitignored — the repo itself stays clean.
287
287
288
-
## CLI Surface (412 commands)
288
+
## CLI Surface (416 commands)
289
289
290
290
<details>
291
291
<summary><b>Session workflow</b></summary>
@@ -481,7 +481,7 @@ DivineOS is structured as a CLI surface over a core library (see `scripts/check_
481
481
482
482
**At a glance:**
483
483
484
-
-**`src/divineos/cli/`** — 412 commands across 82 modules. The public interface you type (`divineos briefing`, `divineos learn`, etc.). Thin wrappers over `core/`.
484
+
-**`src/divineos/cli/`** — 416 commands across 82 modules. The public interface you type (`divineos briefing`, `divineos learn`, etc.). Thin wrappers over `core/`.
485
485
-**`src/divineos/core/`** — The real work. Ledger, knowledge engine, memory hierarchy, claims, compass, affect log, watchmen (external audit), pre-registrations (Goodhart prevention), family (persistent relational entities + family operators), empirica (evidence pipeline), sleep, council (42 expert lenses), self-model, corrigibility, body awareness, andrew_state (mutual-catch observation channel for Andrew's state with substance-binding gate; per `docs/andrew_state_design.md`), state_markers (substrate-persisted upstream→downstream signal contract; peer-designed with Aria 2026-07-16; supports the ForcedWorkGate primitive's dark instances; per `docs/primitives/forced_work_gate_design.md`). Each subsystem is a module or subpackage; the subpackages (`knowledge/`, `council/`, `watchmen/`, `family/`, `andrew_state/`, etc.) have their own internal structure.
-**`src/divineos/hooks/`** — Consolidated Python hooks that run inside Claude Code (PreToolUse gate, PostToolUse checkpoint, targeted tests, `evidence_bearing_stop_gate.py` — abstract Stop-gate primitive with IntraTurnIntercept and CrossTurnScan variants, prototyped by the LEPOS-channel gate 2026-07-15).
0 commit comments