RFC-7: Thermite 3 — a surface generation for a language written by agents - #129
Open
maxinelevesque wants to merge 1 commit into
Open
RFC-7: Thermite 3 — a surface generation for a language written by agents#129maxinelevesque wants to merge 1 commit into
maxinelevesque wants to merge 1 commit into
Conversation
The horizon behind RFC-6, so the anchor can be read as one step of a stated plan rather than as an isolated request for five keyword renames. It introduces no requirement and asks for nothing except the anchor. What it wants is a direction check: whether a surface generation is wanted at all, and whether the organising rule holds — every clause is a third-person-singular verb whose subject is the item, which decided every name in RFC-6 and is the one thing worth arguing about before any of it is built. The name follows the convention RFC-1 set. Thermite 2 changed what the language can prove; this changes what it reads like, and that separability is what lets the cheap-to-review part go first. Fourteen sections carry the surface with a status mark on each construct, and §15 writes the whole of it out as one paging subsystem so it reads as a language rather than a pile of decisions. That listing does not certify and says so. The appendix carries the probe results the design was built on, each a forge check at 84d276e against Verus 0.2026.05.24.ecee80a. Several contradicted the documentation: an effect row naming a region that does not exist certifies at L3, req true certifies while ens true is rejected as EnsIsTrivial, and the fx diverge exemption does not reach loops, so an intentionally infinite loop is only writable by supplying a measure that cannot decrease. Steps 4 through 9 have design documents behind them and stay unfiled until the direction here is answered. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The horizon behind RFC-6,
so the anchor reads as one step of a stated plan rather than an isolated request
for five keyword renames.
This asks for nothing except the anchor. It introduces no requirement and
proposes no capability. What it wants is a direction check:
the six documents behind this one are never written up. That is a cheap
outcome and it is the reason this exists.
verb whose subject is the item. It decided every name in RFC-6 — it is why
invbecamekeepsrather than staying a noun in a verb slot — and it isthe one thing worth arguing about before any of it is built.
before, with what each costs.
Why it exists
RFC-6 defends
keepsandmeasureswith a clause-grammar rule. Read againstfive keywords alone, that rule looks like more machinery than the job needs. It
earns its keep because seven more clauses have to fit it —
survives,asks,promisesand the rest — and that fact was not visible anywhere in RFC-6.The name follows the convention RFC-1
set. Thermite 2 changed what the language can prove; this changes what it reads
like. That separability is the whole reason the cheap-to-review part can go
first.
What is in it
Fourteen sections carrying the surface with a status mark on each construct —
anchor, later, or research — so it is always clear what is being
asked for now and what is not.
§15 writes the whole surface out as one coherent paging subsystem, so it reads as
a language rather than a pile of decisions. That listing does not certify and
says so in place.
The appendix carries the probe results the design was built on, each a
forge checkat84d276e7against Verus0.2026.05.24.ecee80a. Severalcontradicted the documentation:
fx write(a_region_that_does_not_exist)on a body that touches nothingcertifies at L3 — the row is unchecked in both directions.
req truecertifies at L3 whileens trueis rejected asEnsIsTrivial.fx divergeexemption does not reach loops, so an intentionally infiniteloop — a scheduler idle loop — is only writable by supplying a measure that
cannot decrease, and the false measure then sits in the source where a later
reader will believe it. That one is worth a defect report on its own.
Sequencing
Steps 4 through 9 each have a design document behind them and stay unfiled
until the direction here is answered. Nothing after the anchor is proposed.
Depends on #128
Targets
rfc/full-wordsso its links to RFC-6 resolve. GitHub retargets as thestack merges. Gates run locally under Python 3.11:
rfc-checkanddoc-driftboth exit 0; this RFC touches no requirement, so the registry is unchanged.
Per RFC-5's convention, this should not be squash-merged.
🤖 Generated with Claude Code