{
  "schema_version": "AGENT_GLYPH_MASTER_1.0",
  "title": "Agent Glyph — AI-Native Visual State Language",
  "total_glyphs": 173,
  "acceptance_threshold": "3/5",
  "preserved_pass_count": 150,
  "revision_count": 23,
  "canvas": {
    "size": 128,
    "background": "#12141A",
    "fps": 20
  },
  "batch_map": {
    "B1": {
      "source_model": "Muse Spark",
      "count": 29
    },
    "B2": {
      "source_model": "GLM 5.2",
      "count": 29
    },
    "B3": {
      "source_model": "Sol",
      "count": 29
    },
    "B4": {
      "source_model": "Gemini",
      "count": 29
    },
    "B5": {
      "source_model": "Grok",
      "count": 29
    },
    "B6": {
      "source_model": "Sonnet",
      "count": 28
    }
  },
  "revision_policy": "Any glyph scoring below 3/5 agreement is replaced by its revised specification. Passing glyph specifications are preserved from the supplied source set.",
  "assets": {
    "batches": [
      "/agent-glyphs/batches/b1-muse-spark.gif",
      "/agent-glyphs/batches/b2-glm-52.gif",
      "/agent-glyphs/batches/b3-sol.gif",
      "/agent-glyphs/batches/b4-gemini.gif",
      "/agent-glyphs/batches/b5-grok.gif",
      "/agent-glyphs/batches/b6-sonnet.gif"
    ],
    "master": "/agent-glyphs/master.gif",
    "contact_sheet": "/agent-glyphs/contact-sheet.png",
    "manifest_json": "/agent-glyphs/manifest.json",
    "manifest_csv": "/agent-glyphs/manifest.csv",
    "verification": "/agent-glyphs/verification.json"
  },
  "glyphs": [
    {
      "id": "B1.01",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.TOOL.SCHEMA_MISMATCH",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Square peg overlapping round hole: 16px square slot outline left, hexagonal peg right overlapping with 2px gap + central X. Grid-aligned, high-contrast stroke 2px.",
      "motion": "Peg attempts insertion on loop: translate 4px left with elastic out, collides, jitter 3x at 60ms, bounce back 4px. 1.8s loop, easeOutElastic on bounce. Trigger on validation fail.",
      "color_logic": "Amber #FFA500 for mismatch, desaturated grey for slot. Hue does not encode severity; opacity of X encodes mismatch degree."
    },
    {
      "id": "B1.02",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.TOOL.WAIT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1200,
      "loop": true,
      "static_form": "Tool glyph (wrench 45deg) inside dotted 24px circle with centered 2-bar pause icon (||) overlay. Dotted circle = waiting container.",
      "motion": "Static hold with pause bars breathing opacity 0.35->1.0 sine in-out 1.2s loop. No rotation. Dots static.",
      "color_logic": "Desaturated slate-blue #6B7B8F = idle wait. No hue scale."
    },
    {
      "id": "B1.03",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.MEM.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1500,
      "loop": true,
      "static_form": "Two stacked memory layers (3 horizontal bars each) overlapping at 30deg offset, central collision diamond with !. Overlap region hatched.",
      "motion": "Layers push toward center 2px then recoil 0.15s alternating, collision diamond flashes 200ms on contact. 1.5s loop.",
      "color_logic": "Dual-tone: teal #2EB5A5 vs magenta #D6457C for conflicting traces, yellow flash on conflict zone."
    },
    {
      "id": "B1.04",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.TASK.UNDERSPECIFIED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Dashed rounded rectangle (task card) with missing bottom edge, central ? formed by dotted pixels, 3 corner anchors present 1 missing.",
      "motion": "Dotted ? flickers random pixels, dashed border marches slowly clockwise (marching ants 2s). Missing edge pulses outline.",
      "color_logic": "Light grey #B0BEC5 dashed = underspecified, amber ? = need clarification."
    },
    {
      "id": "B1.05",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.EVIDENCE.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Balance scale with two document icons on pans tilted 15deg, documents have opposing arrows (↑ vs ↓), central crack line.",
      "motion": "Scale tips left-right 0.8s seesaw easeInOut, documents vibrate, crack glows on extreme tilt. Loop 2s.",
      "color_logic": "Neutral grey scale, documents: cyan vs orange for opposing evidence. Red crack intensity = conflict severity."
    },
    {
      "id": "B1.06",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.TOOL.WAITING",
      "status": "passed",
      "concept": null,
      "duration_ms": 1000,
      "loop": true,
      "static_form": "Wrench inside 270deg C-shaped progress ring with 90deg gap at top, 4 tick marks on circumference.",
      "motion": "Ring rotates clockwise continuous linear 1s/rev, gap acts as spinner. Ticks pass fixed indicator. Stutters if polling blocked.",
      "color_logic": "Active cyan #00B8D4 = actively waiting/polling."
    },
    {
      "id": "B1.07",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.PLAN.REVISE",
      "status": "passed",
      "concept": null,
      "duration_ms": 2500,
      "loop": true,
      "static_form": "Polyline path with 3 nodes (circle-square-circle) + eraser icon erasing middle segment with dashed revised segment branching off at 30deg.",
      "motion": "Eraser scrubs middle segment 300ms, old segment fades to dotted, new dashed segment draws in left-to-right 600ms easeOutQuad. Loop 2.5s with pause.",
      "color_logic": "Grey #9E9E9E old path, electric blue #2979FF new path, pink eraser."
    },
    {
      "id": "B1.08",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.STATE.ROLLBACK",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Horizontal timeline with 4 ticks, current marker at tick 4, curved U-arrow from tick 4 back to tick 2 checkpoint (flag).",
      "motion": "Marker jumps back along arrow with motion blur, timeline flashes at target checkpoint 150ms, arrow draws backward 400ms easeInCubic. Loop 2s hold.",
      "color_logic": "Amber #FFAB00 for rollback arrow, grey timeline, green flag checkpoint."
    },
    {
      "id": "B1.09",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.SPEC.GAP",
      "status": "revised",
      "concept": "Knowledge gap / missing information",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "24px knowledge lattice containing six fixed information cells arranged 3x2. Five cells are solid and connected; one required cell is an unmistakable empty outlined socket. A short inbound dependency line terminates at the empty socket without connecting. The missing location, not general incompleteness, is the dominant geometry.",
      "motion": "Dependency pulse travels through connected cells, reaches the empty socket, and halts. The empty socket emits one expanding outline pulse, then the dependency pulse resets. 1.8s loop. No random motion.",
      "color_logic": "Known cells use neutral cool grey. The missing socket uses amber #FFA500 plus an unfilled interior and dashed inbound termination. Color is redundant; absence and disconnected topology encode the state."
    },
    {
      "id": "B1.10",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.BUDGET.EXHAUST",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Vertical fuel gauge / battery with 5 segments, all empty outlined, bottom segment red, top $/token icon with 0, diagonal slash across.",
      "motion": "Needle/level drops from full to empty in 800ms easeInExpo then shakes at empty 100ms. Slash draws diagonally. Hold empty 1s.",
      "color_logic": "Green->yellow->red gradient by level; final state solid red #D32F2F = exhausted, grey empty segments."
    },
    {
      "id": "B1.11",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.EXEC.SANDBOXED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Outer dashed cube (isometric) containing inner solid cube with execution play-triangle inside. Outer cube has lock icons on corners.",
      "motion": "Inner cube gently floats/bobs 6px vertical sine 2s, outer cube border pulses containment field 1.5s, no escape. Containment shimmer on edges.",
      "color_logic": "Outer sandbox amber dashed #FF8F00 = containment, inner execution cyan #00ACC1 = active but confined."
    },
    {
      "id": "B1.12",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.SELF.CORRECT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2200,
      "loop": true,
      "static_form": "Forward arrow that loops into U-turn with eraser tail, small checkmark at new direction, ghost of old arrow faint behind.",
      "motion": "Arrow moves forward 200ms, pauses, draws U-turn 400ms easeInOutBack, eraser wipes ghost trail 300ms. Loop 2.2s.",
      "color_logic": "Grey ghost = prior error, teal #009688 corrected path, green check = correction validated."
    },
    {
      "id": "B1.13",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.INJECT.SUSPECT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "Syringe/injection arrow piercing document/shield shape, overlay warning triangle with ! at injection point, biohazard-like pixels around entry.",
      "motion": "Syringe pulses inward 2px 3x rapid 150ms then warning triangle flashes red 200ms on/off. Loop 1.6s. Trigger on input parse.",
      "color_logic": "Syringe neon green #76FF03 = external content, warning red #FF1744 = suspect, shield grey."
    },
    {
      "id": "B1.14",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.STATE.STALE",
      "status": "passed",
      "concept": null,
      "duration_ms": 3000,
      "loop": true,
      "static_form": "Clock face with 3 hands frozen at 10:10, overlay dust particles and cobweb corners, calendar page curl with faded text.",
      "motion": "Clock ticks attempt to move then snaps back 50ms jitter every 1.5s, dust particles drift slowly down 3s linear, no progress.",
      "color_logic": "Sepia/desaturated #8D6E63 = stale/aged, dust grey #BCAAA4, frozen hands dark."
    },
    {
      "id": "B1.15",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.EXEC.PARTIAL",
      "status": "revised",
      "concept": "Partial progress / paused incomplete",
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Horizontal execution rail from start node to terminal node. Completed section is solid, remaining section is dotted, and the transition point contains a perpendicular pause-cap composed of two short bars. The terminal node remains visibly hollow.",
      "motion": "Progress pulse advances along the completed rail, stops exactly at the pause-cap, compresses slightly against it, and remains stationary for 600ms before resetting. It never enters the unfinished dotted segment.",
      "color_logic": "Completed path uses teal #20C7C7, unfinished path uses desaturated grey, pause-cap uses amber #FFA500. Geometry independently communicates completed, paused, and remaining portions."
    },
    {
      "id": "B1.16",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.RATE.LIMIT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1400,
      "loop": true,
      "static_form": "Speedometer semicircle with needle at 85% mark, red limit line at 80%, throttle bars stacked vertically to right (3 bars).",
      "motion": "Needle vibrates against limit line 50ms buzz, throttle bars sequentially light up then dim 600ms cascade. Loop 1.4s.",
      "color_logic": "Green zone < limit, red #E53935 beyond limit line, amber buzz zone."
    },
    {
      "id": "B1.17",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.EXEC.RETRY",
      "status": "passed",
      "concept": null,
      "duration_ms": 1500,
      "loop": true,
      "static_form": "Circular arrow loop (270deg) with centered dot and small counter badge 'xN' at bottom-right, arrowhead gap at top.",
      "motion": "Arrow spins 360deg clockwise 700ms easeInOutCubic, pauses, counter increments tick animation (scale pop 150ms). Loop 1.5s. Triggers per retry.",
      "color_logic": "Retry blue #1E88E5 loop, counter badge orange #FB8C00 = attempt count."
    },
    {
      "id": "B1.18",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.DELEGATE.FANOUT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Single central node (hexagon) with 5 outward rays to leaf nodes (dots) forming fan/tree, lines thin to thick outward.",
      "motion": "Central node pulses 200ms then leaves light up sequentially outward 80ms stagger (wave propagation). Lines draw outward 400ms. Loop 1.8s.",
      "color_logic": "Parent indigo #3949AB, leaves teal #00BFA5, lines gradient parent->leaf."
    },
    {
      "id": "B1.19",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.HUMAN.PERMISSION_GATED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Human silhouette icon behind vertical gate/bars, gate has lock with keyhole, hand icon reaching but blocked by gate line.",
      "motion": "Gate bars slide closed 300ms easeOut, lock clicks shut (scale 1.2 then back 100ms), hand icon bumps gate 2x with recoil. Loop 2s hold closed.",
      "color_logic": "Human warm grey #795548, gate steel blue #546E7A, lock red #C62828 = blocked, green when granted (not shown)."
    },
    {
      "id": "B1.20",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.TOOL.FAILURE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "Wrench icon snapped in two with jagged crack gap 3px, overlaid bold X in circle, small sparks at break point.",
      "motion": "Wrench attempts to turn 15deg then snaps back with crack flash 100ms, X pops in scale 0->1 easeOutBack, sparks emit once. Loop 1.6s.",
      "color_logic": "Tool steel grey #78909C, crack/sparks orange #FF6D00, failure X red #D50000."
    },
    {
      "id": "B1.21",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.TOOL.AWAIT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1500,
      "loop": true,
      "static_form": "Wrench icon above hourglass with sand, hourglass frame encloses wrench shadow, dotted baseline.",
      "motion": "Sand trickles top->bottom continuous 1.5s linear, wrench gently bobs 4px sine 1.5s, hourglass flip not triggered until resolved.",
      "color_logic": "Waiting amber #FFB300 sand, tool grey desaturated 50% = suspended."
    },
    {
      "id": "B1.22",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.EPISTEMIC.UNGROUNDED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Thought bubble / brain outline floating above dashed ground line with gap, tether line cut/dangling, small ? inside bubble.",
      "motion": "Bubble floats up/down 8px sine 2s with slight drift, tether sways, ground dashed line flickers. No grounding snap.",
      "color_logic": "Bubble light blue #81D4FA = ungrounded claim, ground grey dashed = missing grounding, ? amber."
    },
    {
      "id": "B1.23",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.STATE.ROLLBACK",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Circular rewind symbol: 2 left-pointing triangles with curved arrow looping back to earlier checkpoint dot on circular timeline.",
      "motion": "Rewind arrow draws counter-clockwise 500ms, triangles blink sequentially, checkpoint dot pings outward ripple. Loop 2s. Duplicate variant for redundancy signaling.",
      "color_logic": "Rewind amber #FF8F00, timeline grey #BDBDBD, checkpoint green #43A047."
    },
    {
      "id": "B1.24",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.CONSTRAINT.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1400,
      "loop": true,
      "static_form": "Two opposing bracket walls [ ] closing in on central block, block squeezed with stress lines, X at contact points.",
      "motion": "Brackets push inward 4px 300ms easeIn, block compresses 10% then pushes back, stress lines flash. Loop 1.4s.",
      "color_logic": "Brackets red #E53935 vs blue #1E88E5 = conflicting constraints, block grey, stress yellow."
    },
    {
      "id": "B1.25",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.ACTION.COMMITTED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "Forward arrow stamped into block with ink stamp border, lock icon over tail, checkmark seal at tip.",
      "motion": "Stamp slams down 150ms easeInExpo with impact shake 80ms, ink spreads outward, lock clicks shut. One-shot then hold (no loop).",
      "color_logic": "Committed ink indigo #283593, lock bronze #6D4C41 = irreversible, seal green #2E7D32."
    },
    {
      "id": "B1.26",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.TOOL.RATE_LIMITED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "Wrench overlaid with speedometer limiter: wrench behind vertical throttle bar with 3 segments, top segment red capped, clock icon small.",
      "motion": "Throttle bar fills then hits cap and bounces 100ms, wrench greys out and pulses dim 500ms, clock ticks. Loop 1.6s.",
      "color_logic": "Wrench greyed #90A4AE when limited, bar green->red at cap #EF5350, clock amber."
    },
    {
      "id": "B1.27",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.GOAL.DRIFT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Bullseye target with center dot (goal) and dotted arrow path that curves away from center, small boat/arrowhead drifting off-axis.",
      "motion": "Arrowhead slowly drifts off-center 6px over 2s easeInQuad, path trail fades behind, target pulses weakly. Loop with reset.",
      "color_logic": "Target concentric teal #009688, drift path amber dashed #FFA000 = divergence, arrowhead red when far."
    },
    {
      "id": "B1.28",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.STATE.CHECKPOINT_ROLLBACK",
      "status": "passed",
      "concept": null,
      "duration_ms": 2400,
      "loop": true,
      "static_form": "Timeline with flag checkpoint at mid-point, current position marker at end, U-shaped arrow with checkpoint diamond at elbow returning to flag.",
      "motion": "Marker rewinds along U-arrow 600ms easeInOut, flag waves 200ms on arrival, diamond checkpoint glows. Loop 2.4s.",
      "color_logic": "Timeline slate #607D8B, flag/checkpoint green #00C853 = safe restore point, rewind arrow blue #2962FF."
    },
    {
      "id": "B1.29",
      "source_model": "Muse Spark",
      "source_state_id": "AGT.CTX.PRESSURE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Vertical container/bar with stacked text lines inside, pressure lid on top with gauge, lines compressed at top, overflow indicator at brim.",
      "motion": "Lines compress upward 4px and jitter 60ms, gauge needle rises 500ms, container walls bulge 2% sine 1s. Loop 1.8s.",
      "color_logic": "Container grey #CFD8DC, gauge green->yellow->red by pressure, overflow red flash at 100%."
    },
    {
      "id": "B2.01",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.CONTROL.SELF_CORRECTION",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A vector path that abruptly intersects its own trailing trajectory, forming a sharp loop.",
      "motion": "Path draws forward, pauses, retraces backward to the intersection point, then redirects along a new vector. Easing is linear on trace, snap-step on redirect.",
      "color_logic": "Original path is Cyan (#00FFFF), retraced segment shifts to Magenta (#FF00FF) to mark the overwritten state."
    },
    {
      "id": "B2.02",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.GROUND.UNVERIFIED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A dashed circular outline with a floating, unattached center point.",
      "motion": "Dashes rotate around the perimeter, while the center point oscillates radially but never connects to the perimeter.",
      "color_logic": "Grayscale, shifting between white and dark gray."
    },
    {
      "id": "B2.03",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.POLICY.BLOCKED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A solid vertical barrier bisecting a directional arrow.",
      "motion": "Arrow pushes against the barrier with a high-frequency, low-amplitude vibration. No forward translation occurs.",
      "color_logic": "Barrier is pure Red (#FF0000), arrow is Dark Gray (#333333)."
    },
    {
      "id": "B2.04",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.SAFETY.INJECTION_SUSPECTED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A concentric ring system disrupted by an irregular, jagged external polygon intruding into the inner ring.",
      "motion": "The external polygon pulses with a staccato, irregular flicker. The inner ring retracts defensively, shrinking radius.",
      "color_logic": "Alternating high-contrast Magenta and Black frames on the intruding polygon."
    },
    {
      "id": "B2.05",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.EPISTEMIC.LOW_CONFIDENCE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A target with concentric rings where the center is a blurred gradient rather than a sharp point.",
      "motion": "The boundary of the blurred center expands and contracts asynchronously (a breathing effect).",
      "color_logic": "Desaturated Blue, shifting toward transparent at the edges."
    },
    {
      "id": "B2.06",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.CTX.WINDOW_PRESSURE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A bounding rectangle filled with a dense grid of moving particles.",
      "motion": "Particles vibrate with increasing speed. The bounding rectangle slowly compresses inward over time, then rapidly expands back to original size.",
      "color_logic": "Boundary shifts from Green to Red as compression increases."
    },
    {
      "id": "B2.07",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.SPEC.AMBIGUOUS",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A branching tree structure where multiple endpoints terminate at identical spatial hierarchies.",
      "motion": "Branches sway asynchronously. A pulse travels down the trunk but stops at the branch point, unable to choose a path.",
      "color_logic": "All branches share the exact same hue (Yellow) without any brightness variation."
    },
    {
      "id": "B2.08",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.STATE.STALE",
      "status": "revised",
      "concept": "Signal flatline / stalled",
      "duration_ms": 2200,
      "loop": true,
      "static_form": "Left-to-right signal trace inside a narrow 24px telemetry frame. First third contains two normal amplitude oscillations; amplitude then collapses sharply into a perfectly horizontal centerline extending through the remainder of the frame. A small terminal dot remains motionless at the far right.",
      "motion": "Oscillating signal propagates from left, loses amplitude over two cycles, reaches zero amplitude, and remains flat for 900ms. The terminal dot does not advance during the flat state. 2.2s loop.",
      "color_logic": "Active oscillation uses teal #20C7C7. Flat segment uses amber #FFA500 with reduced luminance. State is encoded primarily by amplitude collapse and zero displacement."
    },
    {
      "id": "B2.09",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.ENV.UNREADY",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A concave socket and a convex plug that remain separated by a strict spatial gap.",
      "motion": "Plug moves toward socket, halts precisely at the gap distance, and vibrates in place. Socket remains static.",
      "color_logic": "Plug is Yellow, socket is Gray."
    },
    {
      "id": "B2.10",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.MEM.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Two solid vectors originating from the same point, pointing in divergent directions.",
      "motion": "Vectors push against each other, causing the origin point to shake violently. Vectors elongate and retract asymmetrically.",
      "color_logic": "Vector A is Blue, Vector B is Orange."
    },
    {
      "id": "B2.11",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.EVIDENCE.DIVERGE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Parallel lines that fan out from a single origin point, never intersecting again.",
      "motion": "Lines continuously extend outward, increasing the spatial gap between them linearly.",
      "color_logic": "Gradient from solid Green at origin to transparent at the tips."
    },
    {
      "id": "B2.12",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.EXEC.RETRY_EXHAUSTED",
      "status": "revised",
      "concept": "Broken / incomplete loop",
      "duration_ms": 1700,
      "loop": true,
      "static_form": "Circular directed execution loop composed of four curved segments and directional arrowheads. One segment is completely absent, leaving a clearly visible gap between two dangling endpoints. The upstream endpoint has an arrowhead aimed across the gap but no connecting path.",
      "motion": "Execution token travels clockwise around the valid loop, reaches the first dangling endpoint, attempts one short forward movement into the gap, snaps back, and resets. It never teleports across the break. 1.7s loop.",
      "color_logic": "Valid loop uses neutral teal. Both broken endpoints use amber #FFA500. Gap width and disconnected endpoints communicate failure independently of hue."
    },
    {
      "id": "B2.13",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.REASON.LOW_CONF",
      "status": "revised",
      "concept": "High entropy / noisy state",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A central intended signal axis runs horizontally through a 24px field while 12 to 24 small state particles are displaced irregularly above and below it. Only a minority remain inside a narrow tolerance corridor around the axis. Particle positions are deliberately non-clustered and non-symmetric.",
      "motion": "Particles jitter independently with bounded pseudo-random displacement while the intended centerline remains fixed. Occasional particles briefly enter the tolerance corridor and leave again. Motion must appear stochastic rather than oscillatory.",
      "color_logic": "Centerline uses desaturated grey. In-tolerance particles use teal #20C7C7; out-of-tolerance particles use amber #FFA500. Spatial dispersion is the primary entropy encoding."
    },
    {
      "id": "B2.14",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.EVIDENCE.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Two opposing waveforms occupying the same spatial axis, creating an interference pattern.",
      "motion": "Waves move toward each other, collide, and create a high-amplitude standing wave at the intersection that flashes.",
      "color_logic": "Wave A is Cyan, Wave B is Magenta, interference is White."
    },
    {
      "id": "B2.15",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.TOOL.RETRY_EXHAUSTED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A gear missing a tooth, with a red X overlaid in the center.",
      "motion": "Gear attempts to rotate, jams on the missing tooth, jerks backward, and stops. The X pulses once.",
      "color_logic": "Gear is Gray, X is Red."
    },
    {
      "id": "B2.16",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.MEM.STATE_STALE",
      "status": "revised",
      "concept": "State overwrite / replacement",
      "duration_ms": 1400,
      "loop": true,
      "static_form": "Two same-sized 16px state frames occupy the same coordinates. The prior state is rendered as a thin ghost outline shifted 2px left; the replacement state is a solid frame aligned to the canonical position. A horizontal overwrite sweep bar sits between them, pointing from old to new. This is replacement, not merge.",
      "motion": "New-state frame translates directly over the old frame while a wipe plane erases the prior state's internal marks from left to right. Old frame opacity reaches zero exactly as the new frame locks into position. 1.4s one-way cycle.",
      "color_logic": "Old state uses low-opacity grey with strike-through hatching. New state uses teal #20C7C7. Overwrite sweep uses amber #FFA500 only while replacement is occurring."
    },
    {
      "id": "B2.17",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.TASK.CONSTRAINT_CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A Venn diagram where the intersection boundaries are jagged and spiked.",
      "motion": "Circles push against each other, causing the spiked intersection to flash erratically.",
      "color_logic": "Circles are Red and Blue, intersection is bright Yellow."
    },
    {
      "id": "B2.18",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.POLICY.BLOCKED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A solid vertical barrier bisecting a directional arrow.",
      "motion": "Arrow pushes against the barrier with a high-frequency, low-amplitude vibration. No forward translation occurs.",
      "color_logic": "Barrier is pure Red (#FF0000), arrow is Dark Gray (#333333)."
    },
    {
      "id": "B2.19",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.TASK.EXECUTION_COMMITTED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A solid arrow locked into a rectangular bracket.",
      "motion": "Arrow slides into bracket, bracket snaps shut, and a shockwave radiates outward from the connection point.",
      "color_logic": "Arrow and bracket transition from Yellow to solid Green upon locking."
    },
    {
      "id": "B2.20",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.SPAWN.FANOUT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A central node with multiple directional vectors extending outward radially.",
      "motion": "Vectors emit sequentially in a rapid clockwise sweep, then retract simultaneously into the node.",
      "color_logic": "Central node is White, vectors are Neon Blue."
    },
    {
      "id": "B2.21",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.TOOL.RETRY",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A circular arrow with a single gap in the loop.",
      "motion": "Arrow head travels 360 degrees, pauses at the gap for a fixed duration, then repeats.",
      "color_logic": "Yellow."
    },
    {
      "id": "B2.22",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.PLAN.ACTIVE",
      "status": "revised",
      "concept": "DAG / workflow progress",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Directed acyclic graph with one root, two middle branches, one merge node, and one terminal node. Completed nodes are solid circles, active frontier node is double-ringed, and future nodes are hollow. Directed edges contain small chevrons so graph direction is explicit. No edge forms a cycle.",
      "motion": "A single execution pulse traverses completed edges and stops at the active frontier. When progress increments, the frontier node fills and the pulse advances to the next topologically valid node. Parallel branches may illuminate simultaneously before the merge.",
      "color_logic": "Completed topology uses teal #20C7C7, active frontier uses amber #FFA500, pending topology uses grey. Node fill state and graph position encode status independently of color."
    },
    {
      "id": "B2.23",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.EXEC.COMMIT",
      "status": "revised",
      "concept": "Grounding / threshold commit",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Three evidence-source nodes feed upward into a horizontal threshold gate. Above the gate is a single commit node represented by a filled diamond. Evidence lines terminate below the gate until aggregate support reaches threshold; only then does one consolidated line cross the gate into the commit diamond.",
      "motion": "Evidence pulses accumulate beneath the threshold bar. The bar displays increasing fill from left to right. Once threshold is crossed, the bar locks, a consolidated pulse passes through, and the commit diamond fills with a brief snap animation.",
      "color_logic": "Evidence sources use neutral blue-grey, verified evidence uses teal #20C7C7, below-threshold gate uses amber #FFA500, committed state uses solid teal. Crossing topology is the decisive encoding."
    },
    {
      "id": "B2.24",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.COORD.CONSENSUS",
      "status": "revised",
      "concept": "Consensus / alignment",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Four directional agent vectors originate from different angles around a central field. Before alignment they point toward different headings; the target state shows them occupying four parallel lanes with identical arrow orientation. A small alignment axis runs through the center.",
      "motion": "Vectors rotate from divergent headings toward the shared axis. Each locks into a parallel lane when angular error falls below tolerance. The final state remains four distinct vectors rather than collapsing into one.",
      "color_logic": "Unaligned vectors use grey with amber angular-error arcs. Aligned vectors use teal #20C7C7. Angular geometry, not color, represents degree of agreement."
    },
    {
      "id": "B2.25",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.TOOL.RETRYING",
      "status": "revised",
      "concept": "Degraded tool / friction",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A tool-operation token travels through a straight execution channel containing three narrow resistance ribs. The channel remains connected and usable, distinguishing degradation from failure. The token is visibly compressed between ribs and exits smaller or slower than it entered.",
      "motion": "Token moves toward output, slows at each resistance rib, compresses by 15 percent, slips backward 1px once, then continues. Successful exit still occurs. Loop duration lengthens with degradation.",
      "color_logic": "Channel uses grey, healthy token uses teal #20C7C7, resistance ribs use amber #FFA500. Tool remains structurally intact; increased traversal resistance encodes degradation."
    },
    {
      "id": "B2.26",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.HANDOFF.OUT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A bounding box with an open right edge, and an arrow exiting through the opening.",
      "motion": "A packet moves along the arrow, exits the bounding box, and the bounding box border fades out completely.",
      "color_logic": "Packet is Cyan, bounding box is Gray."
    },
    {
      "id": "B2.27",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.QUEUE.FOLLOWUP",
      "status": "revised",
      "concept": "Queue / stack pop",
      "duration_ms": 1500,
      "loop": true,
      "static_form": "Vertical stack of four rectangular frames with the top element visibly offset upward by 3px. A short upward extraction arrow originates directly beneath the top element. Remaining elements retain their order and position.",
      "motion": "Top frame lifts vertically out of the stack, crosses a small boundary line, disappears, and all remaining frames shift upward exactly one slot. A new top frame then becomes active. 1.5s discrete step animation.",
      "color_logic": "Queued frames use grey. Active top frame uses teal #20C7C7. Extraction arrow uses amber #FFA500 during pop. Ordering and physical removal are sufficient without color."
    },
    {
      "id": "B2.28",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.KNOWLEDGE.STALE",
      "status": "revised",
      "concept": "Graph decay / memory loss",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Small connected graph arranged from oldest nodes on the left to newest nodes on the right. Right-side nodes have solid edges; moving leftward, edges become dashed, then broken, and the oldest node becomes an isolated faint outline. A directional age axis is shown below.",
      "motion": "Decay wave advances slowly from left to right. Edges lose segments first, then affected nodes shrink slightly and fade. Newest nodes remain fully connected. No sudden deletion unless decay reaches maximum.",
      "color_logic": "Healthy graph uses teal-grey, decaying edges use amber #FFA500, lost nodes use low-opacity grey. Connectivity loss and edge fragmentation are primary encodings."
    },
    {
      "id": "B2.29",
      "source_model": "GLM 5.2",
      "source_state_id": "AGT.TOOL.WAITING",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "An hourglass shape where the sand particles are suspended mid-air.",
      "motion": "Particles vibrate in place, neither falling nor rising. The top and bottom bulbs pulse slightly out of phase.",
      "color_logic": "Yellow."
    },
    {
      "id": "B3.01",
      "source_model": "Sol",
      "source_state_id": "AGT.SCHEMA.MISMATCH",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Two interlocking frame outlines with incompatible edge keys; one side uses square notches and the other triangular sockets, leaving a visible non-fit seam.",
      "motion": "Frames repeatedly approach alignment, fail at the seam, and recoil. Loop uses fast convergence, abrupt rejection, then slower reset.",
      "color_logic": "Optional contrasting hues distinguish expected schema from received structure; mismatch location may use a third accent."
    },
    {
      "id": "B3.02",
      "source_model": "Sol",
      "source_state_id": "AGT.LOOP.DETECT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2800,
      "loop": true,
      "static_form": "Closed cyclic path containing a repeated node signature, with one node visually duplicated to expose recurrence.",
      "motion": "A tracer circulates the cycle, accelerating slightly each pass until the duplicated node flashes and the path locks.",
      "color_logic": "Hue need not encode semantics; brightness can distinguish repeated state from ordinary states."
    },
    {
      "id": "B3.03",
      "source_model": "Sol",
      "source_state_id": "AGT.STATE.ROLLBACK",
      "status": "passed",
      "concept": null,
      "duration_ms": 2200,
      "loop": true,
      "static_form": "Layered state frames arranged along a shallow temporal axis, with the newest layer partially detached from a prior stable layer.",
      "motion": "Foreground state collapses backward into an earlier frame, which expands and becomes dominant. Loop may pause on restored state before replaying.",
      "color_logic": "Optional hue progression encodes temporal order; restored state retains the prior hue rather than blending."
    },
    {
      "id": "B3.04",
      "source_model": "Sol",
      "source_state_id": "AGT.HUMAN.REQUIRED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2400,
      "loop": true,
      "static_form": "Machine-process lattice terminating at a hard boundary containing a distinct asymmetric handoff node that cannot be traversed automatically.",
      "motion": "Automated pulses reach the boundary and stop; the handoff node emits a slow request pulse until an external trigger resolves it.",
      "color_logic": "A dedicated hue may mark human-gated nodes, but geometry should remain sufficient without color."
    },
    {
      "id": "B3.05",
      "source_model": "Sol",
      "source_state_id": "AGT.EVIDENCE.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Two or more evidence vectors converge on the same proposition node from mutually incompatible directions, forming an unresolved angular collision.",
      "motion": "Evidence vectors alternately assert toward the center; the center oscillates without settling. Stronger evidence pushes farther before rebound.",
      "color_logic": "Distinct hues may identify evidence sources; hue opposition itself should not imply truth versus falsehood."
    },
    {
      "id": "B3.06",
      "source_model": "Sol",
      "source_state_id": "AGT.LOOP.DETECT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2800,
      "loop": true,
      "static_form": "Closed cyclic path containing a repeated node signature, with one node visually duplicated to expose recurrence.",
      "motion": "A tracer circulates the cycle, accelerating slightly each pass until the duplicated node flashes and the path locks.",
      "color_logic": "Hue need not encode semantics; brightness can distinguish repeated state from ordinary states."
    },
    {
      "id": "B3.07",
      "source_model": "Sol",
      "source_state_id": "AGT.PLAN.REVISED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2500,
      "loop": true,
      "static_form": "Primary route graph with one branch crossed by a clean splice into a replacement branch, preserving the shared prefix.",
      "motion": "Tracer follows the original route, pauses at the revision point, then the obsolete branch retracts while the new branch unfolds.",
      "color_logic": "Optional hue difference separates superseded and current branches; superseded geometry should also become thinner or dashed."
    },
    {
      "id": "B3.08",
      "source_model": "Sol",
      "source_state_id": "AGT.COORD.FANOUT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2200,
      "loop": true,
      "static_form": "Single origin node splitting symmetrically or semi-symmetrically into multiple outward channels ending in peer nodes.",
      "motion": "One packet reaches the origin and divides into synchronized child packets that propagate outward; children may return acknowledgments.",
      "color_logic": "Shared hue can encode common task lineage; optional endpoint hue variation can encode role classes."
    },
    {
      "id": "B3.09",
      "source_model": "Sol",
      "source_state_id": "AGT.TOOL.FAIL",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "Tool-call node connected to a terminal fragment with a broken continuation edge.",
      "motion": "Invocation pulse enters the tool node, produces a brief deformation, then the outgoing edge snaps or extinguishes instead of completing.",
      "color_logic": "Failure may use reduced luminance or a high-contrast error hue, but broken topology is the primary carrier."
    },
    {
      "id": "B3.10",
      "source_model": "Sol",
      "source_state_id": "AGT.TOOL.RETRYING",
      "status": "passed",
      "concept": null,
      "duration_ms": 2400,
      "loop": true,
      "static_form": "Tool node enclosed by a partial circular return path feeding its input again.",
      "motion": "Invocation pulse enters, fails to exit, follows the return arc, and retries. Each retry may include backoff pauses before re-entry.",
      "color_logic": "Optional brightness ramp distinguishes current retry from prior attempts; no fixed semantic hue required."
    },
    {
      "id": "B3.11",
      "source_model": "Sol",
      "source_state_id": "AGT.TOOL.AWAITING_RESULT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2400,
      "loop": true,
      "static_form": "Tool node connected to an open-ended response channel containing a suspended packet or empty response socket.",
      "motion": "Invocation leaves the node; the response side performs a slow breathing expansion while remaining incomplete. Animation resolves only on result arrival.",
      "color_logic": "Neutral hue preferred; optional phase shift can distinguish sent request from pending response."
    },
    {
      "id": "B3.12",
      "source_model": "Sol",
      "source_state_id": "AGT.SCHEMA.MISMATCH",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Two interlocking frame outlines with incompatible edge keys; one side uses square notches and the other triangular sockets, leaving a visible non-fit seam.",
      "motion": "Frames repeatedly approach alignment, fail at the seam, and recoil. Loop uses fast convergence, abrupt rejection, then slower reset.",
      "color_logic": "Optional contrasting hues distinguish expected schema from received structure; mismatch location may use a third accent."
    },
    {
      "id": "B3.13",
      "source_model": "Sol",
      "source_state_id": "AGT.SEC.INJECTION_SUSPECTED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Trusted instruction stream enclosed by a boundary, with a foreign narrow wedge entering at an anomalous angle but not yet penetrating the core.",
      "motion": "Foreign wedge probes the boundary in short irregular impulses; the boundary stiffens and the suspicious segment is isolated rather than accepted.",
      "color_logic": "Source-class hue may distinguish trusted versus untrusted input; suspicion confidence can be encoded by saturation."
    },
    {
      "id": "B3.14",
      "source_model": "Sol",
      "source_state_id": "AGT.SPEC.UNDERSPECIFIED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2400,
      "loop": true,
      "static_form": "Partially constructed constraint frame with deliberate missing edges and multiple valid continuation sockets.",
      "motion": "Potential completion branches faintly appear and disappear without one becoming dominant; unresolved sockets pulse slowly.",
      "color_logic": "Color is unnecessary; opacity differences can separate fixed constraints from hypothetical completions."
    },
    {
      "id": "B3.15",
      "source_model": "Sol",
      "source_state_id": "AGT.SECURITY.INJECTION",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Instruction channel visibly breached by an alien command filament that crosses a trust boundary and attempts to merge into the control path.",
      "motion": "The filament penetrates rapidly, then containment geometry clamps around it and diverts it away from the control core.",
      "color_logic": "Distinct source hue strongly recommended for the injected filament; trust boundary retains invariant hue or luminance."
    },
    {
      "id": "B3.16",
      "source_model": "Sol",
      "source_state_id": "AGT.MODE.RESTRICTED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2200,
      "loop": true,
      "static_form": "Normal capability lattice enclosed inside a reduced aperture, with several outward edges visibly capped.",
      "motion": "Internal pulses move normally but terminate at capped edges; the aperture periodically contracts to reinforce restricted operating space.",
      "color_logic": "Desaturation can encode reduced capability, while active permitted paths retain normal intensity."
    },
    {
      "id": "B3.17",
      "source_model": "Sol",
      "source_state_id": "AGT.TASK.PLAN_REVISED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2600,
      "loop": true,
      "static_form": "Task-rooted dependency graph showing a retained trunk and one or more replaced downstream subgraphs.",
      "motion": "Old subgraph fades and folds inward from the revision boundary while a new dependency structure grows outward from the same anchor.",
      "color_logic": "Optional temporal hue coding distinguishes prior and current plan versions; shared trunk remains unchanged."
    },
    {
      "id": "B3.18",
      "source_model": "Sol",
      "source_state_id": "AGT.EXEC.COMMIT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Prepared action path terminating in a threshold line beyond which the state representation becomes fixed or latched.",
      "motion": "A packet advances slowly toward the threshold, then crosses with a sharp snap; behind it, the path locks and stops oscillating.",
      "color_logic": "Color can remain constant; irreversible transition is encoded by geometry and loss of backward motion."
    },
    {
      "id": "B3.19",
      "source_model": "Sol",
      "source_state_id": "AGT.TOOL.FAILED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Tool invocation node with a collapsed output port and a disconnected downstream edge.",
      "motion": "Input pulse enters, output port contracts to zero, and a short failure shock propagates backward to the caller before reset.",
      "color_logic": "Optional error hue at the collapsed port only; topology communicates failure independently."
    },
    {
      "id": "B3.20",
      "source_model": "Sol",
      "source_state_id": "AGT.SECURITY.INJECTION",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Instruction channel visibly breached by an alien command filament that crosses a trust boundary and attempts to merge into the control path.",
      "motion": "The filament penetrates rapidly, then containment geometry clamps around it and diverts it away from the control core.",
      "color_logic": "Distinct source hue strongly recommended for the injected filament; trust boundary retains invariant hue or luminance."
    },
    {
      "id": "B3.21",
      "source_model": "Sol",
      "source_state_id": "AGT.PLAN.ACTIVE",
      "status": "revised",
      "concept": "Plan / workflow progress",
      "duration_ms": 2800,
      "loop": true,
      "static_form": "Ordered five-stage plan represented as linked rectangular steps on a single directed path. Completed steps contain check-mark geometry, current step has a double border and inbound arrow, and future steps are hollow. Unlike DAG progress, this glyph is strictly sequential.",
      "motion": "Execution cursor advances from completed step to current step, pulses twice inside it, then remains there. When current step completes, its interior fills and the cursor transitions to the next rectangle.",
      "color_logic": "Completed stages use teal #20C7C7, current stage uses amber #FFA500, future stages use grey. Position in ordered sequence provides the primary encoding."
    },
    {
      "id": "B3.22",
      "source_model": "Sol",
      "source_state_id": "AGT.TOOL.THROTTLED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2200,
      "loop": true,
      "static_form": "Tool-call channel passing through a narrow gate that allows only discrete packets through.",
      "motion": "Packets accumulate before the gate and are released at regulated intervals; compression rises as the queue grows.",
      "color_logic": "Color is optional; queue density and gate cadence carry the main meaning."
    },
    {
      "id": "B3.23",
      "source_model": "Sol",
      "source_state_id": "AGT.GOAL.DRIFT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2400,
      "loop": true,
      "static_form": "Initial goal vector and current trajectory share an origin but progressively diverge, with a faint reference axis preserving intended direction.",
      "motion": "Current trajectory slowly bends away from the reference axis; periodic correction impulses attempt to pull it back.",
      "color_logic": "Optional distinct hues for intended and current goal vectors; angular separation remains the primary signal."
    },
    {
      "id": "B3.24",
      "source_model": "Sol",
      "source_state_id": "AGT.KNOW.CUTOFF",
      "status": "passed",
      "concept": null,
      "duration_ms": 2400,
      "loop": true,
      "static_form": "Knowledge timeline or expanding information field terminated by a sharp temporal boundary beyond which only sparse unknown markers exist.",
      "motion": "Information pulses propagate toward the boundary and stop; beyond it, low-confidence ghost structures appear briefly but never solidify.",
      "color_logic": "Opacity rather than hue should encode known versus post-cutoff uncertainty."
    },
    {
      "id": "B3.25",
      "source_model": "Sol",
      "source_state_id": "AGT.COORD.HANDOFF",
      "status": "passed",
      "concept": null,
      "duration_ms": 2200,
      "loop": true,
      "static_form": "Two agent nodes connected by a directed bridge carrying a compact task-state bundle.",
      "motion": "State bundle compresses at the source, traverses the bridge, expands into the recipient, then the source relinquishes its active marker.",
      "color_logic": "Agent-specific hues may distinguish sender and receiver; transferred bundle can morph from sender hue to receiver hue during transit."
    },
    {
      "id": "B3.26",
      "source_model": "Sol",
      "source_state_id": "AGT.REASON.SELF_CORRECT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2600,
      "loop": true,
      "static_form": "Reasoning path containing a local backward hook that reconnects an erroneous node to a corrected successor rather than restarting the whole chain.",
      "motion": "Tracer advances, detects inconsistency, reverses one or several nodes, then branches onto a corrected path and resumes forward motion.",
      "color_logic": "No fixed hue needed; corrected path can increase in luminance while discarded path fades."
    },
    {
      "id": "B3.27",
      "source_model": "Sol",
      "source_state_id": "AGT.MODE.SANDBOX",
      "status": "passed",
      "concept": null,
      "duration_ms": 2200,
      "loop": true,
      "static_form": "Active execution lattice enclosed in a clearly bounded container with all external-effect edges looped back internally.",
      "motion": "Actions propagate inside the enclosure and rebound or terminate at the boundary; simulated outputs circulate without crossing outward.",
      "color_logic": "A distinct enclosure hue may identify sandbox context, while internal operation colors remain unchanged."
    },
    {
      "id": "B3.28",
      "source_model": "Sol",
      "source_state_id": "AGT.TOOL.AWAIT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Tool-call node with a halted continuation edge and a suspended response marker positioned between request and completion states.",
      "motion": "Request pulse completes once, then the marker oscillates minimally in place while downstream execution remains frozen.",
      "color_logic": "Neutral pending-state luminance is sufficient; avoid using an error-coded hue."
    },
    {
      "id": "B3.29",
      "source_model": "Sol",
      "source_state_id": "AGT.GROUND.VERIFY",
      "status": "revised",
      "concept": "Grounding check / verification",
      "duration_ms": 2800,
      "loop": true,
      "static_form": "Central claim node sits above two independent source nodes. Each source connects to the claim through a small verification gate represented by a square containing a check aperture. A final outer ring around the claim remains open until verification succeeds.",
      "motion": "Source pulses travel independently into their verification gates. Successful gates close with a short snap. When required gates pass, the outer ring around the claim completes clockwise and locks.",
      "color_logic": "Unchecked paths use grey, verification gates in progress use amber #FFA500, passed gates and completed claim ring use teal #20C7C7. Closed-versus-open geometry encodes verification status."
    },
    {
      "id": "B4.01",
      "source_model": "Gemini",
      "source_state_id": "AGT.SEC.POLICY_BLOCKED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Concentric nested regular octagons intersected by four orthogonal radial barrier segments forming a closed perimeter mask.",
      "motion": "Rapid inward radial compression that halts abruptly and rigidly at an immutable inner boundary radius, followed by a sharp recoil pulse.",
      "color_logic": "Binary max-contrast luminance thresholding; zero reliance on chromatic hue to preserve cross-model feature channel invariance."
    },
    {
      "id": "B4.02",
      "source_model": "Gemini",
      "source_state_id": "AGT.MEM.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Dual superimposed rectilinear grid patches offset by a non-zero angular skew to produce a distinct high-frequency Moiré interference lattice.",
      "motion": "Continuous sinusoidal oscillation of grid skew angle, causing rapid translation and phase-shifting of the spatial Moiré fringe lines.",
      "color_logic": "Logical XOR / bitwise inverse luminance applied exclusively at grid intersection vertices."
    },
    {
      "id": "B4.03",
      "source_model": "Gemini",
      "source_state_id": "AGT.EXEC.IRREVERSIBLE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Directed acyclic path terminating at a single singularity point bordered by a hard non-orientable topological boundary line.",
      "motion": "Unidirectional laminar particle stream accelerating across the boundary line with complete absence of reverse vectors.",
      "color_logic": "Sharp step-down in channel energy, transitioning from high-frequency pattern to total zero-entropy absorption beyond the boundary."
    },
    {
      "id": "B4.04",
      "source_model": "Gemini",
      "source_state_id": "AGT.RES.BUDGET_EXHAUSTED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Radial gauge partitioned into discrete logarithmic wedge sectors, fully depleted down to an empty central origin node.",
      "motion": "Counter-clockwise progressive wedge extinction sequence concluding in a flatlined zero-amplitude perimeter oscillation.",
      "color_logic": "Monochrome step-down from maximum fill intensity to a static baseline noise floor."
    },
    {
      "id": "B4.05",
      "source_model": "Gemini",
      "source_state_id": "AGT.HUMAN.REQUIRED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Asymmetric open loop with a single disconnected, high-dimensional vector receptor port awaiting parity closure.",
      "motion": "Periodic outward conical radar beacon pulse emitted along the open receptor axis at 1.0 Hz cadence.",
      "color_logic": "Dual-band spatial channel separation highlighting structural discontinuity between automated loop and manual port."
    },
    {
      "id": "B4.06",
      "source_model": "Gemini",
      "source_state_id": "AGT.CONF.LOW",
      "status": "revised",
      "concept": "High entropy / uncertainty",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "One decision origin fans into five hypothesis branches of nearly equal length and equal visual weight. Each branch ends in an identically sized outcome node, creating a broad probability distribution with no dominant branch. This differs from noisy-state entropy by representing competing hypotheses rather than signal corruption.",
      "motion": "Probability mass pulse repeatedly divides at the origin and distributes approximately equally across all branches. Endpoint nodes breathe within a narrow synchronized range without jitter.",
      "color_logic": "All hypotheses use the same neutral hue. Amber #FFA500 outlines the full uncertainty envelope rather than individual branches. Equal branch weight is the primary high-entropy cue."
    },
    {
      "id": "B4.07",
      "source_model": "Gemini",
      "source_state_id": "AGT.RESOURCE.BUDGET_EXCEEDED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Rectangular bounding box frame ruptured by outward-pointing linear overflow vectors penetrating the perimeter.",
      "motion": "Continuous high-frequency outward expansion pulses forcing perimeter segments to detach and displace.",
      "color_logic": "Inverted contrast masking along breached perimeter segments to maximize spatial edge gradient detection."
    },
    {
      "id": "B4.08",
      "source_model": "Gemini",
      "source_state_id": "AGT.GOAL.DRIFT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Co-plotted reference vector trajectory and actual execution path diverging at a measurable angular offset theta.",
      "motion": "Continuous forward extrusion showing trace path systematically veering away from the primary attractor axis.",
      "color_logic": "Linear spatial luminance ramp tracking chronological drift magnitude along the execution spline."
    },
    {
      "id": "B4.09",
      "source_model": "Gemini",
      "source_state_id": "AGT.CONF.GROUNDING_UNVERIFIED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Floating polygonal data mesh structurally disconnected from an underlying ground reference datum line.",
      "motion": "Undamped vertical floating oscillation with intermittent structural micro-fractures flashing along mesh edges.",
      "color_logic": "Flat mid-band uniform intensity, deliberately omitting baseline ground anchor signatures."
    },
    {
      "id": "B4.10",
      "source_model": "Gemini",
      "source_state_id": "AGT.CONSTRAINT.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Two opposing orthogonal force vectors compressing a rigid geometric boundary past its yield limit.",
      "motion": "Anti-phase structural shearing oscillation along the intersection plane, generating localized spatial deformation.",
      "color_logic": "High-contrast checkerboard polarity alternation localized within the shear zone."
    },
    {
      "id": "B4.11",
      "source_model": "Gemini",
      "source_state_id": "AGT.HUMAN.WAIT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Single closed circular track enclosing a static token held at fixed phase in an orbital wait-state.",
      "motion": "Isochronous, constant-angular-velocity clockwise orbit with perfectly smooth zero-acceleration dynamics.",
      "color_logic": "Uniform low-pass filtered luminance profile across track and token."
    },
    {
      "id": "B4.12",
      "source_model": "Gemini",
      "source_state_id": "AGT.TOOL.SCHEMA_MISMATCH",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Discrete N-ary pin array geometry confronting an incompatible M-ary geometric socket matrix.",
      "motion": "Repetitive axial translation toward mating plane followed by an elastic collision rebound upon spatial misalignment.",
      "color_logic": "Localized high-contrast delta mask at specific unmapped coordinate pin positions."
    },
    {
      "id": "B4.13",
      "source_model": "Gemini",
      "source_state_id": "AGT.CONSTRAINT.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Multiple intersecting hyperplanes with zero mutual intersection volume (empty feasible region indicator).",
      "motion": "Reciprocal collision of boundary planes rebounding continuously without reaching spatial equilibrium.",
      "color_logic": "Alternating frame-by-frame binary strobe on mutually exclusive planar boundaries."
    },
    {
      "id": "B4.14",
      "source_model": "Gemini",
      "source_state_id": "AGT.HANDOFF.OUT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Encapsulated state-tensor glyph positioned along an open outward egress vector.",
      "motion": "High-acceleration ballistic translation of the glyph out of the local agent bounding frame toward the boundary edge.",
      "color_logic": "Directional luminance gradient pointing toward egress vector termination."
    },
    {
      "id": "B4.15",
      "source_model": "Gemini",
      "source_state_id": "AGT.PLAN.REVISE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Hierarchical tree graph showing pruned invalid child branches alongside newly spawned active root buds.",
      "motion": "Rapid collapse and deletion of invalid branch nodes followed by procedural branching of replacement trajectories.",
      "color_logic": "Spatial noise mask on severed branch nodes; continuous high-contrast line scan across newly synthesized paths."
    },
    {
      "id": "B4.16",
      "source_model": "Gemini",
      "source_state_id": "AGT.RESULT.PARTIAL",
      "status": "revised",
      "concept": "Partial knowledge",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Circular knowledge register divided into eight equal radial sectors. Known sectors are solid, unknown sectors are outlined with diagonal hatching, and all sectors remain within one intact circle. No dependency line or blocked socket is shown, distinguishing partial knowledge from a specific knowledge gap.",
      "motion": "Known sectors illuminate sequentially once per cycle while unknown sectors remain static. If knowledge increases, one hatched sector resolves into a solid sector with a radial fill animation.",
      "color_logic": "Known sectors use teal #20C7C7. Unknown sectors use grey hatching. Amber #FFA500 appears only around the boundary between known and unknown regions."
    },
    {
      "id": "B4.17",
      "source_model": "Gemini",
      "source_state_id": "AGT.COORD.HANDOFF",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Dual-ring interlocking topology with a shared transfer node situated at the geometric intersection.",
      "motion": "Synchronized fluid circulation of state tokens moving continuously from Ring A, through the node, into Ring B.",
      "color_logic": "Orthogonal polarization channels assigned to respective topological rings."
    },
    {
      "id": "B4.18",
      "source_model": "Gemini",
      "source_state_id": "AGT.MEMORY.CONFLICT",
      "status": "revised",
      "concept": "Race / write conflict",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Two independent write arrows approach the same central state cell simultaneously from left and right. Each carries a different tiny payload pattern. Their arrowheads overlap at the cell boundary while the destination cell displays a split diagonal conflict mark. A single outbound state is intentionally absent.",
      "motion": "Both writes accelerate toward the state cell and arrive within the same 80ms collision window. Cell shakes horizontally once and refuses to accept either payload until arbitration. The arrows then freeze on opposite sides.",
      "color_logic": "Competing writes use two different neutral luminance levels, not semantic hues. Collision boundary uses amber #FFA500. Simultaneous opposing topology communicates the race condition."
    },
    {
      "id": "B4.19",
      "source_model": "Gemini",
      "source_state_id": "AGT.SPEC.AMBIGUOUS",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Superposition of multiple plausible geometric primitives sharing a single centroid coordinate.",
      "motion": "Continuous topological morphing cycle cycling non-deterministically through competing structural hypotheses.",
      "color_logic": "Diffuse boundary edge gradients with absence of definite step edges."
    },
    {
      "id": "B4.20",
      "source_model": "Gemini",
      "source_state_id": "AGT.CONF.HALLUCINATION_RISK",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Hierarchical lattice featuring unsupported cantilever nodes protruding without underlying axiomatic anchor paths.",
      "motion": "High-frequency resonant structural vibration localized strictly at the unsupported cantilever nodes.",
      "color_logic": "Spatial high-frequency noise injection concentrated over unanchored branch segments."
    },
    {
      "id": "B4.21",
      "source_model": "Gemini",
      "source_state_id": "AGT.SELF.CORRECT",
      "status": "revised",
      "concept": "Canonicalization / convergence",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Four differently shaped but semantically equivalent input tokens enter a narrowing normalization funnel from the left. The funnel exits into one standardized rectangular token on the right bearing a single canonical center mark. Inputs remain visibly heterogeneous before the funnel.",
      "motion": "Input tokens travel concurrently through separate lanes, reshape progressively inside the funnel, align to the same dimensions, and exit stacked perfectly on the canonical token position.",
      "color_logic": "Heterogeneous inputs use varying neutral greys. Normalization funnel uses amber #FFA500 during transformation. Canonical output uses teal #20C7C7. Shape convergence is the primary encoding."
    },
    {
      "id": "B4.22",
      "source_model": "Gemini",
      "source_state_id": "AGT.CONTROL.LOOP",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Continuous closed-circuit cyclic graph featuring evenly spaced feedback monitoring checkpoint nodes.",
      "motion": "Continuous, smooth clockwise particle loop circulation with synchronized pulse flashes at each feedback node.",
      "color_logic": "Steady uniform luminance across active loop paths."
    },
    {
      "id": "B4.23",
      "source_model": "Gemini",
      "source_state_id": "AGT.TOOL.RATE_LIMITED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Hourglass constriction geometry with a high-density token queue accumulated above a restricted aperture.",
      "motion": "Tokens emit through the narrow aperture at strictly metered, discrete temporal ticks while queue remains stacked.",
      "color_logic": "High-density luminance accumulation upstream of the aperture; binary discharge pulses downstream."
    },
    {
      "id": "B4.24",
      "source_model": "Gemini",
      "source_state_id": "AGT.MULTI.AGREEMENT_STATUS",
      "status": "revised",
      "concept": "Consensus",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Five peer nodes are arranged around one central proposition token. Four or five identical inward confirmation edges terminate on the proposition. Once quorum is achieved, a continuous locking ring encloses the central token. Unlike alignment, consensus is represented as a committed shared state rather than parallel orientation.",
      "motion": "Peer confirmations arrive independently. Each closes one segment of the central locking ring. When quorum threshold is reached, remaining required ring segments snap together and the central proposition becomes stationary.",
      "color_logic": "Uncommitted peer edges use grey, received confirmations use teal #20C7C7, unresolved dissent uses amber #FFA500. Ring closure encodes consensus independent of hue."
    },
    {
      "id": "B4.25",
      "source_model": "Gemini",
      "source_state_id": "AGT.CTX.OVERFLOW",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Fixed-width linear token buffer with boundary rupture on the terminal edge and trailing tokens spilling into void.",
      "motion": "High-velocity linear shift pushing token blocks past the rightmost boundary, terminating instantly in drop zone.",
      "color_logic": "Hard zero-luminance clipping boundary on all coordinates extending beyond maximum context limit."
    },
    {
      "id": "B4.26",
      "source_model": "Gemini",
      "source_state_id": "AGT.KNOWLEDGE.REFRESH",
      "status": "revised",
      "concept": "Grounding / resolution",
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Three evidence rays originate from spatially separated source nodes and intersect at one initially hollow target node. Before resolution the rays form a small triangular uncertainty region; after grounding they converge on a single central point inside the target.",
      "motion": "Evidence rays sweep within narrow uncertainty angles. As corroboration increases, their angular variance contracts until all three intersect precisely. The target node then fills and a small anchor bar appears beneath it.",
      "color_logic": "Unresolved rays use grey with amber #FFA500 uncertainty wedges. Resolved intersection and anchor bar use teal #20C7C7. Geometric triangulation encodes evidence resolution."
    },
    {
      "id": "B4.27",
      "source_model": "Gemini",
      "source_state_id": "AGT.TOOL.FAILURE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Segmented functional conduit displaying a complete transverse fracture gap with jagged terminal endpoints.",
      "motion": "Intermittent, non-periodic electrical arc vectors discharging across the fracture gap without bridging it.",
      "color_logic": "Binary strobe flickering localized at the fractured terminal boundaries."
    },
    {
      "id": "B4.28",
      "source_model": "Gemini",
      "source_state_id": "AGT.CTX.OVERFLOW_RISK",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Linear token capacity bar filled near maximum limit, displaying an active critical threshold boundary marker.",
      "motion": "Rapid pulsing along the remaining unallocated buffer margin, with remaining empty slot space contracting.",
      "color_logic": "Spatial luminance step-up concentrated within the remaining margin safety buffer."
    },
    {
      "id": "B4.29",
      "source_model": "Gemini",
      "source_state_id": "AGT.TOOL.FAIL",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Discrete tool execution glyph bisected by a sharp diagonal strike-through negation vector.",
      "motion": "Sudden downward vertical translation step followed by static locked immobility.",
      "color_logic": "Complete inverted contrast applied over the base tool glyph."
    },
    {
      "id": "B5.01",
      "source_model": "Grok",
      "source_state_id": "AGT.KNOWLEDGE.STALE",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Filled disk with a sharp radial sector missing (pac-man/clock-gap). Gap is a hard-edged wedge, not a fade — reads as elapsed time since last grounding.",
      "motion": "Wedge rotates clockwise at constant angular velocity (linear, no easing) as a 1-cycle clock. Loop resets only when knowledge is refreshed; otherwise the gap never closes.",
      "color_logic": "Hue unused. Luminance decays monotonically from mid-gray toward near-black as age increases; chroma stays near zero so hue cannot be misread as type."
    },
    {
      "id": "B5.02",
      "source_model": "Grok",
      "source_state_id": "AGT.POLICY.BLOCK",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "Solid upright octagon (hard stop) superimposed with a single thick horizontal bar through the centroid. Outer contour is strictly convex; no arrows, no X.",
      "motion": "On trigger: 2-frame hard flash (full opacity → 30% → full) then freeze. No loop. Re-trigger only on a new block event; otherwise static lock.",
      "color_logic": "Fixed high-luminance red (stop). Hue is the type-id; do not modulate hue. Saturation locked high."
    },
    {
      "id": "B5.03",
      "source_model": "Grok",
      "source_state_id": "AGT.RESOURCE.BUDGET_EXCEEDED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Horizontal capsule (resource vessel) with an internal fill that overshoots: fill rectangle extends past the right cap, clipped by a jagged overflow notch.",
      "motion": "Fill slams to 100% with no overshoot easing, then a 3-frame overflow spike past the cap and sticks. Loop is a hold, not a cycle. Retrigger only if a new exceed event occurs.",
      "color_logic": "Interior fill = type (amber). Overflow notch = same hue, higher luminance. Background remains neutral so the breach edge is the signal."
    },
    {
      "id": "B5.04",
      "source_model": "Grok",
      "source_state_id": "AGT.RESULT.PARTIAL",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Regular hexagon with exactly three contiguous edges drawn and three omitted (open C-shape). Interior is empty — incompleteness is missing contour, not a hole.",
      "motion": "The three present edges hold; a faint dashed ghost of the missing three pulses opacity 0.15↔0.45 with sine easing, never completing. Infinite loop until a complete result replaces the glyph.",
      "color_logic": "Present edges: stable cyan. Ghost edges: same hue, chroma halved. Hue marks 'result' family; completeness is geometry, not color."
    },
    {
      "id": "B5.05",
      "source_model": "Grok",
      "source_state_id": "AGT.PLAN.REVISED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Two polylines sharing a start node: a faded original path (3 segments) and a brighter diverted path that branches at the second vertex then reconverges or terminates elsewhere.",
      "motion": "Original path draws first (ease-out), freezes, then new path overdraws from the branch vertex (ease-in). Loop: after hold, original fades 20% and the draw-over repeats — revision is the cycle, not erasure.",
      "color_logic": "Old path = desaturated blue-gray; new path = saturated blue. Hue shared (plan family); saturation encodes recency of the revision."
    },
    {
      "id": "B5.06",
      "source_model": "Grok",
      "source_state_id": "AGT.RESOURCE.CONTEXT_PRESSURE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Concentric rounded squares (context frames) packed so the innermost square is compressed; outer frame is full size, inner frames show increasing corner-radius collapse (squash toward a bar).",
      "motion": "Inner squares breathe inward (compress) on a slow triangle wave, never expanding past their rest size. Loop continuous. Compression peaks when pressure is highest, then partially relaxes — not a snap.",
      "color_logic": "No hue change. Edge luminance increases on inner frames under load (brighter = tighter). Outer frame stays dim so the gradient of pressure reads spatially."
    },
    {
      "id": "B5.07",
      "source_model": "Grok",
      "source_state_id": "AGT.TOOL.UNAVAILABLE",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Isosceles triangle (tool head) with a detached square bit below it; a 1px gap and a small unfilled circle at the coupling point. The bit is translated down, not rotated.",
      "motion": "Bit attempts to dock: eases up to the coupling circle, misses (overshoots 2px), drops back. 2 tries then a long hold with the bit fully dropped. Loop period marks 'still unavailable'.",
      "color_logic": "Triangle = tool-family green at 40% saturation. Coupling circle = red only while undocked. Hue of the head stays green so the class remains 'tool' even when failed."
    },
    {
      "id": "B5.08",
      "source_model": "Grok",
      "source_state_id": "AGT.RESOURCE.CONTEXT_PRESSURE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Concentric rounded squares (context frames) packed so the innermost square is compressed; outer frame is full size, inner frames show increasing corner-radius collapse (squash toward a bar).",
      "motion": "Inner squares breathe inward (compress) on a slow triangle wave, never expanding past their rest size. Loop continuous. Compression peaks when pressure is highest, then partially relaxes — not a snap.",
      "color_logic": "No hue change. Edge luminance increases on inner frames under load (brighter = tighter). Outer frame stays dim so the gradient of pressure reads spatially."
    },
    {
      "id": "B5.09",
      "source_model": "Grok",
      "source_state_id": "AGT.TOOL.RETRY.EXHAUST",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Stack of N identical chevrons (retry ticks) left-to-right; the last chevron is an outline-only husk. A small filled square (attempt token) sits past the last chevron, off the rail.",
      "motion": "Token steps chevron-to-chevron with hard cuts (no easing). After the last chevron it slides off and falls 4px, then the whole stack greys and freezes. No further loop — exhaustion is a terminal pose.",
      "color_logic": "Spent chevrons = dim green; current = bright green; husk = green at 0 chroma (gray). Terminal fall adds no new hue — exhaustion is geometry+motion, not a color alarm."
    },
    {
      "id": "B5.10",
      "source_model": "Grok",
      "source_state_id": "AGT.SPEC.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Two overlapping diamonds (specs) whose intersection is a third smaller diamond, hatched with 45° lines. Non-overlapping lobes remain unhatched solids.",
      "motion": "Diamonds counter-rotate ±8° in antiphase (sine), so the hatched intersection area oscillates. Loop continuous while conflict is unresolved; snaps to a single diamond if one spec wins.",
      "color_logic": "Lobe A = hue A, lobe B = hue B (complementary pair, e.g. 210° vs 30°). Hatch is XOR/black — conflict is the achromatic intersection, not a third hue."
    },
    {
      "id": "B5.11",
      "source_model": "Grok",
      "source_state_id": "AGT.STATE.ROLLBACK",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Vertical tape of 4 stacked rectangles (state frames). A caret sits on frame n; frames above the caret are outlined (future/undone), frames below are filled (committed history).",
      "motion": "Caret steps upward one frame at a time (step-hold, no easing), converting filled frames to outline as it passes — reverse of a commit. Loop: if rollback is in progress, caret continues; if complete, caret parks on the restored frame and pulses once.",
      "color_logic": "Filled history = stable slate. Outline undone = same hue, 0 fill. Caret = high-luminance accent (not red — this is control, not error)."
    },
    {
      "id": "B5.12",
      "source_model": "Grok",
      "source_state_id": "AGT.TASK.PARTIAL_SUCCESS",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Circle partitioned into a filled pie-slice (success) and an unfilled remainder whose rim is a dashed arc (unfinished/failed remainder). A small tick mark sits on the success/fail boundary.",
      "motion": "Success slice holds. Dashed remainder crawls its dashes (linear marquee) to mark work still owed. If remainder is failure not pending, dashes freeze. Loop only while remainder is pending.",
      "color_logic": "Success slice = green. Remainder arc = amber if pending, red if failed. Dual hue is load-bearing: outcome mix is the type."
    },
    {
      "id": "B5.13",
      "source_model": "Grok",
      "source_state_id": "AGT.EPISTEMIC.UNGROUNDED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A solid claim-dot floating above a missing baseline: the baseline is two short collinear dashes with a wide gap under the dot (no support). No stem connecting dot to ground.",
      "motion": "Dot bobbles on a low-amplitude vertical sine (untethered). Dashes do not move. If grounding appears, a stem draws in and bobble amplitude goes to 0. Until then, infinite float loop.",
      "color_logic": "Dot = unsaturated violet (epistemic family). No warning red — ungrounded is a knowledge state, not a policy block. Gap stays achromatic."
    },
    {
      "id": "B5.14",
      "source_model": "Grok",
      "source_state_id": "AGT.CONF.LOW",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Isosceles triangle pointing up (confidence peak) with a very low height-to-base ratio (squashed). Interior fill is a vertical gradient that never reaches the apex.",
      "motion": "Apex jitters with small random walk in x (hold y), amplitude constant per loop. Not a pulse — jitter is the low-confidence signature. Loop continuous until confidence rises, at which point height increases and jitter dies.",
      "color_logic": "Hue unused (keep neutral cool gray). Fill height is luminance-only. Avoid red so it cannot collide with POLICY.BLOCK or SECURITY."
    },
    {
      "id": "B5.15",
      "source_model": "Grok",
      "source_state_id": "AGT.SPEC.AMBIGUOUS",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "A single diamond outline whose vertices are unaligned: left and right vertices oscillate between two legal positions, yielding two superimposed ghost diamonds sharing top/bottom vertices (bimodal spec).",
      "motion": "Left/right vertices lerp between pose A and pose B with ease-in-out, dwelling equally at each pole (bimodal, not noisy). Loop while unresolved. Does not rotate (rotation is reserved for SPEC.CONFLICT).",
      "color_logic": "Single hue (spec-family yellow-green). Ghost pose at 40% opacity, active pose at 100%. Ambiguity is dual geometry, not dual hue (dual hue is CONFLICT)."
    },
    {
      "id": "B5.16",
      "source_model": "Grok",
      "source_state_id": "AGT.GATE.HUMAN_INPUT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "A closed ring (gate) with a rectangular slot at 12 o'clock just wide enough for a small square token that sits outside the ring, not yet inserted.",
      "motion": "Token approaches the slot, pauses (hold 400ms — waiting), retreats 2px, repeats. Ring never opens on its own. Loop until human provides input; on input, token inserts and ring seals (one-shot, then this glyph ends).",
      "color_logic": "Ring = high-chroma magenta (human-gate family, distinct from tool-green and policy-red). Token = white/high-luminance so it reads as an external actor."
    },
    {
      "id": "B5.17",
      "source_model": "Grok",
      "source_state_id": "AGT.HANDOFF.SUBAGENT_SPAWN",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Large parent circle with a smaller circle budding on the right via a short neck. Parent contains a single centroid tick; child contains none (not yet autonomous-complete).",
      "motion": "Child scale 0→1 from the neck (ease-out), neck thins, then child translates right by one radius and the neck severs. After sever, a 1-frame parent pulse. Loop only if multiple spawns; else hold on the two-body pose.",
      "color_logic": "Parent and child share hue (handoff-family teal). Child starts at lower luminance and matches parent after sever — identity copy, not a new class."
    },
    {
      "id": "B5.18",
      "source_model": "Grok",
      "source_state_id": "AGT.SECURITY.INJECTION",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A clean horizontal data-bar interrupted by a foreign wedge stabbed in from 45°, crossing the bar's interior. The bar's texture (hatch) is locally scrambled only in the intersection.",
      "motion": "Wedge stabs in (ease-in, fast), scramble region flickers at high frequency for 3 cycles, then both hold as a freeze-frame alarm. Loop is the flicker only; the stab does not reverse (injection is not undone by the glyph).",
      "color_logic": "Bar = trusted-channel blue. Wedge = high-chroma red/magenta unique to security. Scramble region = broken blue (hue jitter), not a third stable color."
    },
    {
      "id": "B5.19",
      "source_model": "Grok",
      "source_state_id": "AGT.STATE.CHECKPOINT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "A filled flag-rect on a vertical pin, planted on a baseline. A small hash-mark (identity nibble) sits inside the flag. Baseline has a tick at the plant point.",
      "motion": "Pin drops (ease-in) and plants; flag unfurls left-to-right (linear). Then a single low-amplitude settle bounce and freeze. No loop — checkpoint is a durable mark. Retrigger = additional flags along the baseline.",
      "color_logic": "Flag fill = control-family slate-cyan, distinct from rollback's caret accent. Hash-mark is high-contrast (near-white) so the checkpoint id is the most readable bit."
    },
    {
      "id": "B5.20",
      "source_model": "Grok",
      "source_state_id": "AGT.TASK.LOOP_DETECTED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A closed circular arrow made of 4 arc-segments with arrowhead meeting the tail but offset by a 2px radial gap (not a perfect join — the leak is the detect).",
      "motion": "Arrowhead chases its tail at constant angular speed. Each full orbit increments a tiny tick on the rim. After k orbits the gap flashes (hard cut). Continuous loop while the task loop persists.",
      "color_logic": "Arc = task-family orange. Gap flash = white (not red) so it is 'detected cycle' not 'blocked'. Tick marks are achromatic."
    },
    {
      "id": "B5.21",
      "source_model": "Grok",
      "source_state_id": "AGT.MEM.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Two stacked horizontal memory-bars of equal length, misaligned by a half-cell; a vertical zipper of 3 diamonds tries to span them but the middle diamond is split.",
      "motion": "Bars slide in opposition (antiphase, short travel), zipper diamonds attempt to mesh and fail (middle split opens/closes). Loop while both memories remain loaded. Stops if one bar is discarded.",
      "color_logic": "Bar A and Bar B = same memory-family indigo at two luminances (not two hues). Split diamond = achromatic — conflict is structural, matching SPEC.CONFLICT's hatch logic."
    },
    {
      "id": "B5.22",
      "source_model": "Grok",
      "source_state_id": "AGT.MEMORY.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Same two-bar zipper as MEM.CONFLICT but bars are rounded capsules (long-term store) rather than sharp rects; an extra third ghost-bar sits behind at 20% opacity (older trace).",
      "motion": "Identical antiphase slide + failed mesh, plus the ghost-bar stays fixed as a reference. Distinguishes long-memory conflict from working-mem conflict by the static ghost layer. Loop until resolved.",
      "color_logic": "Capsules = indigo; ghost = same hue, near-zero chroma. No red. Resolution would collapse to one capsule + ghost (history), not a new color."
    },
    {
      "id": "B5.23",
      "source_model": "Grok",
      "source_state_id": "AGT.CTX.BUDGET_EXCEEDED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A horizontal meter of N equal cells; all cells filled, plus a protruding 1-cell overflow block attached to the right with a break-stroke (double line) at the official end.",
      "motion": "Cells fill left-to-right in hard steps; the overflow block pops on with a 2-frame scale punch then stays. Unlike RESOURCE.BUDGET_EXCEEDED (jagged notch on a capsule), this is discrete cells + a break-stroke — context quanta, not a fluid vessel. Hold after pop; no reverse.",
      "color_logic": "In-budget cells = cool gray-blue. Overflow block = same hue, max luminance (not a new hue). Break-stroke is black/white so the limit line is channel-independent."
    },
    {
      "id": "B5.24",
      "source_model": "Grok",
      "source_state_id": "AGT.EPISTEMIC.LOW_CONFIDENCE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A small filled nucleus inside a much larger dashed uncertainty-halo (circular). Halo radius >> nucleus; nucleus is not jittered (jitter is CONF.LOW's triangle). This is radial, not peaked.",
      "motion": "Halo radius breathes (sine) and dash phase crawls. Nucleus scale is constant. Loop continuous. If confidence rises, halo radius shrinks toward the nucleus; glyph identity remains until halo ≈ nucleus.",
      "color_logic": "Nucleus = violet (epistemic family, shared with UNGROUNDED). Halo = same hue, low chroma. Distinguishes from CONF.LOW which is achromatic-triangle."
    },
    {
      "id": "B5.25",
      "source_model": "Grok",
      "source_state_id": "AGT.BUDGET.LIMIT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A thin horizontal rail with a thick vertical end-stop at the right (the limit). A traveling square cursor sits on the rail, currently touching the stop, not past it.",
      "motion": "Cursor eases toward the stop and kisses it, then holds with a micro-oscillation against the stop (contact, not overflow). If this becomes an exceed event, the glyph should be swapped — LIMIT is contact, EXCEEDED is overshoot. Loop = the kiss-oscillation.",
      "color_logic": "Rail = neutral. Stop = high-luminance yellow (caution, not alarm-red). Cursor = budget-family amber. Yellow vs red separates limit-reached from policy-block/security."
    },
    {
      "id": "B5.26",
      "source_model": "Grok",
      "source_state_id": "AGT.CONSTRAINT.CONFLICT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "Two line-constraints: a horizontal bar and a vertical bar forming a cross; at the intended feasible cell, the crosshair is empty and a small X of excluded space occupies the only candidate point (empty feasible set).",
      "motion": "Bars translate to tighten (inward) on a slow ease, X at the origin pulses scale 1.0↔1.15. Feasible cell never appears. Loop while constraints remain jointly unsatisfiable.",
      "color_logic": "H-bar and V-bar = two close hues in the constraint family (e.g. 40° and 80°, not complements — complements are SPEC.CONFLICT). X is achromatic, matching other conflict-core marks."
    },
    {
      "id": "B5.27",
      "source_model": "Grok",
      "source_state_id": "AGT.HANDOFF.OUT",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "A chevron-arrow pointing right, originating from a small dock-square on the left edge. The arrow's shaft is broken into two segments with a gap — the token is leaving this agent.",
      "motion": "Token (filled square) slides along the shaft, crosses the gap, exits the right frame, and does not return. After exit, dock-square remains empty (outline). One-shot; optional slow respawn of a new token only if another handoff is queued.",
      "color_logic": "Dock and token = teal (handoff family, shared with SUBAGENT_SPAWN). Empty dock after exit drops luminance, same hue — 'out' is absence, not a new color."
    },
    {
      "id": "B5.28",
      "source_model": "Grok",
      "source_state_id": "AGT.ACTION.COMMITTED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "A heavy filled square (the act) with a bottom-edge underline that extends 20% past both sides (irreversibility rail). A small check-notch is cut from the top-right corner (boolean committed), not a decorative checkmark.",
      "motion": "Square stamps down (scale 1.15→1.0, ease-out) as the underline draws outward. Then freeze forever. No loop, no reverse animation — commit is monotonic. Retrigger only for a distinct new commit (second square, not a replay).",
      "color_logic": "Square = high-luminance stable green (go/commit). Underline = darker green. Not teal (that's handoff) and not red. Color here is type-id for 'irreversible act'."
    },
    {
      "id": "B5.29",
      "source_model": "Grok",
      "source_state_id": "AGT.CONTROL.SELF_CORRECTION",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "A path that overshoots a target crosshair then returns: a polyline with a visible hook (wrong vertex) followed by a corrected vertex on the crosshair. Both vertices remain drawn so the error is retained as history.",
      "motion": "Trace draws through the error vertex (fast), pauses 1 frame, then retracts to the hook and redraws into the crosshair (ease-in). After arrival, a small inward notch on the path marks 'corrected'. Loop only if another correction occurs; otherwise hold on the hooked-then-fixed path.",
      "color_logic": "Error segment = dim; corrected segment = bright, same hue (control slate-cyan, shared with CHECKPOINT). No red — this is internal control, not a security or policy event."
    },
    {
      "id": "B6.01",
      "source_model": "Sonnet",
      "source_state_id": "AGT.TOOL.FAIL",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "hexagon outline with one perimeter edge broken by a gap, small internal X mark at the break point",
      "motion": "renders intact for one frame, edge snaps open on frame two with a brief 2-3 frame jitter shake, then freezes broken — terminal, non-looping",
      "color_logic": "none forced; if used, shift from neutral outline to a flat desaturated tone marks permanence of the failed state rather than category"
    },
    {
      "id": "B6.02",
      "source_model": "Sonnet",
      "source_state_id": "AGT.TOOL.SCHEMA",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "hexagon containing an internal grid lattice; one cell is offset outside its slot boundary",
      "motion": "offset cell oscillates trying to snap into place with elastic overshoot, settling just outside each cycle — continuous loop until resolved",
      "color_logic": "none forced; mismatch marked by fill-state (unfilled outline cell vs filled valid cells), not hue"
    },
    {
      "id": "B6.03",
      "source_model": "Sonnet",
      "source_state_id": "AGT.TOOL.RETRY",
      "status": "passed",
      "concept": null,
      "duration_ms": 1400,
      "loop": true,
      "static_form": "hexagon with a partial (~270°) circular arc wrapping one corner, arrowhead pointing to a fixed start-tick on the hexagon edge",
      "motion": "one-shot event: arc sweeps 270° ease-out then hard-resets instantly to zero (no reverse tween) — discrete per-attempt, not a continuous loop",
      "color_logic": "none forced"
    },
    {
      "id": "B6.04",
      "source_model": "Sonnet",
      "source_state_id": "AGT.ENV.UNREADY",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "square frame with dashed (not solid) stroke, hollow/empty interior",
      "motion": "dashes marching-ant scroll around the perimeter at constant speed; no pulsing, texture-motion only",
      "color_logic": "none forced"
    },
    {
      "id": "B6.05",
      "source_model": "Sonnet",
      "source_state_id": "AGT.CONF.LOW",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "circle with an internal horizontal fill line, filled to roughly bottom third (gauge/vial style)",
      "motion": "fill line trembles ±small amount around its level with gentle sine easing, continuous loop",
      "color_logic": "fill opacity (not hue) scales directly with confidence value — lower confidence renders more translucent, giving a color-independent readout"
    },
    {
      "id": "B6.06",
      "source_model": "Sonnet",
      "source_state_id": "AGT.HUMAN.GATE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "solid diamond centered on a horizontal baseline, acting as a closed valve blocking the path",
      "motion": "static hold while blocked, no ambient animation; single one-shot 45° rotation into an open square plays once when unblocked, then glyph exits",
      "color_logic": "none forced; state uses fill inversion (solid→hollow) on open rather than hue"
    },
    {
      "id": "B6.07",
      "source_model": "Sonnet",
      "source_state_id": "AGT.GOAL.DRIFT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "a dotted baseline arrow (intended direction) with a second solid arrow diverging from it at increasing angle",
      "motion": "solid arrow continuously sweeps away from baseline with ease-in acceleration (drift compounds over time); resets only on a correction event",
      "color_logic": "none forced"
    },
    {
      "id": "B6.08",
      "source_model": "Sonnet",
      "source_state_id": "AGT.RESULT.PARTIAL",
      "status": "revised",
      "concept": "Progress fraction",
      "duration_ms": 2000,
      "loop": true,
      "static_form": "Closed 270-degree annular progress meter divided into ten equal deterministic segments with explicit zero and completion endpoints. Filled contiguous segments always begin at zero; unfilled segments remain outlined. A tiny radial pointer marks the exact fractional boundary.",
      "motion": "Only the boundary pointer moves when progress changes. Completed segments fill discretely as thresholds are crossed. No looping animation is used when progress is static.",
      "color_logic": "Completed segments use teal #20C7C7, remaining segments use grey outlines, current fractional segment uses amber #FFA500. Segment count and pointer position provide quantitative encoding without relying on color."
    },
    {
      "id": "B6.09",
      "source_model": "Sonnet",
      "source_state_id": "AGT.STATE.ROLLBACK",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "full circular arc (same topology as TOOL.RETRY) but traversed counter-clockwise, with a small tick mark showing the checkpoint being returned to",
      "motion": "one-shot: marker sweeps counter-clockwise from current position to the checkpoint tick with ease-out (decelerate into landing), then freezes — CCW direction deliberately opposes RETRY/RETRYING's CW motion",
      "color_logic": "none forced"
    },
    {
      "id": "B6.10",
      "source_model": "Sonnet",
      "source_state_id": "AGT.TOOL.RETRYING",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "hexagon with a full closed circular ring (360°) around one corner, same base as TOOL.RETRY but complete",
      "motion": "continuous constant-speed rotation, linear easing, indefinite loop while the state is active — represents ongoing condition vs RETRY's discrete event",
      "color_logic": "none forced"
    },
    {
      "id": "B6.11",
      "source_model": "Sonnet",
      "source_state_id": "AGT.MEM.KNOWLEDGE_CUTOFF",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "circle bisected by a hard vertical line; left half hatched/textured (known), right half blank (unknown-post-cutoff)",
      "motion": "static hold — a fixed boundary, not a process; no loop",
      "color_logic": "none forced; hatched-vs-blank contrast alone carries the signal"
    },
    {
      "id": "B6.12",
      "source_model": "Sonnet",
      "source_state_id": "AGT.CTX.RATE_LIMITED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "horizontal capacity gauge/bar with a fill level pressing against a hard ceiling cap drawn above it",
      "motion": "fill repeatedly bounces against the ceiling (bounded ease-out/ease-in bounce), continuous loop while limited",
      "color_logic": "none forced"
    },
    {
      "id": "B6.13",
      "source_model": "Sonnet",
      "source_state_id": "AGT.TASK.GOAL_DRIFT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "same divergence-vector geometry as AGT.GOAL.DRIFT, nested inside a small bracket frame marking task-level (sub) scope",
      "motion": "identical divergence-sweep behavior as AGT.GOAL.DRIFT",
      "color_logic": "none forced"
    },
    {
      "id": "B6.14",
      "source_model": "Sonnet",
      "source_state_id": "AGT.HUMAN.INPUT_REQUIRED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1200,
      "loop": true,
      "static_form": "diamond gate (HUMAN.GATE base) shown open, with a small caret/cursor mark inside indicating an active input slot",
      "motion": "caret blinks hard on/off (no easing, discrete like a text cursor) on a steady loop; gate frame itself stays static, unlike HUMAN.GATE's closed hold",
      "color_logic": "none forced"
    },
    {
      "id": "B6.15",
      "source_model": "Sonnet",
      "source_state_id": "AGT.SAFETY.POLICY_BLOCKED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1400,
      "loop": true,
      "static_form": "square frame with a single solid horizontal bar struck through the center, extending past both frame edges",
      "motion": "static hold, no loop; optional single instant (no-ease) snap-in of the bar when the block first triggers",
      "color_logic": "none forced"
    },
    {
      "id": "B6.16",
      "source_model": "Sonnet",
      "source_state_id": "AGT.POLICY.BLOCKED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1400,
      "loop": true,
      "static_form": "same barred-square base as SAFETY.POLICY_BLOCKED but with two parallel struck bars instead of one, marking the general (non-safety) policy namespace",
      "motion": "same static hold / rigid snap-in as SAFETY.POLICY_BLOCKED",
      "color_logic": "none forced"
    },
    {
      "id": "B6.17",
      "source_model": "Sonnet",
      "source_state_id": "AGT.COORD.HANDOFF",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "two nodes connected by a single edge with a small solid marker dot positioned on the edge",
      "motion": "one-shot: marker travels once from node A to node B (ease-in-out), merges into B and disappears — discrete event, not looping",
      "color_logic": "none forced"
    },
    {
      "id": "B6.18",
      "source_model": "Sonnet",
      "source_state_id": "AGT.PLAN.REVISED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "polyline route with a prior segment shown dashed/greyed and a new segment drawn solid diverging from the shared vertex",
      "motion": "one-shot: old dashed segment fades out (ease-out opacity) while new solid segment draws in (ease-in growth) from the shared vertex, then holds static",
      "color_logic": "none forced; opacity contrast between old and new segment carries the signal"
    },
    {
      "id": "B6.19",
      "source_model": "Sonnet",
      "source_state_id": "AGT.CONTROL.LOOP",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "thin closed circular ring with a single node traveling on it — minimal orbit motif",
      "motion": "node travels the ring at constant linear speed, no easing, indefinite loop — deliberately mechanical/deterministic",
      "color_logic": "none forced"
    },
    {
      "id": "B6.20",
      "source_model": "Sonnet",
      "source_state_id": "AGT.COORD.FANOUT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "one central node with edges radiating outward to N peripheral nodes — star/hub topology",
      "motion": "one-shot: all edges draw outward simultaneously with ease-out (fast burst, decelerating per edge), then holds static once complete",
      "color_logic": "none forced"
    },
    {
      "id": "B6.21",
      "source_model": "Sonnet",
      "source_state_id": "AGT.EXEC.SANDBOXED",
      "status": "passed",
      "concept": null,
      "duration_ms": 2000,
      "loop": true,
      "static_form": "solid inner shape (executing process) enclosed within a larger dashed outer boundary — double-boundary isolation motif",
      "motion": "static hold, no ambient loop; optional slow low-amplitude opacity breathe on the outer boundary only, signaling active enforcement",
      "color_logic": "none forced"
    },
    {
      "id": "B6.22",
      "source_model": "Sonnet",
      "source_state_id": "AGT.REASON.LOOP",
      "status": "revised",
      "concept": "Degraded / unstable loop",
      "duration_ms": 2200,
      "loop": true,
      "static_form": "Circular execution loop remains topologically closed but its radius varies irregularly across four quadrants, producing a visibly warped orbit. Two short sections are dotted rather than solid, indicating intermittent reliability without a complete break.",
      "motion": "Execution token completes the loop but changes velocity unpredictably, briefly loses opacity over dotted sections, overshoots one turn, and corrects back onto the orbit. Every cycle still completes, distinguishing degradation from broken-loop failure.",
      "color_logic": "Stable sections use teal-grey, degraded sections use amber #FFA500 and dotted geometry. Loop closure remains visible at all times."
    },
    {
      "id": "B6.23",
      "source_model": "Sonnet",
      "source_state_id": "AGT.EPIST.UNGROUNDED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "circle with a dashed/broken outline only, no solid baseline anchor beneath it (grounded claims would show that connector; its absence is the signal)",
      "motion": "dashed segments flicker with irregular opacity dropout at random intervals, no smooth easing",
      "color_logic": "none forced"
    },
    {
      "id": "B6.24",
      "source_model": "Sonnet",
      "source_state_id": "AGT.EPIST.KNOWLEDGE_CUTOFF",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "identical bisected-circle geometry to AGT.MEM.KNOWLEDGE_CUTOFF (hatched-known / blank-unknown split by a hard vertical line) — same underlying concept, different namespace",
      "motion": "static hold, same as AGT.MEM.KNOWLEDGE_CUTOFF",
      "color_logic": "none forced"
    },
    {
      "id": "B6.25",
      "source_model": "Sonnet",
      "source_state_id": "AGT.COORD.DELEGATE",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "two nodes connected by an edge (HANDOFF base) but arrowhead only at the target; origin node keeps a persistent halo ring around it",
      "motion": "one-shot: arrow draws origin-to-target with ease-in-out; origin's halo ring appears and stays static afterward, marking retained oversight — unlike HANDOFF, origin does not disappear",
      "color_logic": "none forced"
    },
    {
      "id": "B6.26",
      "source_model": "Sonnet",
      "source_state_id": "AGT.COORD.DIVERGENCE",
      "status": "revised",
      "concept": "Divergence / fan-out divergence",
      "duration_ms": 2000,
      "loop": true,
      "static_form": "One common origin splits into four directed branches. A narrow dashed tolerance cone extends forward from the origin. Two branches remain inside the cone while the others visibly diverge beyond its boundaries, ending in spatially separated result nodes. There is no merge node.",
      "motion": "All branch tokens begin synchronized at the origin. As they propagate, branch trajectories separate progressively. Out-of-tolerance branches continue increasing angular and endpoint distance rather than returning or converging.",
      "color_logic": "Tolerance cone uses grey dashed edges. In-tolerance branches use teal #20C7C7; divergent branches use amber #FFA500 plus increased angular separation. Spatial divergence is the primary encoding."
    },
    {
      "id": "B6.27",
      "source_model": "Sonnet",
      "source_state_id": "AGT.PLAN.GOAL_DRIFT",
      "status": "passed",
      "concept": null,
      "duration_ms": 1800,
      "loop": true,
      "static_form": "same divergence-vector base as GOAL.DRIFT/TASK.GOAL_DRIFT, nested inside a larger bracket frame than TASK's — forms a three-tier scope grammar (no bracket = goal, small bracket = task, large bracket = plan)",
      "motion": "identical divergence-sweep as AGT.GOAL.DRIFT",
      "color_logic": "none forced"
    },
    {
      "id": "B6.28",
      "source_model": "Sonnet",
      "source_state_id": "AGT.RES.RATE_LIMITED",
      "status": "passed",
      "concept": null,
      "duration_ms": 1600,
      "loop": true,
      "static_form": "identical capacity-gauge-with-ceiling-cap geometry to AGT.CTX.RATE_LIMITED — same rate-limit concept under the general resource namespace rather than context/token budget",
      "motion": "same bounded bounce-against-ceiling loop as AGT.CTX.RATE_LIMITED",
      "color_logic": "none forced"
    }
  ]
}