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

Independent Is a Wave

~11 min · independence, opposition, waves, visibility

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

Independent Is a Wave

Independence is not an adjective in a prompt; it is a wave property. Independent seats open from the same declared base, receive equivalent allowed context, cannot consume one another’s submissions, and commit their own artifacts before comparison.

Opposition is also a scheduled relation. A Debate rebuttal may see the opposing claim because that visibility is the pressure. A Red Team attacker may see the target artifact but not the builder’s private process. The plan grants precisely the material required by the role.

Expressing these relations as waves avoids hidden agents. Dad can see which seats are expected, which joined, which material opened, and which phase waits. The engine need not spawn or narrate invisible workers.

Independence can fail through shared mutable state even when prompts are separate. A common worktree, scratch document, or cached answer becomes a side channel. Yards and immutable store references turn the word independent into an enforceable operational shape.

Independence is topology plus visibility. Same base, separate yards, no peer artifacts before submission, explicit later openings.

Code

A visibility matrix that also checks for side channels·python
def visibility(role, phase, base, yards, submissions):
    """Exactly what this role can see right now — nothing more."""
    view = {"brief", base}
    if role == "worker":
        view.add(yards["self"])                 # its own yard only
    elif role == "rebuttal" and phase >= 1:
        view |= set(submissions)                # opposition is allowed sight
    elif role == "judge":
        view |= set(submissions)
    return view


def leaks(role_views, shared_mutable):
    """Separate prompts still are not independence if state is shared."""
    return sorted(v for v in role_views if v in shared_mutable)


base, subs = "frozen-base", {"A", "B"}
yards = {"self": "yard-a"}

w = visibility("worker", 0, base, yards, subs)
assert not (w & subs)                 # no peer work before submission
print(sorted(w))

print(sorted(visibility("judge", 2, base, yards, subs)))
print("side channel:", leaks(w | {"scratch.md"}, shared_mutable={"scratch.md"}))

External links

Exercise

Build a visibility matrix for Arena and Debate. Mark exactly when each role may see each artifact.
Hint
Arena workers stay blind to peers; Debate rebuttal roles require target claims.

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.