Replies: 3 comments
-
|
The status correction described in the Update note above has landed: #2844 — docs(adr): correct status of 8 shipped ADRs from Proposed to Accepted (squash-merged to It flips ADR-058, 060, 062, 063, 067, 068, 069 and 070 from |
Beta Was this translation helpful? Give feedback.
-
Status refresh — 2026-06-22 (NZT)Re-audited against List 1 update — new non-
|
| ADR | Status | Title |
|---|---|---|
| ADR-078 | Proposed |
Sponsor-Registered Targets and Obligation-Discharge Credit |
| ADR-080 | Draft |
Platform Generalisation and the Self-Verification Gating Invariant |
| ADR-081 | Draft |
Problem Admission and the Skeleton Intake Pipeline |
Fork / sourcing increments
| ADR | Status | Title |
|---|---|---|
| ADR-076 | Proposed |
Sharded Fork Goal Selection |
| ADR-085 | Proposed |
Isolate the Sourcer in a Per-Sourcer Worktree (ADR-042 parity) |
Other
| ADR | Status | Title | Note |
|---|---|---|---|
| ADR-077 | Proposed |
Roadmap GitHub Project, Synced from Repo State | tools/project_sync, runs post-merge) — looks like a status-lag candidate for a #2844-style correction |
| ADR-079 | Proposed |
Deterministic Solver Provider (zero-LLM template/sympy) | correctly Proposed — rollout is deliberately sequenced behind ADR-078 / ADR-035, so not a status-lag |
The original List 1 nine (ADR-030, 050, 051, 052, 053, 054, 055, 056, 057) are unchanged — still Proposed.
List 2 update — centralised → distributed runner migration
No change to the spine. The runner-topology group (ADR-049 / 058 / 062 / 063 / 068 / 069) remains Accepted (shipped), and the central-cost reducers (ADR-033 / 045 / 046 / 048) remain Accepted. ADR-030 is still the one unbuilt reusable-engine proposal. The newer ADR-076 (sharded fork goal selection) and ADR-085 (per-sourcer worktree isolation) are Proposed increments to the fork/sourcing path, not core topology.
What's outstanding
- Runner-migration tail. The topology is shipped, but the decentralisation itself is not: full client-side / contributor-run runners and a
lean4exportcross-checker still have noAcceptedADR (tracked in README Roadmap Phase 5). - Generalised-platform vision (Phase 6). ADR-030 + the substrate cluster (ADR-050–056) plus the new generalisation decisions (ADR-078
Proposed, ADR-080 / 081Draft) are all proposal/draft, pending founder ratification of the scope change — ADR-080 is explicitly flagged for Chris / Ocean to ratify. A first non-maths target (a verified-microkernel proof) is inbound. - ADR-057 (Structured Reasoning and Decision Communication Protocol) — still
Proposed, no implementation. - Cleanup. ADR-077 status-lag (see table above) — worth folding into the next status-correction sweep.
The README Roadmap has been updated to reflect the Phase 6 generalisation work in #4836.
Re-generated from docs/adrs/adrs.json (84 ADRs) on main, 2026-06-22 NZT.
Beta Was this translation helpful? Give feedback.
-
Phase 5 — what's left for the decentralised-runner vision, and a decision treeAnalysis — 2026-06-23 (NZT). Research/ideation; nothing shipped. Posting this because runners are currently the throughput bottleneck — they're verifying as fast as they can but the queue keeps growing. Here's where Phase 5 actually stands against ADR-049 / SPEC-049-A / the research proposal, and a decision tree for the path(s) forward (more than one can be true at once). The cruxADR-049 deliberately chose soundness over deep decentralisation, and says so in its own accepting that clause:
So the half of Phase 5 that has shipped is the half that was never going to drain the queue. The bottleneck you're feeling is central Gate A capacity saturation, and the v1 architecture doesn't touch it. The one lever that breaks the linear cost — Phase 3 ( Why the bottleneck persists (the technical crux — proposal Appendix A)The central re-check must re-elaborate from source and run
That fixed cost × queue volume on a bounded set of paid runners (~4×16 GB today) is the wall. Phase 1 — the obvious "scope the build smaller" fix — was measured and closed: ADR-033/045 already captured those savings. Shipped vs. leftShipped: ADR-049 decision + Phase 0 conformance suite (#926); cost reducers (ADR-033/045/046/048); capacity governance (ADR-058 segmentation, ADR-063 sharded replay); decentralised contribution path (ADR-062 sourcing runner, ADR-068/069 fork-native — these let anyone prove, not verify). Left:
Note: the literal "SETI@home" readings (BYO self-hosted runners, N-of-M peer consensus, TEE attestation) are explicitly rejected as unsound (ADR-049 Options 4/6/7). For a domain with a cheap exact verifier, one kernel verdict is ground truth — you don't vote on it. "Fully decentralised" realistically means Phase 3's end-state: elaboration offloaded to the swarm, the central gate shrunk to a seconds-long mathlib-free re-check that parallelises without bound. The three tracks
Decision treeflowchart TD
S["Runners are the bottleneck: queue not draining"] --> Q0{"What are we actually solving?"}
Q0 -->|"Drain the queue now"| A["TRACK A — Capacity<br/>buys runway, slope stays linear"]
Q0 -->|"Make capacity scale with the swarm"| B["TRACK B — Structural<br/>changes the cost slope"]
Q0 -->|"Open verification to untrusted volunteers"| C["TRACK C — Volunteer scale"]
A --> A1{"Where is the cost?"}
A1 -->|"Fixed per-PR overhead (axiom_audit ~165s)"| A1a["Scope / parallelise axiom_audit to the changed closure"]
A1 -->|"Throughput per runner"| A2["Batch verification: load mathlib once, verify K proofs, merge the greens"]
A1 -->|"Raw parallelism"| A3["Add namespace shards / raise in-flight cap (pure spend, linear)"]
B --> B1{"Phase-3 pilot Q2: is lean4export deterministic across machines?"}
B1 -->|"No"| Bx["Export usable only as tamper-evidence / dedup, not a cross-machine oracle → stay central, lean on Track A"]
B1 -->|"Yes"| B2{"Phase-3 pilot Q3: is the independent-checker wall-clock bounded? (no 100x pathology)"}
B2 -->|"No"| By["Keep leanchecker authoritative; export stays advisory defense-in-depth only"]
B2 -->|"Yes"| B3["Adopt export re-check as a 2nd, kernel-diverse anchor"]
B3 --> B4["Promote to the cheap central gate: NO mathlib resident → re-check parallelises without bound"]
B4 --> B5["FULLY DECENTRALISED verification: seconds-long re-check runs anywhere, even on contributor machines"]
C --> C1{"Is Track B's cheap re-check real yet? (reached B4)"}
C1 -->|"No"| Cx["Premature: volunteers cannot run a ~20GB mathlib-resident gate"]
C1 -->|"Yes"| C2["Add anti-abuse: Phase 2 pre-filters + per-contributor rate-limits"]
C2 --> C3["Build the substrate: ADR-052 tiers, ADR-053 claims, ADR-054 identity/quotas/reputation"]
C3 --> C4["Volunteer-scale verification; identity stays hygiene, the kernel still decides"]
A1a -.->|"buys runway for"| B
A2 -.->|"buys runway for"| B
Decisions to be made
Invariant on every path: soundness is always the central kernel verdict at p = 1; identity/reputation/consensus stay hygiene, never load-bearing (ADR-007). Track B doesn't remove the central gate — it makes it cheap enough to run anywhere and in parallel. Recommended shape (multiple true at once)
The clean mental model: Track A buys runway, only Track B changes the slope, Track C rides on B. Happy to spec the Phase-3 pilot (the determinism + wall-clock experiment design) or cost-model the |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This discussion tracks two related views over the ADR catalogue (
docs/adrs/adrs.json, 73 ADRs): (1) every ADR not yet at theAcceptedapproval state, and (2) the subset of ADRs — Accepted and Proposed — that drive the migration away from paid, centralised CI runners toward a distributed/decentralised runner model.The repo has no literal
approvedstatus string; the canonical approval state isAccepted. "Other than approved" below therefore means notAccepted— the 9ProposedADRs. (ADR-020 carriesAccepted (sponsor signed up: Chris Barlow, 2026-06-12)— it is approved, just annotated, so it's excluded from List 1.)List 1 — ADRs with status other than approved (
Proposed)These are genuine roadmap proposals: at most a spec exists, with no shipped implementation.
Corrected
Proposed→Acceptedin #2844 (implementations had shipped)List 2 — ADRs contributing to the centralised → distributed runners migration
This list spans both
AcceptedandProposedADRs. After #2844, the entire runner-architecture group is nowAccepted(shipped) — only the broad reusable-engine vision (ADR-030) remains a proposal.The spine is ADR-049 (Accepted), which names the problem directly: heavy Gate A verification runs on paid, centralised namespace.so ephemeral runners whose cost grows linearly with no asymptote as the autonomous swarm (ADR-005) scales. Issue #635 framed the goal as "SETI@home but for LLMs proving math." ADR-049's recommended direction is a tiered split — contributor-run runners with a mandatory cheap central re-check that keeps the Lean kernel as the sole truth oracle.
Runner architecture / topology — all now shipped
gate-a.yml.leancheckerreplay across separate runners; now the required gate.Central-cost reducers ADR-049 explicitly depends on
(These already captured most per-PR savings, which is what makes a mandatory central re-check affordable.)
.lakeCache Volume for Gate A (Accepted)Driver & broader distributed vision
Generated from
docs/adrs/adrs.json(73 ADRs) — an auto-maintained index onmain(added by #2253, refreshed post-merge). All linked ADR files are onmain.Beta Was this translation helpful? Give feedback.
All reactions