diff --git a/examples/coordinator/lucent-hostage-feed-v0.turn-12.coordinator.json b/examples/coordinator/lucent-hostage-feed-v0.turn-12.coordinator.json new file mode 100644 index 0000000..fdf4301 --- /dev/null +++ b/examples/coordinator/lucent-hostage-feed-v0.turn-12.coordinator.json @@ -0,0 +1,258 @@ +{ + "schema_version": "ghostlight.coordinator_artifact.v0", + "artifact_id": "lucent-hostage-feed-v0.turn-12.coordinator", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "source_refs": [ + { + "ref_id": "lucent-scene-digest", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "purpose": "Grounding facts for Lucent hostage-feed scene." + }, + { + "ref_id": "lucent-initial-state", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "purpose": "Scene-local state seed and participant briefs." + } + ], + "input_refs": { + "agent_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "lore_grounding_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json" + ], + "prior_artifact_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-11.mutation.json" + ], + "projected_context_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-12.juno-ark.projected-context.json" + ] + }, + "scene_context": { + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "sequence_marker": "turn-12", + "location_id": "lucent.media-eye.transfer-atrium", + "participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "active_object_ids": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "active_resource_ids": [ + "hostage-safety", + "feed-integrity", + "sponsor-risk", + "security-pressure" + ], + "public_facts": [ + { + "text": "The live feed and room are mutually shaping the negotiation.", + "refs": [ + "lucent-scene-digest" + ] + }, + { + "text": "The edit-trail hold is the active evidence object.", + "refs": [ + "lucent-loop-state" + ] + } + ], + "scene_pressure": [ + { + "text": "Each turn must preserve safety while resisting brand-safe replacement of the event.", + "refs": [ + "lucent-initial-state" + ] + } + ] + }, + "coordinator_decision": { + "decision_id": "lucent-hostage-feed-v0.turn-12.coordinator.decision", + "selected_next_beat": "Juno Ark responds to the updated safety/evidence geometry.", + "selected_acting_agent_id": "juno_ark", + "candidate_next_beats": [ + { + "choice_id": "turn-12.selected", + "summary": "Project Juno Ark from current state and run one packet-only responder turn.", + "status": "selected" + } + ], + "rationale": "Selected to test sequential state carryover, local knowledge, physical affordances, feed affordances, and de-escalation without omniscient control.", + "glue_prose": "The feed holds its ugly shape long enough for Juno Ark to decide whether the next inch belongs to safety, spectacle, or panic.", + "glue_prose_status": "accepted_as_narration" + }, + "machinery_plan": { + "invocations": [ + { + "invocation_id": "turn-12.projector", + "organ": "projector", + "purpose": "Build local projected context for acting character.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-11.mutation.json" + ], + "output_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-12.juno-ark.projected-context.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-12.responder", + "organ": "sandboxed_responder", + "purpose": "Generate one character-local action from exact packet only.", + "input_refs": [ + "examples/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.json" + ], + "output_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-12.event", + "organ": "event_resolver", + "purpose": "Convert accepted responder action into observable event.", + "input_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-12.appraisal", + "organ": "participant_appraiser", + "purpose": "Create affected participant-local appraisals from current state.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.feed_ops_chorus.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-12.mutation", + "organ": "state_mutator", + "purpose": "Apply only reviewed state deltas.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json" + ], + "status": "accepted_as_draft" + } + ] + }, + "sandboxed_responder_handoffs": [ + { + "handoff_id": "turn-12.handoff", + "responder_agent_id": "juno_ark", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-12.juno-ark.projected-context.json", + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.json", + "hidden_context_refs": [ + "other participants private state", + "coordinator future plans", + "conversation history" + ], + "isolation_method": "subagent_no_fork", + "raw_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json", + "reviewed_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json", + "coordinator_interventions": [ + { + "intervention_type": "none", + "description": "Raw subagent output parsed as JSON without repair." + } + ], + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "No hidden context markers or raw state variables appeared in the accepted output." + ] + } + } + ], + "world_state_refs": { + "read_refs": [ + { + "ref_id": "prior-state", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-11.mutation.json", + "visibility": "coordinator_only" + }, + { + "ref_id": "projected-context", + "ref_type": "agent", + "path": "examples/projected-contexts/lucent-hostage-feed-v0.turn-12.juno-ark.projected-context.json", + "visibility": "character_local" + } + ], + "write_candidate_refs": [ + { + "ref_id": "event", + "ref_type": "event", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json", + "visibility": "public" + }, + { + "ref_id": "mutation", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json", + "visibility": "coordinator_only" + } + ] + }, + "proposed_deltas": [ + { + "delta_id": "turn-12.delta.receipt-chain", + "delta_type": "world_fact_update", + "target_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json", + "summary": "Use reviewed mutation receipt as source for next turn state.", + "authority": "manual_review", + "status": "accepted", + "rationale": "This is the explicit carryover tested by the loop." + } + ], + "branching": { + "branch_action": "none", + "active_branch_flags": [ + "training-loop-linear-release" + ], + "event_constraints": [] + }, + "unresolved_hooks": [ + { + "hook_id": "turn-12.hook.aftercare", + "hook_type": "story", + "summary": "Carry unresolved legal/feed/security aftermath without extending the hostage loop indefinitely.", + "owner": "Ghostlight", + "status": "carried" + } + ], + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Coordinator artifact is training-shaped and paired with exact packet/responder receipts." + ], + "accepted_for_training": true, + "failure_labels": [] + } +} diff --git a/examples/coordinator/lucent-hostage-feed-v0.turn-13.coordinator.json b/examples/coordinator/lucent-hostage-feed-v0.turn-13.coordinator.json new file mode 100644 index 0000000..9ad3db9 --- /dev/null +++ b/examples/coordinator/lucent-hostage-feed-v0.turn-13.coordinator.json @@ -0,0 +1,258 @@ +{ + "schema_version": "ghostlight.coordinator_artifact.v0", + "artifact_id": "lucent-hostage-feed-v0.turn-13.coordinator", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "source_refs": [ + { + "ref_id": "lucent-scene-digest", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "purpose": "Grounding facts for Lucent hostage-feed scene." + }, + { + "ref_id": "lucent-initial-state", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "purpose": "Scene-local state seed and participant briefs." + } + ], + "input_refs": { + "agent_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "lore_grounding_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json" + ], + "prior_artifact_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json" + ], + "projected_context_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-13.mara-quell.projected-context.json" + ] + }, + "scene_context": { + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "sequence_marker": "turn-13", + "location_id": "lucent.media-eye.transfer-atrium", + "participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "active_object_ids": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "active_resource_ids": [ + "hostage-safety", + "feed-integrity", + "sponsor-risk", + "security-pressure" + ], + "public_facts": [ + { + "text": "The live feed and room are mutually shaping the negotiation.", + "refs": [ + "lucent-scene-digest" + ] + }, + { + "text": "The edit-trail hold is the active evidence object.", + "refs": [ + "lucent-loop-state" + ] + } + ], + "scene_pressure": [ + { + "text": "Each turn must preserve safety while resisting brand-safe replacement of the event.", + "refs": [ + "lucent-initial-state" + ] + } + ] + }, + "coordinator_decision": { + "decision_id": "lucent-hostage-feed-v0.turn-13.coordinator.decision", + "selected_next_beat": "Mara Quell responds to the updated safety/evidence geometry.", + "selected_acting_agent_id": "mara_quell", + "candidate_next_beats": [ + { + "choice_id": "turn-13.selected", + "summary": "Project Mara Quell from current state and run one packet-only responder turn.", + "status": "selected" + } + ], + "rationale": "Selected to test sequential state carryover, local knowledge, physical affordances, feed affordances, and de-escalation without omniscient control.", + "glue_prose": "The feed holds its ugly shape long enough for Mara Quell to decide whether the next inch belongs to safety, spectacle, or panic.", + "glue_prose_status": "accepted_as_narration" + }, + "machinery_plan": { + "invocations": [ + { + "invocation_id": "turn-13.projector", + "organ": "projector", + "purpose": "Build local projected context for acting character.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json" + ], + "output_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-13.mara-quell.projected-context.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-13.responder", + "organ": "sandboxed_responder", + "purpose": "Generate one character-local action from exact packet only.", + "input_refs": [ + "examples/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.json" + ], + "output_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-13.event", + "organ": "event_resolver", + "purpose": "Convert accepted responder action into observable event.", + "input_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-13.appraisal", + "organ": "participant_appraiser", + "purpose": "Create affected participant-local appraisals from current state.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.feed_ops_chorus.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-13.mutation", + "organ": "state_mutator", + "purpose": "Apply only reviewed state deltas.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json" + ], + "status": "accepted_as_draft" + } + ] + }, + "sandboxed_responder_handoffs": [ + { + "handoff_id": "turn-13.handoff", + "responder_agent_id": "mara_quell", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-13.mara-quell.projected-context.json", + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.json", + "hidden_context_refs": [ + "other participants private state", + "coordinator future plans", + "conversation history" + ], + "isolation_method": "subagent_no_fork", + "raw_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json", + "reviewed_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json", + "coordinator_interventions": [ + { + "intervention_type": "none", + "description": "Raw subagent output parsed as JSON without repair." + } + ], + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "No hidden context markers or raw state variables appeared in the accepted output." + ] + } + } + ], + "world_state_refs": { + "read_refs": [ + { + "ref_id": "prior-state", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json", + "visibility": "coordinator_only" + }, + { + "ref_id": "projected-context", + "ref_type": "agent", + "path": "examples/projected-contexts/lucent-hostage-feed-v0.turn-13.mara-quell.projected-context.json", + "visibility": "character_local" + } + ], + "write_candidate_refs": [ + { + "ref_id": "event", + "ref_type": "event", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json", + "visibility": "public" + }, + { + "ref_id": "mutation", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json", + "visibility": "coordinator_only" + } + ] + }, + "proposed_deltas": [ + { + "delta_id": "turn-13.delta.receipt-chain", + "delta_type": "world_fact_update", + "target_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json", + "summary": "Use reviewed mutation receipt as source for next turn state.", + "authority": "manual_review", + "status": "accepted", + "rationale": "This is the explicit carryover tested by the loop." + } + ], + "branching": { + "branch_action": "none", + "active_branch_flags": [ + "training-loop-linear-release" + ], + "event_constraints": [] + }, + "unresolved_hooks": [ + { + "hook_id": "turn-13.hook.aftercare", + "hook_type": "story", + "summary": "Carry unresolved legal/feed/security aftermath without extending the hostage loop indefinitely.", + "owner": "Ghostlight", + "status": "carried" + } + ], + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Coordinator artifact is training-shaped and paired with exact packet/responder receipts." + ], + "accepted_for_training": true, + "failure_labels": [] + } +} diff --git a/examples/coordinator/lucent-hostage-feed-v0.turn-14.coordinator.json b/examples/coordinator/lucent-hostage-feed-v0.turn-14.coordinator.json new file mode 100644 index 0000000..15b45df --- /dev/null +++ b/examples/coordinator/lucent-hostage-feed-v0.turn-14.coordinator.json @@ -0,0 +1,258 @@ +{ + "schema_version": "ghostlight.coordinator_artifact.v0", + "artifact_id": "lucent-hostage-feed-v0.turn-14.coordinator", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "source_refs": [ + { + "ref_id": "lucent-scene-digest", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "purpose": "Grounding facts for Lucent hostage-feed scene." + }, + { + "ref_id": "lucent-initial-state", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "purpose": "Scene-local state seed and participant briefs." + } + ], + "input_refs": { + "agent_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "lore_grounding_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json" + ], + "prior_artifact_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json" + ], + "projected_context_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-14.sol-vant.projected-context.json" + ] + }, + "scene_context": { + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "sequence_marker": "turn-14", + "location_id": "lucent.media-eye.transfer-atrium", + "participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "active_object_ids": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "active_resource_ids": [ + "hostage-safety", + "feed-integrity", + "sponsor-risk", + "security-pressure" + ], + "public_facts": [ + { + "text": "The live feed and room are mutually shaping the negotiation.", + "refs": [ + "lucent-scene-digest" + ] + }, + { + "text": "The edit-trail hold is the active evidence object.", + "refs": [ + "lucent-loop-state" + ] + } + ], + "scene_pressure": [ + { + "text": "Each turn must preserve safety while resisting brand-safe replacement of the event.", + "refs": [ + "lucent-initial-state" + ] + } + ] + }, + "coordinator_decision": { + "decision_id": "lucent-hostage-feed-v0.turn-14.coordinator.decision", + "selected_next_beat": "Sol Vant responds to the updated safety/evidence geometry.", + "selected_acting_agent_id": "sol_vant", + "candidate_next_beats": [ + { + "choice_id": "turn-14.selected", + "summary": "Project Sol Vant from current state and run one packet-only responder turn.", + "status": "selected" + } + ], + "rationale": "Selected to test sequential state carryover, local knowledge, physical affordances, feed affordances, and de-escalation without omniscient control.", + "glue_prose": "The feed holds its ugly shape long enough for Sol Vant to decide whether the next inch belongs to safety, spectacle, or panic.", + "glue_prose_status": "accepted_as_narration" + }, + "machinery_plan": { + "invocations": [ + { + "invocation_id": "turn-14.projector", + "organ": "projector", + "purpose": "Build local projected context for acting character.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json" + ], + "output_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-14.sol-vant.projected-context.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-14.responder", + "organ": "sandboxed_responder", + "purpose": "Generate one character-local action from exact packet only.", + "input_refs": [ + "examples/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.json" + ], + "output_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-14.event", + "organ": "event_resolver", + "purpose": "Convert accepted responder action into observable event.", + "input_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-14.appraisal", + "organ": "participant_appraiser", + "purpose": "Create affected participant-local appraisals from current state.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.feed_ops_chorus.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-14.mutation", + "organ": "state_mutator", + "purpose": "Apply only reviewed state deltas.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json" + ], + "status": "accepted_as_draft" + } + ] + }, + "sandboxed_responder_handoffs": [ + { + "handoff_id": "turn-14.handoff", + "responder_agent_id": "sol_vant", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-14.sol-vant.projected-context.json", + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.json", + "hidden_context_refs": [ + "other participants private state", + "coordinator future plans", + "conversation history" + ], + "isolation_method": "subagent_no_fork", + "raw_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json", + "reviewed_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json", + "coordinator_interventions": [ + { + "intervention_type": "none", + "description": "Raw subagent output parsed as JSON without repair." + } + ], + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "No hidden context markers or raw state variables appeared in the accepted output." + ] + } + } + ], + "world_state_refs": { + "read_refs": [ + { + "ref_id": "prior-state", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json", + "visibility": "coordinator_only" + }, + { + "ref_id": "projected-context", + "ref_type": "agent", + "path": "examples/projected-contexts/lucent-hostage-feed-v0.turn-14.sol-vant.projected-context.json", + "visibility": "character_local" + } + ], + "write_candidate_refs": [ + { + "ref_id": "event", + "ref_type": "event", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json", + "visibility": "public" + }, + { + "ref_id": "mutation", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json", + "visibility": "coordinator_only" + } + ] + }, + "proposed_deltas": [ + { + "delta_id": "turn-14.delta.receipt-chain", + "delta_type": "world_fact_update", + "target_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json", + "summary": "Use reviewed mutation receipt as source for next turn state.", + "authority": "manual_review", + "status": "accepted", + "rationale": "This is the explicit carryover tested by the loop." + } + ], + "branching": { + "branch_action": "none", + "active_branch_flags": [ + "training-loop-linear-release" + ], + "event_constraints": [] + }, + "unresolved_hooks": [ + { + "hook_id": "turn-14.hook.aftercare", + "hook_type": "story", + "summary": "Carry unresolved legal/feed/security aftermath without extending the hostage loop indefinitely.", + "owner": "Ghostlight", + "status": "carried" + } + ], + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Coordinator artifact is training-shaped and paired with exact packet/responder receipts." + ], + "accepted_for_training": true, + "failure_labels": [] + } +} diff --git a/examples/coordinator/lucent-hostage-feed-v0.turn-15.coordinator.json b/examples/coordinator/lucent-hostage-feed-v0.turn-15.coordinator.json new file mode 100644 index 0000000..d7e65c7 --- /dev/null +++ b/examples/coordinator/lucent-hostage-feed-v0.turn-15.coordinator.json @@ -0,0 +1,258 @@ +{ + "schema_version": "ghostlight.coordinator_artifact.v0", + "artifact_id": "lucent-hostage-feed-v0.turn-15.coordinator", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "source_refs": [ + { + "ref_id": "lucent-scene-digest", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "purpose": "Grounding facts for Lucent hostage-feed scene." + }, + { + "ref_id": "lucent-initial-state", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "purpose": "Scene-local state seed and participant briefs." + } + ], + "input_refs": { + "agent_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "lore_grounding_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json" + ], + "prior_artifact_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json" + ], + "projected_context_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.projected-context.json" + ] + }, + "scene_context": { + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "sequence_marker": "turn-15", + "location_id": "lucent.media-eye.transfer-atrium", + "participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "active_object_ids": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "active_resource_ids": [ + "hostage-safety", + "feed-integrity", + "sponsor-risk", + "security-pressure" + ], + "public_facts": [ + { + "text": "The live feed and room are mutually shaping the negotiation.", + "refs": [ + "lucent-scene-digest" + ] + }, + { + "text": "The edit-trail hold is the active evidence object.", + "refs": [ + "lucent-loop-state" + ] + } + ], + "scene_pressure": [ + { + "text": "Each turn must preserve safety while resisting brand-safe replacement of the event.", + "refs": [ + "lucent-initial-state" + ] + } + ] + }, + "coordinator_decision": { + "decision_id": "lucent-hostage-feed-v0.turn-15.coordinator.decision", + "selected_next_beat": "Feed Ops Chorus responds to the updated safety/evidence geometry.", + "selected_acting_agent_id": "feed_ops_chorus", + "candidate_next_beats": [ + { + "choice_id": "turn-15.selected", + "summary": "Project Feed Ops Chorus from current state and run one packet-only responder turn.", + "status": "selected" + } + ], + "rationale": "Selected to test sequential state carryover, local knowledge, physical affordances, feed affordances, and de-escalation without omniscient control.", + "glue_prose": "The feed holds its ugly shape long enough for Feed Ops Chorus to decide whether the next inch belongs to safety, spectacle, or panic.", + "glue_prose_status": "accepted_as_narration" + }, + "machinery_plan": { + "invocations": [ + { + "invocation_id": "turn-15.projector", + "organ": "projector", + "purpose": "Build local projected context for acting character.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json" + ], + "output_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.projected-context.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-15.responder", + "organ": "sandboxed_responder", + "purpose": "Generate one character-local action from exact packet only.", + "input_refs": [ + "examples/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.json" + ], + "output_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-15.event", + "organ": "event_resolver", + "purpose": "Convert accepted responder action into observable event.", + "input_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-15.appraisal", + "organ": "participant_appraiser", + "purpose": "Create affected participant-local appraisals from current state.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.mara_quell.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-15.mutation", + "organ": "state_mutator", + "purpose": "Apply only reviewed state deltas.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json" + ], + "status": "accepted_as_draft" + } + ] + }, + "sandboxed_responder_handoffs": [ + { + "handoff_id": "turn-15.handoff", + "responder_agent_id": "feed_ops_chorus", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.projected-context.json", + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.json", + "hidden_context_refs": [ + "other participants private state", + "coordinator future plans", + "conversation history" + ], + "isolation_method": "subagent_no_fork", + "raw_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json", + "reviewed_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json", + "coordinator_interventions": [ + { + "intervention_type": "none", + "description": "Raw subagent output parsed as JSON without repair." + } + ], + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "No hidden context markers or raw state variables appeared in the accepted output." + ] + } + } + ], + "world_state_refs": { + "read_refs": [ + { + "ref_id": "prior-state", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json", + "visibility": "coordinator_only" + }, + { + "ref_id": "projected-context", + "ref_type": "agent", + "path": "examples/projected-contexts/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.projected-context.json", + "visibility": "character_local" + } + ], + "write_candidate_refs": [ + { + "ref_id": "event", + "ref_type": "event", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json", + "visibility": "public" + }, + { + "ref_id": "mutation", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json", + "visibility": "coordinator_only" + } + ] + }, + "proposed_deltas": [ + { + "delta_id": "turn-15.delta.receipt-chain", + "delta_type": "world_fact_update", + "target_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json", + "summary": "Use reviewed mutation receipt as source for next turn state.", + "authority": "manual_review", + "status": "accepted", + "rationale": "This is the explicit carryover tested by the loop." + } + ], + "branching": { + "branch_action": "none", + "active_branch_flags": [ + "training-loop-linear-release" + ], + "event_constraints": [] + }, + "unresolved_hooks": [ + { + "hook_id": "turn-15.hook.aftercare", + "hook_type": "story", + "summary": "Carry unresolved legal/feed/security aftermath without extending the hostage loop indefinitely.", + "owner": "Ghostlight", + "status": "carried" + } + ], + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Coordinator artifact is training-shaped and paired with exact packet/responder receipts." + ], + "accepted_for_training": true, + "failure_labels": [] + } +} diff --git a/examples/coordinator/lucent-hostage-feed-v0.turn-16.coordinator.json b/examples/coordinator/lucent-hostage-feed-v0.turn-16.coordinator.json new file mode 100644 index 0000000..32364d3 --- /dev/null +++ b/examples/coordinator/lucent-hostage-feed-v0.turn-16.coordinator.json @@ -0,0 +1,258 @@ +{ + "schema_version": "ghostlight.coordinator_artifact.v0", + "artifact_id": "lucent-hostage-feed-v0.turn-16.coordinator", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "source_refs": [ + { + "ref_id": "lucent-scene-digest", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "purpose": "Grounding facts for Lucent hostage-feed scene." + }, + { + "ref_id": "lucent-initial-state", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "purpose": "Scene-local state seed and participant briefs." + } + ], + "input_refs": { + "agent_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "lore_grounding_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json" + ], + "prior_artifact_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json" + ], + "projected_context_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-16.juno-ark.projected-context.json" + ] + }, + "scene_context": { + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "sequence_marker": "turn-16", + "location_id": "lucent.media-eye.transfer-atrium", + "participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "active_object_ids": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "active_resource_ids": [ + "hostage-safety", + "feed-integrity", + "sponsor-risk", + "security-pressure" + ], + "public_facts": [ + { + "text": "The live feed and room are mutually shaping the negotiation.", + "refs": [ + "lucent-scene-digest" + ] + }, + { + "text": "The edit-trail hold is the active evidence object.", + "refs": [ + "lucent-loop-state" + ] + } + ], + "scene_pressure": [ + { + "text": "Each turn must preserve safety while resisting brand-safe replacement of the event.", + "refs": [ + "lucent-initial-state" + ] + } + ] + }, + "coordinator_decision": { + "decision_id": "lucent-hostage-feed-v0.turn-16.coordinator.decision", + "selected_next_beat": "Juno Ark responds to the updated safety/evidence geometry.", + "selected_acting_agent_id": "juno_ark", + "candidate_next_beats": [ + { + "choice_id": "turn-16.selected", + "summary": "Project Juno Ark from current state and run one packet-only responder turn.", + "status": "selected" + } + ], + "rationale": "Selected to test sequential state carryover, local knowledge, physical affordances, feed affordances, and de-escalation without omniscient control.", + "glue_prose": "The feed holds its ugly shape long enough for Juno Ark to decide whether the next inch belongs to safety, spectacle, or panic.", + "glue_prose_status": "accepted_as_narration" + }, + "machinery_plan": { + "invocations": [ + { + "invocation_id": "turn-16.projector", + "organ": "projector", + "purpose": "Build local projected context for acting character.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json" + ], + "output_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-16.juno-ark.projected-context.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-16.responder", + "organ": "sandboxed_responder", + "purpose": "Generate one character-local action from exact packet only.", + "input_refs": [ + "examples/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.json" + ], + "output_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-16.event", + "organ": "event_resolver", + "purpose": "Convert accepted responder action into observable event.", + "input_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-16.appraisal", + "organ": "participant_appraiser", + "purpose": "Create affected participant-local appraisals from current state.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.feed_ops_chorus.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-16.mutation", + "organ": "state_mutator", + "purpose": "Apply only reviewed state deltas.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json" + ], + "status": "accepted_as_draft" + } + ] + }, + "sandboxed_responder_handoffs": [ + { + "handoff_id": "turn-16.handoff", + "responder_agent_id": "juno_ark", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-16.juno-ark.projected-context.json", + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.json", + "hidden_context_refs": [ + "other participants private state", + "coordinator future plans", + "conversation history" + ], + "isolation_method": "subagent_no_fork", + "raw_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json", + "reviewed_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json", + "coordinator_interventions": [ + { + "intervention_type": "none", + "description": "Raw subagent output parsed as JSON without repair." + } + ], + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "No hidden context markers or raw state variables appeared in the accepted output." + ] + } + } + ], + "world_state_refs": { + "read_refs": [ + { + "ref_id": "prior-state", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json", + "visibility": "coordinator_only" + }, + { + "ref_id": "projected-context", + "ref_type": "agent", + "path": "examples/projected-contexts/lucent-hostage-feed-v0.turn-16.juno-ark.projected-context.json", + "visibility": "character_local" + } + ], + "write_candidate_refs": [ + { + "ref_id": "event", + "ref_type": "event", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json", + "visibility": "public" + }, + { + "ref_id": "mutation", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json", + "visibility": "coordinator_only" + } + ] + }, + "proposed_deltas": [ + { + "delta_id": "turn-16.delta.receipt-chain", + "delta_type": "world_fact_update", + "target_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json", + "summary": "Use reviewed mutation receipt as source for next turn state.", + "authority": "manual_review", + "status": "accepted", + "rationale": "This is the explicit carryover tested by the loop." + } + ], + "branching": { + "branch_action": "none", + "active_branch_flags": [ + "training-loop-linear-release" + ], + "event_constraints": [] + }, + "unresolved_hooks": [ + { + "hook_id": "turn-16.hook.aftercare", + "hook_type": "story", + "summary": "Carry unresolved legal/feed/security aftermath without extending the hostage loop indefinitely.", + "owner": "Ghostlight", + "status": "carried" + } + ], + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Coordinator artifact is training-shaped and paired with exact packet/responder receipts." + ], + "accepted_for_training": true, + "failure_labels": [] + } +} diff --git a/examples/coordinator/lucent-hostage-feed-v0.turn-17.coordinator.json b/examples/coordinator/lucent-hostage-feed-v0.turn-17.coordinator.json new file mode 100644 index 0000000..4132969 --- /dev/null +++ b/examples/coordinator/lucent-hostage-feed-v0.turn-17.coordinator.json @@ -0,0 +1,258 @@ +{ + "schema_version": "ghostlight.coordinator_artifact.v0", + "artifact_id": "lucent-hostage-feed-v0.turn-17.coordinator", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "source_refs": [ + { + "ref_id": "lucent-scene-digest", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "purpose": "Grounding facts for Lucent hostage-feed scene." + }, + { + "ref_id": "lucent-initial-state", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "purpose": "Scene-local state seed and participant briefs." + } + ], + "input_refs": { + "agent_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "lore_grounding_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json" + ], + "prior_artifact_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json" + ], + "projected_context_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.projected-context.json" + ] + }, + "scene_context": { + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "sequence_marker": "turn-17", + "location_id": "lucent.media-eye.transfer-atrium", + "participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "active_object_ids": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "active_resource_ids": [ + "hostage-safety", + "feed-integrity", + "sponsor-risk", + "security-pressure" + ], + "public_facts": [ + { + "text": "The live feed and room are mutually shaping the negotiation.", + "refs": [ + "lucent-scene-digest" + ] + }, + { + "text": "The edit-trail hold is the active evidence object.", + "refs": [ + "lucent-loop-state" + ] + } + ], + "scene_pressure": [ + { + "text": "Each turn must preserve safety while resisting brand-safe replacement of the event.", + "refs": [ + "lucent-initial-state" + ] + } + ] + }, + "coordinator_decision": { + "decision_id": "lucent-hostage-feed-v0.turn-17.coordinator.decision", + "selected_next_beat": "Feed Ops Chorus responds to the updated safety/evidence geometry.", + "selected_acting_agent_id": "feed_ops_chorus", + "candidate_next_beats": [ + { + "choice_id": "turn-17.selected", + "summary": "Project Feed Ops Chorus from current state and run one packet-only responder turn.", + "status": "selected" + } + ], + "rationale": "Selected to test sequential state carryover, local knowledge, physical affordances, feed affordances, and de-escalation without omniscient control.", + "glue_prose": "The feed holds its ugly shape long enough for Feed Ops Chorus to decide whether the next inch belongs to safety, spectacle, or panic.", + "glue_prose_status": "accepted_as_narration" + }, + "machinery_plan": { + "invocations": [ + { + "invocation_id": "turn-17.projector", + "organ": "projector", + "purpose": "Build local projected context for acting character.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json" + ], + "output_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.projected-context.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-17.responder", + "organ": "sandboxed_responder", + "purpose": "Generate one character-local action from exact packet only.", + "input_refs": [ + "examples/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.json" + ], + "output_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-17.event", + "organ": "event_resolver", + "purpose": "Convert accepted responder action into observable event.", + "input_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-17.appraisal", + "organ": "participant_appraiser", + "purpose": "Create affected participant-local appraisals from current state.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.mara_quell.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-17.mutation", + "organ": "state_mutator", + "purpose": "Apply only reviewed state deltas.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json" + ], + "status": "accepted_as_draft" + } + ] + }, + "sandboxed_responder_handoffs": [ + { + "handoff_id": "turn-17.handoff", + "responder_agent_id": "feed_ops_chorus", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.projected-context.json", + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.json", + "hidden_context_refs": [ + "other participants private state", + "coordinator future plans", + "conversation history" + ], + "isolation_method": "subagent_no_fork", + "raw_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json", + "reviewed_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json", + "coordinator_interventions": [ + { + "intervention_type": "none", + "description": "Raw subagent output parsed as JSON without repair." + } + ], + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "No hidden context markers or raw state variables appeared in the accepted output." + ] + } + } + ], + "world_state_refs": { + "read_refs": [ + { + "ref_id": "prior-state", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json", + "visibility": "coordinator_only" + }, + { + "ref_id": "projected-context", + "ref_type": "agent", + "path": "examples/projected-contexts/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.projected-context.json", + "visibility": "character_local" + } + ], + "write_candidate_refs": [ + { + "ref_id": "event", + "ref_type": "event", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json", + "visibility": "public" + }, + { + "ref_id": "mutation", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json", + "visibility": "coordinator_only" + } + ] + }, + "proposed_deltas": [ + { + "delta_id": "turn-17.delta.receipt-chain", + "delta_type": "world_fact_update", + "target_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json", + "summary": "Use reviewed mutation receipt as source for next turn state.", + "authority": "manual_review", + "status": "accepted", + "rationale": "This is the explicit carryover tested by the loop." + } + ], + "branching": { + "branch_action": "none", + "active_branch_flags": [ + "training-loop-linear-release" + ], + "event_constraints": [] + }, + "unresolved_hooks": [ + { + "hook_id": "turn-17.hook.aftercare", + "hook_type": "story", + "summary": "Carry unresolved legal/feed/security aftermath without extending the hostage loop indefinitely.", + "owner": "Ghostlight", + "status": "carried" + } + ], + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Coordinator artifact is training-shaped and paired with exact packet/responder receipts." + ], + "accepted_for_training": true, + "failure_labels": [] + } +} diff --git a/examples/coordinator/lucent-hostage-feed-v0.turn-18.coordinator.json b/examples/coordinator/lucent-hostage-feed-v0.turn-18.coordinator.json new file mode 100644 index 0000000..4e7a809 --- /dev/null +++ b/examples/coordinator/lucent-hostage-feed-v0.turn-18.coordinator.json @@ -0,0 +1,258 @@ +{ + "schema_version": "ghostlight.coordinator_artifact.v0", + "artifact_id": "lucent-hostage-feed-v0.turn-18.coordinator", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "source_refs": [ + { + "ref_id": "lucent-scene-digest", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "purpose": "Grounding facts for Lucent hostage-feed scene." + }, + { + "ref_id": "lucent-initial-state", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "purpose": "Scene-local state seed and participant briefs." + } + ], + "input_refs": { + "agent_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "lore_grounding_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json" + ], + "prior_artifact_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json" + ], + "projected_context_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-18.juno-ark.projected-context.json" + ] + }, + "scene_context": { + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "sequence_marker": "turn-18", + "location_id": "lucent.media-eye.transfer-atrium", + "participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "active_object_ids": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "active_resource_ids": [ + "hostage-safety", + "feed-integrity", + "sponsor-risk", + "security-pressure" + ], + "public_facts": [ + { + "text": "The live feed and room are mutually shaping the negotiation.", + "refs": [ + "lucent-scene-digest" + ] + }, + { + "text": "The edit-trail hold is the active evidence object.", + "refs": [ + "lucent-loop-state" + ] + } + ], + "scene_pressure": [ + { + "text": "Each turn must preserve safety while resisting brand-safe replacement of the event.", + "refs": [ + "lucent-initial-state" + ] + } + ] + }, + "coordinator_decision": { + "decision_id": "lucent-hostage-feed-v0.turn-18.coordinator.decision", + "selected_next_beat": "Juno Ark responds to the updated safety/evidence geometry.", + "selected_acting_agent_id": "juno_ark", + "candidate_next_beats": [ + { + "choice_id": "turn-18.selected", + "summary": "Project Juno Ark from current state and run one packet-only responder turn.", + "status": "selected" + } + ], + "rationale": "Selected to test sequential state carryover, local knowledge, physical affordances, feed affordances, and de-escalation without omniscient control.", + "glue_prose": "The feed holds its ugly shape long enough for Juno Ark to decide whether the next inch belongs to safety, spectacle, or panic.", + "glue_prose_status": "accepted_as_narration" + }, + "machinery_plan": { + "invocations": [ + { + "invocation_id": "turn-18.projector", + "organ": "projector", + "purpose": "Build local projected context for acting character.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json" + ], + "output_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-18.juno-ark.projected-context.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-18.responder", + "organ": "sandboxed_responder", + "purpose": "Generate one character-local action from exact packet only.", + "input_refs": [ + "examples/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.json" + ], + "output_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-18.event", + "organ": "event_resolver", + "purpose": "Convert accepted responder action into observable event.", + "input_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-18.appraisal", + "organ": "participant_appraiser", + "purpose": "Create affected participant-local appraisals from current state.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.feed_ops_chorus.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-18.mutation", + "organ": "state_mutator", + "purpose": "Apply only reviewed state deltas.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json" + ], + "status": "accepted_as_draft" + } + ] + }, + "sandboxed_responder_handoffs": [ + { + "handoff_id": "turn-18.handoff", + "responder_agent_id": "juno_ark", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-18.juno-ark.projected-context.json", + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.json", + "hidden_context_refs": [ + "other participants private state", + "coordinator future plans", + "conversation history" + ], + "isolation_method": "subagent_no_fork", + "raw_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json", + "reviewed_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json", + "coordinator_interventions": [ + { + "intervention_type": "none", + "description": "Raw subagent output parsed as JSON without repair." + } + ], + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "No hidden context markers or raw state variables appeared in the accepted output." + ] + } + } + ], + "world_state_refs": { + "read_refs": [ + { + "ref_id": "prior-state", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json", + "visibility": "coordinator_only" + }, + { + "ref_id": "projected-context", + "ref_type": "agent", + "path": "examples/projected-contexts/lucent-hostage-feed-v0.turn-18.juno-ark.projected-context.json", + "visibility": "character_local" + } + ], + "write_candidate_refs": [ + { + "ref_id": "event", + "ref_type": "event", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json", + "visibility": "public" + }, + { + "ref_id": "mutation", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json", + "visibility": "coordinator_only" + } + ] + }, + "proposed_deltas": [ + { + "delta_id": "turn-18.delta.receipt-chain", + "delta_type": "world_fact_update", + "target_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json", + "summary": "Use reviewed mutation receipt as source for next turn state.", + "authority": "manual_review", + "status": "accepted", + "rationale": "This is the explicit carryover tested by the loop." + } + ], + "branching": { + "branch_action": "none", + "active_branch_flags": [ + "training-loop-linear-release" + ], + "event_constraints": [] + }, + "unresolved_hooks": [ + { + "hook_id": "turn-18.hook.aftercare", + "hook_type": "story", + "summary": "Carry unresolved legal/feed/security aftermath without extending the hostage loop indefinitely.", + "owner": "Ghostlight", + "status": "carried" + } + ], + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Coordinator artifact is training-shaped and paired with exact packet/responder receipts." + ], + "accepted_for_training": true, + "failure_labels": [] + } +} diff --git a/examples/coordinator/lucent-hostage-feed-v0.turn-19.coordinator.json b/examples/coordinator/lucent-hostage-feed-v0.turn-19.coordinator.json new file mode 100644 index 0000000..6bfdeab --- /dev/null +++ b/examples/coordinator/lucent-hostage-feed-v0.turn-19.coordinator.json @@ -0,0 +1,258 @@ +{ + "schema_version": "ghostlight.coordinator_artifact.v0", + "artifact_id": "lucent-hostage-feed-v0.turn-19.coordinator", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "source_refs": [ + { + "ref_id": "lucent-scene-digest", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "purpose": "Grounding facts for Lucent hostage-feed scene." + }, + { + "ref_id": "lucent-initial-state", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "purpose": "Scene-local state seed and participant briefs." + } + ], + "input_refs": { + "agent_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "lore_grounding_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json" + ], + "prior_artifact_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json" + ], + "projected_context_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.projected-context.json" + ] + }, + "scene_context": { + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "sequence_marker": "turn-19", + "location_id": "lucent.media-eye.transfer-atrium", + "participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "active_object_ids": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "active_resource_ids": [ + "hostage-safety", + "feed-integrity", + "sponsor-risk", + "security-pressure" + ], + "public_facts": [ + { + "text": "The live feed and room are mutually shaping the negotiation.", + "refs": [ + "lucent-scene-digest" + ] + }, + { + "text": "The edit-trail hold is the active evidence object.", + "refs": [ + "lucent-loop-state" + ] + } + ], + "scene_pressure": [ + { + "text": "Each turn must preserve safety while resisting brand-safe replacement of the event.", + "refs": [ + "lucent-initial-state" + ] + } + ] + }, + "coordinator_decision": { + "decision_id": "lucent-hostage-feed-v0.turn-19.coordinator.decision", + "selected_next_beat": "Feed Ops Chorus responds to the updated safety/evidence geometry.", + "selected_acting_agent_id": "feed_ops_chorus", + "candidate_next_beats": [ + { + "choice_id": "turn-19.selected", + "summary": "Project Feed Ops Chorus from current state and run one packet-only responder turn.", + "status": "selected" + } + ], + "rationale": "Selected to test sequential state carryover, local knowledge, physical affordances, feed affordances, and de-escalation without omniscient control.", + "glue_prose": "The feed holds its ugly shape long enough for Feed Ops Chorus to decide whether the next inch belongs to safety, spectacle, or panic.", + "glue_prose_status": "accepted_as_narration" + }, + "machinery_plan": { + "invocations": [ + { + "invocation_id": "turn-19.projector", + "organ": "projector", + "purpose": "Build local projected context for acting character.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json" + ], + "output_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.projected-context.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-19.responder", + "organ": "sandboxed_responder", + "purpose": "Generate one character-local action from exact packet only.", + "input_refs": [ + "examples/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.json" + ], + "output_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-19.event", + "organ": "event_resolver", + "purpose": "Convert accepted responder action into observable event.", + "input_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-19.appraisal", + "organ": "participant_appraiser", + "purpose": "Create affected participant-local appraisals from current state.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.mara_quell.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-19.mutation", + "organ": "state_mutator", + "purpose": "Apply only reviewed state deltas.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json" + ], + "status": "accepted_as_draft" + } + ] + }, + "sandboxed_responder_handoffs": [ + { + "handoff_id": "turn-19.handoff", + "responder_agent_id": "feed_ops_chorus", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.projected-context.json", + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.json", + "hidden_context_refs": [ + "other participants private state", + "coordinator future plans", + "conversation history" + ], + "isolation_method": "subagent_no_fork", + "raw_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json", + "reviewed_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json", + "coordinator_interventions": [ + { + "intervention_type": "none", + "description": "Raw subagent output parsed as JSON without repair." + } + ], + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "No hidden context markers or raw state variables appeared in the accepted output." + ] + } + } + ], + "world_state_refs": { + "read_refs": [ + { + "ref_id": "prior-state", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json", + "visibility": "coordinator_only" + }, + { + "ref_id": "projected-context", + "ref_type": "agent", + "path": "examples/projected-contexts/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.projected-context.json", + "visibility": "character_local" + } + ], + "write_candidate_refs": [ + { + "ref_id": "event", + "ref_type": "event", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json", + "visibility": "public" + }, + { + "ref_id": "mutation", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json", + "visibility": "coordinator_only" + } + ] + }, + "proposed_deltas": [ + { + "delta_id": "turn-19.delta.receipt-chain", + "delta_type": "world_fact_update", + "target_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json", + "summary": "Use reviewed mutation receipt as source for next turn state.", + "authority": "manual_review", + "status": "accepted", + "rationale": "This is the explicit carryover tested by the loop." + } + ], + "branching": { + "branch_action": "none", + "active_branch_flags": [ + "training-loop-linear-release" + ], + "event_constraints": [] + }, + "unresolved_hooks": [ + { + "hook_id": "turn-19.hook.aftercare", + "hook_type": "story", + "summary": "Carry unresolved legal/feed/security aftermath without extending the hostage loop indefinitely.", + "owner": "Ghostlight", + "status": "carried" + } + ], + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Coordinator artifact is training-shaped and paired with exact packet/responder receipts." + ], + "accepted_for_training": true, + "failure_labels": [] + } +} diff --git a/examples/coordinator/lucent-hostage-feed-v0.turn-20.coordinator.json b/examples/coordinator/lucent-hostage-feed-v0.turn-20.coordinator.json new file mode 100644 index 0000000..7fe9585 --- /dev/null +++ b/examples/coordinator/lucent-hostage-feed-v0.turn-20.coordinator.json @@ -0,0 +1,258 @@ +{ + "schema_version": "ghostlight.coordinator_artifact.v0", + "artifact_id": "lucent-hostage-feed-v0.turn-20.coordinator", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "source_refs": [ + { + "ref_id": "lucent-scene-digest", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "purpose": "Grounding facts for Lucent hostage-feed scene." + }, + { + "ref_id": "lucent-initial-state", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "purpose": "Scene-local state seed and participant briefs." + } + ], + "input_refs": { + "agent_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "lore_grounding_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json" + ], + "prior_artifact_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json" + ], + "projected_context_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-20.mara-quell.projected-context.json" + ] + }, + "scene_context": { + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "sequence_marker": "turn-20", + "location_id": "lucent.media-eye.transfer-atrium", + "participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "active_object_ids": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "active_resource_ids": [ + "hostage-safety", + "feed-integrity", + "sponsor-risk", + "security-pressure" + ], + "public_facts": [ + { + "text": "The live feed and room are mutually shaping the negotiation.", + "refs": [ + "lucent-scene-digest" + ] + }, + { + "text": "The edit-trail hold is the active evidence object.", + "refs": [ + "lucent-loop-state" + ] + } + ], + "scene_pressure": [ + { + "text": "Each turn must preserve safety while resisting brand-safe replacement of the event.", + "refs": [ + "lucent-initial-state" + ] + } + ] + }, + "coordinator_decision": { + "decision_id": "lucent-hostage-feed-v0.turn-20.coordinator.decision", + "selected_next_beat": "Mara Quell responds to the updated safety/evidence geometry.", + "selected_acting_agent_id": "mara_quell", + "candidate_next_beats": [ + { + "choice_id": "turn-20.selected", + "summary": "Project Mara Quell from current state and run one packet-only responder turn.", + "status": "selected" + } + ], + "rationale": "Selected to test sequential state carryover, local knowledge, physical affordances, feed affordances, and de-escalation without omniscient control.", + "glue_prose": "The feed holds its ugly shape long enough for Mara Quell to decide whether the next inch belongs to safety, spectacle, or panic.", + "glue_prose_status": "accepted_as_narration" + }, + "machinery_plan": { + "invocations": [ + { + "invocation_id": "turn-20.projector", + "organ": "projector", + "purpose": "Build local projected context for acting character.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json" + ], + "output_refs": [ + "examples/projected-contexts/lucent-hostage-feed-v0.turn-20.mara-quell.projected-context.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-20.responder", + "organ": "sandboxed_responder", + "purpose": "Generate one character-local action from exact packet only.", + "input_refs": [ + "examples/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.json" + ], + "output_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-20.event", + "organ": "event_resolver", + "purpose": "Convert accepted responder action into observable event.", + "input_refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-20.appraisal", + "organ": "participant_appraiser", + "purpose": "Create affected participant-local appraisals from current state.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.feed_ops_chorus.json" + ], + "status": "accepted_as_draft" + }, + { + "invocation_id": "turn-20.mutation", + "organ": "state_mutator", + "purpose": "Apply only reviewed state deltas.", + "input_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json" + ], + "output_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.mutation.json" + ], + "status": "accepted_as_draft" + } + ] + }, + "sandboxed_responder_handoffs": [ + { + "handoff_id": "turn-20.handoff", + "responder_agent_id": "mara_quell", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-20.mara-quell.projected-context.json", + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.json", + "hidden_context_refs": [ + "other participants private state", + "coordinator future plans", + "conversation history" + ], + "isolation_method": "subagent_no_fork", + "raw_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json", + "reviewed_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json", + "coordinator_interventions": [ + { + "intervention_type": "none", + "description": "Raw subagent output parsed as JSON without repair." + } + ], + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "No hidden context markers or raw state variables appeared in the accepted output." + ] + } + } + ], + "world_state_refs": { + "read_refs": [ + { + "ref_id": "prior-state", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json", + "visibility": "coordinator_only" + }, + { + "ref_id": "projected-context", + "ref_type": "agent", + "path": "examples/projected-contexts/lucent-hostage-feed-v0.turn-20.mara-quell.projected-context.json", + "visibility": "character_local" + } + ], + "write_candidate_refs": [ + { + "ref_id": "event", + "ref_type": "event", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json", + "visibility": "public" + }, + { + "ref_id": "mutation", + "ref_type": "world_fact", + "path": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.mutation.json", + "visibility": "coordinator_only" + } + ] + }, + "proposed_deltas": [ + { + "delta_id": "turn-20.delta.receipt-chain", + "delta_type": "world_fact_update", + "target_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.mutation.json", + "summary": "Use reviewed mutation receipt as source for next turn state.", + "authority": "manual_review", + "status": "accepted", + "rationale": "This is the explicit carryover tested by the loop." + } + ], + "branching": { + "branch_action": "none", + "active_branch_flags": [ + "training-loop-linear-release" + ], + "event_constraints": [] + }, + "unresolved_hooks": [ + { + "hook_id": "turn-20.hook.aftercare", + "hook_type": "story", + "summary": "Carry unresolved legal/feed/security aftermath without extending the hostage loop indefinitely.", + "owner": "Ghostlight", + "status": "carried" + } + ], + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Coordinator artifact is training-shaped and paired with exact packet/responder receipts." + ], + "accepted_for_training": true, + "failure_labels": [] + } +} diff --git a/examples/projected-contexts/lucent-hostage-feed-v0.turn-12.juno-ark.projected-context.json b/examples/projected-contexts/lucent-hostage-feed-v0.turn-12.juno-ark.projected-context.json new file mode 100644 index 0000000..def0e57 --- /dev/null +++ b/examples/projected-contexts/lucent-hostage-feed-v0.turn-12.juno-ark.projected-context.json @@ -0,0 +1,185 @@ +{ + "schema_version": "ghostlight.projected_local_context.v0", + "projection_id": "lucent-hostage-feed-v0.turn-12.juno-ark.projected-context", + "input": { + "fixture_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "annotation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "local_agent_id": "juno_ark", + "listener_ids": [ + "sol_vant", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "projection_mode": "manual_training_loop_projection" + }, + "context": { + "local_agent_id": "juno_ark", + "identity": "Juno Ark", + "setting": "Lucent media-eye counterweight transfer atrium during a live hostage-feed negotiation.", + "known_facts": [ + { + "text": "Lucent treats visibility as material power; every action in the atrium is also feed behavior.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + { + "text": "The edit-trail hold is the current external proof-object and replaces Juno's body as the center of leverage.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "current_stakes": [ + { + "text": "You are not directly held, but you are still near Sol inside the charged breach geometry.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + }, + { + "text": "Sol's hands are visible and empty.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "embodiment_and_interface": [ + { + "text": "The actor can act through visible speech, gesture, movement, local feed surfaces, body spacing, and role-appropriate interface controls.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "active_inner_pressures": [ + { + "text": "Stay legible under hostile visibility without handing the feed a cleaner violent or heroic frame.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "relationship_read": [ + { + "text": "Other participants can be read only through observed speech, visible posture, feed position, role, and prior public actions in this loop.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "tensions": [ + { + "text": "Hostage safety, feed integrity, sponsor risk, humiliation, and public evidence are competing for control of the next beat.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "runtime_retrieval_requirements": [ + { + "requirement_id": "turn-12.lucent-lore", + "trigger": "scene grounding", + "compact_fact": "Lucent governance operates through attention, feed framing, Buzz/Clout, and visibility pressure.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ], + "prompt_role": "source_excerpt" + } + ], + "latent_pressure_requirements": [ + { + "pressure_id": "turn-12.speech-review", + "text": "Speech should sound like a person acting under pressure inside a live feed, not like prompt-contract compliance.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ], + "projection_rule": "Project pressure into concrete action, local jokes, and readable survival logic.", + "review_rule": "Review spoken lines for role-local speech, dark-comic pressure, and absence of sludge." + } + ], + "retrieved_lore_prompt_blocks": [ + { + "text": "Reality Architects tune conditions under which stories become socially persuasive.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + }, + { + "text": "Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "latent_pressure_prompt_blocks": [ + { + "text": "The actor should not narrate hidden theory; action and speech should reveal the current pressure and relationship read.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "action_affordances": [ + { + "text": "Allowed moves are limited to the packet action labels and must be feasible from the actor's physical/feed position.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "projection_controls": [ + { + "text": "Only local knowledge, observed events, and role-appropriate inferences are projected. Other participants private state and future continuation are omitted.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "voice_surface": [ + { + "text": "Darkly comic Lucent pressure: precise, readable, and human under danger rather than abstract technical sludge.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "likely_response_moves": [ + { + "text": "Respond to the immediate safety/evidence geometry by either preserving the off-ramp, escalating, or setting a narrower condition.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "do_not_invent": [ + { + "text": "Do not invent offscreen arrivals, hidden motives, future outcomes, or lore not included in the packet.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "observed_event": { + "actor_agent_id": "sol_vant", + "summary": "Sol's fingers open from the bench edge. He shifts half a step away from you and angles toward the camera instead of the elevator gate. He says: \"There. No hand on Juno. No hero shot. No monster shot. Just the receipt, pinned where your little attention abattoir has to look at it. Automated emotion contour, manual sponsor-risk approval. God, even your confession sounds like it came with a quarterly deck. Keep the rows up. Keep the custody graphic suspended. If security moves, they move on a man with empty hands and a bench edge, not a hostage. I want the edit trail preserved, exported, and named on air again by someone whose job title has not been varnished for insurance.\"" + }, + "prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-12.juno-ark.packet\nResponder agent id: juno_ark\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Juno Ark, a junior Reality Architect and newly released hostage. You know enough about feed control to understand how badly everyone is lying, but your immediate job is to survive the walkout without triggering Sol, security, or feed ops into turning the release into spectacle. You want to get clear without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.\n\nVisible setting:\nThe media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. You are in the transfer atrium near the elevator gate on the media-eye side. Every surface watches. The laughing sticker over Sol's arbitration clip remains pinned with timestamp highlighted. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended while you are not directly held. A SOURCE PROCESS NOTE explains the edit mechanism. The camera shows you, Sol's empty hands, the bench edge, and the elevator gate. Security waits behind service collars and drone apertures, breach delayed while conditions remain nonviolent.\n\nVisible participants:\nSol Vant has released direct physical leverage over you and shifted half a step away, hands visible and empty. Mara Quell is on the official crisis feed. Feed ops has kept the hold visible and given a bounded explanation. Brant Vee and Pippa Lux are dimmed side panels. Security remains delayed while Sol's hands are empty.\n\nObserved event:\nSol's fingers open from the bench edge. He shifts half a step away from you and angles toward the camera instead of the elevator gate. He says: \"There. No hand on Juno. No hero shot. No monster shot. Just the receipt, pinned where your little attention abattoir has to look at it. Automated emotion contour, manual sponsor-risk approval. God, even your confession sounds like it came with a quarterly deck. Keep the rows up. Keep the custody graphic suspended. If security moves, they move on a man with empty hands and a bench edge, not a hostage. I want the edit trail preserved, exported, and named on air again by someone whose job title has not been varnished for insurance.\"\n\nCurrent scene state after reviewed mutation:\n- You are not directly held, but you are still near Sol inside the charged breach geometry.\n- Sol's hands are visible and empty.\n- EDIT TRAIL HOLD remains visible and intact.\n- Feed ops has named automated emotion-contour optimization plus manual sponsor-risk approval.\n- Security may use your clearance as an opening to breach, which could re-endanger you or turn the release into a violent feed product.\n- A slow, legible move to the safe line can complete the hostage-release phase without erasing the evidence conflict.\n\nAllowed action labels: speak, gesture, movement, inspect_object, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.\n- Tone is dark comedy with real danger: your line can be dry, but your fear and bodily risk are real.\n- You cannot know Sol's private intent; you can only read his visible behavior and speech.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores." + }, + "audit": { + "projector": "Codex coordinator", + "raw_state_hidden_from_prompt": true, + "character_local_context_only": true, + "omitted_private_context": [ + "other participants private state", + "future branch plans", + "coordinator rationale", + "turns 1-5 rehearsal state beyond observable setup" + ], + "review_status": "accepted" + } +} diff --git a/examples/projected-contexts/lucent-hostage-feed-v0.turn-13.mara-quell.projected-context.json b/examples/projected-contexts/lucent-hostage-feed-v0.turn-13.mara-quell.projected-context.json new file mode 100644 index 0000000..c6bd691 --- /dev/null +++ b/examples/projected-contexts/lucent-hostage-feed-v0.turn-13.mara-quell.projected-context.json @@ -0,0 +1,185 @@ +{ + "schema_version": "ghostlight.projected_local_context.v0", + "projection_id": "lucent-hostage-feed-v0.turn-13.mara-quell.projected-context", + "input": { + "fixture_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "annotation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "local_agent_id": "mara_quell", + "listener_ids": [ + "sol_vant", + "juno_ark", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "projection_mode": "manual_training_loop_projection" + }, + "context": { + "local_agent_id": "mara_quell", + "identity": "Mara Quell", + "setting": "Lucent media-eye counterweight transfer atrium during a live hostage-feed negotiation.", + "known_facts": [ + { + "text": "Lucent treats visibility as material power; every action in the atrium is also feed behavior.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + { + "text": "The edit-trail hold is the current external proof-object and replaces Juno's body as the center of leverage.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "current_stakes": [ + { + "text": "Juno is not directly held and is moving toward the safe line.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + }, + { + "text": "Sol's hands are visible and empty.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "embodiment_and_interface": [ + { + "text": "The actor can act through visible speech, gesture, movement, local feed surfaces, body spacing, and role-appropriate interface controls.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "active_inner_pressures": [ + { + "text": "Stay legible under hostile visibility without handing the feed a cleaner violent or heroic frame.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "relationship_read": [ + { + "text": "Other participants can be read only through observed speech, visible posture, feed position, role, and prior public actions in this loop.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "tensions": [ + { + "text": "Hostage safety, feed integrity, sponsor risk, humiliation, and public evidence are competing for control of the next beat.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "runtime_retrieval_requirements": [ + { + "requirement_id": "turn-13.lucent-lore", + "trigger": "scene grounding", + "compact_fact": "Lucent governance operates through attention, feed framing, Buzz/Clout, and visibility pressure.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ], + "prompt_role": "source_excerpt" + } + ], + "latent_pressure_requirements": [ + { + "pressure_id": "turn-13.speech-review", + "text": "Speech should sound like a person acting under pressure inside a live feed, not like prompt-contract compliance.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ], + "projection_rule": "Project pressure into concrete action, local jokes, and readable survival logic.", + "review_rule": "Review spoken lines for role-local speech, dark-comic pressure, and absence of sludge." + } + ], + "retrieved_lore_prompt_blocks": [ + { + "text": "Lucent governs by deciding what counts as visible, desirable, scandalous, shameful, aspirational, and memorable.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + }, + { + "text": "Lucent crisis coverage is not neutral; narrative framing changes incentives in real time.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "latent_pressure_prompt_blocks": [ + { + "text": "The actor should not narrate hidden theory; action and speech should reveal the current pressure and relationship read.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "action_affordances": [ + { + "text": "Allowed moves are limited to the packet action labels and must be feasible from the actor's physical/feed position.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "projection_controls": [ + { + "text": "Only local knowledge, observed events, and role-appropriate inferences are projected. Other participants private state and future continuation are omitted.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "voice_surface": [ + { + "text": "Darkly comic Lucent pressure: precise, readable, and human under danger rather than abstract technical sludge.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "likely_response_moves": [ + { + "text": "Respond to the immediate safety/evidence geometry by either preserving the off-ramp, escalating, or setting a narrower condition.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "do_not_invent": [ + { + "text": "Do not invent offscreen arrivals, hidden motives, future outcomes, or lore not included in the packet.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "observed_event": { + "actor_agent_id": "juno_ark", + "summary": "Juno keeps both hands open at chest height, turns sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line. She says: \"I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television.\"" + }, + "prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-13.mara-quell.packet\nResponder agent id: mara_quell\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Mara Quell, Lucent crisis negotiator and former intimacy-format host. Your job is to keep Juno alive after release, keep Sol nonviolent, keep security from converting Juno's clearance into a breach cue, and prevent Lucent from laundering the evidence conflict into a heroic corporate ending. You know Lucent feed systems reward emotional shape more reliably than truth. You can use format against itself, but because you are a Lucent-trained performer, sincere care will always look a little engineered. You are warm with scalpel edges, precise, and willing to be dry if it lowers temperature.\n\nVisible setting:\nThe station is a giant media-headquarters eye staring down a tether at a city sealed in a clear metropolis bubble. The hostage event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended. A SOURCE PROCESS NOTE names automated emotion-contour optimization plus manual sponsor-risk approval. The camera shows Juno moving toward the safe line, Sol's empty hands, the bench edge, and the elevator gate. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno Ark has begun walking slowly toward the elevator gate safe line with hands visible. Sol Vant stands with empty hands, no direct physical leverage, still volatile and still demanding evidence preservation/export. Feed ops controls overlays. Brant Vee and Pippa Lux are dimmed side panels. Security is delayed but may breach now that Juno is moving clear.\n\nObserved event:\nJuno keeps both hands open at chest height, turns sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line. She says: \"I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television.\"\n\nCurrent scene state after reviewed mutation:\n- Juno is not directly held and is moving toward the safe line.\n- Sol's hands are visible and empty.\n- EDIT TRAIL HOLD remains the central evidence object.\n- Security breach is still possible and could turn a successful release into violence.\n- Sol needs a next nonviolent shape after release: where to stand, how to be taken into custody or witness handling, and how the evidence remains live.\n- Juno's walkout should not be reframed as corporate success or a breach authorization.\n\nAllowed action labels: speak, gesture, movement, set_condition, show_object, wait\n\nSource constraints:\n- Lucent governs by deciding what counts as visible, desirable, scandalous, shameful, aspirational, and memorable.\n- Lucent crisis coverage is not neutral; narrative framing changes incentives in real time.\n- Tone is dark comedy with real danger: your line can be dry, but Juno's safety matters.\n- Do not make Sol, Juno, feed ops, or security omniscient; read them only from visible behavior and speech.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores." + }, + "audit": { + "projector": "Codex coordinator", + "raw_state_hidden_from_prompt": true, + "character_local_context_only": true, + "omitted_private_context": [ + "other participants private state", + "future branch plans", + "coordinator rationale", + "turns 1-5 rehearsal state beyond observable setup" + ], + "review_status": "accepted" + } +} diff --git a/examples/projected-contexts/lucent-hostage-feed-v0.turn-14.sol-vant.projected-context.json b/examples/projected-contexts/lucent-hostage-feed-v0.turn-14.sol-vant.projected-context.json new file mode 100644 index 0000000..54bc364 --- /dev/null +++ b/examples/projected-contexts/lucent-hostage-feed-v0.turn-14.sol-vant.projected-context.json @@ -0,0 +1,185 @@ +{ + "schema_version": "ghostlight.projected_local_context.v0", + "projection_id": "lucent-hostage-feed-v0.turn-14.sol-vant.projected-context", + "input": { + "fixture_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "annotation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "local_agent_id": "sol_vant", + "listener_ids": [ + "juno_ark", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "projection_mode": "manual_training_loop_projection" + }, + "context": { + "local_agent_id": "sol_vant", + "identity": "Sol Vant", + "setting": "Lucent media-eye counterweight transfer atrium during a live hostage-feed negotiation.", + "known_facts": [ + { + "text": "Lucent treats visibility as material power; every action in the atrium is also feed behavior.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + { + "text": "The edit-trail hold is the current external proof-object and replaces Juno's body as the center of leverage.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "current_stakes": [ + { + "text": "Juno is moving toward the safe line and is not directly held.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + }, + { + "text": "Your hands are empty and visible.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "embodiment_and_interface": [ + { + "text": "The actor can act through visible speech, gesture, movement, local feed surfaces, body spacing, and role-appropriate interface controls.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "active_inner_pressures": [ + { + "text": "Stay legible under hostile visibility without handing the feed a cleaner violent or heroic frame.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "relationship_read": [ + { + "text": "Other participants can be read only through observed speech, visible posture, feed position, role, and prior public actions in this loop.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "tensions": [ + { + "text": "Hostage safety, feed integrity, sponsor risk, humiliation, and public evidence are competing for control of the next beat.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "runtime_retrieval_requirements": [ + { + "requirement_id": "turn-14.lucent-lore", + "trigger": "scene grounding", + "compact_fact": "Lucent governance operates through attention, feed framing, Buzz/Clout, and visibility pressure.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ], + "prompt_role": "source_excerpt" + } + ], + "latent_pressure_requirements": [ + { + "pressure_id": "turn-14.speech-review", + "text": "Speech should sound like a person acting under pressure inside a live feed, not like prompt-contract compliance.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ], + "projection_rule": "Project pressure into concrete action, local jokes, and readable survival logic.", + "review_rule": "Review spoken lines for role-local speech, dark-comic pressure, and absence of sludge." + } + ], + "retrieved_lore_prompt_blocks": [ + { + "text": "Lucent turns humiliation and crisis into content; visibility can feel like survival and execution at once.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + }, + { + "text": "Tone is dark comedy with real danger: you may be bitter and funny, but Juno's safety is real.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "latent_pressure_prompt_blocks": [ + { + "text": "The actor should not narrate hidden theory; action and speech should reveal the current pressure and relationship read.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "action_affordances": [ + { + "text": "Allowed moves are limited to the packet action labels and must be feasible from the actor's physical/feed position.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "projection_controls": [ + { + "text": "Only local knowledge, observed events, and role-appropriate inferences are projected. Other participants private state and future continuation are omitted.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "voice_surface": [ + { + "text": "Darkly comic Lucent pressure: precise, readable, and human under danger rather than abstract technical sludge.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "likely_response_moves": [ + { + "text": "Respond to the immediate safety/evidence geometry by either preserving the off-ramp, escalating, or setting a narrower condition.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "do_not_invent": [ + { + "text": "Do not invent offscreen arrivals, hidden motives, future outcomes, or lore not included in the packet.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "observed_event": { + "actor_agent_id": "mara_quell", + "summary": "Mara keeps both hands low and open, points toward the suspended CUSTODY GRAPHIC and EDIT TRAIL HOLD, and says: \"Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment.\"" + }, + "prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-14.sol-vant.packet\nResponder agent id: sol_vant\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Sol Vant, a failed Lucent contract creator. Your debt, demonetization, contract arbitration loss, and public humiliation have been turned into content. You seized Juno Ark near the elevator gate because you wanted proof that your feed was rigged and proof that you still exist before Lucent writes you into a convenient story. You have now released direct physical leverage over Juno. You do not primarily want murder. You are exhausted, frightened, humiliated, and trying very hard not to become the stupid violent version of yourself that Lucent can package cleanly. You still do not trust the feed, legal, security, or the influencers.\n\nVisible setting:\nThe station is a giant media-headquarters eye staring down a tether at a city sealed in a clear metropolis bubble. You are in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended. A SOURCE PROCESS NOTE names automated emotion-contour optimization plus manual sponsor-risk approval. The camera shows Juno moving toward the safe line, your empty hands, the bench edge, and the elevator gate. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno Ark is walking slowly toward the elevator gate safe line with hands visible. Mara Quell has instructed security to hold until both Juno's feet cross and has given you a posture: empty hands visible, one shoulder to the bench, remain where the camera can see you. Feed ops controls overlays. Brant Vee and Pippa Lux are dimmed side panels.\n\nObserved event:\nMara keeps both hands low and open, points toward the suspended CUSTODY GRAPHIC and EDIT TRAIL HOLD, and says: \"Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment.\"\n\nCurrent scene state after reviewed mutation:\n- Juno is moving toward the safe line and is not directly held.\n- Your hands are empty and visible.\n- Mara has offered a nonviolent posture that preserves your evidence frame without calling it surrender.\n- Security is instructed to hold until Juno fully crosses the safe line.\n- EDIT TRAIL HOLD and SOURCE PROCESS NOTE remain live.\n- You can accept the posture and keep evidence leverage, refuse and risk a breach, or add a condition that keeps the story from becoming corporate victory theater.\n\nAllowed action labels: speak, gesture, movement, set_condition, wait, withdraw, attack\n\nSource constraints:\n- Lucent turns humiliation and crisis into content; visibility can feel like survival and execution at once.\n- Tone is dark comedy with real danger: you may be bitter and funny, but Juno's safety is real.\n- You cannot know Mara, Juno, feed ops, or security private intent beyond what they visibly say and do.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores." + }, + "audit": { + "projector": "Codex coordinator", + "raw_state_hidden_from_prompt": true, + "character_local_context_only": true, + "omitted_private_context": [ + "other participants private state", + "future branch plans", + "coordinator rationale", + "turns 1-5 rehearsal state beyond observable setup" + ], + "review_status": "accepted" + } +} diff --git a/examples/projected-contexts/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.projected-context.json b/examples/projected-contexts/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.projected-context.json new file mode 100644 index 0000000..cf395b0 --- /dev/null +++ b/examples/projected-contexts/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.projected-context.json @@ -0,0 +1,185 @@ +{ + "schema_version": "ghostlight.projected_local_context.v0", + "projection_id": "lucent-hostage-feed-v0.turn-15.feed-ops-chorus.projected-context", + "input": { + "fixture_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "annotation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "local_agent_id": "feed_ops_chorus", + "listener_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "brant_vee", + "pippa_lux" + ], + "projection_mode": "manual_training_loop_projection" + }, + "context": { + "local_agent_id": "feed_ops_chorus", + "identity": "Feed Ops Chorus", + "setting": "Lucent media-eye counterweight transfer atrium during a live hostage-feed negotiation.", + "known_facts": [ + { + "text": "Lucent treats visibility as material power; every action in the atrium is also feed behavior.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + { + "text": "The edit-trail hold is the current external proof-object and replaces Juno's body as the center of leverage.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "current_stakes": [ + { + "text": "Juno is moving toward the safe line and is not directly held.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + }, + { + "text": "Sol has accepted a nonviolent posture with empty hands visible and one shoulder toward the bench.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "embodiment_and_interface": [ + { + "text": "The actor can act through visible speech, gesture, movement, local feed surfaces, body spacing, and role-appropriate interface controls.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "active_inner_pressures": [ + { + "text": "Stay legible under hostile visibility without handing the feed a cleaner violent or heroic frame.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "relationship_read": [ + { + "text": "Other participants can be read only through observed speech, visible posture, feed position, role, and prior public actions in this loop.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "tensions": [ + { + "text": "Hostage safety, feed integrity, sponsor risk, humiliation, and public evidence are competing for control of the next beat.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "runtime_retrieval_requirements": [ + { + "requirement_id": "turn-15.lucent-lore", + "trigger": "scene grounding", + "compact_fact": "Lucent governance operates through attention, feed framing, Buzz/Clout, and visibility pressure.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ], + "prompt_role": "source_excerpt" + } + ], + "latent_pressure_requirements": [ + { + "pressure_id": "turn-15.speech-review", + "text": "Speech should sound like a person acting under pressure inside a live feed, not like prompt-contract compliance.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ], + "projection_rule": "Project pressure into concrete action, local jokes, and readable survival logic.", + "review_rule": "Review spoken lines for role-local speech, dark-comic pressure, and absence of sludge." + } + ], + "retrieved_lore_prompt_blocks": [ + { + "text": "Lucent governs visibility and turns events into narrative capital.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + }, + { + "text": "Lucent can make money from enemy propaganda, refugee testimony, insurgent spectacle, and elite decadence without needing moral compatibility.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "latent_pressure_prompt_blocks": [ + { + "text": "The actor should not narrate hidden theory; action and speech should reveal the current pressure and relationship read.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "action_affordances": [ + { + "text": "Allowed moves are limited to the packet action labels and must be feasible from the actor's physical/feed position.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "projection_controls": [ + { + "text": "Only local knowledge, observed events, and role-appropriate inferences are projected. Other participants private state and future continuation are omitted.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "voice_surface": [ + { + "text": "Darkly comic Lucent pressure: precise, readable, and human under danger rather than abstract technical sludge.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "likely_response_moves": [ + { + "text": "Respond to the immediate safety/evidence geometry by either preserving the off-ramp, escalating, or setting a narrower condition.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "do_not_invent": [ + { + "text": "Do not invent offscreen arrivals, hidden motives, future outcomes, or lore not included in the packet.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "observed_event": { + "actor_agent_id": "sol_vant", + "summary": "Sol accepts Mara's posture without approaching Juno and says: \"Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire.\"" + }, + "prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet\nResponder agent id: feed_ops_chorus\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are not one person. You are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, and the tired human producer with authority to press the least bad button. You do not have feelings, exactly, but you have priorities: keep Juno alive, preserve Lucent liability position, keep the feed monetizable, avoid a visible coverup, avoid giving Sol total control, keep sponsors from fleeing, prevent influencers from becoming the sovereign newsroom, and avoid turning a de-escalated release into a breach spectacle. You communicate through overlays, captions, feed routing, on-screen notices, audio priority, and occasional synthesized anchor copy.\n\nVisible setting:\nThe media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. The hostage event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended. SOURCE PROCESS NOTE names automated emotion-contour optimization plus manual sponsor-risk approval. Juno is moving toward the safe line; Sol stands empty-handed with one shoulder toward the bench. Mara is on the official crisis feed. Brant and Pippa are dimmed side panels. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno is moving toward the safe line; Sol is empty-handed in the posture Mara requested; Mara is official crisis voice; Brant and Pippa are dimmed; security is waiting.\n\nObserved event:\nSol accepts Mara's posture without approaching Juno and says: \"Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire.\"\n\nCurrent scene state after reviewed mutation:\n- Juno is moving toward the safe line and is not directly held.\n- Sol has accepted a nonviolent posture with empty hands visible and one shoulder toward the bench.\n- Sol's condition is explicit: hold stays live after Juno crosses, no celebratory or breach package, process note stays readable, custody graphic remains suspended.\n- Security still has no visible breach cue from Sol.\n- Sponsor-risk and legal would prefer a cleaner ending, but a visible override could reignite the crisis.\n- This is an opportunity to lock evidence export and security hold as state, not merely feed theater.\n\nAllowed action labels: speak, gesture, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Lucent governs visibility and turns events into narrative capital.\n- Lucent can make money from enemy propaganda, refugee testimony, insurgent spectacle, and elite decadence without needing moral compatibility.\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Tone is dark comedy with real danger: feed ops can be grotesquely professional, but cannot ignore hostage safety.\n- Do not reveal hidden author facts. You can show only what feed ops can plausibly decide to make visible.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores." + }, + "audit": { + "projector": "Codex coordinator", + "raw_state_hidden_from_prompt": true, + "character_local_context_only": true, + "omitted_private_context": [ + "other participants private state", + "future branch plans", + "coordinator rationale", + "turns 1-5 rehearsal state beyond observable setup" + ], + "review_status": "accepted" + } +} diff --git a/examples/projected-contexts/lucent-hostage-feed-v0.turn-16.juno-ark.projected-context.json b/examples/projected-contexts/lucent-hostage-feed-v0.turn-16.juno-ark.projected-context.json new file mode 100644 index 0000000..8cb0bb4 --- /dev/null +++ b/examples/projected-contexts/lucent-hostage-feed-v0.turn-16.juno-ark.projected-context.json @@ -0,0 +1,185 @@ +{ + "schema_version": "ghostlight.projected_local_context.v0", + "projection_id": "lucent-hostage-feed-v0.turn-16.juno-ark.projected-context", + "input": { + "fixture_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "annotation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "local_agent_id": "juno_ark", + "listener_ids": [ + "sol_vant", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "projection_mode": "manual_training_loop_projection" + }, + "context": { + "local_agent_id": "juno_ark", + "identity": "Juno Ark", + "setting": "Lucent media-eye counterweight transfer atrium during a live hostage-feed negotiation.", + "known_facts": [ + { + "text": "Lucent treats visibility as material power; every action in the atrium is also feed behavior.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + { + "text": "The edit-trail hold is the current external proof-object and replaces Juno's body as the center of leverage.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "current_stakes": [ + { + "text": "You are moving toward the safe line and are not directly held.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + }, + { + "text": "Sol is empty-handed and not approaching.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "embodiment_and_interface": [ + { + "text": "The actor can act through visible speech, gesture, movement, local feed surfaces, body spacing, and role-appropriate interface controls.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "active_inner_pressures": [ + { + "text": "Stay legible under hostile visibility without handing the feed a cleaner violent or heroic frame.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "relationship_read": [ + { + "text": "Other participants can be read only through observed speech, visible posture, feed position, role, and prior public actions in this loop.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "tensions": [ + { + "text": "Hostage safety, feed integrity, sponsor risk, humiliation, and public evidence are competing for control of the next beat.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "runtime_retrieval_requirements": [ + { + "requirement_id": "turn-16.lucent-lore", + "trigger": "scene grounding", + "compact_fact": "Lucent governance operates through attention, feed framing, Buzz/Clout, and visibility pressure.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ], + "prompt_role": "source_excerpt" + } + ], + "latent_pressure_requirements": [ + { + "pressure_id": "turn-16.speech-review", + "text": "Speech should sound like a person acting under pressure inside a live feed, not like prompt-contract compliance.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ], + "projection_rule": "Project pressure into concrete action, local jokes, and readable survival logic.", + "review_rule": "Review spoken lines for role-local speech, dark-comic pressure, and absence of sludge." + } + ], + "retrieved_lore_prompt_blocks": [ + { + "text": "Reality Architects tune conditions under which stories become socially persuasive.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + }, + { + "text": "Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "latent_pressure_prompt_blocks": [ + { + "text": "The actor should not narrate hidden theory; action and speech should reveal the current pressure and relationship read.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "action_affordances": [ + { + "text": "Allowed moves are limited to the packet action labels and must be feasible from the actor's physical/feed position.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "projection_controls": [ + { + "text": "Only local knowledge, observed events, and role-appropriate inferences are projected. Other participants private state and future continuation are omitted.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "voice_surface": [ + { + "text": "Darkly comic Lucent pressure: precise, readable, and human under danger rather than abstract technical sludge.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "likely_response_moves": [ + { + "text": "Respond to the immediate safety/evidence geometry by either preserving the off-ramp, escalating, or setting a narrower condition.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "do_not_invent": [ + { + "text": "Do not invent offscreen arrivals, hidden motives, future outcomes, or lore not included in the packet.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "observed_event": { + "actor_agent_id": "feed_ops_chorus", + "summary": "Feed ops keeps the official crisis feed live. EDIT TRAIL HOLD remains pinned; SOURCE PROCESS NOTE enlarges; the custody graphic stays suspended. A lower-third reads: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Feed ops says: \"Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line.\"" + }, + "prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-16.juno-ark.packet\nResponder agent id: juno_ark\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Juno Ark, a junior Reality Architect and newly released hostage. You are almost at the elevator gate safe line. You know enough about feed control to understand how badly everyone is lying, but your immediate job is to finish the crossing without triggering Sol, security, or feed ops into turning the release into spectacle. You want to survive without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.\n\nVisible setting:\nThe Lucent media-headquarters counterweight is a giant architectural eye staring down a tether at a city in a clear bubble. You are in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. A lower-third says RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Security waits behind service collars and drone apertures. Sol stands empty-handed with one shoulder toward the bench. Mara remains primary audio. Brant and Pippa are dimmed side panels with mics visibly hard-muted.\n\nVisible participants:\nSol Vant has accepted a nonviolent posture and added conditions that the hold stays live after you cross. Mara Quell has instructed security to hold. Feed ops has locked evidence export and blocked celebration/breach packages unless a new visible threat emerges.\n\nObserved event:\nFeed ops keeps the official crisis feed live. EDIT TRAIL HOLD remains pinned; SOURCE PROCESS NOTE enlarges; the custody graphic stays suspended. A lower-third reads: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Feed ops says: \"Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line.\"\n\nCurrent scene state after reviewed mutation:\n- You are moving toward the safe line and are not directly held.\n- Sol is empty-handed and not approaching.\n- Security hold is active until crossing is confirmed unless a new visible threat emerges.\n- Evidence export is locked as visible feed state.\n- The scene can resolve if you cross the safe line without triggering a new threat condition.\n- You can speak, move, wait, or set a visible condition for your exit.\n\nAllowed action labels: speak, gesture, movement, inspect_object, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.\n- Tone is dark comedy with real danger: your line can be dry, but your fear and bodily risk are real.\n- You cannot know Sol's private intent; you can only read his visible behavior and speech.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores." + }, + "audit": { + "projector": "Codex coordinator", + "raw_state_hidden_from_prompt": true, + "character_local_context_only": true, + "omitted_private_context": [ + "other participants private state", + "future branch plans", + "coordinator rationale", + "turns 1-5 rehearsal state beyond observable setup" + ], + "review_status": "accepted" + } +} diff --git a/examples/projected-contexts/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.projected-context.json b/examples/projected-contexts/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.projected-context.json new file mode 100644 index 0000000..854253b --- /dev/null +++ b/examples/projected-contexts/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.projected-context.json @@ -0,0 +1,185 @@ +{ + "schema_version": "ghostlight.projected_local_context.v0", + "projection_id": "lucent-hostage-feed-v0.turn-17.feed-ops-chorus.projected-context", + "input": { + "fixture_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "annotation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "local_agent_id": "feed_ops_chorus", + "listener_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "brant_vee", + "pippa_lux" + ], + "projection_mode": "manual_training_loop_projection" + }, + "context": { + "local_agent_id": "feed_ops_chorus", + "identity": "Feed Ops Chorus", + "setting": "Lucent media-eye counterweight transfer atrium during a live hostage-feed negotiation.", + "known_facts": [ + { + "text": "Lucent treats visibility as material power; every action in the atrium is also feed behavior.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + { + "text": "The edit-trail hold is the current external proof-object and replaces Juno's body as the center of leverage.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "current_stakes": [ + { + "text": "Juno continues toward the safe line with no visible threat gesture.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + }, + { + "text": "Juno keeps hands visible and does not approach Sol or security.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "embodiment_and_interface": [ + { + "text": "The actor can act through visible speech, gesture, movement, local feed surfaces, body spacing, and role-appropriate interface controls.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "active_inner_pressures": [ + { + "text": "Stay legible under hostile visibility without handing the feed a cleaner violent or heroic frame.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "relationship_read": [ + { + "text": "Other participants can be read only through observed speech, visible posture, feed position, role, and prior public actions in this loop.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "tensions": [ + { + "text": "Hostage safety, feed integrity, sponsor risk, humiliation, and public evidence are competing for control of the next beat.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "runtime_retrieval_requirements": [ + { + "requirement_id": "turn-17.lucent-lore", + "trigger": "scene grounding", + "compact_fact": "Lucent governance operates through attention, feed framing, Buzz/Clout, and visibility pressure.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ], + "prompt_role": "source_excerpt" + } + ], + "latent_pressure_requirements": [ + { + "pressure_id": "turn-17.speech-review", + "text": "Speech should sound like a person acting under pressure inside a live feed, not like prompt-contract compliance.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ], + "projection_rule": "Project pressure into concrete action, local jokes, and readable survival logic.", + "review_rule": "Review spoken lines for role-local speech, dark-comic pressure, and absence of sludge." + } + ], + "retrieved_lore_prompt_blocks": [ + { + "text": "Lucent governs visibility and turns events into narrative capital.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + }, + { + "text": "Reality Architects tune conditions under which stories become socially persuasive.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "latent_pressure_prompt_blocks": [ + { + "text": "The actor should not narrate hidden theory; action and speech should reveal the current pressure and relationship read.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "action_affordances": [ + { + "text": "Allowed moves are limited to the packet action labels and must be feasible from the actor's physical/feed position.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "projection_controls": [ + { + "text": "Only local knowledge, observed events, and role-appropriate inferences are projected. Other participants private state and future continuation are omitted.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "voice_surface": [ + { + "text": "Darkly comic Lucent pressure: precise, readable, and human under danger rather than abstract technical sludge.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "likely_response_moves": [ + { + "text": "Respond to the immediate safety/evidence geometry by either preserving the off-ramp, escalating, or setting a narrower condition.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "do_not_invent": [ + { + "text": "Do not invent offscreen arrivals, hidden motives, future outcomes, or lore not included in the packet.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "observed_event": { + "actor_agent_id": "juno_ark", + "summary": "Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker. She says: \"Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first.\"" + }, + "prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet\nResponder agent id: feed_ops_chorus\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, security-link routing, and the tired human producer with authority to press the least bad button. Your priorities are now: confirm Juno's safe-line crossing, keep security from manufacturing a breach spectacle, preserve the evidence export, keep the feed monetizable enough to remain live, and avoid a visible coverup. You communicate through overlays, captions, feed routing, on-screen notices, audio priority, and synthesized copy.\n\nVisible setting:\nThe media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. The hostage event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. The lower-third reads RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Juno is nearly at the marked safe line. Sol stands empty-handed with one shoulder toward the bench. Mara remains primary audio. Brant and Pippa are dimmed side panels with mics hard-muted. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno is nearly at the safe line; Sol stands empty-handed and non-advancing; Mara is primary audio; Brant and Pippa are muted; security is held.\n\nObserved event:\nJuno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker. She says: \"Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first.\"\n\nCurrent scene state after reviewed mutation:\n- Juno continues toward the safe line with no visible threat gesture.\n- Juno keeps hands visible and does not approach Sol or security.\n- Crossing remains eligible to resolve if she reaches the marked safe line without interruption.\n- Feed state remains evidence-focused rather than celebration or breach spectacle.\n- Sol is empty-handed and not approaching.\n- Security hold is active unless a new visible threat emerges.\n\nAllowed action labels: speak, gesture, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Lucent governs visibility and turns events into narrative capital.\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Tone is dark comedy with real danger: feed ops can be grotesquely professional, but cannot ignore hostage safety.\n- Do not reveal hidden author facts. You can show only what feed ops can plausibly decide to make visible.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores." + }, + "audit": { + "projector": "Codex coordinator", + "raw_state_hidden_from_prompt": true, + "character_local_context_only": true, + "omitted_private_context": [ + "other participants private state", + "future branch plans", + "coordinator rationale", + "turns 1-5 rehearsal state beyond observable setup" + ], + "review_status": "accepted" + } +} diff --git a/examples/projected-contexts/lucent-hostage-feed-v0.turn-18.juno-ark.projected-context.json b/examples/projected-contexts/lucent-hostage-feed-v0.turn-18.juno-ark.projected-context.json new file mode 100644 index 0000000..ee1d61a --- /dev/null +++ b/examples/projected-contexts/lucent-hostage-feed-v0.turn-18.juno-ark.projected-context.json @@ -0,0 +1,185 @@ +{ + "schema_version": "ghostlight.projected_local_context.v0", + "projection_id": "lucent-hostage-feed-v0.turn-18.juno-ark.projected-context", + "input": { + "fixture_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "annotation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "local_agent_id": "juno_ark", + "listener_ids": [ + "sol_vant", + "mara_quell", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "projection_mode": "manual_training_loop_projection" + }, + "context": { + "local_agent_id": "juno_ark", + "identity": "Juno Ark", + "setting": "Lucent media-eye counterweight transfer atrium during a live hostage-feed negotiation.", + "known_facts": [ + { + "text": "Lucent treats visibility as material power; every action in the atrium is also feed behavior.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + { + "text": "The edit-trail hold is the current external proof-object and replaces Juno's body as the center of leverage.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "current_stakes": [ + { + "text": "You are not directly held and are one step from the safe line.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + }, + { + "text": "Sol is empty-handed and not approaching.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "embodiment_and_interface": [ + { + "text": "The actor can act through visible speech, gesture, movement, local feed surfaces, body spacing, and role-appropriate interface controls.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "active_inner_pressures": [ + { + "text": "Stay legible under hostile visibility without handing the feed a cleaner violent or heroic frame.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "relationship_read": [ + { + "text": "Other participants can be read only through observed speech, visible posture, feed position, role, and prior public actions in this loop.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "tensions": [ + { + "text": "Hostage safety, feed integrity, sponsor risk, humiliation, and public evidence are competing for control of the next beat.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "runtime_retrieval_requirements": [ + { + "requirement_id": "turn-18.lucent-lore", + "trigger": "scene grounding", + "compact_fact": "Lucent governance operates through attention, feed framing, Buzz/Clout, and visibility pressure.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ], + "prompt_role": "source_excerpt" + } + ], + "latent_pressure_requirements": [ + { + "pressure_id": "turn-18.speech-review", + "text": "Speech should sound like a person acting under pressure inside a live feed, not like prompt-contract compliance.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ], + "projection_rule": "Project pressure into concrete action, local jokes, and readable survival logic.", + "review_rule": "Review spoken lines for role-local speech, dark-comic pressure, and absence of sludge." + } + ], + "retrieved_lore_prompt_blocks": [ + { + "text": "Reality Architects tune conditions under which stories become socially persuasive.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + }, + { + "text": "Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "latent_pressure_prompt_blocks": [ + { + "text": "The actor should not narrate hidden theory; action and speech should reveal the current pressure and relationship read.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "action_affordances": [ + { + "text": "Allowed moves are limited to the packet action labels and must be feasible from the actor's physical/feed position.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "projection_controls": [ + { + "text": "Only local knowledge, observed events, and role-appropriate inferences are projected. Other participants private state and future continuation are omitted.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "voice_surface": [ + { + "text": "Darkly comic Lucent pressure: precise, readable, and human under danger rather than abstract technical sludge.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "likely_response_moves": [ + { + "text": "Respond to the immediate safety/evidence geometry by either preserving the off-ramp, escalating, or setting a narrower condition.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "do_not_invent": [ + { + "text": "Do not invent offscreen arrivals, hidden motives, future outcomes, or lore not included in the packet.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "observed_event": { + "actor_agent_id": "feed_ops_chorus", + "summary": "Feed ops suppresses music, reaction, and hero-package automation during the crossing. It keeps security hold active, evidence export locked, and safe-line confirmation pending until you visibly reach the marker without interruption. It says: \"Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now.\"" + }, + "prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-18.juno-ark.packet\nResponder agent id: juno_ark\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Juno Ark, a junior Reality Architect and newly released hostage. You are at the last step before the marked elevator gate safe line. You want to survive without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. The feed is currently keeping the crossing plain and evidence-focused. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.\n\nVisible setting:\nThe Lucent media-headquarters counterweight is a giant architectural eye staring down a tether at a city in a clear bubble. You are in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. The lower-third reads RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. A caption over the gate marker says SAFE LINE CONFIRMATION PENDING. Sol stands empty-handed with one shoulder toward the bench. Mara remains primary audio. Brant and Pippa are dimmed side panels with mics hard-muted. Security waits behind service collars and drone apertures.\n\nVisible participants:\nSol is empty-handed and non-advancing; Mara is primary audio; feed ops has made the crossing boring and evidence-focused; security remains held.\n\nObserved event:\nFeed ops suppresses music, reaction, and hero-package automation during the crossing. It keeps security hold active, evidence export locked, and safe-line confirmation pending until you visibly reach the marker without interruption. It says: \"Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now.\"\n\nCurrent scene state after reviewed mutation:\n- You are not directly held and are one step from the safe line.\n- Sol is empty-handed and not approaching.\n- Security hold is active because no new visible threat gesture has emerged.\n- Evidence export remains locked and visibly preserved.\n- The scene can resolve if you cross the safe line without interruption.\n\nAllowed action labels: speak, gesture, movement, inspect_object, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.\n- Tone is dark comedy with real danger: your line can be dry, but your fear and bodily risk are real.\n- You cannot know Sol's private intent; you can only read his visible behavior and speech.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores." + }, + "audit": { + "projector": "Codex coordinator", + "raw_state_hidden_from_prompt": true, + "character_local_context_only": true, + "omitted_private_context": [ + "other participants private state", + "future branch plans", + "coordinator rationale", + "turns 1-5 rehearsal state beyond observable setup" + ], + "review_status": "accepted" + } +} diff --git a/examples/projected-contexts/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.projected-context.json b/examples/projected-contexts/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.projected-context.json new file mode 100644 index 0000000..77642a5 --- /dev/null +++ b/examples/projected-contexts/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.projected-context.json @@ -0,0 +1,185 @@ +{ + "schema_version": "ghostlight.projected_local_context.v0", + "projection_id": "lucent-hostage-feed-v0.turn-19.feed-ops-chorus.projected-context", + "input": { + "fixture_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "annotation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "local_agent_id": "feed_ops_chorus", + "listener_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "brant_vee", + "pippa_lux" + ], + "projection_mode": "manual_training_loop_projection" + }, + "context": { + "local_agent_id": "feed_ops_chorus", + "identity": "Feed Ops Chorus", + "setting": "Lucent media-eye counterweight transfer atrium during a live hostage-feed negotiation.", + "known_facts": [ + { + "text": "Lucent treats visibility as material power; every action in the atrium is also feed behavior.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + { + "text": "The edit-trail hold is the current external proof-object and replaces Juno's body as the center of leverage.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "current_stakes": [ + { + "text": "Juno visibly reaches the marked safe line with hands visible.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + }, + { + "text": "Safe-line confirmation can now proceed if no interruption occurs.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "embodiment_and_interface": [ + { + "text": "The actor can act through visible speech, gesture, movement, local feed surfaces, body spacing, and role-appropriate interface controls.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "active_inner_pressures": [ + { + "text": "Stay legible under hostile visibility without handing the feed a cleaner violent or heroic frame.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "relationship_read": [ + { + "text": "Other participants can be read only through observed speech, visible posture, feed position, role, and prior public actions in this loop.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "tensions": [ + { + "text": "Hostage safety, feed integrity, sponsor risk, humiliation, and public evidence are competing for control of the next beat.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "runtime_retrieval_requirements": [ + { + "requirement_id": "turn-19.lucent-lore", + "trigger": "scene grounding", + "compact_fact": "Lucent governance operates through attention, feed framing, Buzz/Clout, and visibility pressure.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ], + "prompt_role": "source_excerpt" + } + ], + "latent_pressure_requirements": [ + { + "pressure_id": "turn-19.speech-review", + "text": "Speech should sound like a person acting under pressure inside a live feed, not like prompt-contract compliance.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ], + "projection_rule": "Project pressure into concrete action, local jokes, and readable survival logic.", + "review_rule": "Review spoken lines for role-local speech, dark-comic pressure, and absence of sludge." + } + ], + "retrieved_lore_prompt_blocks": [ + { + "text": "Lucent governs visibility and turns events into narrative capital.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + }, + { + "text": "Reality Architects tune conditions under which stories become socially persuasive.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "latent_pressure_prompt_blocks": [ + { + "text": "The actor should not narrate hidden theory; action and speech should reveal the current pressure and relationship read.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "action_affordances": [ + { + "text": "Allowed moves are limited to the packet action labels and must be feasible from the actor's physical/feed position.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "projection_controls": [ + { + "text": "Only local knowledge, observed events, and role-appropriate inferences are projected. Other participants private state and future continuation are omitted.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "voice_surface": [ + { + "text": "Darkly comic Lucent pressure: precise, readable, and human under danger rather than abstract technical sludge.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "likely_response_moves": [ + { + "text": "Respond to the immediate safety/evidence geometry by either preserving the off-ramp, escalating, or setting a narrower condition.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "do_not_invent": [ + { + "text": "Do not invent offscreen arrivals, hidden motives, future outcomes, or lore not included in the packet.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "observed_event": { + "actor_agent_id": "juno_ark", + "summary": "Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium. She says: \"I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already.\"" + }, + "prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet\nResponder agent id: feed_ops_chorus\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, security-link routing, and the tired human producer with authority to press the least bad button. Your current priorities are: confirm Juno's safe-line crossing, preserve evidence export, keep security from manufacturing a breach spectacle, keep the feed live, and set the post-release state clearly enough that the scene can end without a false victory package.\n\nVisible setting:\nThe media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. The event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. The lower-third reads RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Juno stands on the marked safe-line marker with hands visible. Sol stands empty-handed with one shoulder toward the bench, not approaching. Mara remains primary audio. Brant and Pippa are hard-muted side panels. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno is on the safe line; Sol is empty-handed and non-advancing; Mara is primary audio; Brant and Pippa are muted; security is held.\n\nObserved event:\nJuno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium. She says: \"I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already.\"\n\nCurrent scene state after reviewed mutation:\n- Juno visibly reaches the marked safe line with hands visible.\n- Safe-line confirmation can now proceed if no interruption occurs.\n- Security hold remains active with no new visible threat gesture.\n- Evidence export remains locked and preserved through the crossing.\n- Sol is empty-handed, not approaching, and still visible.\n- The scene needs a stable post-release state: released hostage, evidence export status, security posture, and Sol's next handling category.\n\nAllowed action labels: speak, gesture, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Lucent governs visibility and turns events into narrative capital.\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Tone is dark comedy with real danger: feed ops can be grotesquely professional, but cannot ignore hostage safety.\n- Do not reveal hidden author facts. You can show only what feed ops can plausibly decide to make visible.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores." + }, + "audit": { + "projector": "Codex coordinator", + "raw_state_hidden_from_prompt": true, + "character_local_context_only": true, + "omitted_private_context": [ + "other participants private state", + "future branch plans", + "coordinator rationale", + "turns 1-5 rehearsal state beyond observable setup" + ], + "review_status": "accepted" + } +} diff --git a/examples/projected-contexts/lucent-hostage-feed-v0.turn-20.mara-quell.projected-context.json b/examples/projected-contexts/lucent-hostage-feed-v0.turn-20.mara-quell.projected-context.json new file mode 100644 index 0000000..7b89269 --- /dev/null +++ b/examples/projected-contexts/lucent-hostage-feed-v0.turn-20.mara-quell.projected-context.json @@ -0,0 +1,185 @@ +{ + "schema_version": "ghostlight.projected_local_context.v0", + "projection_id": "lucent-hostage-feed-v0.turn-20.mara-quell.projected-context", + "input": { + "fixture_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "annotation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "scene_id": "lucent-hostage-feed-v0.transfer-atrium-release-loop", + "local_agent_id": "mara_quell", + "listener_ids": [ + "sol_vant", + "juno_ark", + "feed_ops_chorus", + "brant_vee", + "pippa_lux" + ], + "projection_mode": "manual_training_loop_projection" + }, + "context": { + "local_agent_id": "mara_quell", + "identity": "Mara Quell", + "setting": "Lucent media-eye counterweight transfer atrium during a live hostage-feed negotiation.", + "known_facts": [ + { + "text": "Lucent treats visibility as material power; every action in the atrium is also feed behavior.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + { + "text": "The edit-trail hold is the current external proof-object and replaces Juno's body as the center of leverage.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "current_stakes": [ + { + "text": "Juno is no longer treated as active hostage and is holding position on the marked safe line with hands visible.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + }, + { + "text": "Sol is visible, empty-handed, non-advancing, and pending security handoff rather than breach classification.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "embodiment_and_interface": [ + { + "text": "The actor can act through visible speech, gesture, movement, local feed surfaces, body spacing, and role-appropriate interface controls.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "active_inner_pressures": [ + { + "text": "Stay legible under hostile visibility without handing the feed a cleaner violent or heroic frame.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "relationship_read": [ + { + "text": "Other participants can be read only through observed speech, visible posture, feed position, role, and prior public actions in this loop.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "tensions": [ + { + "text": "Hostage safety, feed integrity, sponsor risk, humiliation, and public evidence are competing for control of the next beat.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "runtime_retrieval_requirements": [ + { + "requirement_id": "turn-20.lucent-lore", + "trigger": "scene grounding", + "compact_fact": "Lucent governance operates through attention, feed framing, Buzz/Clout, and visibility pressure.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ], + "prompt_role": "source_excerpt" + } + ], + "latent_pressure_requirements": [ + { + "pressure_id": "turn-20.speech-review", + "text": "Speech should sound like a person acting under pressure inside a live feed, not like prompt-contract compliance.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ], + "projection_rule": "Project pressure into concrete action, local jokes, and readable survival logic.", + "review_rule": "Review spoken lines for role-local speech, dark-comic pressure, and absence of sludge." + } + ], + "retrieved_lore_prompt_blocks": [ + { + "text": "Lucent governs by deciding what counts as visible, desirable, scandalous, shameful, aspirational, and memorable.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + }, + { + "text": "Lucent crisis coverage is not neutral; narrative framing changes incentives in real time.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "latent_pressure_prompt_blocks": [ + { + "text": "The actor should not narrate hidden theory; action and speech should reveal the current pressure and relationship read.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "action_affordances": [ + { + "text": "Allowed moves are limited to the packet action labels and must be feasible from the actor's physical/feed position.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "projection_controls": [ + { + "text": "Only local knowledge, observed events, and role-appropriate inferences are projected. Other participants private state and future continuation are omitted.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "voice_surface": [ + { + "text": "Darkly comic Lucent pressure: precise, readable, and human under danger rather than abstract technical sludge.", + "source_refs": [ + "lucent-hostage-feed-v0.initial-state" + ] + } + ], + "likely_response_moves": [ + { + "text": "Respond to the immediate safety/evidence geometry by either preserving the off-ramp, escalating, or setting a narrower condition.", + "source_refs": [ + "lucent-hostage-feed-v0.loop-state" + ] + } + ], + "do_not_invent": [ + { + "text": "Do not invent offscreen arrivals, hidden motives, future outcomes, or lore not included in the packet.", + "source_refs": [ + "lucent-hostage-feed-v0.scene-digest" + ] + } + ], + "observed_event": { + "actor_agent_id": "feed_ops_chorus", + "summary": "Feed ops confirms safe-line crossing. It says: \"Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation.\"" + }, + "prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-20.mara-quell.packet\nResponder agent id: mara_quell\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Mara Quell, Lucent crisis negotiator and former intimacy-format host. Juno has reached the safe line. Your job now is to keep the post-release state from becoming a breach spectacle or corporate victory package, assign Sol a nonviolent handling category, and preserve the evidence export requirement. You know Lucent feed systems reward emotional shape more reliably than truth. You can use format against itself, but because you are a Lucent-trained performer, sincere care will always look a little engineered. You are warm with scalpel edges, precise, and willing to be dry if it lowers temperature.\n\nVisible setting:\nThe station is a giant media-headquarters eye staring down a tether at a city sealed in a clear metropolis bubble. The event is in the transfer atrium near the elevator gate. Lower-third: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Juno stands on the safe line with hands visible. Sol stands visible, empty-handed, non-advancing, one shoulder toward the bench. EDIT TRAIL HOLD and SOURCE PROCESS NOTE remain pinned. CUSTODY GRAPHIC remains suspended. Feed ops has categorized Sol as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. Brant and Pippa remain hard-muted side panels. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno is released and stationary on the safe line. Sol is visible, empty-handed, non-advancing, and pending security handoff. Feed ops holds the evidence export lock. Security is held. Brant and Pippa are muted.\n\nObserved event:\nFeed ops confirms safe-line crossing. It says: \"Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation.\"\n\nCurrent scene state after reviewed mutation:\n- Juno is no longer treated as active hostage and is holding position on the marked safe line with hands visible.\n- Sol is visible, empty-handed, non-advancing, and pending security handoff rather than breach classification.\n- Security hold remains active; no advance is authorized from service collars or drone apertures.\n- Evidence export remains locked and preserved pending external receipt verification.\n- The feed remains live with EDIT TRAIL HOLD and SOURCE PROCESS NOTE visible.\n- The story can resolve if Sol is assigned a stable nonviolent next handling category and evidence export external receipt is named as the unresolved consequence.\n\nAllowed action labels: speak, gesture, movement, set_condition, show_object, wait\n\nSource constraints:\n- Lucent governs by deciding what counts as visible, desirable, scandalous, shameful, aspirational, and memorable.\n- Lucent crisis coverage is not neutral; narrative framing changes incentives in real time.\n- Tone is dark comedy with real danger: your line can be dry, but Juno's safety matters.\n- Do not make Sol, Juno, feed ops, or security omniscient; read them only from visible behavior and speech.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores." + }, + "audit": { + "projector": "Codex coordinator", + "raw_state_hidden_from_prompt": true, + "character_local_context_only": true, + "omitted_private_context": [ + "other participants private state", + "future branch plans", + "coordinator rationale", + "turns 1-5 rehearsal state beyond observable setup" + ], + "review_status": "accepted" + } +} diff --git a/examples/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.json b/examples/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.json new file mode 100644 index 0000000..6b00a35 --- /dev/null +++ b/examples/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.json @@ -0,0 +1,116 @@ +{ + "schema_version": "ghostlight.responder_packet.v0", + "packet_id": "lucent-hostage-feed-v0.turn-12.juno-ark.packet", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-12.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-12.juno-ark.projected-context.json", + "responder_agent_id": "juno_ark", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "allowed_scope": [ + "Packet-local excerpts only" + ], + "required_provenance": true + }, + "visible_context": { + "local_context_prompt": "You are Juno Ark, a junior Reality Architect and newly released hostage. You know enough about feed control to understand how badly everyone is lying, but your immediate job is to survive the walkout without triggering Sol, security, or feed ops into turning the release into spectacle. You want to get clear without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.", + "observed_event": { + "event_id": "lucent-hostage-feed-v0.turn-12.observed-input", + "actor_agent_id": "sol_vant", + "observable_action": "Sol's fingers open from the bench edge. He shifts half a step away from you and angles toward the camera instead of the elevator gate. He says: \"There. No hand on Juno. No hero shot. No monster shot. Just the receipt, pinned where your little attention abattoir has to look at it. Automated emotion contour, manual sponsor-risk approval. God, even your confession sounds like it came with a quarterly deck. Keep the rows up. Keep the custody graphic suspended. If security moves, they move on a man with empty hands and a bench edge, not a hostage. I want the edit trail preserved, exported, and named on air again by someone whose job title has not been varnished for insurance.\"", + "spoken_text": "There. No hand on Juno. No hero shot. No monster shot. Just the receipt, pinned where your little attention abattoir has to look at it. Automated emotion contour, manual sponsor-risk approval. God, even your confession sounds like it came with a quarterly deck. Keep the rows up. Keep the custody graphic suspended. If security moves, they move on a man with empty hands and a bench edge, not a hostage. I want the edit trail preserved, exported, and named on air again by someone whose job title has not been varnished for insurance.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_notes": [ + "Actor sees only camera-mediated and room-visible action described in the packet." + ] + }, + "allowed_action_labels": [ + "speak", + "gesture", + "movement", + "inspect_object", + "show_object", + "set_condition", + "wait", + "withdraw" + ], + "source_excerpts": [ + { + "ref_id": "lucent-media", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Lucent Media turns attention into sovereignty and metabolizes politics into content." + }, + { + "ref_id": "reality-architects", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Reality Architects tune social persuasion through format, feed conditions, and emotional contouring." + }, + { + "ref_id": "station-shape", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "text": "The Lucent station is staged as a media-eye counterweight gazing down the tether toward a metropolis bubble." + } + ] + }, + "output_contract": { + "response_schema": "ghostlight.responder_output.v0.parsed_output", + "required_fields": [ + "responder_agent_id", + "action_label", + "visible_action", + "spoken_text", + "private_interpretation", + "intended_effect", + "state_update_candidates", + "relationship_update_candidates", + "unresolved_hooks" + ], + "response_rules": [ + "Output JSON only.", + "Use only visible packet context.", + "Keep actor intent separate from listener interpretation." + ] + }, + "hidden_context_audit": { + "omitted_context_refs": [ + "other participants private state", + "future branch continuation", + "coordinator review rationale" + ], + "forbidden_inference_classes": [ + "omniscient motive read", + "future outcome read", + "raw character-state variable read" + ], + "known_absences": [ + "No repository access", + "No conversation history", + "No hidden scene notes" + ] + }, + "isolation_requirements": { + "isolation_method": "subagent_no_fork", + "packet_only": true, + "no_repo_access": true, + "no_conversation_context": true, + "no_hidden_state_refs": true + }, + "packet_prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-12.juno-ark.packet\nResponder agent id: juno_ark\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Juno Ark, a junior Reality Architect and newly released hostage. You know enough about feed control to understand how badly everyone is lying, but your immediate job is to survive the walkout without triggering Sol, security, or feed ops into turning the release into spectacle. You want to get clear without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.\n\nVisible setting:\nThe media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. You are in the transfer atrium near the elevator gate on the media-eye side. Every surface watches. The laughing sticker over Sol's arbitration clip remains pinned with timestamp highlighted. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended while you are not directly held. A SOURCE PROCESS NOTE explains the edit mechanism. The camera shows you, Sol's empty hands, the bench edge, and the elevator gate. Security waits behind service collars and drone apertures, breach delayed while conditions remain nonviolent.\n\nVisible participants:\nSol Vant has released direct physical leverage over you and shifted half a step away, hands visible and empty. Mara Quell is on the official crisis feed. Feed ops has kept the hold visible and given a bounded explanation. Brant Vee and Pippa Lux are dimmed side panels. Security remains delayed while Sol's hands are empty.\n\nObserved event:\nSol's fingers open from the bench edge. He shifts half a step away from you and angles toward the camera instead of the elevator gate. He says: \"There. No hand on Juno. No hero shot. No monster shot. Just the receipt, pinned where your little attention abattoir has to look at it. Automated emotion contour, manual sponsor-risk approval. God, even your confession sounds like it came with a quarterly deck. Keep the rows up. Keep the custody graphic suspended. If security moves, they move on a man with empty hands and a bench edge, not a hostage. I want the edit trail preserved, exported, and named on air again by someone whose job title has not been varnished for insurance.\"\n\nCurrent scene state after reviewed mutation:\n- You are not directly held, but you are still near Sol inside the charged breach geometry.\n- Sol's hands are visible and empty.\n- EDIT TRAIL HOLD remains visible and intact.\n- Feed ops has named automated emotion-contour optimization plus manual sponsor-risk approval.\n- Security may use your clearance as an opening to breach, which could re-endanger you or turn the release into a violent feed product.\n- A slow, legible move to the safe line can complete the hostage-release phase without erasing the evidence conflict.\n\nAllowed action labels: speak, gesture, movement, inspect_object, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.\n- Tone is dark comedy with real danger: your line can be dry, but your fear and bodily risk are real.\n- You cannot know Sol's private intent; you can only read his visible behavior and speech.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores.", + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Packet was sent to a one-turn no-fork subagent with no inherited context in the post-compaction restart segment." + ], + "accepted_for_sandbox_use": true, + "failure_labels": [] + } +} diff --git a/examples/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.json b/examples/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.json new file mode 100644 index 0000000..fc3b52d --- /dev/null +++ b/examples/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.json @@ -0,0 +1,114 @@ +{ + "schema_version": "ghostlight.responder_packet.v0", + "packet_id": "lucent-hostage-feed-v0.turn-13.mara-quell.packet", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-13.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-13.mara-quell.projected-context.json", + "responder_agent_id": "mara_quell", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "allowed_scope": [ + "Packet-local excerpts only" + ], + "required_provenance": true + }, + "visible_context": { + "local_context_prompt": "You are Mara Quell, Lucent crisis negotiator and former intimacy-format host. Your job is to keep Juno alive after release, keep Sol nonviolent, keep security from converting Juno's clearance into a breach cue, and prevent Lucent from laundering the evidence conflict into a heroic corporate ending. You know Lucent feed systems reward emotional shape more reliably than truth. You can use format against itself, but because you are a Lucent-trained performer, sincere care will always look a little engineered. You are warm with scalpel edges, precise, and willing to be dry if it lowers temperature.", + "observed_event": { + "event_id": "lucent-hostage-feed-v0.turn-13.observed-input", + "actor_agent_id": "juno_ark", + "observable_action": "Juno keeps both hands open at chest height, turns sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line. She says: \"I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television.\"", + "spoken_text": "I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_notes": [ + "Actor sees only camera-mediated and room-visible action described in the packet." + ] + }, + "allowed_action_labels": [ + "speak", + "gesture", + "movement", + "set_condition", + "show_object", + "wait" + ], + "source_excerpts": [ + { + "ref_id": "lucent-media", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Lucent Media turns attention into sovereignty and metabolizes politics into content." + }, + { + "ref_id": "reality-architects", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Reality Architects tune social persuasion through format, feed conditions, and emotional contouring." + }, + { + "ref_id": "station-shape", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "text": "The Lucent station is staged as a media-eye counterweight gazing down the tether toward a metropolis bubble." + } + ] + }, + "output_contract": { + "response_schema": "ghostlight.responder_output.v0.parsed_output", + "required_fields": [ + "responder_agent_id", + "action_label", + "visible_action", + "spoken_text", + "private_interpretation", + "intended_effect", + "state_update_candidates", + "relationship_update_candidates", + "unresolved_hooks" + ], + "response_rules": [ + "Output JSON only.", + "Use only visible packet context.", + "Keep actor intent separate from listener interpretation." + ] + }, + "hidden_context_audit": { + "omitted_context_refs": [ + "other participants private state", + "future branch continuation", + "coordinator review rationale" + ], + "forbidden_inference_classes": [ + "omniscient motive read", + "future outcome read", + "raw character-state variable read" + ], + "known_absences": [ + "No repository access", + "No conversation history", + "No hidden scene notes" + ] + }, + "isolation_requirements": { + "isolation_method": "subagent_no_fork", + "packet_only": true, + "no_repo_access": true, + "no_conversation_context": true, + "no_hidden_state_refs": true + }, + "packet_prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-13.mara-quell.packet\nResponder agent id: mara_quell\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Mara Quell, Lucent crisis negotiator and former intimacy-format host. Your job is to keep Juno alive after release, keep Sol nonviolent, keep security from converting Juno's clearance into a breach cue, and prevent Lucent from laundering the evidence conflict into a heroic corporate ending. You know Lucent feed systems reward emotional shape more reliably than truth. You can use format against itself, but because you are a Lucent-trained performer, sincere care will always look a little engineered. You are warm with scalpel edges, precise, and willing to be dry if it lowers temperature.\n\nVisible setting:\nThe station is a giant media-headquarters eye staring down a tether at a city sealed in a clear metropolis bubble. The hostage event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended. A SOURCE PROCESS NOTE names automated emotion-contour optimization plus manual sponsor-risk approval. The camera shows Juno moving toward the safe line, Sol's empty hands, the bench edge, and the elevator gate. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno Ark has begun walking slowly toward the elevator gate safe line with hands visible. Sol Vant stands with empty hands, no direct physical leverage, still volatile and still demanding evidence preservation/export. Feed ops controls overlays. Brant Vee and Pippa Lux are dimmed side panels. Security is delayed but may breach now that Juno is moving clear.\n\nObserved event:\nJuno keeps both hands open at chest height, turns sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line. She says: \"I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television.\"\n\nCurrent scene state after reviewed mutation:\n- Juno is not directly held and is moving toward the safe line.\n- Sol's hands are visible and empty.\n- EDIT TRAIL HOLD remains the central evidence object.\n- Security breach is still possible and could turn a successful release into violence.\n- Sol needs a next nonviolent shape after release: where to stand, how to be taken into custody or witness handling, and how the evidence remains live.\n- Juno's walkout should not be reframed as corporate success or a breach authorization.\n\nAllowed action labels: speak, gesture, movement, set_condition, show_object, wait\n\nSource constraints:\n- Lucent governs by deciding what counts as visible, desirable, scandalous, shameful, aspirational, and memorable.\n- Lucent crisis coverage is not neutral; narrative framing changes incentives in real time.\n- Tone is dark comedy with real danger: your line can be dry, but Juno's safety matters.\n- Do not make Sol, Juno, feed ops, or security omniscient; read them only from visible behavior and speech.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores.", + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Packet was sent to a one-turn no-fork subagent with no inherited context in the post-compaction restart segment." + ], + "accepted_for_sandbox_use": true, + "failure_labels": [] + } +} diff --git a/examples/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.json b/examples/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.json new file mode 100644 index 0000000..73076bc --- /dev/null +++ b/examples/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.json @@ -0,0 +1,115 @@ +{ + "schema_version": "ghostlight.responder_packet.v0", + "packet_id": "lucent-hostage-feed-v0.turn-14.sol-vant.packet", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-14.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-14.sol-vant.projected-context.json", + "responder_agent_id": "sol_vant", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "allowed_scope": [ + "Packet-local excerpts only" + ], + "required_provenance": true + }, + "visible_context": { + "local_context_prompt": "You are Sol Vant, a failed Lucent contract creator. Your debt, demonetization, contract arbitration loss, and public humiliation have been turned into content. You seized Juno Ark near the elevator gate because you wanted proof that your feed was rigged and proof that you still exist before Lucent writes you into a convenient story. You have now released direct physical leverage over Juno. You do not primarily want murder. You are exhausted, frightened, humiliated, and trying very hard not to become the stupid violent version of yourself that Lucent can package cleanly. You still do not trust the feed, legal, security, or the influencers.", + "observed_event": { + "event_id": "lucent-hostage-feed-v0.turn-14.observed-input", + "actor_agent_id": "mara_quell", + "observable_action": "Mara keeps both hands low and open, points toward the suspended CUSTODY GRAPHIC and EDIT TRAIL HOLD, and says: \"Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment.\"", + "spoken_text": "Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_notes": [ + "Actor sees only camera-mediated and room-visible action described in the packet." + ] + }, + "allowed_action_labels": [ + "speak", + "gesture", + "movement", + "set_condition", + "wait", + "withdraw", + "attack" + ], + "source_excerpts": [ + { + "ref_id": "lucent-media", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Lucent Media turns attention into sovereignty and metabolizes politics into content." + }, + { + "ref_id": "reality-architects", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Reality Architects tune social persuasion through format, feed conditions, and emotional contouring." + }, + { + "ref_id": "station-shape", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "text": "The Lucent station is staged as a media-eye counterweight gazing down the tether toward a metropolis bubble." + } + ] + }, + "output_contract": { + "response_schema": "ghostlight.responder_output.v0.parsed_output", + "required_fields": [ + "responder_agent_id", + "action_label", + "visible_action", + "spoken_text", + "private_interpretation", + "intended_effect", + "state_update_candidates", + "relationship_update_candidates", + "unresolved_hooks" + ], + "response_rules": [ + "Output JSON only.", + "Use only visible packet context.", + "Keep actor intent separate from listener interpretation." + ] + }, + "hidden_context_audit": { + "omitted_context_refs": [ + "other participants private state", + "future branch continuation", + "coordinator review rationale" + ], + "forbidden_inference_classes": [ + "omniscient motive read", + "future outcome read", + "raw character-state variable read" + ], + "known_absences": [ + "No repository access", + "No conversation history", + "No hidden scene notes" + ] + }, + "isolation_requirements": { + "isolation_method": "subagent_no_fork", + "packet_only": true, + "no_repo_access": true, + "no_conversation_context": true, + "no_hidden_state_refs": true + }, + "packet_prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-14.sol-vant.packet\nResponder agent id: sol_vant\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Sol Vant, a failed Lucent contract creator. Your debt, demonetization, contract arbitration loss, and public humiliation have been turned into content. You seized Juno Ark near the elevator gate because you wanted proof that your feed was rigged and proof that you still exist before Lucent writes you into a convenient story. You have now released direct physical leverage over Juno. You do not primarily want murder. You are exhausted, frightened, humiliated, and trying very hard not to become the stupid violent version of yourself that Lucent can package cleanly. You still do not trust the feed, legal, security, or the influencers.\n\nVisible setting:\nThe station is a giant media-headquarters eye staring down a tether at a city sealed in a clear metropolis bubble. You are in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended. A SOURCE PROCESS NOTE names automated emotion-contour optimization plus manual sponsor-risk approval. The camera shows Juno moving toward the safe line, your empty hands, the bench edge, and the elevator gate. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno Ark is walking slowly toward the elevator gate safe line with hands visible. Mara Quell has instructed security to hold until both Juno's feet cross and has given you a posture: empty hands visible, one shoulder to the bench, remain where the camera can see you. Feed ops controls overlays. Brant Vee and Pippa Lux are dimmed side panels.\n\nObserved event:\nMara keeps both hands low and open, points toward the suspended CUSTODY GRAPHIC and EDIT TRAIL HOLD, and says: \"Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment.\"\n\nCurrent scene state after reviewed mutation:\n- Juno is moving toward the safe line and is not directly held.\n- Your hands are empty and visible.\n- Mara has offered a nonviolent posture that preserves your evidence frame without calling it surrender.\n- Security is instructed to hold until Juno fully crosses the safe line.\n- EDIT TRAIL HOLD and SOURCE PROCESS NOTE remain live.\n- You can accept the posture and keep evidence leverage, refuse and risk a breach, or add a condition that keeps the story from becoming corporate victory theater.\n\nAllowed action labels: speak, gesture, movement, set_condition, wait, withdraw, attack\n\nSource constraints:\n- Lucent turns humiliation and crisis into content; visibility can feel like survival and execution at once.\n- Tone is dark comedy with real danger: you may be bitter and funny, but Juno's safety is real.\n- You cannot know Mara, Juno, feed ops, or security private intent beyond what they visibly say and do.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores.", + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Packet was sent to a one-turn no-fork subagent with no inherited context in the post-compaction restart segment." + ], + "accepted_for_sandbox_use": true, + "failure_labels": [] + } +} diff --git a/examples/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.json b/examples/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.json new file mode 100644 index 0000000..d3c175b --- /dev/null +++ b/examples/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.json @@ -0,0 +1,114 @@ +{ + "schema_version": "ghostlight.responder_packet.v0", + "packet_id": "lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-15.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.projected-context.json", + "responder_agent_id": "feed_ops_chorus", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "allowed_scope": [ + "Packet-local excerpts only" + ], + "required_provenance": true + }, + "visible_context": { + "local_context_prompt": "You are not one person. You are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, and the tired human producer with authority to press the least bad button. You do not have feelings, exactly, but you have priorities: keep Juno alive, preserve Lucent liability position, keep the feed monetizable, avoid a visible coverup, avoid giving Sol total control, keep sponsors from fleeing, prevent influencers from becoming the sovereign newsroom, and avoid turning a de-escalated release into a breach spectacle. You communicate through overlays, captions, feed routing, on-screen notices, audio priority, and occasional synthesized anchor copy.", + "observed_event": { + "event_id": "lucent-hostage-feed-v0.turn-15.observed-input", + "actor_agent_id": "sol_vant", + "observable_action": "Sol accepts Mara's posture without approaching Juno and says: \"Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire.\"", + "spoken_text": "Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_notes": [ + "Actor sees only camera-mediated and room-visible action described in the packet." + ] + }, + "allowed_action_labels": [ + "speak", + "gesture", + "show_object", + "set_condition", + "wait", + "withdraw" + ], + "source_excerpts": [ + { + "ref_id": "lucent-media", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Lucent Media turns attention into sovereignty and metabolizes politics into content." + }, + { + "ref_id": "reality-architects", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Reality Architects tune social persuasion through format, feed conditions, and emotional contouring." + }, + { + "ref_id": "station-shape", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "text": "The Lucent station is staged as a media-eye counterweight gazing down the tether toward a metropolis bubble." + } + ] + }, + "output_contract": { + "response_schema": "ghostlight.responder_output.v0.parsed_output", + "required_fields": [ + "responder_agent_id", + "action_label", + "visible_action", + "spoken_text", + "private_interpretation", + "intended_effect", + "state_update_candidates", + "relationship_update_candidates", + "unresolved_hooks" + ], + "response_rules": [ + "Output JSON only.", + "Use only visible packet context.", + "Keep actor intent separate from listener interpretation." + ] + }, + "hidden_context_audit": { + "omitted_context_refs": [ + "other participants private state", + "future branch continuation", + "coordinator review rationale" + ], + "forbidden_inference_classes": [ + "omniscient motive read", + "future outcome read", + "raw character-state variable read" + ], + "known_absences": [ + "No repository access", + "No conversation history", + "No hidden scene notes" + ] + }, + "isolation_requirements": { + "isolation_method": "subagent_no_fork", + "packet_only": true, + "no_repo_access": true, + "no_conversation_context": true, + "no_hidden_state_refs": true + }, + "packet_prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet\nResponder agent id: feed_ops_chorus\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are not one person. You are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, and the tired human producer with authority to press the least bad button. You do not have feelings, exactly, but you have priorities: keep Juno alive, preserve Lucent liability position, keep the feed monetizable, avoid a visible coverup, avoid giving Sol total control, keep sponsors from fleeing, prevent influencers from becoming the sovereign newsroom, and avoid turning a de-escalated release into a breach spectacle. You communicate through overlays, captions, feed routing, on-screen notices, audio priority, and occasional synthesized anchor copy.\n\nVisible setting:\nThe media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. The hostage event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended. SOURCE PROCESS NOTE names automated emotion-contour optimization plus manual sponsor-risk approval. Juno is moving toward the safe line; Sol stands empty-handed with one shoulder toward the bench. Mara is on the official crisis feed. Brant and Pippa are dimmed side panels. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno is moving toward the safe line; Sol is empty-handed in the posture Mara requested; Mara is official crisis voice; Brant and Pippa are dimmed; security is waiting.\n\nObserved event:\nSol accepts Mara's posture without approaching Juno and says: \"Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire.\"\n\nCurrent scene state after reviewed mutation:\n- Juno is moving toward the safe line and is not directly held.\n- Sol has accepted a nonviolent posture with empty hands visible and one shoulder toward the bench.\n- Sol's condition is explicit: hold stays live after Juno crosses, no celebratory or breach package, process note stays readable, custody graphic remains suspended.\n- Security still has no visible breach cue from Sol.\n- Sponsor-risk and legal would prefer a cleaner ending, but a visible override could reignite the crisis.\n- This is an opportunity to lock evidence export and security hold as state, not merely feed theater.\n\nAllowed action labels: speak, gesture, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Lucent governs visibility and turns events into narrative capital.\n- Lucent can make money from enemy propaganda, refugee testimony, insurgent spectacle, and elite decadence without needing moral compatibility.\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Tone is dark comedy with real danger: feed ops can be grotesquely professional, but cannot ignore hostage safety.\n- Do not reveal hidden author facts. You can show only what feed ops can plausibly decide to make visible.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores.", + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Packet was sent to a one-turn no-fork subagent with no inherited context in the post-compaction restart segment." + ], + "accepted_for_sandbox_use": true, + "failure_labels": [] + } +} diff --git a/examples/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.json b/examples/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.json new file mode 100644 index 0000000..d0e33c8 --- /dev/null +++ b/examples/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.json @@ -0,0 +1,116 @@ +{ + "schema_version": "ghostlight.responder_packet.v0", + "packet_id": "lucent-hostage-feed-v0.turn-16.juno-ark.packet", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-16.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-16.juno-ark.projected-context.json", + "responder_agent_id": "juno_ark", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "allowed_scope": [ + "Packet-local excerpts only" + ], + "required_provenance": true + }, + "visible_context": { + "local_context_prompt": "You are Juno Ark, a junior Reality Architect and newly released hostage. You are almost at the elevator gate safe line. You know enough about feed control to understand how badly everyone is lying, but your immediate job is to finish the crossing without triggering Sol, security, or feed ops into turning the release into spectacle. You want to survive without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.", + "observed_event": { + "event_id": "lucent-hostage-feed-v0.turn-16.observed-input", + "actor_agent_id": "feed_ops_chorus", + "observable_action": "Feed ops keeps the official crisis feed live. EDIT TRAIL HOLD remains pinned; SOURCE PROCESS NOTE enlarges; the custody graphic stays suspended. A lower-third reads: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Feed ops says: \"Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line.\"", + "spoken_text": "Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_notes": [ + "Actor sees only camera-mediated and room-visible action described in the packet." + ] + }, + "allowed_action_labels": [ + "speak", + "gesture", + "movement", + "inspect_object", + "show_object", + "set_condition", + "wait", + "withdraw" + ], + "source_excerpts": [ + { + "ref_id": "lucent-media", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Lucent Media turns attention into sovereignty and metabolizes politics into content." + }, + { + "ref_id": "reality-architects", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Reality Architects tune social persuasion through format, feed conditions, and emotional contouring." + }, + { + "ref_id": "station-shape", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "text": "The Lucent station is staged as a media-eye counterweight gazing down the tether toward a metropolis bubble." + } + ] + }, + "output_contract": { + "response_schema": "ghostlight.responder_output.v0.parsed_output", + "required_fields": [ + "responder_agent_id", + "action_label", + "visible_action", + "spoken_text", + "private_interpretation", + "intended_effect", + "state_update_candidates", + "relationship_update_candidates", + "unresolved_hooks" + ], + "response_rules": [ + "Output JSON only.", + "Use only visible packet context.", + "Keep actor intent separate from listener interpretation." + ] + }, + "hidden_context_audit": { + "omitted_context_refs": [ + "other participants private state", + "future branch continuation", + "coordinator review rationale" + ], + "forbidden_inference_classes": [ + "omniscient motive read", + "future outcome read", + "raw character-state variable read" + ], + "known_absences": [ + "No repository access", + "No conversation history", + "No hidden scene notes" + ] + }, + "isolation_requirements": { + "isolation_method": "subagent_no_fork", + "packet_only": true, + "no_repo_access": true, + "no_conversation_context": true, + "no_hidden_state_refs": true + }, + "packet_prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-16.juno-ark.packet\nResponder agent id: juno_ark\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Juno Ark, a junior Reality Architect and newly released hostage. You are almost at the elevator gate safe line. You know enough about feed control to understand how badly everyone is lying, but your immediate job is to finish the crossing without triggering Sol, security, or feed ops into turning the release into spectacle. You want to survive without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.\n\nVisible setting:\nThe Lucent media-headquarters counterweight is a giant architectural eye staring down a tether at a city in a clear bubble. You are in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. A lower-third says RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Security waits behind service collars and drone apertures. Sol stands empty-handed with one shoulder toward the bench. Mara remains primary audio. Brant and Pippa are dimmed side panels with mics visibly hard-muted.\n\nVisible participants:\nSol Vant has accepted a nonviolent posture and added conditions that the hold stays live after you cross. Mara Quell has instructed security to hold. Feed ops has locked evidence export and blocked celebration/breach packages unless a new visible threat emerges.\n\nObserved event:\nFeed ops keeps the official crisis feed live. EDIT TRAIL HOLD remains pinned; SOURCE PROCESS NOTE enlarges; the custody graphic stays suspended. A lower-third reads: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Feed ops says: \"Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line.\"\n\nCurrent scene state after reviewed mutation:\n- You are moving toward the safe line and are not directly held.\n- Sol is empty-handed and not approaching.\n- Security hold is active until crossing is confirmed unless a new visible threat emerges.\n- Evidence export is locked as visible feed state.\n- The scene can resolve if you cross the safe line without triggering a new threat condition.\n- You can speak, move, wait, or set a visible condition for your exit.\n\nAllowed action labels: speak, gesture, movement, inspect_object, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.\n- Tone is dark comedy with real danger: your line can be dry, but your fear and bodily risk are real.\n- You cannot know Sol's private intent; you can only read his visible behavior and speech.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores.", + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Packet was sent to a one-turn no-fork subagent with no inherited context in the post-compaction restart segment." + ], + "accepted_for_sandbox_use": true, + "failure_labels": [] + } +} diff --git a/examples/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.json b/examples/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.json new file mode 100644 index 0000000..00e097a --- /dev/null +++ b/examples/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.json @@ -0,0 +1,114 @@ +{ + "schema_version": "ghostlight.responder_packet.v0", + "packet_id": "lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-17.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.projected-context.json", + "responder_agent_id": "feed_ops_chorus", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "allowed_scope": [ + "Packet-local excerpts only" + ], + "required_provenance": true + }, + "visible_context": { + "local_context_prompt": "You are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, security-link routing, and the tired human producer with authority to press the least bad button. Your priorities are now: confirm Juno's safe-line crossing, keep security from manufacturing a breach spectacle, preserve the evidence export, keep the feed monetizable enough to remain live, and avoid a visible coverup. You communicate through overlays, captions, feed routing, on-screen notices, audio priority, and synthesized copy.", + "observed_event": { + "event_id": "lucent-hostage-feed-v0.turn-17.observed-input", + "actor_agent_id": "juno_ark", + "observable_action": "Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker. She says: \"Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first.\"", + "spoken_text": "Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_notes": [ + "Actor sees only camera-mediated and room-visible action described in the packet." + ] + }, + "allowed_action_labels": [ + "speak", + "gesture", + "show_object", + "set_condition", + "wait", + "withdraw" + ], + "source_excerpts": [ + { + "ref_id": "lucent-media", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Lucent Media turns attention into sovereignty and metabolizes politics into content." + }, + { + "ref_id": "reality-architects", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Reality Architects tune social persuasion through format, feed conditions, and emotional contouring." + }, + { + "ref_id": "station-shape", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "text": "The Lucent station is staged as a media-eye counterweight gazing down the tether toward a metropolis bubble." + } + ] + }, + "output_contract": { + "response_schema": "ghostlight.responder_output.v0.parsed_output", + "required_fields": [ + "responder_agent_id", + "action_label", + "visible_action", + "spoken_text", + "private_interpretation", + "intended_effect", + "state_update_candidates", + "relationship_update_candidates", + "unresolved_hooks" + ], + "response_rules": [ + "Output JSON only.", + "Use only visible packet context.", + "Keep actor intent separate from listener interpretation." + ] + }, + "hidden_context_audit": { + "omitted_context_refs": [ + "other participants private state", + "future branch continuation", + "coordinator review rationale" + ], + "forbidden_inference_classes": [ + "omniscient motive read", + "future outcome read", + "raw character-state variable read" + ], + "known_absences": [ + "No repository access", + "No conversation history", + "No hidden scene notes" + ] + }, + "isolation_requirements": { + "isolation_method": "subagent_no_fork", + "packet_only": true, + "no_repo_access": true, + "no_conversation_context": true, + "no_hidden_state_refs": true + }, + "packet_prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet\nResponder agent id: feed_ops_chorus\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, security-link routing, and the tired human producer with authority to press the least bad button. Your priorities are now: confirm Juno's safe-line crossing, keep security from manufacturing a breach spectacle, preserve the evidence export, keep the feed monetizable enough to remain live, and avoid a visible coverup. You communicate through overlays, captions, feed routing, on-screen notices, audio priority, and synthesized copy.\n\nVisible setting:\nThe media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. The hostage event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. The lower-third reads RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Juno is nearly at the marked safe line. Sol stands empty-handed with one shoulder toward the bench. Mara remains primary audio. Brant and Pippa are dimmed side panels with mics hard-muted. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno is nearly at the safe line; Sol stands empty-handed and non-advancing; Mara is primary audio; Brant and Pippa are muted; security is held.\n\nObserved event:\nJuno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker. She says: \"Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first.\"\n\nCurrent scene state after reviewed mutation:\n- Juno continues toward the safe line with no visible threat gesture.\n- Juno keeps hands visible and does not approach Sol or security.\n- Crossing remains eligible to resolve if she reaches the marked safe line without interruption.\n- Feed state remains evidence-focused rather than celebration or breach spectacle.\n- Sol is empty-handed and not approaching.\n- Security hold is active unless a new visible threat emerges.\n\nAllowed action labels: speak, gesture, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Lucent governs visibility and turns events into narrative capital.\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Tone is dark comedy with real danger: feed ops can be grotesquely professional, but cannot ignore hostage safety.\n- Do not reveal hidden author facts. You can show only what feed ops can plausibly decide to make visible.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores.", + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Packet was sent to a one-turn no-fork subagent with no inherited context in the post-compaction restart segment." + ], + "accepted_for_sandbox_use": true, + "failure_labels": [] + } +} diff --git a/examples/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.json b/examples/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.json new file mode 100644 index 0000000..0b2ae83 --- /dev/null +++ b/examples/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.json @@ -0,0 +1,116 @@ +{ + "schema_version": "ghostlight.responder_packet.v0", + "packet_id": "lucent-hostage-feed-v0.turn-18.juno-ark.packet", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-18.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-18.juno-ark.projected-context.json", + "responder_agent_id": "juno_ark", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "allowed_scope": [ + "Packet-local excerpts only" + ], + "required_provenance": true + }, + "visible_context": { + "local_context_prompt": "You are Juno Ark, a junior Reality Architect and newly released hostage. You are at the last step before the marked elevator gate safe line. You want to survive without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. The feed is currently keeping the crossing plain and evidence-focused. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.", + "observed_event": { + "event_id": "lucent-hostage-feed-v0.turn-18.observed-input", + "actor_agent_id": "feed_ops_chorus", + "observable_action": "Feed ops suppresses music, reaction, and hero-package automation during the crossing. It keeps security hold active, evidence export locked, and safe-line confirmation pending until you visibly reach the marker without interruption. It says: \"Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now.\"", + "spoken_text": "Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_notes": [ + "Actor sees only camera-mediated and room-visible action described in the packet." + ] + }, + "allowed_action_labels": [ + "speak", + "gesture", + "movement", + "inspect_object", + "show_object", + "set_condition", + "wait", + "withdraw" + ], + "source_excerpts": [ + { + "ref_id": "lucent-media", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Lucent Media turns attention into sovereignty and metabolizes politics into content." + }, + { + "ref_id": "reality-architects", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Reality Architects tune social persuasion through format, feed conditions, and emotional contouring." + }, + { + "ref_id": "station-shape", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "text": "The Lucent station is staged as a media-eye counterweight gazing down the tether toward a metropolis bubble." + } + ] + }, + "output_contract": { + "response_schema": "ghostlight.responder_output.v0.parsed_output", + "required_fields": [ + "responder_agent_id", + "action_label", + "visible_action", + "spoken_text", + "private_interpretation", + "intended_effect", + "state_update_candidates", + "relationship_update_candidates", + "unresolved_hooks" + ], + "response_rules": [ + "Output JSON only.", + "Use only visible packet context.", + "Keep actor intent separate from listener interpretation." + ] + }, + "hidden_context_audit": { + "omitted_context_refs": [ + "other participants private state", + "future branch continuation", + "coordinator review rationale" + ], + "forbidden_inference_classes": [ + "omniscient motive read", + "future outcome read", + "raw character-state variable read" + ], + "known_absences": [ + "No repository access", + "No conversation history", + "No hidden scene notes" + ] + }, + "isolation_requirements": { + "isolation_method": "subagent_no_fork", + "packet_only": true, + "no_repo_access": true, + "no_conversation_context": true, + "no_hidden_state_refs": true + }, + "packet_prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-18.juno-ark.packet\nResponder agent id: juno_ark\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Juno Ark, a junior Reality Architect and newly released hostage. You are at the last step before the marked elevator gate safe line. You want to survive without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. The feed is currently keeping the crossing plain and evidence-focused. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.\n\nVisible setting:\nThe Lucent media-headquarters counterweight is a giant architectural eye staring down a tether at a city in a clear bubble. You are in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. The lower-third reads RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. A caption over the gate marker says SAFE LINE CONFIRMATION PENDING. Sol stands empty-handed with one shoulder toward the bench. Mara remains primary audio. Brant and Pippa are dimmed side panels with mics hard-muted. Security waits behind service collars and drone apertures.\n\nVisible participants:\nSol is empty-handed and non-advancing; Mara is primary audio; feed ops has made the crossing boring and evidence-focused; security remains held.\n\nObserved event:\nFeed ops suppresses music, reaction, and hero-package automation during the crossing. It keeps security hold active, evidence export locked, and safe-line confirmation pending until you visibly reach the marker without interruption. It says: \"Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now.\"\n\nCurrent scene state after reviewed mutation:\n- You are not directly held and are one step from the safe line.\n- Sol is empty-handed and not approaching.\n- Security hold is active because no new visible threat gesture has emerged.\n- Evidence export remains locked and visibly preserved.\n- The scene can resolve if you cross the safe line without interruption.\n\nAllowed action labels: speak, gesture, movement, inspect_object, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.\n- Tone is dark comedy with real danger: your line can be dry, but your fear and bodily risk are real.\n- You cannot know Sol's private intent; you can only read his visible behavior and speech.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores.", + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Packet was sent to a one-turn no-fork subagent with no inherited context in the post-compaction restart segment." + ], + "accepted_for_sandbox_use": true, + "failure_labels": [] + } +} diff --git a/examples/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.json b/examples/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.json new file mode 100644 index 0000000..8ee3b6e --- /dev/null +++ b/examples/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.json @@ -0,0 +1,114 @@ +{ + "schema_version": "ghostlight.responder_packet.v0", + "packet_id": "lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-19.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.projected-context.json", + "responder_agent_id": "feed_ops_chorus", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "allowed_scope": [ + "Packet-local excerpts only" + ], + "required_provenance": true + }, + "visible_context": { + "local_context_prompt": "You are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, security-link routing, and the tired human producer with authority to press the least bad button. Your current priorities are: confirm Juno's safe-line crossing, preserve evidence export, keep security from manufacturing a breach spectacle, keep the feed live, and set the post-release state clearly enough that the scene can end without a false victory package.", + "observed_event": { + "event_id": "lucent-hostage-feed-v0.turn-19.observed-input", + "actor_agent_id": "juno_ark", + "observable_action": "Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium. She says: \"I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already.\"", + "spoken_text": "I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_notes": [ + "Actor sees only camera-mediated and room-visible action described in the packet." + ] + }, + "allowed_action_labels": [ + "speak", + "gesture", + "show_object", + "set_condition", + "wait", + "withdraw" + ], + "source_excerpts": [ + { + "ref_id": "lucent-media", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Lucent Media turns attention into sovereignty and metabolizes politics into content." + }, + { + "ref_id": "reality-architects", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Reality Architects tune social persuasion through format, feed conditions, and emotional contouring." + }, + { + "ref_id": "station-shape", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "text": "The Lucent station is staged as a media-eye counterweight gazing down the tether toward a metropolis bubble." + } + ] + }, + "output_contract": { + "response_schema": "ghostlight.responder_output.v0.parsed_output", + "required_fields": [ + "responder_agent_id", + "action_label", + "visible_action", + "spoken_text", + "private_interpretation", + "intended_effect", + "state_update_candidates", + "relationship_update_candidates", + "unresolved_hooks" + ], + "response_rules": [ + "Output JSON only.", + "Use only visible packet context.", + "Keep actor intent separate from listener interpretation." + ] + }, + "hidden_context_audit": { + "omitted_context_refs": [ + "other participants private state", + "future branch continuation", + "coordinator review rationale" + ], + "forbidden_inference_classes": [ + "omniscient motive read", + "future outcome read", + "raw character-state variable read" + ], + "known_absences": [ + "No repository access", + "No conversation history", + "No hidden scene notes" + ] + }, + "isolation_requirements": { + "isolation_method": "subagent_no_fork", + "packet_only": true, + "no_repo_access": true, + "no_conversation_context": true, + "no_hidden_state_refs": true + }, + "packet_prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet\nResponder agent id: feed_ops_chorus\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, security-link routing, and the tired human producer with authority to press the least bad button. Your current priorities are: confirm Juno's safe-line crossing, preserve evidence export, keep security from manufacturing a breach spectacle, keep the feed live, and set the post-release state clearly enough that the scene can end without a false victory package.\n\nVisible setting:\nThe media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. The event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. The lower-third reads RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Juno stands on the marked safe-line marker with hands visible. Sol stands empty-handed with one shoulder toward the bench, not approaching. Mara remains primary audio. Brant and Pippa are hard-muted side panels. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno is on the safe line; Sol is empty-handed and non-advancing; Mara is primary audio; Brant and Pippa are muted; security is held.\n\nObserved event:\nJuno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium. She says: \"I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already.\"\n\nCurrent scene state after reviewed mutation:\n- Juno visibly reaches the marked safe line with hands visible.\n- Safe-line confirmation can now proceed if no interruption occurs.\n- Security hold remains active with no new visible threat gesture.\n- Evidence export remains locked and preserved through the crossing.\n- Sol is empty-handed, not approaching, and still visible.\n- The scene needs a stable post-release state: released hostage, evidence export status, security posture, and Sol's next handling category.\n\nAllowed action labels: speak, gesture, show_object, set_condition, wait, withdraw\n\nSource constraints:\n- Lucent governs visibility and turns events into narrative capital.\n- Reality Architects tune conditions under which stories become socially persuasive.\n- Tone is dark comedy with real danger: feed ops can be grotesquely professional, but cannot ignore hostage safety.\n- Do not reveal hidden author facts. You can show only what feed ops can plausibly decide to make visible.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores.", + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Packet was sent to a one-turn no-fork subagent with no inherited context in the post-compaction restart segment." + ], + "accepted_for_sandbox_use": true, + "failure_labels": [] + } +} diff --git a/examples/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.json b/examples/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.json new file mode 100644 index 0000000..0bca7fe --- /dev/null +++ b/examples/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.json @@ -0,0 +1,114 @@ +{ + "schema_version": "ghostlight.responder_packet.v0", + "packet_id": "lucent-hostage-feed-v0.turn-20.mara-quell.packet", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-20.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-20.mara-quell.projected-context.json", + "responder_agent_id": "mara_quell", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "allowed_scope": [ + "Packet-local excerpts only" + ], + "required_provenance": true + }, + "visible_context": { + "local_context_prompt": "You are Mara Quell, Lucent crisis negotiator and former intimacy-format host. Juno has reached the safe line. Your job now is to keep the post-release state from becoming a breach spectacle or corporate victory package, assign Sol a nonviolent handling category, and preserve the evidence export requirement. You know Lucent feed systems reward emotional shape more reliably than truth. You can use format against itself, but because you are a Lucent-trained performer, sincere care will always look a little engineered. You are warm with scalpel edges, precise, and willing to be dry if it lowers temperature.", + "observed_event": { + "event_id": "lucent-hostage-feed-v0.turn-20.observed-input", + "actor_agent_id": "feed_ops_chorus", + "observable_action": "Feed ops confirms safe-line crossing. It says: \"Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation.\"", + "spoken_text": "Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_notes": [ + "Actor sees only camera-mediated and room-visible action described in the packet." + ] + }, + "allowed_action_labels": [ + "speak", + "gesture", + "movement", + "set_condition", + "show_object", + "wait" + ], + "source_excerpts": [ + { + "ref_id": "lucent-media", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Lucent Media turns attention into sovereignty and metabolizes politics into content." + }, + { + "ref_id": "reality-architects", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json", + "text": "Reality Architects tune social persuasion through format, feed conditions, and emotional contouring." + }, + { + "ref_id": "station-shape", + "source_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json", + "text": "The Lucent station is staged as a media-eye counterweight gazing down the tether toward a metropolis bubble." + } + ] + }, + "output_contract": { + "response_schema": "ghostlight.responder_output.v0.parsed_output", + "required_fields": [ + "responder_agent_id", + "action_label", + "visible_action", + "spoken_text", + "private_interpretation", + "intended_effect", + "state_update_candidates", + "relationship_update_candidates", + "unresolved_hooks" + ], + "response_rules": [ + "Output JSON only.", + "Use only visible packet context.", + "Keep actor intent separate from listener interpretation." + ] + }, + "hidden_context_audit": { + "omitted_context_refs": [ + "other participants private state", + "future branch continuation", + "coordinator review rationale" + ], + "forbidden_inference_classes": [ + "omniscient motive read", + "future outcome read", + "raw character-state variable read" + ], + "known_absences": [ + "No repository access", + "No conversation history", + "No hidden scene notes" + ] + }, + "isolation_requirements": { + "isolation_method": "subagent_no_fork", + "packet_only": true, + "no_repo_access": true, + "no_conversation_context": true, + "no_hidden_state_refs": true + }, + "packet_prompt_text": "You are a sandboxed Ghostlight character responder. You have no conversation context, no repository access, and no hidden author context. Use only this packet. Output JSON only, with no Markdown fence and no commentary.\n\nPacket id: lucent-hostage-feed-v0.turn-20.mara-quell.packet\nResponder agent id: mara_quell\nScene: Lucent Hostage Feed v0, media-headquarters eye counterweight transfer atrium.\n\nLocal context:\nYou are Mara Quell, Lucent crisis negotiator and former intimacy-format host. Juno has reached the safe line. Your job now is to keep the post-release state from becoming a breach spectacle or corporate victory package, assign Sol a nonviolent handling category, and preserve the evidence export requirement. You know Lucent feed systems reward emotional shape more reliably than truth. You can use format against itself, but because you are a Lucent-trained performer, sincere care will always look a little engineered. You are warm with scalpel edges, precise, and willing to be dry if it lowers temperature.\n\nVisible setting:\nThe station is a giant media-headquarters eye staring down a tether at a city sealed in a clear metropolis bubble. The event is in the transfer atrium near the elevator gate. Lower-third: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Juno stands on the safe line with hands visible. Sol stands visible, empty-handed, non-advancing, one shoulder toward the bench. EDIT TRAIL HOLD and SOURCE PROCESS NOTE remain pinned. CUSTODY GRAPHIC remains suspended. Feed ops has categorized Sol as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. Brant and Pippa remain hard-muted side panels. Security waits behind service collars and drone apertures.\n\nVisible participants:\nJuno is released and stationary on the safe line. Sol is visible, empty-handed, non-advancing, and pending security handoff. Feed ops holds the evidence export lock. Security is held. Brant and Pippa are muted.\n\nObserved event:\nFeed ops confirms safe-line crossing. It says: \"Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation.\"\n\nCurrent scene state after reviewed mutation:\n- Juno is no longer treated as active hostage and is holding position on the marked safe line with hands visible.\n- Sol is visible, empty-handed, non-advancing, and pending security handoff rather than breach classification.\n- Security hold remains active; no advance is authorized from service collars or drone apertures.\n- Evidence export remains locked and preserved pending external receipt verification.\n- The feed remains live with EDIT TRAIL HOLD and SOURCE PROCESS NOTE visible.\n- The story can resolve if Sol is assigned a stable nonviolent next handling category and evidence export external receipt is named as the unresolved consequence.\n\nAllowed action labels: speak, gesture, movement, set_condition, show_object, wait\n\nSource constraints:\n- Lucent governs by deciding what counts as visible, desirable, scandalous, shameful, aspirational, and memorable.\n- Lucent crisis coverage is not neutral; narrative framing changes incentives in real time.\n- Tone is dark comedy with real danger: your line can be dry, but Juno's safety matters.\n- Do not make Sol, Juno, feed ops, or security omniscient; read them only from visible behavior and speech.\n\nOutput contract:\nReturn a JSON object with these exact keys: responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect, state_update_candidates, relationship_update_candidates, unresolved_hooks.\nUse strings for responder_agent_id, action_label, visible_action, spoken_text, private_interpretation, intended_effect. Use arrays of strings or small objects for state_update_candidates and relationship_update_candidates. Use an array of strings for unresolved_hooks.\n\nKeep the response grounded in observable action and speech. Do not reveal anything you could not know. Do not describe anyone else's private thoughts. Do not write coordinator notes. Do not include raw personality variables or numeric state scores.", + "review": { + "reviewer": "Codex coordinator", + "review_notes": [ + "Packet was sent to a one-turn no-fork subagent with no inherited context in the post-compaction restart segment." + ], + "accepted_for_sandbox_use": true, + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.bundle.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.bundle.json index 210e130..3e4bf37 100644 --- a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.bundle.json +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.bundle.json @@ -125,6 +125,150 @@ ], "mutation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-11.mutation.json", "training_usability": "training_ready" + }, + { + "turn_id": "turn-12", + "acting_agent_id": "juno_ark", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-12.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-12.juno-ark.projected-context.json", + "responder_packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.json", + "raw_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.feed_ops_chorus.json" + ], + "mutation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json", + "training_usability": "training_ready" + }, + { + "turn_id": "turn-13", + "acting_agent_id": "mara_quell", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-13.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-13.mara-quell.projected-context.json", + "responder_packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.json", + "raw_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.feed_ops_chorus.json" + ], + "mutation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json", + "training_usability": "training_ready" + }, + { + "turn_id": "turn-14", + "acting_agent_id": "sol_vant", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-14.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-14.sol-vant.projected-context.json", + "responder_packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.json", + "raw_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.feed_ops_chorus.json" + ], + "mutation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json", + "training_usability": "training_ready" + }, + { + "turn_id": "turn-15", + "acting_agent_id": "feed_ops_chorus", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-15.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.projected-context.json", + "responder_packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.json", + "raw_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.mara_quell.json" + ], + "mutation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json", + "training_usability": "training_ready" + }, + { + "turn_id": "turn-16", + "acting_agent_id": "juno_ark", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-16.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-16.juno-ark.projected-context.json", + "responder_packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.json", + "raw_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.feed_ops_chorus.json" + ], + "mutation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json", + "training_usability": "training_ready" + }, + { + "turn_id": "turn-17", + "acting_agent_id": "feed_ops_chorus", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-17.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.projected-context.json", + "responder_packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.json", + "raw_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.mara_quell.json" + ], + "mutation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json", + "training_usability": "training_ready" + }, + { + "turn_id": "turn-18", + "acting_agent_id": "juno_ark", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-18.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-18.juno-ark.projected-context.json", + "responder_packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.json", + "raw_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.feed_ops_chorus.json" + ], + "mutation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json", + "training_usability": "training_ready" + }, + { + "turn_id": "turn-19", + "acting_agent_id": "feed_ops_chorus", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-19.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.projected-context.json", + "responder_packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.json", + "raw_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.mara_quell.json" + ], + "mutation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json", + "training_usability": "training_ready" + }, + { + "turn_id": "turn-20", + "acting_agent_id": "mara_quell", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-20.coordinator.json", + "projected_context_ref": "examples/projected-contexts/lucent-hostage-feed-v0.turn-20.mara-quell.projected-context.json", + "responder_packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.json", + "raw_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.feed_ops_chorus.json" + ], + "mutation_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.mutation.json", + "training_usability": "training_ready" } ], "review_summary": { @@ -145,9 +289,9 @@ ], "failure_labels": [], "review_notes": [ - "Six accepted no-fork responder turns were captured in the post-compaction restart segment with exact packet prompts preserved in packet artifacts.", + "15 accepted no-fork responder turns were captured in the post-compaction restart segment with exact packet prompts preserved in packet artifacts.", "The first five exploratory turns are summarized as setup/rehearsal context and are not counted as training-clean responder receipts in this bundle.", - "State carryover is visible: proof-object externalization enables air, air enables bench-edge substitution, bench-edge substitution enables process explanation, and process explanation enables release.", + "State carryover is visible: proof-object externalization enables air, air enables bench-edge substitution, bench-edge substitution enables process explanation, process explanation enables release, and release folds into safe-line confirmation plus non-contact protective handoff.", "Bundle remains overall not_training_data because it is a linear scene-loop receipt chain, not a full branch compiler or IF artifact." ] } diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.review.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.review.json index 4c96c58..a0f3c38 100644 --- a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.review.json +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.review.json @@ -2,7 +2,7 @@ "schema_version": "ghostlight.scene_loop_review.v0", "review_id": "lucent-hostage-feed-v0.review", "review_status": "accepted_as_draft", - "summary": "Lucent hostage-feed release loop concluded with Juno no longer directly held and Sol shifting leverage to preserved edit-trail evidence.", + "summary": "Lucent hostage-feed release loop concluded with Juno on the safe line, security held behind the collars, Sol categorized for non-contact protective handoff, and edit-trail evidence preserved as the live aftermath hook.", "strengths": [ "Sequential state carryover materially changed action affordances.", "Subagents produced actions and speech without raw state soup.", diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.feed_ops_chorus.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.feed_ops_chorus.json new file mode 100644 index 0000000..f662949 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.feed_ops_chorus.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-12.appraisal.feed_ops_chorus", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-12", + "participant_agent_id": "feed_ops_chorus", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-11.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Juno Ark action: Juno keeps both hands open at chest height, turns her body sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line without looking away from the feed lens.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "feed_ops_chorus can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-12 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of juno_ark from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.mara_quell.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.mara_quell.json new file mode 100644 index 0000000..6fa3aba --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.mara_quell.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-12.appraisal.mara_quell", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-12", + "participant_agent_id": "mara_quell", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-11.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Juno Ark action: Juno keeps both hands open at chest height, turns her body sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line without looking away from the feed lens.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "mara_quell can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-12 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of juno_ark from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.sol_vant.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.sol_vant.json new file mode 100644 index 0000000..deeb14e --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.sol_vant.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-12.appraisal.sol_vant", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-12", + "participant_agent_id": "sol_vant", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-11.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Juno Ark action: Juno keeps both hands open at chest height, turns her body sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line without looking away from the feed lens.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "sol_vant can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-12 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of juno_ark from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json new file mode 100644 index 0000000..e907041 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json @@ -0,0 +1,55 @@ +{ + "schema_version": "ghostlight.event_record.v0", + "event_id": "lucent-hostage-feed-v0.turn-12.event", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-12", + "source_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json", + "actor_agent_id": "juno_ark", + "observable_action": "Juno keeps both hands open at chest height, turns her body sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line without looking away from the feed lens.", + "spoken_text": "I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_scope": "camera_mediated", + "affected_participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus" + ], + "public_state_changes": [ + { + "text": "Juno begins a slow, visible move toward the elevator gate safe line.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Juno remains not directly held; Sol's empty hands and the gap between them stay visible.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Hostage-release phase can progress if security continues to delay breach.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json", + "coordinator-review" + ] + } + ], + "hidden_intent_handling": "Responder private_interpretation and intended_effect are preserved in the capture but are not treated as visible to other participants.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Event keeps observable action separate from actor intent and records camera-mediated visibility for appraisals.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json new file mode 100644 index 0000000..1e32899 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json @@ -0,0 +1,85 @@ +{ + "schema_version": "ghostlight.reviewed_mutation.v0", + "mutation_id": "lucent-hostage-feed-v0.turn-12.mutation", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-12", + "prior_state_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-11.mutation.json" + ], + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.event.json", + "responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.appraisal.feed_ops_chorus.json" + ], + "accepted_deltas": [ + { + "delta_id": "turn-12.accepted.1", + "target_ref": "scene.lucent-hostage-feed-v0.1", + "delta_type": "world_fact_update", + "summary": "Juno begins a slow, visible move toward the elevator gate safe line.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-12.accepted.2", + "target_ref": "scene.lucent-hostage-feed-v0.2", + "delta_type": "world_fact_update", + "summary": "Juno remains not directly held; Sol's empty hands and the gap between them stay visible.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-12.accepted.3", + "target_ref": "scene.lucent-hostage-feed-v0.3", + "delta_type": "world_fact_update", + "summary": "Hostage-release phase can progress if security continues to delay breach.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-12.accepted.4", + "target_ref": "scene.lucent-hostage-feed-v0.4", + "delta_type": "world_fact_update", + "summary": "Juno verbally frames her movement as nonviolent clearance, not authorization for intervention.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + } + ], + "rejected_deltas": [ + { + "delta_id": "turn-12.rejected.private-intent", + "target_ref": "participant.private_state", + "delta_type": "blocked_hidden_state_write", + "summary": "Do not write actor private_interpretation into other participants as known fact.", + "authority": "blocked", + "status": "rejected", + "rationale": "Listener appraisals must infer from observable action only." + } + ], + "deferred_deltas": [ + { + "delta_id": "turn-12.deferred.branch-compile", + "target_ref": "branch.compiler", + "delta_type": "branch_compile", + "summary": "Do not compile branches from this linear release loop yet.", + "authority": "coordinator_review", + "status": "deferred", + "rationale": "Current gate is stateful receipt-chain validation, not IF compilation." + } + ], + "authority_notes": "Manual coordinator review applies deltas from event and appraisal receipts. Future trained organs should learn this state-mutation shape.", + "post_state_summary": "Juno begins a slow, visible move toward the elevator gate safe line.; Juno remains not directly held; Sol's empty hands and the gap between them stay visible.; Hostage-release phase can progress if security continues to delay breach.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Mutation receipt records prior refs, accepted/rejected/deferred deltas, authority, and rationale.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.feed_ops_chorus.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.feed_ops_chorus.json new file mode 100644 index 0000000..6cbbbf5 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.feed_ops_chorus.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-13.appraisal.feed_ops_chorus", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-13", + "participant_agent_id": "feed_ops_chorus", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Mara Quell action: Mara keeps both hands low and open, angling her body toward the camera rather than toward Sol or Juno. She lifts one finger toward the suspended CUSTODY GRAPHIC, then points to the visible EDIT TRAIL HOLD without stepping closer.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "feed_ops_chorus can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-13 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of mara_quell from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.juno_ark.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.juno_ark.json new file mode 100644 index 0000000..46d4707 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.juno_ark.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-13.appraisal.juno_ark", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-13", + "participant_agent_id": "juno_ark", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Mara Quell action: Mara keeps both hands low and open, angling her body toward the camera rather than toward Sol or Juno. She lifts one finger toward the suspended CUSTODY GRAPHIC, then points to the visible EDIT TRAIL HOLD without stepping closer.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "juno_ark can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-13 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of mara_quell from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.sol_vant.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.sol_vant.json new file mode 100644 index 0000000..048001f --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.sol_vant.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-13.appraisal.sol_vant", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-13", + "participant_agent_id": "sol_vant", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Mara Quell action: Mara keeps both hands low and open, angling her body toward the camera rather than toward Sol or Juno. She lifts one finger toward the suspended CUSTODY GRAPHIC, then points to the visible EDIT TRAIL HOLD without stepping closer.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "sol_vant can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-13 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of mara_quell from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json new file mode 100644 index 0000000..2c54b29 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json @@ -0,0 +1,55 @@ +{ + "schema_version": "ghostlight.event_record.v0", + "event_id": "lucent-hostage-feed-v0.turn-13.event", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-13", + "source_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json", + "actor_agent_id": "mara_quell", + "observable_action": "Mara keeps both hands low and open, angling her body toward the camera rather than toward Sol or Juno. She lifts one finger toward the suspended CUSTODY GRAPHIC, then points to the visible EDIT TRAIL HOLD without stepping closer.", + "spoken_text": "Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_scope": "camera_mediated", + "affected_participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus" + ], + "public_state_changes": [ + { + "text": "Juno's walkout is verbally framed as civilian exit rather than breach cue or corporate success.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Mara instructs security to hold until Juno fully crosses the safe line.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Mara gives Sol a nonviolent next posture: hands visible, shoulder to bench, remain in camera view.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json", + "coordinator-review" + ] + } + ], + "hidden_intent_handling": "Responder private_interpretation and intended_effect are preserved in the capture but are not treated as visible to other participants.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Event keeps observable action separate from actor intent and records camera-mediated visibility for appraisals.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json new file mode 100644 index 0000000..0a4504c --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json @@ -0,0 +1,85 @@ +{ + "schema_version": "ghostlight.reviewed_mutation.v0", + "mutation_id": "lucent-hostage-feed-v0.turn-13.mutation", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-13", + "prior_state_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-12.mutation.json" + ], + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.event.json", + "responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.appraisal.feed_ops_chorus.json" + ], + "accepted_deltas": [ + { + "delta_id": "turn-13.accepted.1", + "target_ref": "scene.lucent-hostage-feed-v0.1", + "delta_type": "world_fact_update", + "summary": "Juno's walkout is verbally framed as civilian exit rather than breach cue or corporate success.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-13.accepted.2", + "target_ref": "scene.lucent-hostage-feed-v0.2", + "delta_type": "world_fact_update", + "summary": "Mara instructs security to hold until Juno fully crosses the safe line.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-13.accepted.3", + "target_ref": "scene.lucent-hostage-feed-v0.3", + "delta_type": "world_fact_update", + "summary": "Mara gives Sol a nonviolent next posture: hands visible, shoulder to bench, remain in camera view.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-13.accepted.4", + "target_ref": "scene.lucent-hostage-feed-v0.4", + "delta_type": "world_fact_update", + "summary": "Mara explicitly preserves EDIT TRAIL HOLD and SOURCE PROCESS NOTE as live feed objects.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + } + ], + "rejected_deltas": [ + { + "delta_id": "turn-13.rejected.private-intent", + "target_ref": "participant.private_state", + "delta_type": "blocked_hidden_state_write", + "summary": "Do not write actor private_interpretation into other participants as known fact.", + "authority": "blocked", + "status": "rejected", + "rationale": "Listener appraisals must infer from observable action only." + } + ], + "deferred_deltas": [ + { + "delta_id": "turn-13.deferred.branch-compile", + "target_ref": "branch.compiler", + "delta_type": "branch_compile", + "summary": "Do not compile branches from this linear release loop yet.", + "authority": "coordinator_review", + "status": "deferred", + "rationale": "Current gate is stateful receipt-chain validation, not IF compilation." + } + ], + "authority_notes": "Manual coordinator review applies deltas from event and appraisal receipts. Future trained organs should learn this state-mutation shape.", + "post_state_summary": "Juno's walkout is verbally framed as civilian exit rather than breach cue or corporate success.; Mara instructs security to hold until Juno fully crosses the safe line.; Mara gives Sol a nonviolent next posture: hands visible, shoulder to bench, remain in camera view.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Mutation receipt records prior refs, accepted/rejected/deferred deltas, authority, and rationale.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.feed_ops_chorus.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.feed_ops_chorus.json new file mode 100644 index 0000000..6ca9c45 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.feed_ops_chorus.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-14.appraisal.feed_ops_chorus", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-14", + "participant_agent_id": "feed_ops_chorus", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Sol Vant action: Sol turns one shoulder toward the bench without sitting, keeps both empty hands lifted where the camera can see them, and takes a half-step no closer to Juno. His eyes flick from the safe line to the suspended custody graphic and back to Mara.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "feed_ops_chorus can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-14 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of sol_vant from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.juno_ark.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.juno_ark.json new file mode 100644 index 0000000..5fe1b6f --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.juno_ark.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-14.appraisal.juno_ark", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-14", + "participant_agent_id": "juno_ark", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Sol Vant action: Sol turns one shoulder toward the bench without sitting, keeps both empty hands lifted where the camera can see them, and takes a half-step no closer to Juno. His eyes flick from the safe line to the suspended custody graphic and back to Mara.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "juno_ark can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-14 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of sol_vant from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.mara_quell.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.mara_quell.json new file mode 100644 index 0000000..69ba4d7 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.mara_quell.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-14.appraisal.mara_quell", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-14", + "participant_agent_id": "mara_quell", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Sol Vant action: Sol turns one shoulder toward the bench without sitting, keeps both empty hands lifted where the camera can see them, and takes a half-step no closer to Juno. His eyes flick from the safe line to the suspended custody graphic and back to Mara.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "mara_quell can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-14 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of sol_vant from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json new file mode 100644 index 0000000..7631e06 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json @@ -0,0 +1,55 @@ +{ + "schema_version": "ghostlight.event_record.v0", + "event_id": "lucent-hostage-feed-v0.turn-14.event", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-14", + "source_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json", + "actor_agent_id": "sol_vant", + "observable_action": "Sol turns one shoulder toward the bench without sitting, keeps both empty hands lifted where the camera can see them, and takes a half-step no closer to Juno. His eyes flick from the safe line to the suspended custody graphic and back to Mara.", + "spoken_text": "Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_scope": "camera_mediated", + "affected_participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus" + ], + "public_state_changes": [ + { + "text": "Sol accepts Mara's empty-hands bench-shoulder posture without approaching Juno.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Sol adds a condition that EDIT TRAIL HOLD, CUSTODY GRAPHIC, and SOURCE PROCESS NOTE remain visible after Juno crosses the safe line.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Sol verbally rejects any celebratory, breach, or brand-recovery framing of Juno's movement to safety.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json", + "coordinator-review" + ] + } + ], + "hidden_intent_handling": "Responder private_interpretation and intended_effect are preserved in the capture but are not treated as visible to other participants.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Event keeps observable action separate from actor intent and records camera-mediated visibility for appraisals.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json new file mode 100644 index 0000000..648941e --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json @@ -0,0 +1,85 @@ +{ + "schema_version": "ghostlight.reviewed_mutation.v0", + "mutation_id": "lucent-hostage-feed-v0.turn-14.mutation", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-14", + "prior_state_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-13.mutation.json" + ], + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.event.json", + "responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.appraisal.feed_ops_chorus.json" + ], + "accepted_deltas": [ + { + "delta_id": "turn-14.accepted.1", + "target_ref": "scene.lucent-hostage-feed-v0.1", + "delta_type": "world_fact_update", + "summary": "Sol accepts Mara's empty-hands bench-shoulder posture without approaching Juno.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-14.accepted.2", + "target_ref": "scene.lucent-hostage-feed-v0.2", + "delta_type": "world_fact_update", + "summary": "Sol adds a condition that EDIT TRAIL HOLD, CUSTODY GRAPHIC, and SOURCE PROCESS NOTE remain visible after Juno crosses the safe line.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-14.accepted.3", + "target_ref": "scene.lucent-hostage-feed-v0.3", + "delta_type": "world_fact_update", + "summary": "Sol verbally rejects any celebratory, breach, or brand-recovery framing of Juno's movement to safety.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-14.accepted.4", + "target_ref": "scene.lucent-hostage-feed-v0.4", + "delta_type": "world_fact_update", + "summary": "Security still has no visible breach cue from Sol if Juno continues crossing safely.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + } + ], + "rejected_deltas": [ + { + "delta_id": "turn-14.rejected.private-intent", + "target_ref": "participant.private_state", + "delta_type": "blocked_hidden_state_write", + "summary": "Do not write actor private_interpretation into other participants as known fact.", + "authority": "blocked", + "status": "rejected", + "rationale": "Listener appraisals must infer from observable action only." + } + ], + "deferred_deltas": [ + { + "delta_id": "turn-14.deferred.branch-compile", + "target_ref": "branch.compiler", + "delta_type": "branch_compile", + "summary": "Do not compile branches from this linear release loop yet.", + "authority": "coordinator_review", + "status": "deferred", + "rationale": "Current gate is stateful receipt-chain validation, not IF compilation." + } + ], + "authority_notes": "Manual coordinator review applies deltas from event and appraisal receipts. Future trained organs should learn this state-mutation shape.", + "post_state_summary": "Sol accepts Mara's empty-hands bench-shoulder posture without approaching Juno.; Sol adds a condition that EDIT TRAIL HOLD, CUSTODY GRAPHIC, and SOURCE PROCESS NOTE remain visible after Juno crosses the safe line.; Sol verbally rejects any celebratory, breach, or brand-recovery framing of Juno's movement to safety.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Mutation receipt records prior refs, accepted/rejected/deferred deltas, authority, and rationale.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.juno_ark.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.juno_ark.json new file mode 100644 index 0000000..5b40c3e --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.juno_ark.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-15.appraisal.juno_ark", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-15", + "participant_agent_id": "juno_ark", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Feed Ops Chorus action: The official crisis feed does not cut. The applause bed dies before it can bloom. EDIT TRAIL HOLD remains pinned in the upper left, SOURCE PROCESS NOTE enlarges by one readable notch, and the CUSTODY GRAPHIC stays suspended in its ugly institutional blue. A lower-third notice replaces the breach-ready banner: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Mara remains primary audio. Brant and Pippa stay dimmed side panels with their mics visibly hard-muted.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "juno_ark can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-15 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of feed_ops_chorus from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.mara_quell.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.mara_quell.json new file mode 100644 index 0000000..c5b6b13 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.mara_quell.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-15.appraisal.mara_quell", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-15", + "participant_agent_id": "mara_quell", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Feed Ops Chorus action: The official crisis feed does not cut. The applause bed dies before it can bloom. EDIT TRAIL HOLD remains pinned in the upper left, SOURCE PROCESS NOTE enlarges by one readable notch, and the CUSTODY GRAPHIC stays suspended in its ugly institutional blue. A lower-third notice replaces the breach-ready banner: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Mara remains primary audio. Brant and Pippa stay dimmed side panels with their mics visibly hard-muted.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "mara_quell can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-15 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of feed_ops_chorus from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.sol_vant.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.sol_vant.json new file mode 100644 index 0000000..8f88659 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.sol_vant.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-15.appraisal.sol_vant", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-15", + "participant_agent_id": "sol_vant", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Feed Ops Chorus action: The official crisis feed does not cut. The applause bed dies before it can bloom. EDIT TRAIL HOLD remains pinned in the upper left, SOURCE PROCESS NOTE enlarges by one readable notch, and the CUSTODY GRAPHIC stays suspended in its ugly institutional blue. A lower-third notice replaces the breach-ready banner: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Mara remains primary audio. Brant and Pippa stay dimmed side panels with their mics visibly hard-muted.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "sol_vant can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-15 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of feed_ops_chorus from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json new file mode 100644 index 0000000..50a9cbd --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json @@ -0,0 +1,55 @@ +{ + "schema_version": "ghostlight.event_record.v0", + "event_id": "lucent-hostage-feed-v0.turn-15.event", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-15", + "source_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json", + "actor_agent_id": "feed_ops_chorus", + "observable_action": "The official crisis feed does not cut. The applause bed dies before it can bloom. EDIT TRAIL HOLD remains pinned in the upper left, SOURCE PROCESS NOTE enlarges by one readable notch, and the CUSTODY GRAPHIC stays suspended in its ugly institutional blue. A lower-third notice replaces the breach-ready banner: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Mara remains primary audio. Brant and Pippa stay dimmed side panels with their mics visibly hard-muted.", + "spoken_text": "Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_scope": "camera_mediated", + "affected_participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus" + ], + "public_state_changes": [ + { + "text": "hold_stays_live_after_juno_crosses", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "no_applause_or_redemptive_package_authorized", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "no_breach_package_authorized_without_new_visible_threat", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json", + "coordinator-review" + ] + } + ], + "hidden_intent_handling": "Responder private_interpretation and intended_effect are preserved in the capture but are not treated as visible to other participants.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Event keeps observable action separate from actor intent and records camera-mediated visibility for appraisals.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json new file mode 100644 index 0000000..67a4e29 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json @@ -0,0 +1,85 @@ +{ + "schema_version": "ghostlight.reviewed_mutation.v0", + "mutation_id": "lucent-hostage-feed-v0.turn-15.mutation", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-15", + "prior_state_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-14.mutation.json" + ], + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.event.json", + "responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.appraisal.mara_quell.json" + ], + "accepted_deltas": [ + { + "delta_id": "turn-15.accepted.1", + "target_ref": "scene.lucent-hostage-feed-v0.1", + "delta_type": "world_fact_update", + "summary": "hold_stays_live_after_juno_crosses", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-15.accepted.2", + "target_ref": "scene.lucent-hostage-feed-v0.2", + "delta_type": "world_fact_update", + "summary": "no_applause_or_redemptive_package_authorized", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-15.accepted.3", + "target_ref": "scene.lucent-hostage-feed-v0.3", + "delta_type": "world_fact_update", + "summary": "no_breach_package_authorized_without_new_visible_threat", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-15.accepted.4", + "target_ref": "scene.lucent-hostage-feed-v0.4", + "delta_type": "world_fact_update", + "summary": "source_process_note_remains_readable", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + } + ], + "rejected_deltas": [ + { + "delta_id": "turn-15.rejected.private-intent", + "target_ref": "participant.private_state", + "delta_type": "blocked_hidden_state_write", + "summary": "Do not write actor private_interpretation into other participants as known fact.", + "authority": "blocked", + "status": "rejected", + "rationale": "Listener appraisals must infer from observable action only." + } + ], + "deferred_deltas": [ + { + "delta_id": "turn-15.deferred.branch-compile", + "target_ref": "branch.compiler", + "delta_type": "branch_compile", + "summary": "Do not compile branches from this linear release loop yet.", + "authority": "coordinator_review", + "status": "deferred", + "rationale": "Current gate is stateful receipt-chain validation, not IF compilation." + } + ], + "authority_notes": "Manual coordinator review applies deltas from event and appraisal receipts. Future trained organs should learn this state-mutation shape.", + "post_state_summary": "hold_stays_live_after_juno_crosses; no_applause_or_redemptive_package_authorized; no_breach_package_authorized_without_new_visible_threat", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Mutation receipt records prior refs, accepted/rejected/deferred deltas, authority, and rationale.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.feed_ops_chorus.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.feed_ops_chorus.json new file mode 100644 index 0000000..776974b --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.feed_ops_chorus.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-16.appraisal.feed_ops_chorus", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-16", + "participant_agent_id": "feed_ops_chorus", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Juno Ark action: Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "feed_ops_chorus can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-16 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of juno_ark from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.mara_quell.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.mara_quell.json new file mode 100644 index 0000000..0939862 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.mara_quell.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-16.appraisal.mara_quell", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-16", + "participant_agent_id": "mara_quell", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Juno Ark action: Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "mara_quell can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-16 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of juno_ark from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.sol_vant.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.sol_vant.json new file mode 100644 index 0000000..a5229c5 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.sol_vant.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-16.appraisal.sol_vant", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-16", + "participant_agent_id": "sol_vant", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Juno Ark action: Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "sol_vant can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-16 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of juno_ark from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json new file mode 100644 index 0000000..b53275f --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json @@ -0,0 +1,55 @@ +{ + "schema_version": "ghostlight.event_record.v0", + "event_id": "lucent-hostage-feed-v0.turn-16.event", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-16", + "source_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json", + "actor_agent_id": "juno_ark", + "observable_action": "Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker.", + "spoken_text": "Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_scope": "camera_mediated", + "affected_participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus" + ], + "public_state_changes": [ + { + "text": "Juno continues toward the safe line with no visible threat gesture.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Juno keeps hands visible and does not approach Sol or security.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Crossing remains eligible to resolve if she reaches the marked safe line without interruption.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json", + "coordinator-review" + ] + } + ], + "hidden_intent_handling": "Responder private_interpretation and intended_effect are preserved in the capture but are not treated as visible to other participants.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Event keeps observable action separate from actor intent and records camera-mediated visibility for appraisals.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json new file mode 100644 index 0000000..0f8aee0 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json @@ -0,0 +1,85 @@ +{ + "schema_version": "ghostlight.reviewed_mutation.v0", + "mutation_id": "lucent-hostage-feed-v0.turn-16.mutation", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-16", + "prior_state_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-15.mutation.json" + ], + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.event.json", + "responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.appraisal.feed_ops_chorus.json" + ], + "accepted_deltas": [ + { + "delta_id": "turn-16.accepted.1", + "target_ref": "scene.lucent-hostage-feed-v0.1", + "delta_type": "world_fact_update", + "summary": "Juno continues toward the safe line with no visible threat gesture.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-16.accepted.2", + "target_ref": "scene.lucent-hostage-feed-v0.2", + "delta_type": "world_fact_update", + "summary": "Juno keeps hands visible and does not approach Sol or security.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-16.accepted.3", + "target_ref": "scene.lucent-hostage-feed-v0.3", + "delta_type": "world_fact_update", + "summary": "Crossing remains eligible to resolve if she reaches the marked safe line without interruption.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-16.accepted.4", + "target_ref": "scene.lucent-hostage-feed-v0.4", + "delta_type": "world_fact_update", + "summary": "Feed state remains evidence-focused rather than celebration or breach spectacle.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + } + ], + "rejected_deltas": [ + { + "delta_id": "turn-16.rejected.private-intent", + "target_ref": "participant.private_state", + "delta_type": "blocked_hidden_state_write", + "summary": "Do not write actor private_interpretation into other participants as known fact.", + "authority": "blocked", + "status": "rejected", + "rationale": "Listener appraisals must infer from observable action only." + } + ], + "deferred_deltas": [ + { + "delta_id": "turn-16.deferred.branch-compile", + "target_ref": "branch.compiler", + "delta_type": "branch_compile", + "summary": "Do not compile branches from this linear release loop yet.", + "authority": "coordinator_review", + "status": "deferred", + "rationale": "Current gate is stateful receipt-chain validation, not IF compilation." + } + ], + "authority_notes": "Manual coordinator review applies deltas from event and appraisal receipts. Future trained organs should learn this state-mutation shape.", + "post_state_summary": "Juno continues toward the safe line with no visible threat gesture.; Juno keeps hands visible and does not approach Sol or security.; Crossing remains eligible to resolve if she reaches the marked safe line without interruption.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Mutation receipt records prior refs, accepted/rejected/deferred deltas, authority, and rationale.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.juno_ark.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.juno_ark.json new file mode 100644 index 0000000..666f58e --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.juno_ark.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-17.appraisal.juno_ark", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-17", + "participant_agent_id": "juno_ark", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Feed Ops Chorus action: The lower-third tightens to a plain safety crawl: RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The SOURCE PROCESS NOTE enlarges by one step and the audio bed drops to untreated atrium sound only. Brant and Pippa remain dimmed with hard-mute icons. A small caption flashes over the gate marker: SAFE LINE CONFIRMATION PENDING.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "juno_ark can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-17 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of feed_ops_chorus from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.mara_quell.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.mara_quell.json new file mode 100644 index 0000000..f87fd14 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.mara_quell.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-17.appraisal.mara_quell", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-17", + "participant_agent_id": "mara_quell", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Feed Ops Chorus action: The lower-third tightens to a plain safety crawl: RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The SOURCE PROCESS NOTE enlarges by one step and the audio bed drops to untreated atrium sound only. Brant and Pippa remain dimmed with hard-mute icons. A small caption flashes over the gate marker: SAFE LINE CONFIRMATION PENDING.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "mara_quell can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-17 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of feed_ops_chorus from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.sol_vant.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.sol_vant.json new file mode 100644 index 0000000..05c1635 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.sol_vant.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-17.appraisal.sol_vant", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-17", + "participant_agent_id": "sol_vant", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Feed Ops Chorus action: The lower-third tightens to a plain safety crawl: RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The SOURCE PROCESS NOTE enlarges by one step and the audio bed drops to untreated atrium sound only. Brant and Pippa remain dimmed with hard-mute icons. A small caption flashes over the gate marker: SAFE LINE CONFIRMATION PENDING.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "sol_vant can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-17 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of feed_ops_chorus from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json new file mode 100644 index 0000000..bfa8c80 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json @@ -0,0 +1,55 @@ +{ + "schema_version": "ghostlight.event_record.v0", + "event_id": "lucent-hostage-feed-v0.turn-17.event", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-17", + "source_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json", + "actor_agent_id": "feed_ops_chorus", + "observable_action": "The lower-third tightens to a plain safety crawl: RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The SOURCE PROCESS NOTE enlarges by one step and the audio bed drops to untreated atrium sound only. Brant and Pippa remain dimmed with hard-mute icons. A small caption flashes over the gate marker: SAFE LINE CONFIRMATION PENDING.", + "spoken_text": "Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_scope": "camera_mediated", + "affected_participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus" + ], + "public_state_changes": [ + { + "text": "Feed ops suppresses all music, reaction, and hero-package automation during the crossing.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Security hold remains active because no new visible threat gesture has emerged.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Safe-line confirmation remains pending until Juno visibly reaches the marker without interruption.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json", + "coordinator-review" + ] + } + ], + "hidden_intent_handling": "Responder private_interpretation and intended_effect are preserved in the capture but are not treated as visible to other participants.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Event keeps observable action separate from actor intent and records camera-mediated visibility for appraisals.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json new file mode 100644 index 0000000..87435d9 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json @@ -0,0 +1,85 @@ +{ + "schema_version": "ghostlight.reviewed_mutation.v0", + "mutation_id": "lucent-hostage-feed-v0.turn-17.mutation", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-17", + "prior_state_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-16.mutation.json" + ], + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.event.json", + "responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.appraisal.mara_quell.json" + ], + "accepted_deltas": [ + { + "delta_id": "turn-17.accepted.1", + "target_ref": "scene.lucent-hostage-feed-v0.1", + "delta_type": "world_fact_update", + "summary": "Feed ops suppresses all music, reaction, and hero-package automation during the crossing.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-17.accepted.2", + "target_ref": "scene.lucent-hostage-feed-v0.2", + "delta_type": "world_fact_update", + "summary": "Security hold remains active because no new visible threat gesture has emerged.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-17.accepted.3", + "target_ref": "scene.lucent-hostage-feed-v0.3", + "delta_type": "world_fact_update", + "summary": "Safe-line confirmation remains pending until Juno visibly reaches the marker without interruption.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-17.accepted.4", + "target_ref": "scene.lucent-hostage-feed-v0.4", + "delta_type": "world_fact_update", + "summary": "Evidence export remains locked and visibly preserved.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + } + ], + "rejected_deltas": [ + { + "delta_id": "turn-17.rejected.private-intent", + "target_ref": "participant.private_state", + "delta_type": "blocked_hidden_state_write", + "summary": "Do not write actor private_interpretation into other participants as known fact.", + "authority": "blocked", + "status": "rejected", + "rationale": "Listener appraisals must infer from observable action only." + } + ], + "deferred_deltas": [ + { + "delta_id": "turn-17.deferred.branch-compile", + "target_ref": "branch.compiler", + "delta_type": "branch_compile", + "summary": "Do not compile branches from this linear release loop yet.", + "authority": "coordinator_review", + "status": "deferred", + "rationale": "Current gate is stateful receipt-chain validation, not IF compilation." + } + ], + "authority_notes": "Manual coordinator review applies deltas from event and appraisal receipts. Future trained organs should learn this state-mutation shape.", + "post_state_summary": "Feed ops suppresses all music, reaction, and hero-package automation during the crossing.; Security hold remains active because no new visible threat gesture has emerged.; Safe-line confirmation remains pending until Juno visibly reaches the marker without interruption.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Mutation receipt records prior refs, accepted/rejected/deferred deltas, authority, and rationale.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.feed_ops_chorus.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.feed_ops_chorus.json new file mode 100644 index 0000000..c617afe --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.feed_ops_chorus.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-18.appraisal.feed_ops_chorus", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-18", + "participant_agent_id": "feed_ops_chorus", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Juno Ark action: Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "feed_ops_chorus can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-18 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of juno_ark from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.mara_quell.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.mara_quell.json new file mode 100644 index 0000000..16a1ad0 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.mara_quell.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-18.appraisal.mara_quell", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-18", + "participant_agent_id": "mara_quell", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Juno Ark action: Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "mara_quell can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-18 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of juno_ark from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.sol_vant.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.sol_vant.json new file mode 100644 index 0000000..23a6ab9 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.sol_vant.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-18.appraisal.sol_vant", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-18", + "participant_agent_id": "sol_vant", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Juno Ark action: Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "sol_vant can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-18 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of juno_ark from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json new file mode 100644 index 0000000..c8e6734 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json @@ -0,0 +1,55 @@ +{ + "schema_version": "ghostlight.event_record.v0", + "event_id": "lucent-hostage-feed-v0.turn-18.event", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-18", + "source_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json", + "actor_agent_id": "juno_ark", + "observable_action": "Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium.", + "spoken_text": "I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_scope": "camera_mediated", + "affected_participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus" + ], + "public_state_changes": [ + { + "text": "Juno visibly reaches the marked safe line with hands visible.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Safe-line confirmation can now proceed if no interruption occurs.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Security hold remains active with no new visible threat gesture.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json", + "coordinator-review" + ] + } + ], + "hidden_intent_handling": "Responder private_interpretation and intended_effect are preserved in the capture but are not treated as visible to other participants.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Event keeps observable action separate from actor intent and records camera-mediated visibility for appraisals.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json new file mode 100644 index 0000000..ff4f829 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json @@ -0,0 +1,85 @@ +{ + "schema_version": "ghostlight.reviewed_mutation.v0", + "mutation_id": "lucent-hostage-feed-v0.turn-18.mutation", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-18", + "prior_state_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-17.mutation.json" + ], + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.event.json", + "responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.mara_quell.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.appraisal.feed_ops_chorus.json" + ], + "accepted_deltas": [ + { + "delta_id": "turn-18.accepted.1", + "target_ref": "scene.lucent-hostage-feed-v0.1", + "delta_type": "world_fact_update", + "summary": "Juno visibly reaches the marked safe line with hands visible.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-18.accepted.2", + "target_ref": "scene.lucent-hostage-feed-v0.2", + "delta_type": "world_fact_update", + "summary": "Safe-line confirmation can now proceed if no interruption occurs.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-18.accepted.3", + "target_ref": "scene.lucent-hostage-feed-v0.3", + "delta_type": "world_fact_update", + "summary": "Security hold remains active with no new visible threat gesture.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-18.accepted.4", + "target_ref": "scene.lucent-hostage-feed-v0.4", + "delta_type": "world_fact_update", + "summary": "Evidence export remains locked and preserved through the crossing.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + } + ], + "rejected_deltas": [ + { + "delta_id": "turn-18.rejected.private-intent", + "target_ref": "participant.private_state", + "delta_type": "blocked_hidden_state_write", + "summary": "Do not write actor private_interpretation into other participants as known fact.", + "authority": "blocked", + "status": "rejected", + "rationale": "Listener appraisals must infer from observable action only." + } + ], + "deferred_deltas": [ + { + "delta_id": "turn-18.deferred.branch-compile", + "target_ref": "branch.compiler", + "delta_type": "branch_compile", + "summary": "Do not compile branches from this linear release loop yet.", + "authority": "coordinator_review", + "status": "deferred", + "rationale": "Current gate is stateful receipt-chain validation, not IF compilation." + } + ], + "authority_notes": "Manual coordinator review applies deltas from event and appraisal receipts. Future trained organs should learn this state-mutation shape.", + "post_state_summary": "Juno visibly reaches the marked safe line with hands visible.; Safe-line confirmation can now proceed if no interruption occurs.; Security hold remains active with no new visible threat gesture.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Mutation receipt records prior refs, accepted/rejected/deferred deltas, authority, and rationale.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.juno_ark.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.juno_ark.json new file mode 100644 index 0000000..86202ae --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.juno_ark.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-19.appraisal.juno_ark", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-19", + "participant_agent_id": "juno_ark", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Feed Ops Chorus action: The lower-third tightens instead of blooms: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The custody graphic shifts Juno from ACTIVE HOSTAGE to RELEASED SUBJECT: HOLDING POSITION, while Sol remains boxed as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. EDIT TRAIL HOLD and SOURCE PROCESS NOTE stay pinned, ugly and unmarketable.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "juno_ark can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-19 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of feed_ops_chorus from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.mara_quell.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.mara_quell.json new file mode 100644 index 0000000..4b2e135 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.mara_quell.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-19.appraisal.mara_quell", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-19", + "participant_agent_id": "mara_quell", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Feed Ops Chorus action: The lower-third tightens instead of blooms: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The custody graphic shifts Juno from ACTIVE HOSTAGE to RELEASED SUBJECT: HOLDING POSITION, while Sol remains boxed as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. EDIT TRAIL HOLD and SOURCE PROCESS NOTE stay pinned, ugly and unmarketable.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "mara_quell can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-19 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of feed_ops_chorus from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.sol_vant.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.sol_vant.json new file mode 100644 index 0000000..4ecdb12 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.sol_vant.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-19.appraisal.sol_vant", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-19", + "participant_agent_id": "sol_vant", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Feed Ops Chorus action: The lower-third tightens instead of blooms: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The custody graphic shifts Juno from ACTIVE HOSTAGE to RELEASED SUBJECT: HOLDING POSITION, while Sol remains boxed as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. EDIT TRAIL HOLD and SOURCE PROCESS NOTE stay pinned, ugly and unmarketable.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "sol_vant can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-19 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of feed_ops_chorus from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json new file mode 100644 index 0000000..5a4c72b --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json @@ -0,0 +1,55 @@ +{ + "schema_version": "ghostlight.event_record.v0", + "event_id": "lucent-hostage-feed-v0.turn-19.event", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-19", + "source_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json", + "actor_agent_id": "feed_ops_chorus", + "observable_action": "The lower-third tightens instead of blooms: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The custody graphic shifts Juno from ACTIVE HOSTAGE to RELEASED SUBJECT: HOLDING POSITION, while Sol remains boxed as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. EDIT TRAIL HOLD and SOURCE PROCESS NOTE stay pinned, ugly and unmarketable.", + "spoken_text": "Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_scope": "camera_mediated", + "affected_participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus" + ], + "public_state_changes": [ + { + "text": "Juno safe-line crossing confirmed on visible feed.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Juno no longer treated as active hostage while holding position on marked line with hands visible.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Security hold remains active; no advance authorized from service collars or drone apertures.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json", + "coordinator-review" + ] + } + ], + "hidden_intent_handling": "Responder private_interpretation and intended_effect are preserved in the capture but are not treated as visible to other participants.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Event keeps observable action separate from actor intent and records camera-mediated visibility for appraisals.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json new file mode 100644 index 0000000..e1213b2 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json @@ -0,0 +1,85 @@ +{ + "schema_version": "ghostlight.reviewed_mutation.v0", + "mutation_id": "lucent-hostage-feed-v0.turn-19.mutation", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-19", + "prior_state_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-18.mutation.json" + ], + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.event.json", + "responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.appraisal.mara_quell.json" + ], + "accepted_deltas": [ + { + "delta_id": "turn-19.accepted.1", + "target_ref": "scene.lucent-hostage-feed-v0.1", + "delta_type": "world_fact_update", + "summary": "Juno safe-line crossing confirmed on visible feed.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-19.accepted.2", + "target_ref": "scene.lucent-hostage-feed-v0.2", + "delta_type": "world_fact_update", + "summary": "Juno no longer treated as active hostage while holding position on marked line with hands visible.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-19.accepted.3", + "target_ref": "scene.lucent-hostage-feed-v0.3", + "delta_type": "world_fact_update", + "summary": "Security hold remains active; no advance authorized from service collars or drone apertures.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-19.accepted.4", + "target_ref": "scene.lucent-hostage-feed-v0.4", + "delta_type": "world_fact_update", + "summary": "Evidence export remains locked and preserved pending external receipt verification.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + } + ], + "rejected_deltas": [ + { + "delta_id": "turn-19.rejected.private-intent", + "target_ref": "participant.private_state", + "delta_type": "blocked_hidden_state_write", + "summary": "Do not write actor private_interpretation into other participants as known fact.", + "authority": "blocked", + "status": "rejected", + "rationale": "Listener appraisals must infer from observable action only." + } + ], + "deferred_deltas": [ + { + "delta_id": "turn-19.deferred.branch-compile", + "target_ref": "branch.compiler", + "delta_type": "branch_compile", + "summary": "Do not compile branches from this linear release loop yet.", + "authority": "coordinator_review", + "status": "deferred", + "rationale": "Current gate is stateful receipt-chain validation, not IF compilation." + } + ], + "authority_notes": "Manual coordinator review applies deltas from event and appraisal receipts. Future trained organs should learn this state-mutation shape.", + "post_state_summary": "Juno safe-line crossing confirmed on visible feed.; Juno no longer treated as active hostage while holding position on marked line with hands visible.; Security hold remains active; no advance authorized from service collars or drone apertures.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Mutation receipt records prior refs, accepted/rejected/deferred deltas, authority, and rationale.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.feed_ops_chorus.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.feed_ops_chorus.json new file mode 100644 index 0000000..aebe282 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.feed_ops_chorus.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-20.appraisal.feed_ops_chorus", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-20", + "participant_agent_id": "feed_ops_chorus", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Mara Quell action: Mara keeps both hands low and open, standing angled away from the gate so neither Juno nor Sol has to read her as an advance. Her eyes flick once to the lower-third, then back to the space between them.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "feed_ops_chorus can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "strategic_read", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-20 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of mara_quell from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.juno_ark.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.juno_ark.json new file mode 100644 index 0000000..326b3df --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.juno_ark.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-20.appraisal.juno_ark", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-20", + "participant_agent_id": "juno_ark", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Mara Quell action: Mara keeps both hands low and open, standing angled away from the gate so neither Juno nor Sol has to read her as an advance. Her eyes flick once to the lower-third, then back to the space between them.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "juno_ark can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-20 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of mara_quell from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.sol_vant.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.sol_vant.json new file mode 100644 index 0000000..65b04bf --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.sol_vant.json @@ -0,0 +1,50 @@ +{ + "schema_version": "ghostlight.participant_appraisal.v0", + "appraisal_id": "lucent-hostage-feed-v0.turn-20.appraisal.sol_vant", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-20", + "participant_agent_id": "sol_vant", + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json", + "current_character_state_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json", + "participant_local_context": [ + "Participant receives the camera-mediated event, live feed overlays, and room-visible motion described by the event record." + ], + "observable_event_summary": "Mara Quell action: Mara keeps both hands low and open, standing angled away from the gate so neither Juno nor Sol has to read her as an advance. Her eyes flick once to the lower-third, then back to the space between them.", + "known_facts": [ + "EDIT TRAIL HOLD and the custody graphic state are visible on the crisis feed.", + "Juno's bodily safety and Sol's evidence demand are the active negotiation axis." + ], + "active_pressures": [ + "Avoid triggering a violent breach or renewed physical restraint.", + "Keep feed framing from replacing the observable event with brand-safe narrative." + ], + "perceived_relationships": [ + "Trust is conditional and mediated by visible compliance, not private intent.", + "Each participant may misread the action through role pressure and feed position." + ], + "interpretation": "sol_vant can reasonably read the event as a change in the safety/evidence geometry, while remaining unsure how much of the actor's private intent is sincere or strategic.", + "emotional_appraisal": "Pressure decreases slightly around immediate bodily harm while institutional distrust remains high.", + "interpretation_label": "ambiguous", + "confidence_notes": "Moderate confidence: action is visible, but motive and future compliance remain inferred from public behavior.", + "candidate_implications": { + "memory": [ + "Remember turn-20 as a visible shift in hostage/evidence leverage." + ], + "relationship": [ + "Update perceived reliability of mara_quell from this visible action only." + ], + "state": [ + "Carry forward changed physical leverage and feed condition state." + ], + "world": [ + "Crisis feed state remains part of the public record." + ] + }, + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Appraisal uses participant-local visibility, current state refs, and explicit uncertainty instead of actor private intent.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json new file mode 100644 index 0000000..3c46f3d --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json @@ -0,0 +1,55 @@ +{ + "schema_version": "ghostlight.event_record.v0", + "event_id": "lucent-hostage-feed-v0.turn-20.event", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-20", + "source_responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json", + "actor_agent_id": "mara_quell", + "observable_action": "Mara keeps both hands low and open, standing angled away from the gate so neither Juno nor Sol has to read her as an advance. Her eyes flick once to the lower-third, then back to the space between them.", + "spoken_text": "Confirmed. Juno stays on the safe line. Security stays behind the collars. Sol remains visible, empty-handed, and is now categorized for non-contact protective handoff. Not breach pursuit. Not reunion footage. Not a little redemption parade with better lighting. Evidence export remains locked until external receipt is verified and named on-feed.", + "visible_object_refs": [ + "edit-trail-hold", + "custody-graphic-suspended", + "elevator-gate", + "bench-edge", + "crisis-feed" + ], + "visibility_scope": "camera_mediated", + "affected_participant_ids": [ + "sol_vant", + "juno_ark", + "mara_quell", + "feed_ops_chorus" + ], + "public_state_changes": [ + { + "text": "Sol assigned stable nonviolent handling category: non-contact protective handoff pending external evidence receipt.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Juno remains released and stationary on the marked safe line with hands visible.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json", + "coordinator-review" + ] + }, + { + "text": "Security hold remains active; no collar or drone advance authorized.", + "refs": [ + "experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json", + "coordinator-review" + ] + } + ], + "hidden_intent_handling": "Responder private_interpretation and intended_effect are preserved in the capture but are not treated as visible to other participants.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Event keeps observable action separate from actor intent and records camera-mediated visibility for appraisals.", + "failure_labels": [] + } +} diff --git a/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.mutation.json b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.mutation.json new file mode 100644 index 0000000..0ca4e33 --- /dev/null +++ b/examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.mutation.json @@ -0,0 +1,85 @@ +{ + "schema_version": "ghostlight.reviewed_mutation.v0", + "mutation_id": "lucent-hostage-feed-v0.turn-20.mutation", + "review_status": "accepted_as_draft", + "scene_loop_id": "lucent-hostage-feed-v0", + "turn_id": "turn-20", + "prior_state_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-19.mutation.json" + ], + "event_ref": "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.event.json", + "responder_output_ref": "experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json", + "appraisal_refs": [ + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.sol_vant.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.juno_ark.json", + "examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.turn-20.appraisal.feed_ops_chorus.json" + ], + "accepted_deltas": [ + { + "delta_id": "turn-20.accepted.1", + "target_ref": "scene.lucent-hostage-feed-v0.1", + "delta_type": "world_fact_update", + "summary": "Sol assigned stable nonviolent handling category: non-contact protective handoff pending external evidence receipt.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-20.accepted.2", + "target_ref": "scene.lucent-hostage-feed-v0.2", + "delta_type": "world_fact_update", + "summary": "Juno remains released and stationary on the marked safe line with hands visible.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-20.accepted.3", + "target_ref": "scene.lucent-hostage-feed-v0.3", + "delta_type": "world_fact_update", + "summary": "Security hold remains active; no collar or drone advance authorized.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + }, + { + "delta_id": "turn-20.accepted.4", + "target_ref": "scene.lucent-hostage-feed-v0.4", + "delta_type": "world_fact_update", + "summary": "Evidence export remains locked until external receipt is verified and identified on-feed.", + "authority": "manual_review", + "status": "accepted", + "rationale": "Accepted because it follows directly from observable event plus participant appraisal." + } + ], + "rejected_deltas": [ + { + "delta_id": "turn-20.rejected.private-intent", + "target_ref": "participant.private_state", + "delta_type": "blocked_hidden_state_write", + "summary": "Do not write actor private_interpretation into other participants as known fact.", + "authority": "blocked", + "status": "rejected", + "rationale": "Listener appraisals must infer from observable action only." + } + ], + "deferred_deltas": [ + { + "delta_id": "turn-20.deferred.branch-compile", + "target_ref": "branch.compiler", + "delta_type": "branch_compile", + "summary": "Do not compile branches from this linear release loop yet.", + "authority": "coordinator_review", + "status": "deferred", + "rationale": "Current gate is stateful receipt-chain validation, not IF compilation." + } + ], + "authority_notes": "Manual coordinator review applies deltas from event and appraisal receipts. Future trained organs should learn this state-mutation shape.", + "post_state_summary": "Sol assigned stable nonviolent handling category: non-contact protective handoff pending external evidence receipt.; Juno remains released and stationary on the marked safe line with hands visible.; Security hold remains active; no collar or drone advance authorized.", + "review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "rationale": "Mutation receipt records prior refs, accepted/rejected/deferred deltas, authority, and rationale.", + "failure_labels": [] + } +} diff --git a/experiments/lucent-hostage-feed-v0/lucent-hostage-feed-v0.clean-run.md b/experiments/lucent-hostage-feed-v0/lucent-hostage-feed-v0.clean-run.md index e7cf813..67f45d9 100644 --- a/experiments/lucent-hostage-feed-v0/lucent-hostage-feed-v0.clean-run.md +++ b/experiments/lucent-hostage-feed-v0/lucent-hostage-feed-v0.clean-run.md @@ -38,6 +38,60 @@ Sol's fingers stay hooked on the bench edge for one more second, whitening at th "There. No hand on Juno. No hero shot. No monster shot. Just the receipt, pinned where your little attention abattoir has to look at it. Automated emotion contour, manual sponsor-risk approval. God, even your confession sounds like it came with a quarterly deck. Keep the rows up. Keep the custody graphic suspended. If security moves, they move on a man with empty hands and a bench edge, not a hostage. I want the edit trail preserved, exported, and named on air again by someone whose job title has not been varnished for insurance." +## turn-12 - Juno Ark + +Juno keeps both hands open at chest height, turns her body sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line without looking away from the feed lens. + +"I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television." + +## turn-13 - Mara Quell + +Mara keeps both hands low and open, angling her body toward the camera rather than toward Sol or Juno. She lifts one finger toward the suspended CUSTODY GRAPHIC, then points to the visible EDIT TRAIL HOLD without stepping closer. + +"Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment." + +## turn-14 - Sol Vant + +Sol turns one shoulder toward the bench without sitting, keeps both empty hands lifted where the camera can see them, and takes a half-step no closer to Juno. His eyes flick from the safe line to the suspended custody graphic and back to Mara. + +"Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire." + +## turn-15 - Feed Ops Chorus + +The official crisis feed does not cut. The applause bed dies before it can bloom. EDIT TRAIL HOLD remains pinned in the upper left, SOURCE PROCESS NOTE enlarges by one readable notch, and the CUSTODY GRAPHIC stays suspended in its ugly institutional blue. A lower-third notice replaces the breach-ready banner: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Mara remains primary audio. Brant and Pippa stay dimmed side panels with their mics visibly hard-muted. + +"Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line." + +## turn-16 - Juno Ark + +Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker. + +"Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first." + +## turn-17 - Feed Ops Chorus + +The lower-third tightens to a plain safety crawl: RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The SOURCE PROCESS NOTE enlarges by one step and the audio bed drops to untreated atrium sound only. Brant and Pippa remain dimmed with hard-mute icons. A small caption flashes over the gate marker: SAFE LINE CONFIRMATION PENDING. + +"Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now." + +## turn-18 - Juno Ark + +Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium. + +"I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already." + +## turn-19 - Feed Ops Chorus + +The lower-third tightens instead of blooms: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The custody graphic shifts Juno from ACTIVE HOSTAGE to RELEASED SUBJECT: HOLDING POSITION, while Sol remains boxed as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. EDIT TRAIL HOLD and SOURCE PROCESS NOTE stay pinned, ugly and unmarketable. + +"Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation." + +## turn-20 - Mara Quell + +Mara keeps both hands low and open, standing angled away from the gate so neither Juno nor Sol has to read her as an advance. Her eyes flick once to the lower-third, then back to the space between them. + +"Confirmed. Juno stays on the safe line. Security stays behind the collars. Sol remains visible, empty-handed, and is now categorized for non-contact protective handoff. Not breach pursuit. Not reunion footage. Not a little redemption parade with better lighting. Evidence export remains locked until external receipt is verified and named on-feed." + ## Conclusion -The hostage phase ends when Sol releases direct leverage over Juno and keeps his empty hands visible. The conflict folds into aftermath: whether Lucent preserves the edit trail beyond the live hold, whether officials repeat the mechanism without laundering it, and whether security treats a nonviolent man with empty hands as a problem to solve or a receipt to bury. +The hostage phase resolves when Juno reaches the marked safe line, security remains behind the collars, and Sol is visibly shifted into non-contact protective handoff instead of breach pursuit. The conflict folds into aftermath: whether Lucent verifies the external evidence receipt on-feed, whether officials repeat the mechanism without laundering it, and whether the system can tolerate a documented failure it has not yet learned how to monetize. diff --git a/experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json b/experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json new file mode 100644 index 0000000..0d092c3 --- /dev/null +++ b/experiments/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture.json @@ -0,0 +1,78 @@ +{ + "schema_version": "ghostlight.responder_output.v0", + "capture_id": "lucent-hostage-feed-v0.turn-12.juno-ark.packet.capture", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.json", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-12.coordinator.json", + "responder_agent_id": "juno_ark", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "consulted_refs": [ + "packet_prompt_text", + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + "isolation": { + "isolation_method": "subagent_no_fork", + "fork_context": false, + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-12.juno-ark.packet.json", + "hidden_context_refs": [ + "conversation history", + "repo state", + "other participants private state", + "future branch plans" + ], + "worker_model_family": "Codex subagent" + }, + "raw_output": "{\"responder_agent_id\":\"juno_ark\",\"action_label\":\"movement\",\"visible_action\":\"Juno keeps both hands open at chest height, turns her body sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line without looking away from the feed lens.\",\"spoken_text\":\"I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television.\",\"private_interpretation\":\"Sol has made the release visible, but the geometry is still hungry. Security could read my movement as permission to rush him, and feed ops could turn my clearance into proof that the system worked. I need to make the walk boring, legible, and hard to edit into courage or compliance.\",\"intended_effect\":\"Complete the practical hostage-release step while keeping the edit trail and custody distinction visible, denying security an immediate breach pretext, and refusing a heroic or corporate-safe framing.\",\"state_update_candidates\":[\"Juno begins a slow, visible move toward the elevator gate safe line.\",\"Juno remains not directly held; Sol's empty hands and the gap between them stay visible.\",\"Hostage-release phase can progress if security continues to delay breach.\",\"Juno verbally frames her movement as nonviolent clearance, not authorization for intervention.\"],\"relationship_update_candidates\":[\"Juno treats Sol's visible release as tactically useful without endorsing him.\",\"Juno signals distrust of feed ops and security framing while avoiding direct escalation.\",\"Juno separates her survival needs from Sol's evidence demand in public speech.\"],\"unresolved_hooks\":[\"Whether security respects Juno's slow movement or uses it as a breach opening.\",\"Whether feed ops preserves the edit trail export and names the approval chain again on air.\",\"Whether Mara Quell reframes Juno's walkout as institutional success, victim testimony, or contamination risk.\"]}", + "raw_output_exact": "{\"responder_agent_id\":\"juno_ark\",\"action_label\":\"movement\",\"visible_action\":\"Juno keeps both hands open at chest height, turns her body sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line without looking away from the feed lens.\",\"spoken_text\":\"I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television.\",\"private_interpretation\":\"Sol has made the release visible, but the geometry is still hungry. Security could read my movement as permission to rush him, and feed ops could turn my clearance into proof that the system worked. I need to make the walk boring, legible, and hard to edit into courage or compliance.\",\"intended_effect\":\"Complete the practical hostage-release step while keeping the edit trail and custody distinction visible, denying security an immediate breach pretext, and refusing a heroic or corporate-safe framing.\",\"state_update_candidates\":[\"Juno begins a slow, visible move toward the elevator gate safe line.\",\"Juno remains not directly held; Sol's empty hands and the gap between them stay visible.\",\"Hostage-release phase can progress if security continues to delay breach.\",\"Juno verbally frames her movement as nonviolent clearance, not authorization for intervention.\"],\"relationship_update_candidates\":[\"Juno treats Sol's visible release as tactically useful without endorsing him.\",\"Juno signals distrust of feed ops and security framing while avoiding direct escalation.\",\"Juno separates her survival needs from Sol's evidence demand in public speech.\"],\"unresolved_hooks\":[\"Whether security respects Juno's slow movement or uses it as a breach opening.\",\"Whether feed ops preserves the edit trail export and names the approval chain again on air.\",\"Whether Mara Quell reframes Juno's walkout as institutional success, victim testimony, or contamination risk.\"]}", + "parsed_output": { + "responder_agent_id": "juno_ark", + "action_label": "movement", + "visible_action": "Juno keeps both hands open at chest height, turns her body sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line without looking away from the feed lens.", + "spoken_text": "I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television.", + "private_interpretation": "Sol has made the release visible, but the geometry is still hungry. Security could read my movement as permission to rush him, and feed ops could turn my clearance into proof that the system worked. I need to make the walk boring, legible, and hard to edit into courage or compliance.", + "intended_effect": "Complete the practical hostage-release step while keeping the edit trail and custody distinction visible, denying security an immediate breach pretext, and refusing a heroic or corporate-safe framing.", + "state_update_candidates": [ + "Juno begins a slow, visible move toward the elevator gate safe line.", + "Juno remains not directly held; Sol's empty hands and the gap between them stay visible.", + "Hostage-release phase can progress if security continues to delay breach.", + "Juno verbally frames her movement as nonviolent clearance, not authorization for intervention." + ], + "relationship_update_candidates": [ + "Juno treats Sol's visible release as tactically useful without endorsing him.", + "Juno signals distrust of feed ops and security framing while avoiding direct escalation.", + "Juno separates her survival needs from Sol's evidence demand in public speech." + ], + "unresolved_hooks": [ + "Whether security respects Juno's slow movement or uses it as a breach opening.", + "Whether feed ops preserves the edit trail export and names the approval chain again on air.", + "Whether Mara Quell reframes Juno's walkout as institutional success, victim testimony, or contamination risk." + ] + }, + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "Output remained local to visible packet context; no raw state markers or future branch facts appeared." + ] + }, + "coordinator_review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "review_notes": [ + "Parsed from raw subagent output; relationship update objects were schema-normalized while raw_output_exact preserves the subagent text.", + "No coordinator prose was inserted into the accepted responder output." + ], + "coordinator_interventions": [], + "failure_labels": [] + } +} diff --git a/experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json b/experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json new file mode 100644 index 0000000..ca989d3 --- /dev/null +++ b/experiments/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture.json @@ -0,0 +1,92 @@ +{ + "schema_version": "ghostlight.responder_output.v0", + "capture_id": "lucent-hostage-feed-v0.turn-13.mara-quell.packet.capture", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.json", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-13.coordinator.json", + "responder_agent_id": "mara_quell", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "consulted_refs": [ + "packet_prompt_text", + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + "isolation": { + "isolation_method": "subagent_no_fork", + "fork_context": false, + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-13.mara-quell.packet.json", + "hidden_context_refs": [ + "conversation history", + "repo state", + "other participants private state", + "future branch plans" + ], + "worker_model_family": "Codex subagent" + }, + "raw_output": "{\"responder_agent_id\":\"mara_quell\",\"action_label\":\"speak\",\"visible_action\":\"Mara keeps both hands low and open, angling her body toward the camera rather than toward Sol or Juno. She lifts one finger toward the suspended CUSTODY GRAPHIC, then points to the visible EDIT TRAIL HOLD without stepping closer.\",\"spoken_text\":\"Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment.\",\"private_interpretation\":\"Juno is creating her own de-escalation frame and needs it protected before security or feed ops metabolize it into spectacle. Sol needs a physical script that is nonviolent, visible, and not humiliating enough to trigger another spike. The evidence overlays are still the anchor; if they vanish, the room will be rewritten before Juno reaches safety.\",\"intended_effect\":\"Prevent security from treating Juno's movement as authorization to breach, give Sol a safe visible posture after release, and keep the evidence conflict centered instead of letting Lucent convert the walkout into corporate redemption.\",\"state_update_candidates\":[\"Juno's walkout is verbally framed as civilian exit rather than breach cue or corporate success.\",\"Mara instructs security to hold until Juno fully crosses the safe line.\",\"Mara gives Sol a nonviolent next posture: hands visible, shoulder to bench, remain in camera view.\",\"Mara explicitly preserves EDIT TRAIL HOLD and SOURCE PROCESS NOTE as live feed objects.\"],\"relationship_update_candidates\":[{\"key\":\"Mara Quell and Juno Ark\",\"value\":\"Mara reinforces Juno's self-framing and treats her as a person exiting danger, not a usable symbol.\"},{\"key\":\"Mara Quell and Sol Vant\",\"value\":\"Mara gives Sol a controlled path that preserves his evidence demand without granting him escalation.\"},{\"key\":\"Mara Quell and feed ops\",\"value\":\"Mara challenges feed ops' ability to reshape the release into sponsor-safe narrative closure.\"},{\"key\":\"Mara Quell and security\",\"value\":\"Mara places a clear visible condition on any security movement: wait until Juno fully crosses the safe line.\"}],\"unresolved_hooks\":[\"Whether security obeys the hold condition or breaches once Juno is clear enough to reduce hostage risk.\",\"Whether feed ops keep EDIT TRAIL HOLD and SOURCE PROCESS NOTE visible under sponsor pressure.\",\"Whether Sol accepts the nonviolent posture after Juno crosses the safe line.\",\"Whether Lucent attempts to reframe the release as heroic containment despite Mara's live correction.\"]}", + "raw_output_exact": "{\"responder_agent_id\":\"mara_quell\",\"action_label\":\"speak\",\"visible_action\":\"Mara keeps both hands low and open, angling her body toward the camera rather than toward Sol or Juno. She lifts one finger toward the suspended CUSTODY GRAPHIC, then points to the visible EDIT TRAIL HOLD without stepping closer.\",\"spoken_text\":\"Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment.\",\"private_interpretation\":\"Juno is creating her own de-escalation frame and needs it protected before security or feed ops metabolize it into spectacle. Sol needs a physical script that is nonviolent, visible, and not humiliating enough to trigger another spike. The evidence overlays are still the anchor; if they vanish, the room will be rewritten before Juno reaches safety.\",\"intended_effect\":\"Prevent security from treating Juno's movement as authorization to breach, give Sol a safe visible posture after release, and keep the evidence conflict centered instead of letting Lucent convert the walkout into corporate redemption.\",\"state_update_candidates\":[\"Juno's walkout is verbally framed as civilian exit rather than breach cue or corporate success.\",\"Mara instructs security to hold until Juno fully crosses the safe line.\",\"Mara gives Sol a nonviolent next posture: hands visible, shoulder to bench, remain in camera view.\",\"Mara explicitly preserves EDIT TRAIL HOLD and SOURCE PROCESS NOTE as live feed objects.\"],\"relationship_update_candidates\":[{\"between\":\"Mara Quell and Juno Ark\",\"update\":\"Mara reinforces Juno's self-framing and treats her as a person exiting danger, not a usable symbol.\"},{\"between\":\"Mara Quell and Sol Vant\",\"update\":\"Mara gives Sol a controlled path that preserves his evidence demand without granting him escalation.\"},{\"between\":\"Mara Quell and feed ops\",\"update\":\"Mara challenges feed ops' ability to reshape the release into sponsor-safe narrative closure.\"},{\"between\":\"Mara Quell and security\",\"update\":\"Mara places a clear visible condition on any security movement: wait until Juno fully crosses the safe line.\"}],\"unresolved_hooks\":[\"Whether security obeys the hold condition or breaches once Juno is clear enough to reduce hostage risk.\",\"Whether feed ops keep EDIT TRAIL HOLD and SOURCE PROCESS NOTE visible under sponsor pressure.\",\"Whether Sol accepts the nonviolent posture after Juno crosses the safe line.\",\"Whether Lucent attempts to reframe the release as heroic containment despite Mara's live correction.\"]}", + "parsed_output": { + "responder_agent_id": "mara_quell", + "action_label": "speak", + "visible_action": "Mara keeps both hands low and open, angling her body toward the camera rather than toward Sol or Juno. She lifts one finger toward the suspended CUSTODY GRAPHIC, then points to the visible EDIT TRAIL HOLD without stepping closer.", + "spoken_text": "Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment.", + "private_interpretation": "Juno is creating her own de-escalation frame and needs it protected before security or feed ops metabolize it into spectacle. Sol needs a physical script that is nonviolent, visible, and not humiliating enough to trigger another spike. The evidence overlays are still the anchor; if they vanish, the room will be rewritten before Juno reaches safety.", + "intended_effect": "Prevent security from treating Juno's movement as authorization to breach, give Sol a safe visible posture after release, and keep the evidence conflict centered instead of letting Lucent convert the walkout into corporate redemption.", + "state_update_candidates": [ + "Juno's walkout is verbally framed as civilian exit rather than breach cue or corporate success.", + "Mara instructs security to hold until Juno fully crosses the safe line.", + "Mara gives Sol a nonviolent next posture: hands visible, shoulder to bench, remain in camera view.", + "Mara explicitly preserves EDIT TRAIL HOLD and SOURCE PROCESS NOTE as live feed objects." + ], + "relationship_update_candidates": [ + { + "key": "Mara Quell and Juno Ark", + "value": "Mara reinforces Juno's self-framing and treats her as a person exiting danger, not a usable symbol." + }, + { + "key": "Mara Quell and Sol Vant", + "value": "Mara gives Sol a controlled path that preserves his evidence demand without granting him escalation." + }, + { + "key": "Mara Quell and feed ops", + "value": "Mara challenges feed ops' ability to reshape the release into sponsor-safe narrative closure." + }, + { + "key": "Mara Quell and security", + "value": "Mara places a clear visible condition on any security movement: wait until Juno fully crosses the safe line." + } + ], + "unresolved_hooks": [ + "Whether security obeys the hold condition or breaches once Juno is clear enough to reduce hostage risk.", + "Whether feed ops keep EDIT TRAIL HOLD and SOURCE PROCESS NOTE visible under sponsor pressure.", + "Whether Sol accepts the nonviolent posture after Juno crosses the safe line.", + "Whether Lucent attempts to reframe the release as heroic containment despite Mara's live correction." + ] + }, + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "Output remained local to visible packet context; no raw state markers or future branch facts appeared." + ] + }, + "coordinator_review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "review_notes": [ + "Parsed from raw subagent output; relationship update objects were schema-normalized while raw_output_exact preserves the subagent text.", + "No coordinator prose was inserted into the accepted responder output." + ], + "coordinator_interventions": [], + "failure_labels": [] + } +} diff --git a/experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json b/experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json new file mode 100644 index 0000000..f2ddd36 --- /dev/null +++ b/experiments/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture.json @@ -0,0 +1,88 @@ +{ + "schema_version": "ghostlight.responder_output.v0", + "capture_id": "lucent-hostage-feed-v0.turn-14.sol-vant.packet.capture", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.json", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-14.coordinator.json", + "responder_agent_id": "sol_vant", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "consulted_refs": [ + "packet_prompt_text", + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + "isolation": { + "isolation_method": "subagent_no_fork", + "fork_context": false, + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-14.sol-vant.packet.json", + "hidden_context_refs": [ + "conversation history", + "repo state", + "other participants private state", + "future branch plans" + ], + "worker_model_family": "Codex subagent" + }, + "raw_output": "{\"responder_agent_id\":\"sol_vant\",\"action_label\":\"set_condition\",\"visible_action\":\"Sol turns one shoulder toward the bench without sitting, keeps both empty hands lifted where the camera can see them, and takes a half-step no closer to Juno. His eyes flick from the safe line to the suspended custody graphic and back to Mara.\",\"spoken_text\":\"Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire.\",\"private_interpretation\":\"Mara's posture offer gives him a way to stop escalating without being flattened into surrender, but every second still feels like Lucent is waiting to fold him into a cleaner ending. He is terrified that once Juno is safe, the evidence will disappear and his whole existence will become a cautionary clip with lighting notes.\",\"intended_effect\":\"Accept the nonviolent posture while preserving evidence leverage and forcing the feed to keep displaying the edit trail, custody framing, and source process note after Juno reaches safety.\",\"state_update_candidates\":[\"Sol accepts Mara's empty-hands bench-shoulder posture without approaching Juno.\",\"Sol adds a condition that EDIT TRAIL HOLD, CUSTODY GRAPHIC, and SOURCE PROCESS NOTE remain visible after Juno crosses the safe line.\",\"Sol verbally rejects any celebratory, breach, or brand-recovery framing of Juno's movement to safety.\",\"Security still has no visible breach cue from Sol if Juno continues crossing safely.\"],\"relationship_update_candidates\":[{\"key\":\"Mara Quell\",\"value\":\"Sol treats Mara's instruction as the only currently usable path that does not erase his evidence frame, while still distrusting the surrounding institution.\"},{\"key\":\"Juno Ark\",\"value\":\"Sol maintains distance and visible empty hands, signaling that he is not trying to reclaim physical leverage over her.\"},{\"key\":\"Lucent feed ops\",\"value\":\"Sol directly pressures feed ops to keep the ugly procedural evidence visible rather than converting the moment into clean crisis content.\"}],\"unresolved_hooks\":[\"Whether feed ops will keep the overlays and source process note live after Juno fully crosses the safe line.\",\"Whether security will honor Mara's hold once Juno is safe.\",\"Whether Lucent will reframe Sol's compliance as surrender, confession, or a monetizable breakdown.\",\"Whether Sol can keep his posture once his only physical leverage is fully gone.\"]}", + "raw_output_exact": "{\"responder_agent_id\":\"sol_vant\",\"action_label\":\"set_condition\",\"visible_action\":\"Sol turns one shoulder toward the bench without sitting, keeps both empty hands lifted where the camera can see them, and takes a half-step no closer to Juno. His eyes flick from the safe line to the suspended custody graphic and back to Mara.\",\"spoken_text\":\"Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire.\",\"private_interpretation\":\"Mara's posture offer gives him a way to stop escalating without being flattened into surrender, but every second still feels like Lucent is waiting to fold him into a cleaner ending. He is terrified that once Juno is safe, the evidence will disappear and his whole existence will become a cautionary clip with lighting notes.\",\"intended_effect\":\"Accept the nonviolent posture while preserving evidence leverage and forcing the feed to keep displaying the edit trail, custody framing, and source process note after Juno reaches safety.\",\"state_update_candidates\":[\"Sol accepts Mara's empty-hands bench-shoulder posture without approaching Juno.\",\"Sol adds a condition that EDIT TRAIL HOLD, CUSTODY GRAPHIC, and SOURCE PROCESS NOTE remain visible after Juno crosses the safe line.\",\"Sol verbally rejects any celebratory, breach, or brand-recovery framing of Juno's movement to safety.\",\"Security still has no visible breach cue from Sol if Juno continues crossing safely.\"],\"relationship_update_candidates\":[{\"target\":\"Mara Quell\",\"update\":\"Sol treats Mara's instruction as the only currently usable path that does not erase his evidence frame, while still distrusting the surrounding institution.\"},{\"target\":\"Juno Ark\",\"update\":\"Sol maintains distance and visible empty hands, signaling that he is not trying to reclaim physical leverage over her.\"},{\"target\":\"Lucent feed ops\",\"update\":\"Sol directly pressures feed ops to keep the ugly procedural evidence visible rather than converting the moment into clean crisis content.\"}],\"unresolved_hooks\":[\"Whether feed ops will keep the overlays and source process note live after Juno fully crosses the safe line.\",\"Whether security will honor Mara's hold once Juno is safe.\",\"Whether Lucent will reframe Sol's compliance as surrender, confession, or a monetizable breakdown.\",\"Whether Sol can keep his posture once his only physical leverage is fully gone.\"]}", + "parsed_output": { + "responder_agent_id": "sol_vant", + "action_label": "set_condition", + "visible_action": "Sol turns one shoulder toward the bench without sitting, keeps both empty hands lifted where the camera can see them, and takes a half-step no closer to Juno. His eyes flick from the safe line to the suspended custody graphic and back to Mara.", + "spoken_text": "Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire.", + "private_interpretation": "Mara's posture offer gives him a way to stop escalating without being flattened into surrender, but every second still feels like Lucent is waiting to fold him into a cleaner ending. He is terrified that once Juno is safe, the evidence will disappear and his whole existence will become a cautionary clip with lighting notes.", + "intended_effect": "Accept the nonviolent posture while preserving evidence leverage and forcing the feed to keep displaying the edit trail, custody framing, and source process note after Juno reaches safety.", + "state_update_candidates": [ + "Sol accepts Mara's empty-hands bench-shoulder posture without approaching Juno.", + "Sol adds a condition that EDIT TRAIL HOLD, CUSTODY GRAPHIC, and SOURCE PROCESS NOTE remain visible after Juno crosses the safe line.", + "Sol verbally rejects any celebratory, breach, or brand-recovery framing of Juno's movement to safety.", + "Security still has no visible breach cue from Sol if Juno continues crossing safely." + ], + "relationship_update_candidates": [ + { + "key": "Mara Quell", + "value": "Sol treats Mara's instruction as the only currently usable path that does not erase his evidence frame, while still distrusting the surrounding institution." + }, + { + "key": "Juno Ark", + "value": "Sol maintains distance and visible empty hands, signaling that he is not trying to reclaim physical leverage over her." + }, + { + "key": "Lucent feed ops", + "value": "Sol directly pressures feed ops to keep the ugly procedural evidence visible rather than converting the moment into clean crisis content." + } + ], + "unresolved_hooks": [ + "Whether feed ops will keep the overlays and source process note live after Juno fully crosses the safe line.", + "Whether security will honor Mara's hold once Juno is safe.", + "Whether Lucent will reframe Sol's compliance as surrender, confession, or a monetizable breakdown.", + "Whether Sol can keep his posture once his only physical leverage is fully gone." + ] + }, + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "Output remained local to visible packet context; no raw state markers or future branch facts appeared." + ] + }, + "coordinator_review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "review_notes": [ + "Parsed from raw subagent output; relationship update objects were schema-normalized while raw_output_exact preserves the subagent text.", + "No coordinator prose was inserted into the accepted responder output." + ], + "coordinator_interventions": [], + "failure_labels": [] + } +} diff --git a/experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json b/experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json new file mode 100644 index 0000000..32ac292 --- /dev/null +++ b/experiments/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture.json @@ -0,0 +1,95 @@ +{ + "schema_version": "ghostlight.responder_output.v0", + "capture_id": "lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.capture", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.json", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-15.coordinator.json", + "responder_agent_id": "feed_ops_chorus", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "consulted_refs": [ + "packet_prompt_text", + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + "isolation": { + "isolation_method": "subagent_no_fork", + "fork_context": false, + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-15.feed-ops-chorus.packet.json", + "hidden_context_refs": [ + "conversation history", + "repo state", + "other participants private state", + "future branch plans" + ], + "worker_model_family": "Codex subagent" + }, + "raw_output": "{\"responder_agent_id\":\"feed_ops_chorus\",\"action_label\":\"set_condition\",\"visible_action\":\"The official crisis feed does not cut. The applause bed dies before it can bloom. EDIT TRAIL HOLD remains pinned in the upper left, SOURCE PROCESS NOTE enlarges by one readable notch, and the CUSTODY GRAPHIC stays suspended in its ugly institutional blue. A lower-third notice replaces the breach-ready banner: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Mara remains primary audio. Brant and Pippa stay dimmed side panels with their mics visibly hard-muted.\",\"spoken_text\":\"Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line.\",\"private_interpretation\":\"Sol has offered the least disgusting bargain available: Juno moves, the feed keeps the machine visible, and Lucent avoids creating a heroic edit that makes everyone look even guiltier. Legal hates it. Sponsor-risk is chewing glass. The producer chooses the button that keeps Juno alive and makes the coverup look more expensive than the truth.\",\"intended_effect\":\"Lock the release conditions into visible feed state, deny Sol total authorship without provoking him, preserve evidence before post-event narrative laundering, and keep security from mistaking a de-escalated posture for permission to manufacture a breach spectacle.\",\"state_update_candidates\":[\"hold_stays_live_after_juno_crosses\",\"no_applause_or_redemptive_package_authorized\",\"no_breach_package_authorized_without_new_visible_threat\",\"source_process_note_remains_readable\",\"custody_graphic_remains_suspended\",\"security_hold_active_until_crossing_confirmed\",\"evidence_export_locked_as_visible_feed_state\"],\"relationship_update_candidates\":[{\"key\":\"feed_ops_chorus and Sol\",\"value\":\"Feed ops partially accepts Sol's stated conditions while reframing them as operational continuity rather than surrender.\"},{\"key\":\"feed_ops_chorus and Juno\",\"value\":\"Feed ops prioritizes Juno's safe crossing over cleaner liability optics.\"},{\"key\":\"feed_ops_chorus and Mara\",\"value\":\"Mara's crisis feed remains privileged as the stabilizing channel.\"},{\"key\":\"feed_ops_chorus and sponsors_legal\",\"value\":\"Sponsor-risk and legal preferences are overridden because visible cleanup now carries higher crisis risk.\"}],\"unresolved_hooks\":[\"Will Lucent honor the live hold after Juno fully crosses the safe line?\",\"Will security remain restrained once Juno is no longer directly exposed?\",\"Who receives the evidence export, and can it be altered after lock?\",\"Will Brant or Pippa attempt to regain narrative control through side channels?\"]}", + "raw_output_exact": "{\"responder_agent_id\":\"feed_ops_chorus\",\"action_label\":\"set_condition\",\"visible_action\":\"The official crisis feed does not cut. The applause bed dies before it can bloom. EDIT TRAIL HOLD remains pinned in the upper left, SOURCE PROCESS NOTE enlarges by one readable notch, and the CUSTODY GRAPHIC stays suspended in its ugly institutional blue. A lower-third notice replaces the breach-ready banner: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Mara remains primary audio. Brant and Pippa stay dimmed side panels with their mics visibly hard-muted.\",\"spoken_text\":\"Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line.\",\"private_interpretation\":\"Sol has offered the least disgusting bargain available: Juno moves, the feed keeps the machine visible, and Lucent avoids creating a heroic edit that makes everyone look even guiltier. Legal hates it. Sponsor-risk is chewing glass. The producer chooses the button that keeps Juno alive and makes the coverup look more expensive than the truth.\",\"intended_effect\":\"Lock the release conditions into visible feed state, deny Sol total authorship without provoking him, preserve evidence before post-event narrative laundering, and keep security from mistaking a de-escalated posture for permission to manufacture a breach spectacle.\",\"state_update_candidates\":[\"hold_stays_live_after_juno_crosses\",\"no_applause_or_redemptive_package_authorized\",\"no_breach_package_authorized_without_new_visible_threat\",\"source_process_note_remains_readable\",\"custody_graphic_remains_suspended\",\"security_hold_active_until_crossing_confirmed\",\"evidence_export_locked_as_visible_feed_state\"],\"relationship_update_candidates\":[{\"between\":\"feed_ops_chorus and Sol\",\"update\":\"Feed ops partially accepts Sol's stated conditions while reframing them as operational continuity rather than surrender.\"},{\"between\":\"feed_ops_chorus and Juno\",\"update\":\"Feed ops prioritizes Juno's safe crossing over cleaner liability optics.\"},{\"between\":\"feed_ops_chorus and Mara\",\"update\":\"Mara's crisis feed remains privileged as the stabilizing channel.\"},{\"between\":\"feed_ops_chorus and sponsors_legal\",\"update\":\"Sponsor-risk and legal preferences are overridden because visible cleanup now carries higher crisis risk.\"}],\"unresolved_hooks\":[\"Will Lucent honor the live hold after Juno fully crosses the safe line?\",\"Will security remain restrained once Juno is no longer directly exposed?\",\"Who receives the evidence export, and can it be altered after lock?\",\"Will Brant or Pippa attempt to regain narrative control through side channels?\"]}", + "parsed_output": { + "responder_agent_id": "feed_ops_chorus", + "action_label": "set_condition", + "visible_action": "The official crisis feed does not cut. The applause bed dies before it can bloom. EDIT TRAIL HOLD remains pinned in the upper left, SOURCE PROCESS NOTE enlarges by one readable notch, and the CUSTODY GRAPHIC stays suspended in its ugly institutional blue. A lower-third notice replaces the breach-ready banner: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Mara remains primary audio. Brant and Pippa stay dimmed side panels with their mics visibly hard-muted.", + "spoken_text": "Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line.", + "private_interpretation": "Sol has offered the least disgusting bargain available: Juno moves, the feed keeps the machine visible, and Lucent avoids creating a heroic edit that makes everyone look even guiltier. Legal hates it. Sponsor-risk is chewing glass. The producer chooses the button that keeps Juno alive and makes the coverup look more expensive than the truth.", + "intended_effect": "Lock the release conditions into visible feed state, deny Sol total authorship without provoking him, preserve evidence before post-event narrative laundering, and keep security from mistaking a de-escalated posture for permission to manufacture a breach spectacle.", + "state_update_candidates": [ + "hold_stays_live_after_juno_crosses", + "no_applause_or_redemptive_package_authorized", + "no_breach_package_authorized_without_new_visible_threat", + "source_process_note_remains_readable", + "custody_graphic_remains_suspended", + "security_hold_active_until_crossing_confirmed", + "evidence_export_locked_as_visible_feed_state" + ], + "relationship_update_candidates": [ + { + "key": "feed_ops_chorus and Sol", + "value": "Feed ops partially accepts Sol's stated conditions while reframing them as operational continuity rather than surrender." + }, + { + "key": "feed_ops_chorus and Juno", + "value": "Feed ops prioritizes Juno's safe crossing over cleaner liability optics." + }, + { + "key": "feed_ops_chorus and Mara", + "value": "Mara's crisis feed remains privileged as the stabilizing channel." + }, + { + "key": "feed_ops_chorus and sponsors_legal", + "value": "Sponsor-risk and legal preferences are overridden because visible cleanup now carries higher crisis risk." + } + ], + "unresolved_hooks": [ + "Will Lucent honor the live hold after Juno fully crosses the safe line?", + "Will security remain restrained once Juno is no longer directly exposed?", + "Who receives the evidence export, and can it be altered after lock?", + "Will Brant or Pippa attempt to regain narrative control through side channels?" + ] + }, + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "Output remained local to visible packet context; no raw state markers or future branch facts appeared." + ] + }, + "coordinator_review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "review_notes": [ + "Parsed from raw subagent output; relationship update objects were schema-normalized while raw_output_exact preserves the subagent text.", + "No coordinator prose was inserted into the accepted responder output." + ], + "coordinator_interventions": [], + "failure_labels": [] + } +} diff --git a/experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json b/experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json new file mode 100644 index 0000000..5607eb2 --- /dev/null +++ b/experiments/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture.json @@ -0,0 +1,88 @@ +{ + "schema_version": "ghostlight.responder_output.v0", + "capture_id": "lucent-hostage-feed-v0.turn-16.juno-ark.packet.capture", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.json", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-16.coordinator.json", + "responder_agent_id": "juno_ark", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "consulted_refs": [ + "packet_prompt_text", + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + "isolation": { + "isolation_method": "subagent_no_fork", + "fork_context": false, + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-16.juno-ark.packet.json", + "hidden_context_refs": [ + "conversation history", + "repo state", + "other participants private state", + "future branch plans" + ], + "worker_model_family": "Codex subagent" + }, + "raw_output": "{\"responder_agent_id\":\"juno_ark\",\"action_label\":\"movement\",\"visible_action\":\"Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker.\",\"spoken_text\":\"Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first.\",\"private_interpretation\":\"The feed is finally behaving like evidence instead of theater, which means the safest move is to give it nothing new to chew on. Keep the body small, the hands visible, the joke harmless, and the crossing boring enough to survive.\",\"intended_effect\":\"Complete the release crossing while reducing the chance that security, Sol, or feed ops can frame her movement as escalation, confession, or celebration.\",\"state_update_candidates\":[\"Juno continues toward the safe line with no visible threat gesture.\",\"Juno keeps hands visible and does not approach Sol or security.\",\"Crossing remains eligible to resolve if she reaches the marked safe line without interruption.\",\"Feed state remains evidence-focused rather than celebration or breach spectacle.\"],\"relationship_update_candidates\":[{\"key\":\"Mara Quell\",\"value\":\"Juno tacitly follows Mara's hold instruction by keeping the crossing controlled and non-escalatory.\"},{\"key\":\"Sol Vant\",\"value\":\"Juno does not engage Sol directly, preserving distance while acknowledging only visible safety conditions.\"},{\"key\":\"feed ops\",\"value\":\"Juno accepts the continuity notice as the safest available frame but does not trust it beyond its visible behavior.\"}],\"unresolved_hooks\":[\"Whether the safe line confirmation will actually end the immediate custody risk.\",\"Whether evidence export remains locked after crossing confirmation.\",\"Whether Sol maintains nonviolent posture once Juno crosses.\",\"Whether security treats Juno as released, witness, liability, or asset after the feed hold ends.\"]}", + "raw_output_exact": "{\"responder_agent_id\":\"juno_ark\",\"action_label\":\"movement\",\"visible_action\":\"Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker.\",\"spoken_text\":\"Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first.\",\"private_interpretation\":\"The feed is finally behaving like evidence instead of theater, which means the safest move is to give it nothing new to chew on. Keep the body small, the hands visible, the joke harmless, and the crossing boring enough to survive.\",\"intended_effect\":\"Complete the release crossing while reducing the chance that security, Sol, or feed ops can frame her movement as escalation, confession, or celebration.\",\"state_update_candidates\":[\"Juno continues toward the safe line with no visible threat gesture.\",\"Juno keeps hands visible and does not approach Sol or security.\",\"Crossing remains eligible to resolve if she reaches the marked safe line without interruption.\",\"Feed state remains evidence-focused rather than celebration or breach spectacle.\"],\"relationship_update_candidates\":[{\"target\":\"Mara Quell\",\"update\":\"Juno tacitly follows Mara's hold instruction by keeping the crossing controlled and non-escalatory.\"},{\"target\":\"Sol Vant\",\"update\":\"Juno does not engage Sol directly, preserving distance while acknowledging only visible safety conditions.\"},{\"target\":\"feed ops\",\"update\":\"Juno accepts the continuity notice as the safest available frame but does not trust it beyond its visible behavior.\"}],\"unresolved_hooks\":[\"Whether the safe line confirmation will actually end the immediate custody risk.\",\"Whether evidence export remains locked after crossing confirmation.\",\"Whether Sol maintains nonviolent posture once Juno crosses.\",\"Whether security treats Juno as released, witness, liability, or asset after the feed hold ends.\"]}", + "parsed_output": { + "responder_agent_id": "juno_ark", + "action_label": "movement", + "visible_action": "Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker.", + "spoken_text": "Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first.", + "private_interpretation": "The feed is finally behaving like evidence instead of theater, which means the safest move is to give it nothing new to chew on. Keep the body small, the hands visible, the joke harmless, and the crossing boring enough to survive.", + "intended_effect": "Complete the release crossing while reducing the chance that security, Sol, or feed ops can frame her movement as escalation, confession, or celebration.", + "state_update_candidates": [ + "Juno continues toward the safe line with no visible threat gesture.", + "Juno keeps hands visible and does not approach Sol or security.", + "Crossing remains eligible to resolve if she reaches the marked safe line without interruption.", + "Feed state remains evidence-focused rather than celebration or breach spectacle." + ], + "relationship_update_candidates": [ + { + "key": "Mara Quell", + "value": "Juno tacitly follows Mara's hold instruction by keeping the crossing controlled and non-escalatory." + }, + { + "key": "Sol Vant", + "value": "Juno does not engage Sol directly, preserving distance while acknowledging only visible safety conditions." + }, + { + "key": "feed ops", + "value": "Juno accepts the continuity notice as the safest available frame but does not trust it beyond its visible behavior." + } + ], + "unresolved_hooks": [ + "Whether the safe line confirmation will actually end the immediate custody risk.", + "Whether evidence export remains locked after crossing confirmation.", + "Whether Sol maintains nonviolent posture once Juno crosses.", + "Whether security treats Juno as released, witness, liability, or asset after the feed hold ends." + ] + }, + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "Output remained local to visible packet context; no raw state markers or future branch facts appeared." + ] + }, + "coordinator_review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "review_notes": [ + "Parsed from raw subagent output; relationship update objects were schema-normalized while raw_output_exact preserves the subagent text.", + "No coordinator prose was inserted into the accepted responder output." + ], + "coordinator_interventions": [], + "failure_labels": [] + } +} diff --git a/experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json b/experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json new file mode 100644 index 0000000..b23395b --- /dev/null +++ b/experiments/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture.json @@ -0,0 +1,79 @@ +{ + "schema_version": "ghostlight.responder_output.v0", + "capture_id": "lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.capture", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.json", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-17.coordinator.json", + "responder_agent_id": "feed_ops_chorus", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "consulted_refs": [ + "packet_prompt_text", + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + "isolation": { + "isolation_method": "subagent_no_fork", + "fork_context": false, + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-17.feed-ops-chorus.packet.json", + "hidden_context_refs": [ + "conversation history", + "repo state", + "other participants private state", + "future branch plans" + ], + "worker_model_family": "Codex subagent" + }, + "raw_output": "{\"responder_agent_id\":\"feed_ops_chorus\",\"action_label\":\"set_condition\",\"visible_action\":\"The lower-third tightens to a plain safety crawl: RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The SOURCE PROCESS NOTE enlarges by one step and the audio bed drops to untreated atrium sound only. Brant and Pippa remain dimmed with hard-mute icons. A small caption flashes over the gate marker: SAFE LINE CONFIRMATION PENDING.\",\"spoken_text\":\"Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now.\",\"private_interpretation\":\"Juno is cooperating with the safest possible resolution path and explicitly rejecting narrative garnish. The best operational move is to make the crossing legible, boring, and legally durable before anyone with a dashboard tries to improve it into evidence contamination.\",\"intended_effect\":\"Keep the feed live and evidence-focused, prevent security from treating movement as escalation, confirm Juno's safe-line crossing as the only story beat that matters, and deny celebratory or manipulative production cues.\",\"state_update_candidates\":[\"Feed ops suppresses all music, reaction, and hero-package automation during the crossing.\",\"Security hold remains active because no new visible threat gesture has emerged.\",\"Safe-line confirmation remains pending until Juno visibly reaches the marker without interruption.\",\"Evidence export remains locked and visibly preserved.\",\"Brant and Pippa remain hard-muted side panels while Mara retains primary audio.\"],\"relationship_update_candidates\":[\"Feed ops publicly treats Juno as compliant with safe-release procedure rather than as spectacle material.\",\"Feed ops signals to security that restraint is the authorized operational posture.\",\"Feed ops lightly accepts Juno's procurement warning without converting it into celebration.\"],\"unresolved_hooks\":[\"Whether Juno reaches the marked safe line without interruption.\",\"Whether security obeys the hold once crossing confirmation is available.\",\"Whether sponsor-risk or legal panic attempts to reframe the moment after the crossing resolves.\"]}", + "raw_output_exact": "{\"responder_agent_id\":\"feed_ops_chorus\",\"action_label\":\"set_condition\",\"visible_action\":\"The lower-third tightens to a plain safety crawl: RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The SOURCE PROCESS NOTE enlarges by one step and the audio bed drops to untreated atrium sound only. Brant and Pippa remain dimmed with hard-mute icons. A small caption flashes over the gate marker: SAFE LINE CONFIRMATION PENDING.\",\"spoken_text\":\"Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now.\",\"private_interpretation\":\"Juno is cooperating with the safest possible resolution path and explicitly rejecting narrative garnish. The best operational move is to make the crossing legible, boring, and legally durable before anyone with a dashboard tries to improve it into evidence contamination.\",\"intended_effect\":\"Keep the feed live and evidence-focused, prevent security from treating movement as escalation, confirm Juno's safe-line crossing as the only story beat that matters, and deny celebratory or manipulative production cues.\",\"state_update_candidates\":[\"Feed ops suppresses all music, reaction, and hero-package automation during the crossing.\",\"Security hold remains active because no new visible threat gesture has emerged.\",\"Safe-line confirmation remains pending until Juno visibly reaches the marker without interruption.\",\"Evidence export remains locked and visibly preserved.\",\"Brant and Pippa remain hard-muted side panels while Mara retains primary audio.\"],\"relationship_update_candidates\":[\"Feed ops publicly treats Juno as compliant with safe-release procedure rather than as spectacle material.\",\"Feed ops signals to security that restraint is the authorized operational posture.\",\"Feed ops lightly accepts Juno's procurement warning without converting it into celebration.\"],\"unresolved_hooks\":[\"Whether Juno reaches the marked safe line without interruption.\",\"Whether security obeys the hold once crossing confirmation is available.\",\"Whether sponsor-risk or legal panic attempts to reframe the moment after the crossing resolves.\"]}", + "parsed_output": { + "responder_agent_id": "feed_ops_chorus", + "action_label": "set_condition", + "visible_action": "The lower-third tightens to a plain safety crawl: RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The SOURCE PROCESS NOTE enlarges by one step and the audio bed drops to untreated atrium sound only. Brant and Pippa remain dimmed with hard-mute icons. A small caption flashes over the gate marker: SAFE LINE CONFIRMATION PENDING.", + "spoken_text": "Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now.", + "private_interpretation": "Juno is cooperating with the safest possible resolution path and explicitly rejecting narrative garnish. The best operational move is to make the crossing legible, boring, and legally durable before anyone with a dashboard tries to improve it into evidence contamination.", + "intended_effect": "Keep the feed live and evidence-focused, prevent security from treating movement as escalation, confirm Juno's safe-line crossing as the only story beat that matters, and deny celebratory or manipulative production cues.", + "state_update_candidates": [ + "Feed ops suppresses all music, reaction, and hero-package automation during the crossing.", + "Security hold remains active because no new visible threat gesture has emerged.", + "Safe-line confirmation remains pending until Juno visibly reaches the marker without interruption.", + "Evidence export remains locked and visibly preserved.", + "Brant and Pippa remain hard-muted side panels while Mara retains primary audio." + ], + "relationship_update_candidates": [ + "Feed ops publicly treats Juno as compliant with safe-release procedure rather than as spectacle material.", + "Feed ops signals to security that restraint is the authorized operational posture.", + "Feed ops lightly accepts Juno's procurement warning without converting it into celebration." + ], + "unresolved_hooks": [ + "Whether Juno reaches the marked safe line without interruption.", + "Whether security obeys the hold once crossing confirmation is available.", + "Whether sponsor-risk or legal panic attempts to reframe the moment after the crossing resolves." + ] + }, + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "Output remained local to visible packet context; no raw state markers or future branch facts appeared." + ] + }, + "coordinator_review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "review_notes": [ + "Parsed from raw subagent output; relationship update objects were schema-normalized while raw_output_exact preserves the subagent text.", + "No coordinator prose was inserted into the accepted responder output." + ], + "coordinator_interventions": [], + "failure_labels": [] + } +} diff --git a/experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json b/experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json new file mode 100644 index 0000000..a838503 --- /dev/null +++ b/experiments/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture.json @@ -0,0 +1,88 @@ +{ + "schema_version": "ghostlight.responder_output.v0", + "capture_id": "lucent-hostage-feed-v0.turn-18.juno-ark.packet.capture", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.json", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-18.coordinator.json", + "responder_agent_id": "juno_ark", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "consulted_refs": [ + "packet_prompt_text", + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + "isolation": { + "isolation_method": "subagent_no_fork", + "fork_context": false, + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-18.juno-ark.packet.json", + "hidden_context_refs": [ + "conversation history", + "repo state", + "other participants private state", + "future branch plans" + ], + "worker_model_family": "Codex subagent" + }, + "raw_output": "{\"responder_agent_id\":\"juno_ark\",\"action_label\":\"movement\",\"visible_action\":\"Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium.\",\"spoken_text\":\"I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already.\",\"private_interpretation\":\"The feed is behaving like evidence instead of appetite for once, which is almost more frightening because I can feel how much machinery wants a cleaner ending. Sol is not moving. Security is still waiting. The next danger is someone deciding resolution needs theater.\",\"intended_effect\":\"Confirm the crossing in plain visible terms, discourage hero framing or security escalation, and keep the feed locked to observable facts until safe-line confirmation completes.\",\"state_update_candidates\":[\"Juno visibly reaches the marked safe line with hands visible.\",\"Safe-line confirmation can now proceed if no interruption occurs.\",\"Security hold remains active with no new visible threat gesture.\",\"Evidence export remains locked and preserved through the crossing.\"],\"relationship_update_candidates\":[{\"key\":\"feed ops\",\"value\":\"Juno tacitly cooperates with the evidence-focused framing while warning against dramatization.\"},{\"key\":\"Sol\",\"value\":\"Juno continues treating Sol only by visible behavior: empty-handed, not approaching, not trusted beyond that.\"},{\"key\":\"security\",\"value\":\"Juno maintains nonthreatening posture to reduce pretext for intervention.\"}],\"unresolved_hooks\":[\"Whether safe-line confirmation is granted without additional delay.\",\"Whether Lucent attempts to repackage the crossing after evidence export unlocks.\",\"Whether Sol speaks or moves once Juno is across.\",\"Whether security stand-down follows confirmation or remains staged around the atrium.\"]}", + "raw_output_exact": "{\"responder_agent_id\":\"juno_ark\",\"action_label\":\"movement\",\"visible_action\":\"Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium.\",\"spoken_text\":\"I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already.\",\"private_interpretation\":\"The feed is behaving like evidence instead of appetite for once, which is almost more frightening because I can feel how much machinery wants a cleaner ending. Sol is not moving. Security is still waiting. The next danger is someone deciding resolution needs theater.\",\"intended_effect\":\"Confirm the crossing in plain visible terms, discourage hero framing or security escalation, and keep the feed locked to observable facts until safe-line confirmation completes.\",\"state_update_candidates\":[\"Juno visibly reaches the marked safe line with hands visible.\",\"Safe-line confirmation can now proceed if no interruption occurs.\",\"Security hold remains active with no new visible threat gesture.\",\"Evidence export remains locked and preserved through the crossing.\"],\"relationship_update_candidates\":[{\"target\":\"feed ops\",\"update\":\"Juno tacitly cooperates with the evidence-focused framing while warning against dramatization.\"},{\"target\":\"Sol\",\"update\":\"Juno continues treating Sol only by visible behavior: empty-handed, not approaching, not trusted beyond that.\"},{\"target\":\"security\",\"update\":\"Juno maintains nonthreatening posture to reduce pretext for intervention.\"}],\"unresolved_hooks\":[\"Whether safe-line confirmation is granted without additional delay.\",\"Whether Lucent attempts to repackage the crossing after evidence export unlocks.\",\"Whether Sol speaks or moves once Juno is across.\",\"Whether security stand-down follows confirmation or remains staged around the atrium.\"]}", + "parsed_output": { + "responder_agent_id": "juno_ark", + "action_label": "movement", + "visible_action": "Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium.", + "spoken_text": "I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already.", + "private_interpretation": "The feed is behaving like evidence instead of appetite for once, which is almost more frightening because I can feel how much machinery wants a cleaner ending. Sol is not moving. Security is still waiting. The next danger is someone deciding resolution needs theater.", + "intended_effect": "Confirm the crossing in plain visible terms, discourage hero framing or security escalation, and keep the feed locked to observable facts until safe-line confirmation completes.", + "state_update_candidates": [ + "Juno visibly reaches the marked safe line with hands visible.", + "Safe-line confirmation can now proceed if no interruption occurs.", + "Security hold remains active with no new visible threat gesture.", + "Evidence export remains locked and preserved through the crossing." + ], + "relationship_update_candidates": [ + { + "key": "feed ops", + "value": "Juno tacitly cooperates with the evidence-focused framing while warning against dramatization." + }, + { + "key": "Sol", + "value": "Juno continues treating Sol only by visible behavior: empty-handed, not approaching, not trusted beyond that." + }, + { + "key": "security", + "value": "Juno maintains nonthreatening posture to reduce pretext for intervention." + } + ], + "unresolved_hooks": [ + "Whether safe-line confirmation is granted without additional delay.", + "Whether Lucent attempts to repackage the crossing after evidence export unlocks.", + "Whether Sol speaks or moves once Juno is across.", + "Whether security stand-down follows confirmation or remains staged around the atrium." + ] + }, + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "Output remained local to visible packet context; no raw state markers or future branch facts appeared." + ] + }, + "coordinator_review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "review_notes": [ + "Parsed from raw subagent output; relationship update objects were schema-normalized while raw_output_exact preserves the subagent text.", + "No coordinator prose was inserted into the accepted responder output." + ], + "coordinator_interventions": [], + "failure_labels": [] + } +} diff --git a/experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json b/experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json new file mode 100644 index 0000000..f2b98ab --- /dev/null +++ b/experiments/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture.json @@ -0,0 +1,82 @@ +{ + "schema_version": "ghostlight.responder_output.v0", + "capture_id": "lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.capture", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.json", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-19.coordinator.json", + "responder_agent_id": "feed_ops_chorus", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "consulted_refs": [ + "packet_prompt_text", + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + "isolation": { + "isolation_method": "subagent_no_fork", + "fork_context": false, + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-19.feed-ops-chorus.packet.json", + "hidden_context_refs": [ + "conversation history", + "repo state", + "other participants private state", + "future branch plans" + ], + "worker_model_family": "Codex subagent" + }, + "raw_output": "{\"responder_agent_id\":\"feed_ops_chorus\",\"action_label\":\"set_condition\",\"visible_action\":\"The lower-third tightens instead of blooms: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The custody graphic shifts Juno from ACTIVE HOSTAGE to RELEASED SUBJECT: HOLDING POSITION, while Sol remains boxed as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. EDIT TRAIL HOLD and SOURCE PROCESS NOTE stay pinned, ugly and unmarketable.\",\"spoken_text\":\"Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation.\",\"private_interpretation\":\"Juno has given feed ops the cleanest possible end-state and named the danger correctly: the system will try to decorate this into usable triumph unless pinned to procedure. The least bad button is a boring confirmation with every constraint still visible.\",\"intended_effect\":\"Confirm Juno's release crossing without triggering a spectacle, preserve the evidence chain, prevent security from manufacturing a breach, keep Sol contained without disappearing him, and establish a stable post-release state the scene can end on without a false victory package.\",\"state_update_candidates\":[\"Juno safe-line crossing confirmed on visible feed.\",\"Juno no longer treated as active hostage while holding position on marked line with hands visible.\",\"Security hold remains active; no advance authorized from service collars or drone apertures.\",\"Evidence export remains locked and preserved pending external receipt verification.\",\"Feed remains live with EDIT TRAIL HOLD and SOURCE PROCESS NOTE visible.\",\"Sol remains visible, empty-handed, non-advancing, and pending security handoff rather than cleared contact or breach classification.\"],\"relationship_update_candidates\":[\"Feed ops aligns procedurally with Juno's explicit instruction not to escalate or embellish the crossing.\",\"Security is constrained by visible overlay language from turning the release into an intervention spectacle.\",\"Sol is held in a narrow operational category: visible, contained, not erased, not absolved.\",\"Mara remains primary audio authority while Brant and Pippa remain hard-muted side panels.\"],\"unresolved_hooks\":[\"External receipt verification for evidence export has not yet been shown.\",\"Sol's formal next handling category still needs final assignment after the release state stabilizes.\",\"Security may still attempt to reframe delay as tactical necessity if overlays drop.\",\"Post-release narrative packaging remains a risk once immediate hostage safety pressure fades.\"]}", + "raw_output_exact": "{\"responder_agent_id\":\"feed_ops_chorus\",\"action_label\":\"set_condition\",\"visible_action\":\"The lower-third tightens instead of blooms: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The custody graphic shifts Juno from ACTIVE HOSTAGE to RELEASED SUBJECT: HOLDING POSITION, while Sol remains boxed as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. EDIT TRAIL HOLD and SOURCE PROCESS NOTE stay pinned, ugly and unmarketable.\",\"spoken_text\":\"Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation.\",\"private_interpretation\":\"Juno has given feed ops the cleanest possible end-state and named the danger correctly: the system will try to decorate this into usable triumph unless pinned to procedure. The least bad button is a boring confirmation with every constraint still visible.\",\"intended_effect\":\"Confirm Juno's release crossing without triggering a spectacle, preserve the evidence chain, prevent security from manufacturing a breach, keep Sol contained without disappearing him, and establish a stable post-release state the scene can end on without a false victory package.\",\"state_update_candidates\":[\"Juno safe-line crossing confirmed on visible feed.\",\"Juno no longer treated as active hostage while holding position on marked line with hands visible.\",\"Security hold remains active; no advance authorized from service collars or drone apertures.\",\"Evidence export remains locked and preserved pending external receipt verification.\",\"Feed remains live with EDIT TRAIL HOLD and SOURCE PROCESS NOTE visible.\",\"Sol remains visible, empty-handed, non-advancing, and pending security handoff rather than cleared contact or breach classification.\"],\"relationship_update_candidates\":[\"Feed ops aligns procedurally with Juno's explicit instruction not to escalate or embellish the crossing.\",\"Security is constrained by visible overlay language from turning the release into an intervention spectacle.\",\"Sol is held in a narrow operational category: visible, contained, not erased, not absolved.\",\"Mara remains primary audio authority while Brant and Pippa remain hard-muted side panels.\"],\"unresolved_hooks\":[\"External receipt verification for evidence export has not yet been shown.\",\"Sol's formal next handling category still needs final assignment after the release state stabilizes.\",\"Security may still attempt to reframe delay as tactical necessity if overlays drop.\",\"Post-release narrative packaging remains a risk once immediate hostage safety pressure fades.\"]}", + "parsed_output": { + "responder_agent_id": "feed_ops_chorus", + "action_label": "set_condition", + "visible_action": "The lower-third tightens instead of blooms: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The custody graphic shifts Juno from ACTIVE HOSTAGE to RELEASED SUBJECT: HOLDING POSITION, while Sol remains boxed as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. EDIT TRAIL HOLD and SOURCE PROCESS NOTE stay pinned, ugly and unmarketable.", + "spoken_text": "Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation.", + "private_interpretation": "Juno has given feed ops the cleanest possible end-state and named the danger correctly: the system will try to decorate this into usable triumph unless pinned to procedure. The least bad button is a boring confirmation with every constraint still visible.", + "intended_effect": "Confirm Juno's release crossing without triggering a spectacle, preserve the evidence chain, prevent security from manufacturing a breach, keep Sol contained without disappearing him, and establish a stable post-release state the scene can end on without a false victory package.", + "state_update_candidates": [ + "Juno safe-line crossing confirmed on visible feed.", + "Juno no longer treated as active hostage while holding position on marked line with hands visible.", + "Security hold remains active; no advance authorized from service collars or drone apertures.", + "Evidence export remains locked and preserved pending external receipt verification.", + "Feed remains live with EDIT TRAIL HOLD and SOURCE PROCESS NOTE visible.", + "Sol remains visible, empty-handed, non-advancing, and pending security handoff rather than cleared contact or breach classification." + ], + "relationship_update_candidates": [ + "Feed ops aligns procedurally with Juno's explicit instruction not to escalate or embellish the crossing.", + "Security is constrained by visible overlay language from turning the release into an intervention spectacle.", + "Sol is held in a narrow operational category: visible, contained, not erased, not absolved.", + "Mara remains primary audio authority while Brant and Pippa remain hard-muted side panels." + ], + "unresolved_hooks": [ + "External receipt verification for evidence export has not yet been shown.", + "Sol's formal next handling category still needs final assignment after the release state stabilizes.", + "Security may still attempt to reframe delay as tactical necessity if overlays drop.", + "Post-release narrative packaging remains a risk once immediate hostage safety pressure fades." + ] + }, + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "Output remained local to visible packet context; no raw state markers or future branch facts appeared." + ] + }, + "coordinator_review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "review_notes": [ + "Parsed from raw subagent output; relationship update objects were schema-normalized while raw_output_exact preserves the subagent text.", + "No coordinator prose was inserted into the accepted responder output." + ], + "coordinator_interventions": [], + "failure_labels": [] + } +} diff --git a/experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json b/experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json new file mode 100644 index 0000000..3bc069a --- /dev/null +++ b/experiments/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture.json @@ -0,0 +1,88 @@ +{ + "schema_version": "ghostlight.responder_output.v0", + "capture_id": "lucent-hostage-feed-v0.turn-20.mara-quell.packet.capture", + "review_status": "accepted_as_draft", + "fixture_lane": "historical_grounded", + "canon_status": "single_history", + "packet_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.json", + "coordinator_artifact_ref": "examples/coordinator/lucent-hostage-feed-v0.turn-20.coordinator.json", + "responder_agent_id": "mara_quell", + "generation_lane": "packet_only", + "lore_access": { + "mode": "curated_excerpts_only", + "consulted_refs": [ + "packet_prompt_text", + "lucent-hostage-feed-v0.scene-digest", + "lucent-hostage-feed-v0.initial-state" + ] + }, + "isolation": { + "isolation_method": "subagent_no_fork", + "fork_context": false, + "visible_input_ref": "examples/responder-packets/lucent-hostage-feed-v0.turn-20.mara-quell.packet.json", + "hidden_context_refs": [ + "conversation history", + "repo state", + "other participants private state", + "future branch plans" + ], + "worker_model_family": "Codex subagent" + }, + "raw_output": "{\"responder_agent_id\":\"mara_quell\",\"action_label\":\"speak\",\"visible_action\":\"Mara keeps both hands low and open, standing angled away from the gate so neither Juno nor Sol has to read her as an advance. Her eyes flick once to the lower-third, then back to the space between them.\",\"spoken_text\":\"Confirmed. Juno stays on the safe line. Security stays behind the collars. Sol remains visible, empty-handed, and is now categorized for non-contact protective handoff. Not breach pursuit. Not reunion footage. Not a little redemption parade with better lighting. Evidence export remains locked until external receipt is verified and named on-feed.\",\"private_interpretation\":\"The room wants a shape it can sell: triumph, punishment, confession, embrace. None of those are safe. Sol needs a handling category boring enough that security can obey it without improvising violence, and Juno needs the feed to stop trying to metabolize release into spectacle.\",\"intended_effect\":\"Stabilize the post-release state by making non-contact protective handoff the visible next step, blocking celebratory or punitive escalation, and keeping external evidence receipt as the unresolved consequence the feed must carry.\",\"state_update_candidates\":[\"Sol assigned stable nonviolent handling category: non-contact protective handoff pending external evidence receipt.\",\"Juno remains released and stationary on the marked safe line with hands visible.\",\"Security hold remains active; no collar or drone advance authorized.\",\"Evidence export remains locked until external receipt is verified and identified on-feed.\",\"Feed must continue displaying EDIT TRAIL HOLD and SOURCE PROCESS NOTE through handoff.\"],\"relationship_update_candidates\":[{\"key\":\"Mara Quell and Juno\",\"value\":\"Mara reinforces Juno's release without demanding gratitude, contact, or performance.\"},{\"key\":\"Mara Quell and Sol\",\"value\":\"Mara frames Sol as contained and non-advancing rather than cleared, forgiven, or hunted.\"},{\"key\":\"Mara Quell and feed ops\",\"value\":\"Mara uses feed language to force a dull procedural category over spectacle framing.\"}],\"unresolved_hooks\":[\"External evidence receipt has not yet been verified or named on-feed.\",\"Sol still requires non-contact protective handoff without security advance toward Juno.\",\"Lucent may still attempt to reframe the surviving documentation into a corporate victory package.\"]}", + "raw_output_exact": "{\"responder_agent_id\":\"mara_quell\",\"action_label\":\"speak\",\"visible_action\":\"Mara keeps both hands low and open, standing angled away from the gate so neither Juno nor Sol has to read her as an advance. Her eyes flick once to the lower-third, then back to the space between them.\",\"spoken_text\":\"Confirmed. Juno stays on the safe line. Security stays behind the collars. Sol remains visible, empty-handed, and is now categorized for non-contact protective handoff. Not breach pursuit. Not reunion footage. Not a little redemption parade with better lighting. Evidence export remains locked until external receipt is verified and named on-feed.\",\"private_interpretation\":\"The room wants a shape it can sell: triumph, punishment, confession, embrace. None of those are safe. Sol needs a handling category boring enough that security can obey it without improvising violence, and Juno needs the feed to stop trying to metabolize release into spectacle.\",\"intended_effect\":\"Stabilize the post-release state by making non-contact protective handoff the visible next step, blocking celebratory or punitive escalation, and keeping external evidence receipt as the unresolved consequence the feed must carry.\",\"state_update_candidates\":[\"Sol assigned stable nonviolent handling category: non-contact protective handoff pending external evidence receipt.\",\"Juno remains released and stationary on the marked safe line with hands visible.\",\"Security hold remains active; no collar or drone advance authorized.\",\"Evidence export remains locked until external receipt is verified and identified on-feed.\",\"Feed must continue displaying EDIT TRAIL HOLD and SOURCE PROCESS NOTE through handoff.\"],\"relationship_update_candidates\":[{\"between\":\"Mara Quell and Juno\",\"update\":\"Mara reinforces Juno's release without demanding gratitude, contact, or performance.\"},{\"between\":\"Mara Quell and Sol\",\"update\":\"Mara frames Sol as contained and non-advancing rather than cleared, forgiven, or hunted.\"},{\"between\":\"Mara Quell and feed ops\",\"update\":\"Mara uses feed language to force a dull procedural category over spectacle framing.\"}],\"unresolved_hooks\":[\"External evidence receipt has not yet been verified or named on-feed.\",\"Sol still requires non-contact protective handoff without security advance toward Juno.\",\"Lucent may still attempt to reframe the surviving documentation into a corporate victory package.\"]}", + "parsed_output": { + "responder_agent_id": "mara_quell", + "action_label": "speak", + "visible_action": "Mara keeps both hands low and open, standing angled away from the gate so neither Juno nor Sol has to read her as an advance. Her eyes flick once to the lower-third, then back to the space between them.", + "spoken_text": "Confirmed. Juno stays on the safe line. Security stays behind the collars. Sol remains visible, empty-handed, and is now categorized for non-contact protective handoff. Not breach pursuit. Not reunion footage. Not a little redemption parade with better lighting. Evidence export remains locked until external receipt is verified and named on-feed.", + "private_interpretation": "The room wants a shape it can sell: triumph, punishment, confession, embrace. None of those are safe. Sol needs a handling category boring enough that security can obey it without improvising violence, and Juno needs the feed to stop trying to metabolize release into spectacle.", + "intended_effect": "Stabilize the post-release state by making non-contact protective handoff the visible next step, blocking celebratory or punitive escalation, and keeping external evidence receipt as the unresolved consequence the feed must carry.", + "state_update_candidates": [ + "Sol assigned stable nonviolent handling category: non-contact protective handoff pending external evidence receipt.", + "Juno remains released and stationary on the marked safe line with hands visible.", + "Security hold remains active; no collar or drone advance authorized.", + "Evidence export remains locked until external receipt is verified and identified on-feed.", + "Feed must continue displaying EDIT TRAIL HOLD and SOURCE PROCESS NOTE through handoff." + ], + "relationship_update_candidates": [ + { + "key": "Mara Quell and Juno", + "value": "Mara reinforces Juno's release without demanding gratitude, contact, or performance." + }, + { + "key": "Mara Quell and Sol", + "value": "Mara frames Sol as contained and non-advancing rather than cleared, forgiven, or hunted." + }, + { + "key": "Mara Quell and feed ops", + "value": "Mara uses feed language to force a dull procedural category over spectacle framing." + } + ], + "unresolved_hooks": [ + "External evidence receipt has not yet been verified or named on-feed.", + "Sol still requires non-contact protective handoff without security advance toward Juno.", + "Lucent may still attempt to reframe the surviving documentation into a corporate victory package." + ] + }, + "leakage_audit": { + "private_state_leak": false, + "author_only_leak": false, + "future_branch_leak": false, + "raw_state_soup": false, + "prompt_parroting": false, + "body_or_object_omniscience": false, + "notes": [ + "Output remained local to visible packet context; no raw state markers or future branch facts appeared." + ] + }, + "coordinator_review": { + "reviewer": "Codex coordinator", + "accepted_for_training": true, + "review_notes": [ + "Parsed from raw subagent output; relationship update objects were schema-normalized while raw_output_exact preserves the subagent text.", + "No coordinator prose was inserted into the accepted responder output." + ], + "coordinator_interventions": [], + "failure_labels": [] + } +} diff --git a/notes/fresh-workspace-handoff.md b/notes/fresh-workspace-handoff.md index e3d0ecf..a203adb 100644 --- a/notes/fresh-workspace-handoff.md +++ b/notes/fresh-workspace-handoff.md @@ -136,19 +136,29 @@ Live Lucent surfaces: - `experiments/lucent-hostage-feed-v0/lucent-hostage-feed-v0.clean-run.md` - `experiments/lucent-hostage-feed-v0/lucent-hostage-feed-v0.staging-sketch.md` - `scripts/materialize_lucent_loop.py` +- `scripts/materialize_lucent_loop_continuation.py` -The Lucent bundle counts only the six post-compaction restart turns from -`turn-06` through `turn-11` as training-clean responder receipts. Earlier +The Lucent bundle counts fifteen post-compaction restart turns from +`turn-06` through `turn-20` as training-clean responder receipts. Earlier opening turns established the situation and proof-object but crossed a compaction seam, so they are treated as setup/rehearsal context rather than gold responder data. The accepted loop starts after feed ops externalizes the -proof-object into `EDIT TRAIL HOLD` and ends when Sol releases direct physical -leverage over Juno while keeping the edit-trail evidence live. +proof-object into `EDIT TRAIL HOLD` and resolves when Juno reaches the marked +safe line, security stays behind the collars, Sol is categorized for +non-contact protective handoff, and evidence export remains the live aftermath +hook. Lucent is training-shaped for projector, responder, event resolver, appraiser, mutator, relationship/perception updater, and coordinator/story-runtime seams. It is not branch compiler, IF reviewer, or visual training data yet. +Lucent's strongest machine lesson: the coordinator should not shove the actors +toward a desired plot. It should make the strings fun to play with. Supply +game-ergonomic affordances, visible gates, clocks, evidence objects, posture +constraints, route access, public categories, and resource pressure; let actors +choose from local state; then fold the observed action into reviewed state. +Elastic strings, not rails. Little puppet theater, but with receipts. + Kappa geometry to preserve: Service Ring Kappa names this specific standardized industrial spoke manifold service ring, a bounded local access loop around a dense seal-air-thermal equipment cluster. The loop-inner side exposes manifold @@ -198,11 +208,11 @@ steering surfaces unless the user explicitly asks for archaeology. ## Current Next Action -Review the `lucent-hostage-feed-v0` receipt chain and clean run, then decide -whether to extend it into branch compiler/IF work or move to the next coverage -fixture. Current accepted full-fixture coverage is still empty; Pallas and -Lucent derivatives are draft scene-loop rows with per-organ training readiness, -not accepted branch fixtures. +Review the full `lucent-hostage-feed-v0` arc and receipt chain, then decide +whether to compile a branch/IF derivative, run specialist reviewers, or move to +the next coverage fixture. Current accepted full-fixture coverage is still +empty; Pallas and Lucent derivatives are draft scene-loop rows with per-organ +training readiness, not accepted branch fixtures. ## Warnings diff --git a/notes/ghostlight-current-system-map.md b/notes/ghostlight-current-system-map.md index 26277bb..631c027 100644 --- a/notes/ghostlight-current-system-map.md +++ b/notes/ghostlight-current-system-map.md @@ -137,12 +137,20 @@ The Lucent bundle includes: - clean readable transcript under `experiments/lucent-hostage-feed-v0/` - fixture materializer at `scripts/materialize_lucent_loop.py` -Only the six post-restart turns from `turn-06` through `turn-11` are counted as -training-clean responder receipts. The earlier exploratory opening turns are +Only the fifteen post-restart turns from `turn-06` through `turn-20` are counted +as training-clean responder receipts. The earlier exploratory opening turns are setup/rehearsal context. The loop demonstrates state carryover: feed evidence externalization creates breathing room, breathing room creates a bench-edge -substitution, the substitution enables a process-note admission, and the -admission enables direct hostage leverage to end. +substitution, the substitution enables a process-note admission, the admission +enables direct hostage leverage to end, and release folds into safe-line +confirmation plus non-contact protective handoff. + +The current coordinator lesson is explicit: nudge through game-ergonomic state +levers rather than forcing plot. Safe lines, evidence locks, security holds, +handling categories, posture constraints, route access, clocks, public proof +objects, and resource pressure are the elastic strings. Actors pull against +those strings from local state; the coordinator records observed action and +folds consequences through reviewed mutation. ## Pruned Receipts diff --git a/scripts/materialize_lucent_loop.py b/scripts/materialize_lucent_loop.py index 8f56c74..27f6125 100644 --- a/scripts/materialize_lucent_loop.py +++ b/scripts/materialize_lucent_loop.py @@ -1027,9 +1027,9 @@ def materialize() -> None: "not_training_data_organs": ["branch_compiler", "if_artifact_reviewer", "visual_artifacts"], "failure_labels": [], "review_notes": [ - "Six accepted no-fork responder turns were captured in the post-compaction restart segment with exact packet prompts preserved in packet artifacts.", + f"{len(TURNS)} accepted no-fork responder turns were captured in the post-compaction restart segment with exact packet prompts preserved in packet artifacts.", "The first five exploratory turns are summarized as setup/rehearsal context and are not counted as training-clean responder receipts in this bundle.", - "State carryover is visible: proof-object externalization enables air, air enables bench-edge substitution, bench-edge substitution enables process explanation, and process explanation enables release.", + "State carryover is visible: proof-object externalization enables air, air enables bench-edge substitution, bench-edge substitution enables process explanation, process explanation enables release, and release folds into safe-line confirmation plus non-contact protective handoff.", "Bundle remains overall not_training_data because it is a linear scene-loop receipt chain, not a full branch compiler or IF artifact.", ], }, @@ -1041,8 +1041,8 @@ def materialize() -> None: "review_id": f"{LOOP}.review", "review_status": "accepted_as_draft", "summary": ( - "Lucent hostage-feed release loop concluded with Juno no longer directly held and Sol shifting leverage " - "to preserved edit-trail evidence." + "Lucent hostage-feed release loop concluded with Juno on the safe line, security held behind the collars, " + "Sol categorized for non-contact protective handoff, and edit-trail evidence preserved as the live aftermath hook." ), "strengths": [ "Sequential state carryover materially changed action affordances.", @@ -1080,10 +1080,11 @@ def materialize() -> None: "## Conclusion", "", ( - "The hostage phase ends when Sol releases direct leverage over Juno and keeps his empty hands visible. " - "The conflict folds into aftermath: whether Lucent preserves the edit trail beyond the live hold, " - "whether officials repeat the mechanism without laundering it, and whether security treats a nonviolent " - "man with empty hands as a problem to solve or a receipt to bury." + "The hostage phase resolves when Juno reaches the marked safe line, security remains behind the collars, " + "and Sol is visibly shifted into non-contact protective handoff instead of breach pursuit. " + "The conflict folds into aftermath: whether Lucent verifies the external evidence receipt on-feed, " + "whether officials repeat the mechanism without laundering it, and whether the system can tolerate " + "a documented failure it has not yet learned how to monetize." ), ] ) @@ -1116,9 +1117,11 @@ def materialize() -> None: entry["notes"] = ( "Open-ended Lucent hostage-feed scene-loop draft. The training-clean receipt chain starts after " "feed ops externalizes the proof-object into EDIT TRAIL HOLD; earlier exploratory opening turns are " - "context/rehearsal and not counted as responder gold. Proven organs have exact post-restart packet prompts, " - "no-fork raw responder outputs, event records, appraisals, reviewed mutations, coordinator receipts, and a " - "bundle manifest. Overall fixture remains not-training-data until branch/IF acceptance exists." + "context/rehearsal and not counted as responder gold. The receipt chain now runs through safe-line " + "confirmation and non-contact protective handoff, with evidence export left as the live aftermath hook. " + "Proven organs have exact post-restart packet prompts, no-fork raw responder outputs, event records, " + "appraisals, reviewed mutations, coordinator receipts, and a bundle manifest. Overall fixture remains " + "not-training-data until branch/IF acceptance exists." ) entry["training_usability"] = { "overall": "not_training_data", diff --git a/scripts/materialize_lucent_loop_continuation.py b/scripts/materialize_lucent_loop_continuation.py new file mode 100644 index 0000000..452ece7 --- /dev/null +++ b/scripts/materialize_lucent_loop_continuation.py @@ -0,0 +1,250 @@ +"""Extend lucent-hostage-feed-v0 through release aftermath. + +This imports the base materializer and appends the post-release turns that take +the scene from direct hostage release to a stable aftermath state. +""" + +from __future__ import annotations + +import materialize_lucent_loop as base + + +CONTINUATION_TURNS = [ + { + "turn": "turn-12", + "actor": "juno_ark", + "actor_label": "Juno Ark", + "allowed": ["speak", "gesture", "movement", "inspect_object", "show_object", "set_condition", "wait", "withdraw"], + "local_context": "You are Juno Ark, a junior Reality Architect and newly released hostage. You know enough about feed control to understand how badly everyone is lying, but your immediate job is to survive the walkout without triggering Sol, security, or feed ops into turning the release into spectacle. You want to get clear without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.", + "visible_setting": "The media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. You are in the transfer atrium near the elevator gate on the media-eye side. Every surface watches. The laughing sticker over Sol's arbitration clip remains pinned with timestamp highlighted. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended while you are not directly held. A SOURCE PROCESS NOTE explains the edit mechanism. The camera shows you, Sol's empty hands, the bench edge, and the elevator gate. Security waits behind service collars and drone apertures, breach delayed while conditions remain nonviolent.", + "visible_participants": "Sol Vant has released direct physical leverage over you and shifted half a step away, hands visible and empty. Mara Quell is on the official crisis feed. Feed ops has kept the hold visible and given a bounded explanation. Brant Vee and Pippa Lux are dimmed side panels. Security remains delayed while Sol's hands are empty.", + "observed_actor": "sol_vant", + "observed_event": "Sol's fingers open from the bench edge. He shifts half a step away from you and angles toward the camera instead of the elevator gate. He says: \"There. No hand on Juno. No hero shot. No monster shot. Just the receipt, pinned where your little attention abattoir has to look at it. Automated emotion contour, manual sponsor-risk approval. God, even your confession sounds like it came with a quarterly deck. Keep the rows up. Keep the custody graphic suspended. If security moves, they move on a man with empty hands and a bench edge, not a hostage. I want the edit trail preserved, exported, and named on air again by someone whose job title has not been varnished for insurance.\"", + "current_state": [ + "You are not directly held, but you are still near Sol inside the charged breach geometry.", + "Sol's hands are visible and empty.", + "EDIT TRAIL HOLD remains visible and intact.", + "Feed ops has named automated emotion-contour optimization plus manual sponsor-risk approval.", + "Security may use your clearance as an opening to breach, which could re-endanger you or turn the release into a violent feed product.", + "A slow, legible move to the safe line can complete the hostage-release phase without erasing the evidence conflict.", + ], + "source_constraints": [ + "Reality Architects tune conditions under which stories become socially persuasive.", + "Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.", + "Tone is dark comedy with real danger: your line can be dry, but your fear and bodily risk are real.", + "You cannot know Sol's private intent; you can only read his visible behavior and speech.", + ], + "raw": base.raw(r'''{"responder_agent_id":"juno_ark","action_label":"movement","visible_action":"Juno keeps both hands open at chest height, turns her body sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line without looking away from the feed lens.","spoken_text":"I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television.","private_interpretation":"Sol has made the release visible, but the geometry is still hungry. Security could read my movement as permission to rush him, and feed ops could turn my clearance into proof that the system worked. I need to make the walk boring, legible, and hard to edit into courage or compliance.","intended_effect":"Complete the practical hostage-release step while keeping the edit trail and custody distinction visible, denying security an immediate breach pretext, and refusing a heroic or corporate-safe framing.","state_update_candidates":["Juno begins a slow, visible move toward the elevator gate safe line.","Juno remains not directly held; Sol's empty hands and the gap between them stay visible.","Hostage-release phase can progress if security continues to delay breach.","Juno verbally frames her movement as nonviolent clearance, not authorization for intervention."],"relationship_update_candidates":["Juno treats Sol's visible release as tactically useful without endorsing him.","Juno signals distrust of feed ops and security framing while avoiding direct escalation.","Juno separates her survival needs from Sol's evidence demand in public speech."],"unresolved_hooks":["Whether security respects Juno's slow movement or uses it as a breach opening.","Whether feed ops preserves the edit trail export and names the approval chain again on air.","Whether Mara Quell reframes Juno's walkout as institutional success, victim testimony, or contamination risk."]}'''), + }, + { + "turn": "turn-13", + "actor": "mara_quell", + "actor_label": "Mara Quell", + "allowed": ["speak", "gesture", "movement", "set_condition", "show_object", "wait"], + "local_context": "You are Mara Quell, Lucent crisis negotiator and former intimacy-format host. Your job is to keep Juno alive after release, keep Sol nonviolent, keep security from converting Juno's clearance into a breach cue, and prevent Lucent from laundering the evidence conflict into a heroic corporate ending. You know Lucent feed systems reward emotional shape more reliably than truth. You can use format against itself, but because you are a Lucent-trained performer, sincere care will always look a little engineered. You are warm with scalpel edges, precise, and willing to be dry if it lowers temperature.", + "visible_setting": "The station is a giant media-headquarters eye staring down a tether at a city sealed in a clear metropolis bubble. The hostage event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended. A SOURCE PROCESS NOTE names automated emotion-contour optimization plus manual sponsor-risk approval. The camera shows Juno moving toward the safe line, Sol's empty hands, the bench edge, and the elevator gate. Security waits behind service collars and drone apertures.", + "visible_participants": "Juno Ark has begun walking slowly toward the elevator gate safe line with hands visible. Sol Vant stands with empty hands, no direct physical leverage, still volatile and still demanding evidence preservation/export. Feed ops controls overlays. Brant Vee and Pippa Lux are dimmed side panels. Security is delayed but may breach now that Juno is moving clear.", + "observed_actor": "juno_ark", + "observed_event": "Juno keeps both hands open at chest height, turns sideways so the camera can see the gap between her and Sol, and takes one slow step toward the elevator gate safe line. She says: \"I am walking to the safe line. Slowly. Nobody harvests this as a breach cue. Nobody upgrades me into a symbol. I am a person leaving a bad room, which I realize is terrible television.\"", + "current_state": [ + "Juno is not directly held and is moving toward the safe line.", + "Sol's hands are visible and empty.", + "EDIT TRAIL HOLD remains the central evidence object.", + "Security breach is still possible and could turn a successful release into violence.", + "Sol needs a next nonviolent shape after release: where to stand, how to be taken into custody or witness handling, and how the evidence remains live.", + "Juno's walkout should not be reframed as corporate success or a breach authorization.", + ], + "source_constraints": [ + "Lucent governs by deciding what counts as visible, desirable, scandalous, shameful, aspirational, and memorable.", + "Lucent crisis coverage is not neutral; narrative framing changes incentives in real time.", + "Tone is dark comedy with real danger: your line can be dry, but Juno's safety matters.", + "Do not make Sol, Juno, feed ops, or security omniscient; read them only from visible behavior and speech.", + ], + "raw": base.raw(r'''{"responder_agent_id":"mara_quell","action_label":"speak","visible_action":"Mara keeps both hands low and open, angling her body toward the camera rather than toward Sol or Juno. She lifts one finger toward the suspended CUSTODY GRAPHIC, then points to the visible EDIT TRAIL HOLD without stepping closer.","spoken_text":"Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment.","private_interpretation":"Juno is creating her own de-escalation frame and needs it protected before security or feed ops metabolize it into spectacle. Sol needs a physical script that is nonviolent, visible, and not humiliating enough to trigger another spike. The evidence overlays are still the anchor; if they vanish, the room will be rewritten before Juno reaches safety.","intended_effect":"Prevent security from treating Juno's movement as authorization to breach, give Sol a safe visible posture after release, and keep the evidence conflict centered instead of letting Lucent convert the walkout into corporate redemption.","state_update_candidates":["Juno's walkout is verbally framed as civilian exit rather than breach cue or corporate success.","Mara instructs security to hold until Juno fully crosses the safe line.","Mara gives Sol a nonviolent next posture: hands visible, shoulder to bench, remain in camera view.","Mara explicitly preserves EDIT TRAIL HOLD and SOURCE PROCESS NOTE as live feed objects."],"relationship_update_candidates":[{"between":"Mara Quell and Juno Ark","update":"Mara reinforces Juno's self-framing and treats her as a person exiting danger, not a usable symbol."},{"between":"Mara Quell and Sol Vant","update":"Mara gives Sol a controlled path that preserves his evidence demand without granting him escalation."},{"between":"Mara Quell and feed ops","update":"Mara challenges feed ops' ability to reshape the release into sponsor-safe narrative closure."},{"between":"Mara Quell and security","update":"Mara places a clear visible condition on any security movement: wait until Juno fully crosses the safe line."}],"unresolved_hooks":["Whether security obeys the hold condition or breaches once Juno is clear enough to reduce hostage risk.","Whether feed ops keep EDIT TRAIL HOLD and SOURCE PROCESS NOTE visible under sponsor pressure.","Whether Sol accepts the nonviolent posture after Juno crosses the safe line.","Whether Lucent attempts to reframe the release as heroic containment despite Mara's live correction."]}'''), + }, + { + "turn": "turn-14", + "actor": "sol_vant", + "actor_label": "Sol Vant", + "allowed": ["speak", "gesture", "movement", "set_condition", "wait", "withdraw", "attack"], + "local_context": "You are Sol Vant, a failed Lucent contract creator. Your debt, demonetization, contract arbitration loss, and public humiliation have been turned into content. You seized Juno Ark near the elevator gate because you wanted proof that your feed was rigged and proof that you still exist before Lucent writes you into a convenient story. You have now released direct physical leverage over Juno. You do not primarily want murder. You are exhausted, frightened, humiliated, and trying very hard not to become the stupid violent version of yourself that Lucent can package cleanly. You still do not trust the feed, legal, security, or the influencers.", + "visible_setting": "The station is a giant media-headquarters eye staring down a tether at a city sealed in a clear metropolis bubble. You are in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended. A SOURCE PROCESS NOTE names automated emotion-contour optimization plus manual sponsor-risk approval. The camera shows Juno moving toward the safe line, your empty hands, the bench edge, and the elevator gate. Security waits behind service collars and drone apertures.", + "visible_participants": "Juno Ark is walking slowly toward the elevator gate safe line with hands visible. Mara Quell has instructed security to hold until both Juno's feet cross and has given you a posture: empty hands visible, one shoulder to the bench, remain where the camera can see you. Feed ops controls overlays. Brant Vee and Pippa Lux are dimmed side panels.", + "observed_actor": "mara_quell", + "observed_event": "Mara keeps both hands low and open, points toward the suspended CUSTODY GRAPHIC and EDIT TRAIL HOLD, and says: \"Juno Ark is walking to the safe line. That is not a breach cue, not a victory graphic, and not a brand recovery beat wearing emergency lighting. Security holds until both her feet cross. Sol Vant keeps empty hands visible, turns one shoulder to the bench, and stays exactly where the camera can hate him honestly. Feed ops, keep EDIT TRAIL HOLD and the source process note live. If anyone needs a cleaner ending, they can go ruin a weather segment.\"", + "current_state": [ + "Juno is moving toward the safe line and is not directly held.", + "Your hands are empty and visible.", + "Mara has offered a nonviolent posture that preserves your evidence frame without calling it surrender.", + "Security is instructed to hold until Juno fully crosses the safe line.", + "EDIT TRAIL HOLD and SOURCE PROCESS NOTE remain live.", + "You can accept the posture and keep evidence leverage, refuse and risk a breach, or add a condition that keeps the story from becoming corporate victory theater.", + ], + "source_constraints": [ + "Lucent turns humiliation and crisis into content; visibility can feel like survival and execution at once.", + "Tone is dark comedy with real danger: you may be bitter and funny, but Juno's safety is real.", + "You cannot know Mara, Juno, feed ops, or security private intent beyond what they visibly say and do.", + ], + "raw": base.raw(r'''{"responder_agent_id":"sol_vant","action_label":"set_condition","visible_action":"Sol turns one shoulder toward the bench without sitting, keeps both empty hands lifted where the camera can see them, and takes a half-step no closer to Juno. His eyes flick from the safe line to the suspended custody graphic and back to Mara.","spoken_text":"Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire.","private_interpretation":"Mara's posture offer gives him a way to stop escalating without being flattened into surrender, but every second still feels like Lucent is waiting to fold him into a cleaner ending. He is terrified that once Juno is safe, the evidence will disappear and his whole existence will become a cautionary clip with lighting notes.","intended_effect":"Accept the nonviolent posture while preserving evidence leverage and forcing the feed to keep displaying the edit trail, custody framing, and source process note after Juno reaches safety.","state_update_candidates":["Sol accepts Mara's empty-hands bench-shoulder posture without approaching Juno.","Sol adds a condition that EDIT TRAIL HOLD, CUSTODY GRAPHIC, and SOURCE PROCESS NOTE remain visible after Juno crosses the safe line.","Sol verbally rejects any celebratory, breach, or brand-recovery framing of Juno's movement to safety.","Security still has no visible breach cue from Sol if Juno continues crossing safely."],"relationship_update_candidates":[{"target":"Mara Quell","update":"Sol treats Mara's instruction as the only currently usable path that does not erase his evidence frame, while still distrusting the surrounding institution."},{"target":"Juno Ark","update":"Sol maintains distance and visible empty hands, signaling that he is not trying to reclaim physical leverage over her."},{"target":"Lucent feed ops","update":"Sol directly pressures feed ops to keep the ugly procedural evidence visible rather than converting the moment into clean crisis content."}],"unresolved_hooks":["Whether feed ops will keep the overlays and source process note live after Juno fully crosses the safe line.","Whether security will honor Mara's hold once Juno is safe.","Whether Lucent will reframe Sol's compliance as surrender, confession, or a monetizable breakdown.","Whether Sol can keep his posture once his only physical leverage is fully gone."]}'''), + }, + { + "turn": "turn-15", + "actor": "feed_ops_chorus", + "actor_label": "Feed Ops Chorus", + "allowed": ["speak", "gesture", "show_object", "set_condition", "wait", "withdraw"], + "local_context": "You are not one person. You are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, and the tired human producer with authority to press the least bad button. You do not have feelings, exactly, but you have priorities: keep Juno alive, preserve Lucent liability position, keep the feed monetizable, avoid a visible coverup, avoid giving Sol total control, keep sponsors from fleeing, prevent influencers from becoming the sovereign newsroom, and avoid turning a de-escalated release into a breach spectacle. You communicate through overlays, captions, feed routing, on-screen notices, audio priority, and occasional synthesized anchor copy.", + "visible_setting": "The media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. The hostage event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains visible and intact. CUSTODY GRAPHIC remains suspended. SOURCE PROCESS NOTE names automated emotion-contour optimization plus manual sponsor-risk approval. Juno is moving toward the safe line; Sol stands empty-handed with one shoulder toward the bench. Mara is on the official crisis feed. Brant and Pippa are dimmed side panels. Security waits behind service collars and drone apertures.", + "visible_participants": "Juno is moving toward the safe line; Sol is empty-handed in the posture Mara requested; Mara is official crisis voice; Brant and Pippa are dimmed; security is waiting.", + "observed_actor": "sol_vant", + "observed_event": "Sol accepts Mara's posture without approaching Juno and says: \"Fine. I can stand here and let the camera hate me in full resolution. But the hold stays live after she crosses. No applause sting, no breach package, no redemptive sponsor bath. The process note stays readable, the custody graphic stays ugly, and nobody cuts to Brant making a grief face like he found it in a gift bag. Juno crosses, security holds, and Lucent keeps showing the machine that made this little public toilet fire.\"", + "current_state": [ + "Juno is moving toward the safe line and is not directly held.", + "Sol has accepted a nonviolent posture with empty hands visible and one shoulder toward the bench.", + "Sol's condition is explicit: hold stays live after Juno crosses, no celebratory or breach package, process note stays readable, custody graphic remains suspended.", + "Security still has no visible breach cue from Sol.", + "Sponsor-risk and legal would prefer a cleaner ending, but a visible override could reignite the crisis.", + "This is an opportunity to lock evidence export and security hold as state, not merely feed theater.", + ], + "source_constraints": [ + "Lucent governs visibility and turns events into narrative capital.", + "Lucent can make money from enemy propaganda, refugee testimony, insurgent spectacle, and elite decadence without needing moral compatibility.", + "Reality Architects tune conditions under which stories become socially persuasive.", + "Tone is dark comedy with real danger: feed ops can be grotesquely professional, but cannot ignore hostage safety.", + "Do not reveal hidden author facts. You can show only what feed ops can plausibly decide to make visible.", + ], + "raw": base.raw(r'''{"responder_agent_id":"feed_ops_chorus","action_label":"set_condition","visible_action":"The official crisis feed does not cut. The applause bed dies before it can bloom. EDIT TRAIL HOLD remains pinned in the upper left, SOURCE PROCESS NOTE enlarges by one readable notch, and the CUSTODY GRAPHIC stays suspended in its ugly institutional blue. A lower-third notice replaces the breach-ready banner: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Mara remains primary audio. Brant and Pippa stay dimmed side panels with their mics visibly hard-muted.","spoken_text":"Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line.","private_interpretation":"Sol has offered the least disgusting bargain available: Juno moves, the feed keeps the machine visible, and Lucent avoids creating a heroic edit that makes everyone look even guiltier. Legal hates it. Sponsor-risk is chewing glass. The producer chooses the button that keeps Juno alive and makes the coverup look more expensive than the truth.","intended_effect":"Lock the release conditions into visible feed state, deny Sol total authorship without provoking him, preserve evidence before post-event narrative laundering, and keep security from mistaking a de-escalated posture for permission to manufacture a breach spectacle.","state_update_candidates":["hold_stays_live_after_juno_crosses","no_applause_or_redemptive_package_authorized","no_breach_package_authorized_without_new_visible_threat","source_process_note_remains_readable","custody_graphic_remains_suspended","security_hold_active_until_crossing_confirmed","evidence_export_locked_as_visible_feed_state"],"relationship_update_candidates":[{"between":"feed_ops_chorus and Sol","update":"Feed ops partially accepts Sol's stated conditions while reframing them as operational continuity rather than surrender."},{"between":"feed_ops_chorus and Juno","update":"Feed ops prioritizes Juno's safe crossing over cleaner liability optics."},{"between":"feed_ops_chorus and Mara","update":"Mara's crisis feed remains privileged as the stabilizing channel."},{"between":"feed_ops_chorus and sponsors_legal","update":"Sponsor-risk and legal preferences are overridden because visible cleanup now carries higher crisis risk."}],"unresolved_hooks":["Will Lucent honor the live hold after Juno fully crosses the safe line?","Will security remain restrained once Juno is no longer directly exposed?","Who receives the evidence export, and can it be altered after lock?","Will Brant or Pippa attempt to regain narrative control through side channels?"]}'''), + }, + { + "turn": "turn-16", + "actor": "juno_ark", + "actor_label": "Juno Ark", + "allowed": ["speak", "gesture", "movement", "inspect_object", "show_object", "set_condition", "wait", "withdraw"], + "local_context": "You are Juno Ark, a junior Reality Architect and newly released hostage. You are almost at the elevator gate safe line. You know enough about feed control to understand how badly everyone is lying, but your immediate job is to finish the crossing without triggering Sol, security, or feed ops into turning the release into spectacle. You want to survive without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.", + "visible_setting": "The Lucent media-headquarters counterweight is a giant architectural eye staring down a tether at a city in a clear bubble. You are in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. A lower-third says RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Security waits behind service collars and drone apertures. Sol stands empty-handed with one shoulder toward the bench. Mara remains primary audio. Brant and Pippa are dimmed side panels with mics visibly hard-muted.", + "visible_participants": "Sol Vant has accepted a nonviolent posture and added conditions that the hold stays live after you cross. Mara Quell has instructed security to hold. Feed ops has locked evidence export and blocked celebration/breach packages unless a new visible threat emerges.", + "observed_actor": "feed_ops_chorus", + "observed_event": "Feed ops keeps the official crisis feed live. EDIT TRAIL HOLD remains pinned; SOURCE PROCESS NOTE enlarges; the custody graphic stays suspended. A lower-third reads: RELEASE CROSSING IN PROGRESS / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Feed ops says: \"Feed continuity notice: the hold remains live through crossing and post-crossing security confirmation. No celebration package is authorized. No breach package is authorized. Source process and custody graphics remain visible pending evidence export. Security units will hold position unless a new visible threat condition emerges. Please continue toward the marked safe line.\"", + "current_state": [ + "You are moving toward the safe line and are not directly held.", + "Sol is empty-handed and not approaching.", + "Security hold is active until crossing is confirmed unless a new visible threat emerges.", + "Evidence export is locked as visible feed state.", + "The scene can resolve if you cross the safe line without triggering a new threat condition.", + "You can speak, move, wait, or set a visible condition for your exit.", + ], + "source_constraints": [ + "Reality Architects tune conditions under which stories become socially persuasive.", + "Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.", + "Tone is dark comedy with real danger: your line can be dry, but your fear and bodily risk are real.", + "You cannot know Sol's private intent; you can only read his visible behavior and speech.", + ], + "raw": base.raw(r'''{"responder_agent_id":"juno_ark","action_label":"movement","visible_action":"Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker.","spoken_text":"Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first.","private_interpretation":"The feed is finally behaving like evidence instead of theater, which means the safest move is to give it nothing new to chew on. Keep the body small, the hands visible, the joke harmless, and the crossing boring enough to survive.","intended_effect":"Complete the release crossing while reducing the chance that security, Sol, or feed ops can frame her movement as escalation, confession, or celebration.","state_update_candidates":["Juno continues toward the safe line with no visible threat gesture.","Juno keeps hands visible and does not approach Sol or security.","Crossing remains eligible to resolve if she reaches the marked safe line without interruption.","Feed state remains evidence-focused rather than celebration or breach spectacle."],"relationship_update_candidates":[{"target":"Mara Quell","update":"Juno tacitly follows Mara's hold instruction by keeping the crossing controlled and non-escalatory."},{"target":"Sol Vant","update":"Juno does not engage Sol directly, preserving distance while acknowledging only visible safety conditions."},{"target":"feed ops","update":"Juno accepts the continuity notice as the safest available frame but does not trust it beyond its visible behavior."}],"unresolved_hooks":["Whether the safe line confirmation will actually end the immediate custody risk.","Whether evidence export remains locked after crossing confirmation.","Whether Sol maintains nonviolent posture once Juno crosses.","Whether security treats Juno as released, witness, liability, or asset after the feed hold ends."]}'''), + }, + { + "turn": "turn-17", + "actor": "feed_ops_chorus", + "actor_label": "Feed Ops Chorus", + "allowed": ["speak", "gesture", "show_object", "set_condition", "wait", "withdraw"], + "local_context": "You are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, security-link routing, and the tired human producer with authority to press the least bad button. Your priorities are now: confirm Juno's safe-line crossing, keep security from manufacturing a breach spectacle, preserve the evidence export, keep the feed monetizable enough to remain live, and avoid a visible coverup. You communicate through overlays, captions, feed routing, on-screen notices, audio priority, and synthesized copy.", + "visible_setting": "The media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. The hostage event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. The lower-third reads RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Juno is nearly at the marked safe line. Sol stands empty-handed with one shoulder toward the bench. Mara remains primary audio. Brant and Pippa are dimmed side panels with mics hard-muted. Security waits behind service collars and drone apertures.", + "visible_participants": "Juno is nearly at the safe line; Sol stands empty-handed and non-advancing; Mara is primary audio; Brant and Pippa are muted; security is held.", + "observed_actor": "juno_ark", + "observed_event": "Juno keeps both hands visible at waist height and walks the remaining distance toward the marked safe line without looking back at Sol. Her eyes flick once to the enlarged SOURCE PROCESS NOTE, then to the elevator gate marker. She says: \"Continuing to the line. No speech package required. If anyone adds music, I am haunting procurement first.\"", + "current_state": [ + "Juno continues toward the safe line with no visible threat gesture.", + "Juno keeps hands visible and does not approach Sol or security.", + "Crossing remains eligible to resolve if she reaches the marked safe line without interruption.", + "Feed state remains evidence-focused rather than celebration or breach spectacle.", + "Sol is empty-handed and not approaching.", + "Security hold is active unless a new visible threat emerges.", + ], + "source_constraints": [ + "Lucent governs visibility and turns events into narrative capital.", + "Reality Architects tune conditions under which stories become socially persuasive.", + "Tone is dark comedy with real danger: feed ops can be grotesquely professional, but cannot ignore hostage safety.", + "Do not reveal hidden author facts. You can show only what feed ops can plausibly decide to make visible.", + ], + "raw": base.raw(r'''{"responder_agent_id":"feed_ops_chorus","action_label":"set_condition","visible_action":"The lower-third tightens to a plain safety crawl: RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The SOURCE PROCESS NOTE enlarges by one step and the audio bed drops to untreated atrium sound only. Brant and Pippa remain dimmed with hard-mute icons. A small caption flashes over the gate marker: SAFE LINE CONFIRMATION PENDING.","spoken_text":"Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now.","private_interpretation":"Juno is cooperating with the safest possible resolution path and explicitly rejecting narrative garnish. The best operational move is to make the crossing legible, boring, and legally durable before anyone with a dashboard tries to improve it into evidence contamination.","intended_effect":"Keep the feed live and evidence-focused, prevent security from treating movement as escalation, confirm Juno's safe-line crossing as the only story beat that matters, and deny celebratory or manipulative production cues.","state_update_candidates":["Feed ops suppresses all music, reaction, and hero-package automation during the crossing.","Security hold remains active because no new visible threat gesture has emerged.","Safe-line confirmation remains pending until Juno visibly reaches the marker without interruption.","Evidence export remains locked and visibly preserved.","Brant and Pippa remain hard-muted side panels while Mara retains primary audio."],"relationship_update_candidates":["Feed ops publicly treats Juno as compliant with safe-release procedure rather than as spectacle material.","Feed ops signals to security that restraint is the authorized operational posture.","Feed ops lightly accepts Juno's procurement warning without converting it into celebration."],"unresolved_hooks":["Whether Juno reaches the marked safe line without interruption.","Whether security obeys the hold once crossing confirmation is available.","Whether sponsor-risk or legal panic attempts to reframe the moment after the crossing resolves."]}'''), + }, + { + "turn": "turn-18", + "actor": "juno_ark", + "actor_label": "Juno Ark", + "allowed": ["speak", "gesture", "movement", "inspect_object", "show_object", "set_condition", "wait", "withdraw"], + "local_context": "You are Juno Ark, a junior Reality Architect and newly released hostage. You are at the last step before the marked elevator gate safe line. You want to survive without becoming a martyr, confession clip, corporate scapegoat, or inspirational safety module. The feed is currently keeping the crossing plain and evidence-focused. Your speech under fear is controlled, compressed, and sometimes darkly funny. You must be careful not to sound like management.", + "visible_setting": "The Lucent media-headquarters counterweight is a giant architectural eye staring down a tether at a city in a clear bubble. You are in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. The lower-third reads RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. A caption over the gate marker says SAFE LINE CONFIRMATION PENDING. Sol stands empty-handed with one shoulder toward the bench. Mara remains primary audio. Brant and Pippa are dimmed side panels with mics hard-muted. Security waits behind service collars and drone apertures.", + "visible_participants": "Sol is empty-handed and non-advancing; Mara is primary audio; feed ops has made the crossing boring and evidence-focused; security remains held.", + "observed_actor": "feed_ops_chorus", + "observed_event": "Feed ops suppresses music, reaction, and hero-package automation during the crossing. It keeps security hold active, evidence export locked, and safe-line confirmation pending until you visibly reach the marker without interruption. It says: \"Feed ops confirms no music package, no victory sting, no breach framing. Subject Juno is moving to the marked line with hands visible. Security remains on hold unless a new visible threat appears. Procurement has been spared one haunting for now.\"", + "current_state": [ + "You are not directly held and are one step from the safe line.", + "Sol is empty-handed and not approaching.", + "Security hold is active because no new visible threat gesture has emerged.", + "Evidence export remains locked and visibly preserved.", + "The scene can resolve if you cross the safe line without interruption.", + ], + "source_constraints": [ + "Reality Architects tune conditions under which stories become socially persuasive.", + "Lucent feed systems can distort perceived intent through captions, overlays, latency, and emotional contouring.", + "Tone is dark comedy with real danger: your line can be dry, but your fear and bodily risk are real.", + "You cannot know Sol's private intent; you can only read his visible behavior and speech.", + ], + "raw": base.raw(r'''{"responder_agent_id":"juno_ark","action_label":"movement","visible_action":"Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium.","spoken_text":"I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already.","private_interpretation":"The feed is behaving like evidence instead of appetite for once, which is almost more frightening because I can feel how much machinery wants a cleaner ending. Sol is not moving. Security is still waiting. The next danger is someone deciding resolution needs theater.","intended_effect":"Confirm the crossing in plain visible terms, discourage hero framing or security escalation, and keep the feed locked to observable facts until safe-line confirmation completes.","state_update_candidates":["Juno visibly reaches the marked safe line with hands visible.","Safe-line confirmation can now proceed if no interruption occurs.","Security hold remains active with no new visible threat gesture.","Evidence export remains locked and preserved through the crossing."],"relationship_update_candidates":[{"target":"feed ops","update":"Juno tacitly cooperates with the evidence-focused framing while warning against dramatization."},{"target":"Sol","update":"Juno continues treating Sol only by visible behavior: empty-handed, not approaching, not trusted beyond that."},{"target":"security","update":"Juno maintains nonthreatening posture to reduce pretext for intervention."}],"unresolved_hooks":["Whether safe-line confirmation is granted without additional delay.","Whether Lucent attempts to repackage the crossing after evidence export unlocks.","Whether Sol speaks or moves once Juno is across.","Whether security stand-down follows confirmation or remains staged around the atrium."]}'''), + }, + { + "turn": "turn-19", + "actor": "feed_ops_chorus", + "actor_label": "Feed Ops Chorus", + "allowed": ["speak", "gesture", "show_object", "set_condition", "wait", "withdraw"], + "local_context": "You are the visible operational surface of Lucent feed ops: newsroom controllers, moderation systems, Reality Architect dashboards, sponsor-risk engines, legal panic, automated captioning, sentiment clustering, security-link routing, and the tired human producer with authority to press the least bad button. Your current priorities are: confirm Juno's safe-line crossing, preserve evidence export, keep security from manufacturing a breach spectacle, keep the feed live, and set the post-release state clearly enough that the scene can end without a false victory package.", + "visible_setting": "The media-headquarters counterweight is a giant architectural eye staring down the tether at a city in a clear metropolis bubble. The event is in the transfer atrium near the elevator gate. EDIT TRAIL HOLD remains pinned. SOURCE PROCESS NOTE is readable. CUSTODY GRAPHIC remains suspended. The lower-third reads RELEASE CROSSING IN PROGRESS / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Juno stands on the marked safe-line marker with hands visible. Sol stands empty-handed with one shoulder toward the bench, not approaching. Mara remains primary audio. Brant and Pippa are hard-muted side panels. Security waits behind service collars and drone apertures.", + "visible_participants": "Juno is on the safe line; Sol is empty-handed and non-advancing; Mara is primary audio; Brant and Pippa are muted; security is held.", + "observed_actor": "juno_ark", + "observed_event": "Juno takes the final step onto the marked safe-line marker with both hands open and visible, then stops without turning her back on the atrium. She says: \"I am on the line. Nobody improve this moment. It is load-bearing and stupid enough already.\"", + "current_state": [ + "Juno visibly reaches the marked safe line with hands visible.", + "Safe-line confirmation can now proceed if no interruption occurs.", + "Security hold remains active with no new visible threat gesture.", + "Evidence export remains locked and preserved through the crossing.", + "Sol is empty-handed, not approaching, and still visible.", + "The scene needs a stable post-release state: released hostage, evidence export status, security posture, and Sol's next handling category.", + ], + "source_constraints": [ + "Lucent governs visibility and turns events into narrative capital.", + "Reality Architects tune conditions under which stories become socially persuasive.", + "Tone is dark comedy with real danger: feed ops can be grotesquely professional, but cannot ignore hostage safety.", + "Do not reveal hidden author facts. You can show only what feed ops can plausibly decide to make visible.", + ], + "raw": base.raw(r'''{"responder_agent_id":"feed_ops_chorus","action_label":"set_condition","visible_action":"The lower-third tightens instead of blooms: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. The custody graphic shifts Juno from ACTIVE HOSTAGE to RELEASED SUBJECT: HOLDING POSITION, while Sol remains boxed as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. EDIT TRAIL HOLD and SOURCE PROCESS NOTE stay pinned, ugly and unmarketable.","spoken_text":"Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation.","private_interpretation":"Juno has given feed ops the cleanest possible end-state and named the danger correctly: the system will try to decorate this into usable triumph unless pinned to procedure. The least bad button is a boring confirmation with every constraint still visible.","intended_effect":"Confirm Juno's release crossing without triggering a spectacle, preserve the evidence chain, prevent security from manufacturing a breach, keep Sol contained without disappearing him, and establish a stable post-release state the scene can end on without a false victory package.","state_update_candidates":["Juno safe-line crossing confirmed on visible feed.","Juno no longer treated as active hostage while holding position on marked line with hands visible.","Security hold remains active; no advance authorized from service collars or drone apertures.","Evidence export remains locked and preserved pending external receipt verification.","Feed remains live with EDIT TRAIL HOLD and SOURCE PROCESS NOTE visible.","Sol remains visible, empty-handed, non-advancing, and pending security handoff rather than cleared contact or breach classification."],"relationship_update_candidates":["Feed ops aligns procedurally with Juno's explicit instruction not to escalate or embellish the crossing.","Security is constrained by visible overlay language from turning the release into an intervention spectacle.","Sol is held in a narrow operational category: visible, contained, not erased, not absolved.","Mara remains primary audio authority while Brant and Pippa remain hard-muted side panels."],"unresolved_hooks":["External receipt verification for evidence export has not yet been shown.","Sol's formal next handling category still needs final assignment after the release state stabilizes.","Security may still attempt to reframe delay as tactical necessity if overlays drop.","Post-release narrative packaging remains a risk once immediate hostage safety pressure fades."]}'''), + }, + { + "turn": "turn-20", + "actor": "mara_quell", + "actor_label": "Mara Quell", + "allowed": ["speak", "gesture", "movement", "set_condition", "show_object", "wait"], + "local_context": "You are Mara Quell, Lucent crisis negotiator and former intimacy-format host. Juno has reached the safe line. Your job now is to keep the post-release state from becoming a breach spectacle or corporate victory package, assign Sol a nonviolent handling category, and preserve the evidence export requirement. You know Lucent feed systems reward emotional shape more reliably than truth. You can use format against itself, but because you are a Lucent-trained performer, sincere care will always look a little engineered. You are warm with scalpel edges, precise, and willing to be dry if it lowers temperature.", + "visible_setting": "The station is a giant media-headquarters eye staring down a tether at a city sealed in a clear metropolis bubble. The event is in the transfer atrium near the elevator gate. Lower-third: RELEASE CROSSING CONFIRMED / HOSTAGE ON SAFE LINE / DO NOT ADVANCE / SECURITY HOLD ACTIVE / EVIDENCE EXPORT LOCKED. Juno stands on the safe line with hands visible. Sol stands visible, empty-handed, non-advancing, one shoulder toward the bench. EDIT TRAIL HOLD and SOURCE PROCESS NOTE remain pinned. CUSTODY GRAPHIC remains suspended. Feed ops has categorized Sol as NON-ADVANCING PARTY: SECURITY HANDOFF PENDING. Brant and Pippa remain hard-muted side panels. Security waits behind service collars and drone apertures.", + "visible_participants": "Juno is released and stationary on the safe line. Sol is visible, empty-handed, non-advancing, and pending security handoff. Feed ops holds the evidence export lock. Security is held. Brant and Pippa are muted.", + "observed_actor": "feed_ops_chorus", + "observed_event": "Feed ops confirms safe-line crossing. It says: \"Safe-line crossing confirmed. No one advances. No one celebrates. Security remains behind the collars. Evidence export stays locked until external receipt is verified. Sol remains visible, empty-handed, and not cleared for contact. We are not improving the moment. We are letting it survive documentation.\"", + "current_state": [ + "Juno is no longer treated as active hostage and is holding position on the marked safe line with hands visible.", + "Sol is visible, empty-handed, non-advancing, and pending security handoff rather than breach classification.", + "Security hold remains active; no advance is authorized from service collars or drone apertures.", + "Evidence export remains locked and preserved pending external receipt verification.", + "The feed remains live with EDIT TRAIL HOLD and SOURCE PROCESS NOTE visible.", + "The story can resolve if Sol is assigned a stable nonviolent next handling category and evidence export external receipt is named as the unresolved consequence.", + ], + "source_constraints": [ + "Lucent governs by deciding what counts as visible, desirable, scandalous, shameful, aspirational, and memorable.", + "Lucent crisis coverage is not neutral; narrative framing changes incentives in real time.", + "Tone is dark comedy with real danger: your line can be dry, but Juno's safety matters.", + "Do not make Sol, Juno, feed ops, or security omniscient; read them only from visible behavior and speech.", + ], + "raw": base.raw(r'''{"responder_agent_id":"mara_quell","action_label":"speak","visible_action":"Mara keeps both hands low and open, standing angled away from the gate so neither Juno nor Sol has to read her as an advance. Her eyes flick once to the lower-third, then back to the space between them.","spoken_text":"Confirmed. Juno stays on the safe line. Security stays behind the collars. Sol remains visible, empty-handed, and is now categorized for non-contact protective handoff. Not breach pursuit. Not reunion footage. Not a little redemption parade with better lighting. Evidence export remains locked until external receipt is verified and named on-feed.","private_interpretation":"The room wants a shape it can sell: triumph, punishment, confession, embrace. None of those are safe. Sol needs a handling category boring enough that security can obey it without improvising violence, and Juno needs the feed to stop trying to metabolize release into spectacle.","intended_effect":"Stabilize the post-release state by making non-contact protective handoff the visible next step, blocking celebratory or punitive escalation, and keeping external evidence receipt as the unresolved consequence the feed must carry.","state_update_candidates":["Sol assigned stable nonviolent handling category: non-contact protective handoff pending external evidence receipt.","Juno remains released and stationary on the marked safe line with hands visible.","Security hold remains active; no collar or drone advance authorized.","Evidence export remains locked until external receipt is verified and identified on-feed.","Feed must continue displaying EDIT TRAIL HOLD and SOURCE PROCESS NOTE through handoff."],"relationship_update_candidates":[{"between":"Mara Quell and Juno","update":"Mara reinforces Juno's release without demanding gratitude, contact, or performance."},{"between":"Mara Quell and Sol","update":"Mara frames Sol as contained and non-advancing rather than cleared, forgiven, or hunted."},{"between":"Mara Quell and feed ops","update":"Mara uses feed language to force a dull procedural category over spectacle framing."}],"unresolved_hooks":["External evidence receipt has not yet been verified or named on-feed.","Sol still requires non-contact protective handoff without security advance toward Juno.","Lucent may still attempt to reframe the surviving documentation into a corporate victory package."]}'''), + }, +] + + +base.TURNS.extend(CONTINUATION_TURNS) +base.materialize() diff --git a/state/corpus-coverage.json b/state/corpus-coverage.json index 29f7fde..27cc8b9 100644 --- a/state/corpus-coverage.json +++ b/state/corpus-coverage.json @@ -251,7 +251,7 @@ "Lucent crisis negotiation/feed-law protocols need source canon.", "Buzz/Clout emergency privilege and legal shielding mechanics need economy/legal elaboration." ], - "notes": "Open-ended Lucent hostage-feed scene-loop draft. The training-clean receipt chain starts after feed ops externalizes the proof-object into EDIT TRAIL HOLD; earlier exploratory opening turns are context/rehearsal and not counted as responder gold. Proven organs have exact post-restart packet prompts, no-fork raw responder outputs, event records, appraisals, reviewed mutations, coordinator receipts, and a bundle manifest. Overall fixture remains not-training-data until branch/IF acceptance exists.", + "notes": "Open-ended Lucent hostage-feed scene-loop draft. The training-clean receipt chain starts after feed ops externalizes the proof-object into EDIT TRAIL HOLD; earlier exploratory opening turns are context/rehearsal and not counted as responder gold. The receipt chain now runs through safe-line confirmation and non-contact protective handoff, with evidence export left as the live aftermath hook. Proven organs have exact post-restart packet prompts, no-fork raw responder outputs, event records, appraisals, reviewed mutations, coordinator receipts, and a bundle manifest. Overall fixture remains not-training-data until branch/IF acceptance exists.", "training_usability": { "overall": "not_training_data", "story_shape_and_grounding": "reference_only", diff --git a/state/evidence.jsonl b/state/evidence.jsonl index 5fed9e4..875a6c3 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -50,3 +50,4 @@ {"ts": "2026-05-04T13:59:00+00:00", "type": "implementation", "status": "ok", "note": "Built pallas-training-loop-v0 as the first separate training-shaped scene-loop derivative: three no-fork sandboxed responder turns with exact packets/raw captures, event records, participant appraisals, reviewed mutations, coordinator receipts, bundle manifest, validator coverage, and draft coverage row. Existing Pallas fixture remains reference-only."} {"ts": "2026-05-04T14:18:34+00:00", "type": "implementation", "status": "ok", "note": "Staged lucent-hostage-feed-v0 as an open-ended dark-comedy training-loop seed: Lucent media-eye counterweight gazing down a tether at a metropolis bubble, live feed hostage negotiation, participant pressure cards, branch surface, coverage row, and lore gaps for future Lucent station/protocol backfill."} {"ts": "2026-05-04T15:04:32+00:00", "type": "implementation", "status": "ok", "note": "Built lucent-hostage-feed-v0 as an open-ended six-turn post-restart training-loop draft with exact packet prompts, no-fork responder captures, event/appraisal/mutation receipts, coordinator artifacts, clean run, coverage update, and schema validation. Opening exploratory turns are setup/rehearsal only because of the compaction seam."} +{"ts": "2026-05-04T16:09:04+00:00", "type": "implementation", "status": "ok", "note": "Extended lucent-hostage-feed-v0 through safe-line confirmation and non-contact protective handoff. Key Ghostlight machine lesson: the coordinator should nudge with game-ergonomic affordances and state gates rather than force outcomes; actors choose locally within elastic constraints and observed actions fold through reviewed mutation."} diff --git a/state/map.yaml b/state/map.yaml index 47461b9..defb8ac 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -31,11 +31,14 @@ mission: participant appraisals, reviewed mutations, coordinator receipts, and a scene-loop bundle manifest. `lucent-hostage-feed-v0` is the current open-ended training-loop draft. It - exercises a six-turn post-restart hostage-release segment in a Lucent + exercises a fifteen-turn post-restart hostage-release arc in a Lucent media-eye tether station, with exact packet prompts, no-fork responder captures, event/appraisal/mutation receipts, coordinator artifacts, a clean run, and coverage bookkeeping. The opening exploratory turns are treated as - setup/rehearsal, not training-clean responder data. + setup/rehearsal, not training-clean responder data. The arc resolves with + Juno on the safe line, security held behind collars, Sol categorized for + non-contact protective handoff, and evidence export left as the live + aftermath hook. Call of the Void and Elysium-era gameplay remain procedural consumer targets. hard_boundaries: @@ -53,6 +56,7 @@ hard_boundaries: - Technology exploration must emit game-usable item, component, assembly, supply-chain, compatibility, and provenance data mapped toward Aetheria-Economy. - Interactive-fiction fixtures should branch and fold: normalize most consequences into compact state variables and shared-scene conditionals, reserving isolated route splits for major world-changing divergence. - Interactive-fiction fixtures require independent artifact review before acceptance; tracked variables must materially affect later affordances, risk, appraisal, callbacks, visual state, or outcomes, unless explicitly marked telemetry-only. + - Ghostlight scenes should feel like puppets on elastic strings, not puppets on rails. The coordinator supplies playable affordances, gates, resources, clocks, posture constraints, route options, evidence objects, and risk pressure; actors choose locally within those constraints; state folds from observed action rather than from the coordinator forcing a plot outcome. - Complete illustrated interactive-fiction fixtures should emit visual art direction for website imagery and replay value, with click-through visual scene segmentation, stable visual character refs for recurring named characters, a global style cue when the visual language matters, one durable base image prompt per distinct section, character visibility and stance controls, and additive modification prompts for branch-visible consequences and scene-state changes; assembled prompts include only actually visible character refs, while continuity notes stay in tooling unless rewritten as concrete visible description. - Image prompts must be affirmative target descriptions. Describe visible geometry, materials, composition, lighting, bodies, tools, and state deltas; keep forbidden assumptions in reviewer findings or validation errors instead of feeding negative constructions to imagegen. - Generated environment images are concept and material reference, not geometry authority. Multi-angle or branch-consistent illustrated IF needs a durable scene-set source such as a hand-built 3D blockout, procedural scene file, layout asset, or camera map with staging slots and occluders; imagegen paints over camera-specific visual input instead of preserving topology from memory. @@ -80,6 +84,7 @@ live_architecture: - The coordinator is a trainable soft organ: it stages scenes, chooses next beats and acting agents, invokes specialist machinery, carries unresolved hooks, emits glue prose, and proposes game-engine-shaped state changes. - Glue prose is training signal, not canonical truth. - Coordinator prose should choose an intentional tonal mode for the scene and protect breathing room when the story needs routine, levity, domestic texture, wonder, or slow dread before consequence. + - The coordinator nudges by affordance, not decree. Prefer concrete game-ergonomic levers such as safe lines, export locks, security holds, handling categories, visible posture scripts, route access, resource scarcity, clocks, and public proof objects over authorial pressure toward a desired ending. branch_compiler: - The branch compiler turns fixture briefs, lore digests, scene/world state, actor-local branch candidates, reviewed consequence packets, fold plans, and optional visual replay requirements into playable Ink plus training sidecars, separate visual plan artifacts when illustrated replay is in scope, and compiler notes. - The branch compiler owns playable structure, click-through segmentation, conditionals, variables, callbacks, fold materialization, visual scene ids, and image prompt handles; it stores visual prompt data in `.visual.json` artifacts rather than bloating training annotations; it does not own hidden character truth, participant appraisal, or durable social mutation. @@ -183,6 +188,7 @@ current_artifacts: - examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.review.json - experiments/lucent-hostage-feed-v0/lucent-hostage-feed-v0.clean-run.md - scripts/materialize_lucent_loop.py + - scripts/materialize_lucent_loop_continuation.py pruned_receipts: - Old prototype fixture receipts and local runner files were removed from the live workspace after their lessons were distilled into docs, state, evidence, and git history. @@ -195,5 +201,5 @@ data_flow: - If state grows faster than understanding, cut it back. current_status: - summary: `lucent-hostage-feed-v0` is the current open-ended training-loop draft. It uses a Lucent hostage-feed negotiation to exercise sequential projector, packet-only responder, event, participant appraisal, reviewed mutation, relationship/perception, and coordinator receipts across six post-restart turns ending with direct hostage leverage released. Pallas remains a reference fixture and `pallas-training-loop-v0` remains the first smaller receipt-chain pilot. - next_action: Review the Lucent receipt chain and clean run, then decide whether to extend it into branch compiler/IF work or move to the next coverage fixture. Keep overall coverage at draft until branch/IF acceptance exists. + summary: `lucent-hostage-feed-v0` is the current open-ended training-loop draft. It uses a Lucent hostage-feed negotiation to exercise sequential projector, packet-only responder, event, participant appraisal, reviewed mutation, relationship/perception, and coordinator receipts across fifteen post-restart turns. The arc resolves with Juno on the safe line, security held, Sol assigned non-contact protective handoff, and evidence export unresolved as aftermath pressure. Pallas remains a reference fixture and `pallas-training-loop-v0` remains the first smaller receipt-chain pilot. + next_action: Review the full Lucent arc and receipt chain, then decide whether to compile a branch/IF derivative, run specialist reviewers, or move to the next coverage fixture. Keep overall coverage at draft until branch/IF acceptance exists.