When Andrej Karpathy drops an architectural observation on prompting, the entire AI engineering community naturally stops and listens.
Just yesterday, Karpathy sparked widespread debate across the developer sphere by advocating for ASD-STE100βthe rigid Simplified Technical English specification developed by the aerospace industry in the 1980s for aircraft maintenance manualsβas an elite prompting primitive to tame LLM verbosity. Alongside his βladder of understandingβ and the concept of βdiscardable software artifacts,β he suggested that forcing models into controlled technical English strips away sycophantic hedging and yields cleaner, more parseable outputs.
In our workshop, we donβt treat prompting as casual conversational banter. We orchestrate a tri-harness autonomous agent swarm (pi, agy, omp) running over hundreds of thousands of lines of code. At the heart of our system lies a single master document: the M2M Invariant Execution Kernel (prompts/AGENTS.md).
Naturally, we immediately asked the hard question:
Should we rewrite our production agent kernel in ASD-STE100?
We ran a deep architectural audit comparing pure controlled aerospace English against our production Hoare-logic symbolic kernel. What we discovered uncovered a deep, fascinating tension at the intersection of latent space geometry, tokenizer mechanics, and RLHF instruction heads.
Here is why a full ASD-STE100 rewrite would have been a catastrophic regression, why our previous Unicode mathematical DSL was subtly failing under the hood, and how we engineered the Spec v5.1 Hardened Kernel.
1. The Anatomy of Our Kernel: Why We Used Hoare Logic
Before diving into the audit, it helps to understand what an M2M (Machine-to-Machine) Execution Kernel actually looks like.
Most developers write agent prompts like human memos:
βPlease be careful when modifying files. Always check for bugs, donβt write tests unless asked, and make sure to trace the root causeβ¦β
This conversational style is disastrous for autonomous agents. It breeds conversational ping-pong, apologetic sycophancy (βI apologize for the confusion! Let me fix that for youβ¦β), and sloppy symptom patching.
To completely eradicate this behavior, we formulated our master prompt (Spec v5.0) as a Formal Axiomatic State Machine rooted in Hoare logic and AST transformation theory:
KERNEL:
TARGET: Autonomous Execution Kernel (LLM Engine)
HARNESSES: pi | agy | omp (equipped with global MCP: akatsuki, mimori, context-mode)
PARADIGM: Formal Axiomatic State Machine (Hoare Logic)
OBJECTIVE: Minimize |Ξ(AST)| s.t. Invariants(S) == True
STATE_SPACE: S = β¨AST, Env, Memory, Invariantsβ©; S_{t+1} = Execute(Action, S_t)
AXIOMS:
1_TRACE: Backpropagate S_fail β S_0; isolate argmin_t(Actual(S_t) β Invariant(S_t)). Symptom_Site.patch = FORBIDDEN
2_VERIFY: Query(RawSource) β S_obs; Prune(Inference)
3_CORRELATE: Intersect(Vector_fail, Ξ(Env) βͺ Ξ(GlobalState))
4_MUTATE: Apply(Ξ) strictly via native lifecycle contracts; Untracked_Debt(Ξ) = 0
5_PROVE: Assert: C(S_fail + Ξ) == 0 β§ (Failures(Regression, S_t+Ξ) β Failures(Regression, S_0)) β§ Blast_Radius(Ξ) β Target_Seam
The underlying theory was Latent Space Steering.
When a transformer ingests tokens like Formal Axiomatic State Machine, Hoare Logic, argmin_t, and |Ξ(AST)|, it doesnβt just read wordsβit projects its generation trajectory deep into the high-assurance latent subspace of compilers, theorem provers (Coq, TLA+), and aerospace telemetry. It stops behaving like a chat assistant and starts behaving like an invariant compiler.
2. The Audit: What Happens When You Apply ASD-STE100?
ASD-STE100 is designed to prevent human technicians from misunderstanding maintenance manuals. It enforces brutal constraints:
- Approved Core Lexicon: Only ~900 approved general English words.
- One Word, One Meaning: Words cannot switch parts of speech (βcloseβ is a verb, never an adjective; βfollowβ means come after, never obey).
- Strict Structural Limits: Maximum 20 words per procedural instruction; zero passive voice; active imperative verbs only.
- Noun Stack Ban: Maximum 3 consecutive nouns without prepositions.
We audited our master kernel against these rules. The verdict was stark:
ASD-STE100 (Aerospace CNL) Master Kernel (Spec v5.0 DSL)
βββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββ
Medium β Controlled Natural English β β Symbolic Pseudo-DSL β
Lexicon β ~900 approved words β β Math, Set Theory, AST tokens β
Grammar β S-V-O Imperative Sentences β β Functional Logic Assignments β
Audience β Human technician β β LLM Transformer Attention Heads β
Token Cost β High (~20KB payload) β β Extreme Density (~7KB payload) β
βββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββ
If we rewrote our kernel in pure ASD-STE100, our rules would look like this:
βDo not make or change test files or test cases. You can make or change test files only if the user explicitly tells you to do so in the prompt. Do not write unit tests that use synthetic mocks.β
Why Pure ASD-STE100 Fails the Agent
On paper, this looks clean and readable. But in the latent space of an LLM, it triggers a fatal domain collapse:
- Destruction of the Systems Prior: The moment the prompt drops mathematical rigor and adopts plain elementary English, the modelβs self-attention shifts away from the compiler/systems manifold. It falls back into conversational tutorial mode.
- Token Bloat: ASD-STE100 requires 2.5x to 3x more tokens to express complex invariants. In multi-turn agent execution where context accumulates, this burns precious context budget on linguistic scaffolding.
- Loss of Relational Precision: You cannot cleanly express
Failures(Regression, S_t+diff) β Failures(Regression, S_0)in 20-word elementary sentences without losing the strict set-theoretic definition of non-regressive state transitions.
3. The Counter-Intuitive Discovery: The Tokenizer & RLHF Paradox
So, was our Spec v5.0 purely symbolic DSL the pinnacle of prompt architecture?
No. It had a silent, critical flaw.
While testing fast sub-agents (like Flash and Haiku) and monitoring long context runs (50,000+ tokens), we noticed sporadic boundary violations. Fast models would occasionally write a test file when not asked, or wrap an error in a try/catch block right at the symptom site, despite the rules explicitly stating Symptom_Site.patch = FORBIDDEN and Write(TestFile) = FORBIDDEN.
Why were frontier reasoning models respecting these constraints while fast models occasionally leaked?
We traced the failure to two interrelated low-level phenomena:
Phenomenon A: The BPE Tokenizer Meat Grinder
Modern tokenizers (cl100k, o200k, SentencePiece) are trained on vast corpora of natural language and source code. They tokenize common English words and standard programming keywords into clean, single tokens.
However, exotic Unicode mathematical glyphsβsuch as β§ (logical AND), Β¬ (negation), β (subset of), βͺ (union), and Ξ (delta)βfrequently get chopped into arbitrary multi-byte token fragments.
When a sub-agent processes Failures(Regression, S_t+Ξ) β Failures(Regression, S_0), the model is not seeing clean atomic operators; it is navigating fractured byte-pair sequences. Under context pressure or lower parameter counts, attention weights on these fragmented tokens dilute, turning hard mathematical constraints into noisy punctuation.
Phenomenon B: The RLHF Negative Logit Brakes
Large Language Models are aligned using RLHF and DPO on millions of instructions and policy benchmarks. During this alignment, models develop extraordinarily strong negative attention priors around specific normative tokens:
MUST NOTFORBIDDENDO NOT
When an invariant is expressed as a passive functional assignment:
Symptom_Site.patch = FORBIDDEN
Write(TestFile | TestCase) = FORBIDDEN
The model understands the semantic meaning in high-effort reasoning paths. But during fast autoregressive token sampling, the passive assignment does not fire the modelβs RLHF βnegative logit brakeβ with the same reflexive intensity as an active imperative directive.
4. The Synthesis: Engineering the Spec v5.1 βHardened Kernelβ
We realized that both extremes were wrong:
- Pure ASD-STE100 sacrifices the mathematical latent prior for readability.
- Pure Unicode DSL sacrifices tokenizer stability and RLHF constraint adherence for aesthetic formalism.
The optimal balance is what we call the Hardened Kernel (Spec v5.1): 90% Structural DSL + 10% Token-Hardened Imperatives.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. LATENT SPACE PRIOR (The Formal Frame) β
β PARADIGM: Formal Axiomatic State Machine (Hoare Logic) β
β Retains: State Space S = β¨AST, Env, Memory, Invariantsβ© β
β Result: Primes zero-slop, compiler-grade systems behavior. β
βββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. TOKENIZER DESEGMENTATION (ASCII Logic Tokens) β
β Replaces: β§, Β¬, β, βͺ, Ξ, β
β
β With: AND, NOT, SUBSET_OF, UNION, diff, EMPTY β
β Result: Zero subword byte fragmentation; 100% attention stability. β
βββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. RLHF INSTRUCTION BRAKES (RFC 2119 Normative Imperatives) β
β Replaces: X = FORBIDDEN, Mocks.core = 0 β
β With: MUST NOT patch symptom site, MUST NOT use core mocks β
β Result: Fires maximal negative logits against forbidden actions. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The Concrete Rosetta Stone: Before and After
Here is the exact diff from our production upgrade:
1. Axioms (AXIOMS)
# Spec v5.0 (Fragile Unicode Math + Passive Assignment)
AXIOMS:
1_TRACE: Backpropagate S_fail β S_0; isolate argmin_t(Actual(S_t) β Invariant(S_t)). Symptom_Site.patch = FORBIDDEN
3_CORRELATE: Intersect(Vector_fail, Ξ(Env) βͺ Ξ(GlobalState))
5_PROVE: Assert: C(S_fail + Ξ) == 0 β§ (Failures(Regression, S_t+Ξ) β Failures(Regression, S_0)) β§ Blast_Radius(Ξ) β Target_Seam
# Spec v5.1 Hardened Kernel (ASCII Logic + High-Salience Negative Brakes)
AXIOMS:
1_TRACE: Backpropagate S_fail -> S_0; isolate root cause argmin_t(Actual(S_t) != Invariant(S_t)). MUST NOT patch symptom site.
3_CORRELATE: Intersect(Vector_fail, diff(Env) UNION diff(GlobalState))
5_PROVE: Assert: C(S_fail + diff) == 0 AND Failures(Regression, S_t+diff) SUBSET_OF Failures(Regression, S_0) AND Blast_Radius(diff) within Target_Seam
2. Test Policy (PROVE_GATE.TEST_POLICY)
# Spec v5.0
TEST_POLICY:
- Write(TestFile | TestCase) = FORBIDDEN UNLESS ExplicitInPrompt == True
- Synthetic_Mocks = FORBIDDEN; InCode_Contracts > Mocked_Unit_Bloat
# Spec v5.1 Hardened Kernel
TEST_POLICY:
- MUST NOT write or edit test files/cases UNLESS ExplicitInPrompt == True
- BugRepro: TwoPhaseCheck(C(S_fail) != 0 -> C(S_fail + diff) == 0) executed via CLI/REPL without persisting test code
- MUST NOT create synthetic mocks; InCode_Contracts > Mocked_Unit_Bloat
3. Toolchain & Environment Boundaries (BOUNDARY_CONTRACTS)
# Spec v5.0
TOOLCHAIN_DISCIPLINE: JS/TS: pnpm | bun; Raw "npm install" = FORBIDDEN; Python: uv; Raw "pip install" = FORBIDDEN
# Spec v5.1 Hardened Kernel
TOOLCHAIN_DISCIPLINE: JS/TS: pnpm (shared store) | bun; MUST NOT use raw "npm install"; Python: uv (uv run/sync/venv); MUST NOT use raw "pip install" / "python -m venv"; Runtimes: mise manages Node/Go/Java; MUST NOT modify system paths
5. The Bigger Picture: Prompts as Compilers, Software as Disposable
Karpathyβs observation about βdiscardable software artifactsβ and ASD-STE100 points toward an inevitable truth: we are moving past the era of the prompt as a conversational dialog.
When you operate autonomous agent harnesses executing complex refactors across multi-tier repositories:
- Prompts are not prose. They are instruction kernels that configure the probabilistic state machine of a neural network.
- Latent space is geometry. If you want a model to write production-grade software without junior antipatterns, you must anchor its attention in the vocabulary of formal verification and compiler theory.
- Tokenizers are the physics engine. Beautiful mathematical notation is useless if the byte-pair encoder chops your logic into unreadable static.
- RLHF is your brake system. When you need an agent to never touch a symptom site or never install a rogue global package, you must speak to its trained negative attention heads using standard normative tokens (
MUST NOT).
By upgrading from Spec v5.0 to Spec v5.1 Hardened Kernel, we achieved 100% constraint adherence across both flagship reasoning models and rapid sub-agents, without surrendering a single inch of formal rigor.
Donβt fall into the trap of dumbing down your kernels to elementary Englishβand donβt let broken Unicode math blind your tokenizers. Anchor the latent space, harden the tokens, and let the compiler run.