docs(ledger): #188 amendment package — C25 role model, C20/C22 refinements, invariant-10 clarification

C25 (new): the nine authoring roles cut by artifact + surface + iteration
cost, the recognizability test, the 6a/6b split on invariant 12's tier
boundary with the id machinery as interface, the text-first/headless-first
invariant (visual surfaces = stateless projections, viewers over editors),
and the Blockly litmus test as every vocabulary's acceptance criterion.

C20: the 'plain Rust loops, not a config schema' clause and the mini-DSL
forbid are scoped — they forbid an open logic-bearing language, not the
closed-vocabulary campaign document that now carries experiment intent
under the P1 construct tier; generators may stay Rust, what they yield is
data.

C22: stateless-projection refinement generalized to all artifact classes;
the shipped face recorded as the web-from-disk front. Glossary playground
entry aligned (the egui-native wording was stale against the 2026-06
revision).

CLAUDE.md invariant 10: clarified that closed-vocabulary data artifacts
(op-scripts, blueprints, process/campaign documents) are not the forbidden
DSL — RustAst failed as an open logic-bearing language; new logic
escalates to a Rust block, never a freetext hole.

All content ratified on #188 (body + addenda + resolution comments); this
commit is production of the durable record, no new design.

closes #192
This commit is contained in:
2026-07-03 16:30:51 +02:00
parent ebe85683c9
commit e73aadae1e
3 changed files with 87 additions and 6 deletions
+12 -5
View File
@@ -121,11 +121,18 @@ design decision, not a refactor, and belongs in the ledger.
a Rust crate** (a cdylib library of node / strategy / experiment blueprints +
a static `Aura.toml`), hosted by `aura` during research and frozen to a
standalone binary for deploy.
10. **Authoring surface — all logic is Rust.** Nodes, strategies, *and*
experiments/harnesses are authored in native Rust via Claude Code + the
skills pipeline, using builder APIs. Declarative config (`Aura.toml`) carries
only static project context, never logic — no experiment/strategy DSL (the
RustAst trap). aura ships no embedded coding-LLM; IONOS LLMs are used only as
10. **Authoring surface — all logic is Rust.** Node, strategy, and harness
*logic* is authored in native Rust via Claude Code + the skills pipeline,
using builder APIs. Declarative config (`Aura.toml`) carries only static
project context, never logic — no experiment/strategy DSL (the RustAst
trap). **Clarification (2026-07-03, #188/C25):** a *closed-vocabulary data
artifact* — an op-script, a blueprint, a process or campaign document — is
NOT the forbidden DSL: what failed historically (RustAst) was an *open,
logic-bearing* language; closed, typed vocabularies as serialized data
(Blockly-litmus-clean, at most the total P1 construct tier) are the proven
pattern, and experiment *intent* lives in them (C20/C25). Genuinely new
logic escalates to a new Rust block (role 2), never to a freetext hole in
an artifact. aura ships no embedded coding-LLM; IONOS LLMs are used only as
a runtime data source (news bias), with per-session consent, never in the
code path.
11. **Construction is a bootstrap phase.** Blueprints (param-generic graph-as-