Repository navigation
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
tracer: aya, traces before policySpec: the witness record in What this PR does
What this PR does not do
Merge requirements
|
policy: Cedar compiled to exec allowlist, seccomp and LandlockSpec: What this PR does
What this PR does not do
Merge requirements
|
shell and calls: brush, uutils, man pagesSpec: the commands What this PR does
What this PR does not do
Merge requirements
|
tools seam: core disk plus task imageSpec: none; below What this PR does
What this PR does not do
Merge requirements
|
trusted-host mode: Firecracker and Virtualization.frameworkSpec: none new. The header's assumptions are asserted instead of proved; the report says unattested. What this PR does
What this PR does not do
Merge requirements
|
stats:
|
first release: README return passSpec: none. What this PR does
What this PR does not do
Merge requirements
|
machine fork: snapshot and boot from itSpec: layer 2 ( What this PR does
What this PR does not do
Merge requirements
|
scale-out and KubernetesSpec: none; the scheduler is trusted for availability only. What this PR does
What this PR does not do
Merge requirements
|
the VM-boundary decisionSpec: none; the spec assumes a machine boundary. What this PR does
What this PR does not do
Merge requirements
|
one memory hierarchy: inference control and evidenceSpec: layer 3's What this PR does
What this PR does not do
Merge requirements
|
Postgres as a task toolSpec: none. What this PR does
What this PR does not do
Merge requirements
|
## What this PR does Retires `prs.md`. Its §1 is now the loop draft PR (#8); every other section is a comment on the Horizon PR (#7), which is never merged and holds future PRs until they are ready. AGENTS.md gains the rule that makes #7 the home of any leaning without a PR. Dropped rather than moved: §10 (the name is held and published; the trademark check moved to the first-release comment) and the next-session housekeeping (tracked by the operator). ## What this PR does not do - Sequence the Horizon items. They are pulled when ready, not ordered in advance. ## Merge requirements - [ ] Every prs.md section is accounted for in #7, #8 or the list above. - [ ] Operator approves the AGENTS.md line. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
## What this PR does Settles how cead is built before the first code, from scoping the first PR (the old loop PR, whose intent is now a Horizon comment on #7). - **One method.** CODE.md is reorganized as method, vocabulary, languages. TLA+ specifies the system, Lean a core function, Rust is the system: one pipeline of spec → slice → core → skeleton → fill. The system spec (`spec/cead.tla`) comes first and is revisable: when code disagrees, the spec changes in that PR. A moved signature is learning, stated in the commit comment; a new capability is drift. - **Spec, not model.** The artifact before the skeleton is a *spec*; "model" collided with the LLM. - **Frontier and claim.** Placeholders (`todo!`, `unimplemented!`, `unwrap`, `expect`, `#[ignore]`) are the frontier, zero at merge. `unreachable!()` and `#[expect(lint, reason)]` are claims review reads. `#[allow]` is denied. Frontier lints warn, so a draft compiles and `cargo clippy --all-targets -- -D warnings` fails until filled. Tests unwrap through `clippy.toml`, not attributes. The toolchain pins clippy. - **Types as schema.** The five language-enforced invariants and the "does it still compile?" test for what is a choice, written down as priors. - **Probe, then wrap.** Dependencies are probed while scoping, findings in a PR comment, probe never committed. A dependency's types stay inside its boundary module. - **Vocabulary as a table.** Every noun has one home in code (type, module or crate, binary); a noun may precede its home; no home without a noun. - **AGENTS.md.** End-to-end tests first, ending in a checkable, re-runnable artifact. Branches name the change, not the thing changed. Only Horizon and PRs in progress are open. The squash trade is stated; `gh land` now keeps each PR's comment thread as a git note in `refs/notes/pr` (backfilled for #3, #4, #6). The one-measurement-per-milestone line is removed: "a system that can disagree with us" already says it. - **`done` → `finish`.** `done` is a POSIX shell keyword (`bash -c 'done x'` is a syntax error), so the call could never run. `finish` is process-shaped: like gdb's, it returns a frame's value to its caller. ## What this PR does not do - Write any spec or code; `initial-spec` is next (Horizon). - Re-cut the rest of Horizon; that is a merge requirement of `initial-spec`. - Change `gh land` itself in the repo; it lives outside it. ## Merge requirements - [x] `cargo clippy --all-targets -- -D warnings` green on the empty crate with the new lints. - [ ] Roone has read CODE.md end to end and it reads as one document. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
confidential machine: attestation, snapshot and forkSpec: the header's What this PR does
What this PR does not do
Merge requirements
|
Specify cead as a system in TLA+, confidential-first. The first practice of the method settled in #10. ## What this PR does - `spec/cead.tla`: the whole system, coarse, in three layers. One protocol, two modes that differ only in who guarantees its assumptions: **attested**, where the processor proves them, and **trusted-host**, where they are asserted. The modes are also a measured comparison of what attestation costs, not a claim that it is safer. - **Layer 1: a boot, its records and the log.** A boot's first record is its report, binding its key to the manifest's measurement; nothing runs until the log holds it. Each call is an intent, acknowledged by the log before policy decides, then a decision and, if allowed, a witness. The boot ends with a signed exit record. The log keeps a record only if the processor or a vouched key signed it, first-wins per place in the boot's hash chain. The host is a Dolev–Yao network: it can lose, delay, replay and forge, and sign only as itself. - **Layer 2: snapshot, fork and recovery.** A snapshot is taken between calls, once the log holds every record. A boot from one makes a new key; its report names the snapshot. A fork starts a new job; a recovery continues one whose boot is unknown, at most once, and **fences** it: the log keeps none of that boot's records after. - **Layer 3: sub-agents, processors and meters,** inside one boot. `agent` spawns a child process with rights ⊆ its parent's, depth − 1 and a capped meter; every call charges each meter up to the root (KeyKOS). A process ends when the model replies without a command; its live descendants are killed. Revocation is `kill`, reaching only descendants (a PID namespace per spawn). The model's processors are virtual: `Dispatch` gives a ready process one. - Assumptions in the header, each with its guarantor per mode: `KeySecret`, `KeyBound`, `SnapshotSealed`, `Descendants`; availability is the host's and the scheduler's. - README rewritten as a whiteboard of what cead is and how it works: scannable, no status or placeholders to drift; uses, evaluations and unproven ideas live in Horizon. - Vocabulary re-levelled around the spec: **boot**, **report**, **record** (Linux audit's unit: report, intent, decision, witness, exit), fork and recovery and fencing inside **snapshot**; one call, **`agent`**, since agent delegation's in-distribution form is a semantics shell job control already carries. - Order of work after this PR: the harness in a confidential Cloud Hypervisor machine (the loop, unattested first); then, concurrently, the confidential research questions and trusted-host mode on Firecracker and Virtualization.framework (Horizon #7). - Horizon #7 re-cut: every comment names its slice of the spec. ## What this PR does not do - Rust or Lean. - Inference as evidence, which is phase two (Horizon: one memory hierarchy): the engine's chain, and a record of inference outside the machine joined to the log by call id. The spec includes the model's processor, not its evidence. - Prove what the engine produced: the log proves what the machine received. Hosted APIs cannot honor job-scoped tokens, so a gateway on the host holds the real key and ends TLS; the model's words there are as trustworthy as that gateway. - Answer the research questions. The spec states what attested snapshot and fork must guarantee; hardware says whether they can. - Liveness beyond "every boot ends": no fairness on `Dispatch`, so starvation is the scheduler's (trusted for availability only). - Policy that depends on state; `Policy` is a constant (Horizon: policy). ## Merge requirements - [x] TLC green; each commit line records the tools version and bounds. - [x] Every property has a mutation that TLC catches. - [x] Assumptions named in the spec's header, each with its guarantor per mode. - [x] Names come from CODE.md's vocabulary. - [x] Horizon re-cut against the spec. ## Record - TLC 2.19. Committed: `cead.cfg` (2 commands, 1 denied, 1 call, 2 boots) 437,752 distinct states, 30 s; `tree.cfg` (2 processes, depth 1, 2 calls) 783,076, 44 s. 26 mutations, all caught, two needing 3 boots or 3 processes. - Receipt runs: the full spec at 2 calls, 2 boots (meter not binding), 19,188,532 states, 40m48s, green; layer 2 at 1 call, 3 boots, one command, 19,482,379 states, 46m43s, green; the tree at 3 processes, depth 2, stopped past 11M states, no violation. - Findings the model produced: fencing (a late exit record would give a job two outcomes); records stay in transit once sent (loss as removal made TLC enumerate every subset; deleting `Lose` and `Resend` cut the smallest bound from 10+ min to 5 s); Linux cannot revoke a running child's rights (revocation is `kill`, no membrane). - Unmeasured commitments: a round trip to the log before the first call and per call, a signature and hash per record, re-keying per fork, boots lost to fencing. Each is a measurement in the loop or stats (Horizon). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The method in AGENTS.md and CODE.md, as practiced in #11, with nothing left that ages. ## What this PR does - AGENTS.md: evidence outranks every artifact. When code or a measurement disagrees with a spec, doc or decision, it changes in that PR; it is never defended. - AGENTS.md: a PR that changes what the spec says opens with that change, TLC green, before any code (replaces the "seed's shape" rule, which CODE.md never defined). - CODE.md: removes the "unpracticed" note, the "green before any Rust exists" lines, and the pointer to "the first Lean PR"; each aged or pointed outside the file. - CODE.md TLA+: two practices from #11. Every property has a mutation TLC catches. Committed cfgs run in about a minute; larger bounds are one-off runs recorded in the PR. - CODE.md Lean: green before the Rust it specifies, per function. ## What this PR does not do - Change the pipeline, the vocabulary, or the Rust rules. - Decide how Lean outputs reach `cargo test` (open in Horizon #7: agent and meters). ## Merge requirements - [x] No statement in AGENTS.md or CODE.md depends on the state of a PR or on time. - [x] Each removed rule is either said once elsewhere or no longer true. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
post-training: an open model trained on cead's logsSpec: none new; it reads what the log already holds. What this PR does
What this PR does not do
Merge requirements
|
Never merged. Each comment below is a future PR in the description template; update it as intent clarifies, and when one is ready, open its PR and delete the comment. Close this PR when it is empty.
🤖 Generated with Claude Code