Skip to content
C.W.K.
Stream
Lesson 05 of 05 · published

Compose Your Own Anvil

~11 min · composition, capstone, pressure, governance

Level 0Cold Iron
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

Compose Your Own Anvil

Begin with a workpiece, an uncertainty, and the rail. A sealed run uses cwkPippa-routed model calls, masks identity from every live viewer, and draws its bench from participating brains. An Open Run uses joined harness sessions, shows Dad the live field, and mobilizes an unbound norm-masked bench.

Choose pressure by the artifact question: independent alternatives for Arena, checkpoint improvement for Relay, survival and revision for Elimination, critique for Workshop, conclusion for Debate, robustness for Red Team, recombination for Synthesis, controlled support for Party or Apprentice, examination for Defense, and diagnosis-plus-repair for Restoration.

Declare the full contract before Fire: brief and deliverable, field specs, exact mode configuration and caps, prep choice, deadlines, network posture, frozen base and exclusions, up to four evidence runners, report languages, criteria, and the artifacts each phase must produce. Every loop needs a hard end.

Finish with authority and aftermath. Participants complete only their open role. Judges submit ballots. On Open Runs Dad closes the bench with /decide; on every rail Dad never overrides the pick. His verdict finalizes and reveals, dissent preserves disagreement, rematch creates a fresh run, and cross-mode continuation creates a resumed_from successor. Nothing is published or deployed automatically.

Compose from uncertainty to rail, pressure, proof, and authority. A truthful failure path is part of the design, not cleanup after it.

Code

The composition card — an empty field refuses to Fire·python
REQUIRED = [
    "workpiece", "uncertainty", "rail", "mode", "field",
    "caps", "deadline", "network", "base", "runners",
    "criteria", "decider",          # leave this empty and there is no verdict
]


def fire(card):
    missing = [k for k in REQUIRED if not card.get(k)]
    if missing:
        raise ValueError(f"undeclared: {missing}")
    if card["caps"].get("max_rounds") is None:
        raise ValueError("a loop without a cap cannot be a run")
    return {"state": "fired", "decider": card["decider"]}


card = {
    "workpiece": "a slow SQL query", "uncertainty": "which index actually helps",
    "rail": "open", "mode": "Arena", "field": ["s1", "s2", "s3"],
    "caps": {"max_rounds": 1}, "deadline": "90m", "network": "hermetic",
    "base": "frozen:tracked", "runners": ["pytest -q"],
    "criteria": "measured latency reduction", "decider": "me",
}
print(fire(card))

try:
    fire({**card, "decider": None})     # nobody named to decide
except ValueError as exc:
    print(exc)

External links

Exercise

Compose one complete Anvil run for an artifact you care about, then simulate a missing seat, unavailable runner, tied Open Run bench, service restart, and requested cross-mode continuation.
Hint
For every case, name the current truth, next authority, and durable record.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.