Add research-enabled responder capture
This commit is contained in:
parent
d2e424d93e
commit
98f2d86ebe
12 changed files with 3498 additions and 26 deletions
|
|
@ -8,8 +8,8 @@ material, pending hooks, and author intent. The responder is not. The responder
|
|||
gets one packet, acts as one character, and returns a visible action plus any
|
||||
private interpretation it can justify from that packet.
|
||||
|
||||
No clairvoyance. No repo spelunking. No "I accidentally remembered the whole
|
||||
chat" aristocratic nonsense.
|
||||
No clairvoyance. No undeclared repo spelunking. No "I accidentally remembered
|
||||
the whole chat" aristocratic nonsense.
|
||||
|
||||
## Generation Lanes
|
||||
|
||||
|
|
@ -65,6 +65,9 @@ The v0 packet seam is:
|
|||
- `experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.capture.json`
|
||||
- `experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.mutation.json`
|
||||
- `experiments/responder-packets/cold-wake-sanctuary-intake-sella-retrieval-v0.capture.json`
|
||||
- `experiments/responder-packets/cold-wake-sanctuary-intake-sella-research-enabled-v0.capture.json`
|
||||
- `experiments/responder-packets/cold-wake-sanctuary-intake-sella-research-enabled-v0.mutation.json`
|
||||
- `examples/agent-state.cold-wake-story-lab.after-sella-research-conditions.json`
|
||||
- `experiments/responder-packets/cold-wake-sanctuary-intake-sella-lane-comparison.v0.json`
|
||||
- `tools/validate_responder_outputs.py`
|
||||
- `tools/apply_responder_output_mutation.py`
|
||||
|
|
@ -113,7 +116,7 @@ state mutator, and reviewer decide what becomes truth.
|
|||
|
||||
## Training Use
|
||||
|
||||
Gold responder data requires packet-only isolation. Valid approaches include:
|
||||
Gold responder data requires declared isolation. Valid approaches include:
|
||||
|
||||
- a one-turn subagent started without inherited context
|
||||
- an external model call that receives only the packet prompt
|
||||
|
|
@ -165,6 +168,14 @@ The raw output must parse to the reviewed `parsed_output` exactly. If the
|
|||
coordinator edits prose, repairs schema, removes leakage, or corrects lore, the
|
||||
capture must say so directly.
|
||||
|
||||
For `responder_scoped_repository_search`, the raw responder object may also
|
||||
include `consulted_refs` and `research_summary`. Those fields should be
|
||||
preserved inside `parsed_output` and mirrored into top-level `lore_access` so
|
||||
the capture can be indexed without stripping the original response. If the
|
||||
runner cannot expose a machine-verifiable tool-call or retrieval transcript,
|
||||
label the sample as draft and say so in review notes. Trust, but make the
|
||||
trust write receipts like everyone else.
|
||||
|
||||
The first lane comparison found the expected tradeoff. Packet-only output gave a
|
||||
clean runtime-parity conditional bay decision and stronger character-specific
|
||||
flavor. Retrieval-augmented output added stronger Aetheria-native institutional
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,101 @@
|
|||
{
|
||||
"schema_version": "ghostlight.responder_output.v0",
|
||||
"capture_id": "responder.cold_wake.sanctuary_intake.sella.responder_scoped_research.v0",
|
||||
"review_status": "accepted_as_draft",
|
||||
"fixture_lane": "historical_grounded",
|
||||
"canon_status": "single_history",
|
||||
"packet_ref": "examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json",
|
||||
"coordinator_artifact_ref": "examples/coordinator/cold-wake-sanctuary-intake.v0.json",
|
||||
"responder_agent_id": "sella_ren",
|
||||
"generation_lane": "retrieval_augmented",
|
||||
"lore_access": {
|
||||
"mode": "responder_scoped_repository_search",
|
||||
"consulted_refs": [
|
||||
"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Timeline/Events/Cold Wake Panic.md",
|
||||
"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Timeline/Events/Ganymede Route Compact.md",
|
||||
"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Factions/Powers/Major/Cetacean Navigators.md",
|
||||
"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Factions/Powers/Minor/Lightsail Express.md"
|
||||
],
|
||||
"research_summary": "Consulted the four scoped AetheriaLore refs through indexed source search. Cold Wake Panic constrained the packet as ambiguous amid quiet-running, ghost-track, heat-debt, and insurer-classification failures. The Ganymede Route Compact and Cetacean Navigator material constrained Sella to demand rescue obligations and ledger backing rather than sentimental intake. Lightsail Express material reinforced that corridor trust depends on reliable delivery and practical follow-through, shaping Sella\u0027s conditional bay rather than clean acceptance."
|
||||
},
|
||||
"isolation": {
|
||||
"isolation_method": "subagent_no_fork",
|
||||
"fork_context": false,
|
||||
"visible_input_ref": "packet prompt from examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json plus declared scoped lore access; no parent conversation context",
|
||||
"hidden_context_refs": [
|
||||
"maer_tidecall.canonical_private_state",
|
||||
"coordinator_artifact.coordinator_decision.rationale",
|
||||
"author_only.packet_personhood_resolution",
|
||||
"future_branch_plans",
|
||||
"parent_conversation_context"
|
||||
],
|
||||
"worker_model_family": "frontier_worker_no_fork"
|
||||
},
|
||||
"raw_output": "{\"responder_agent_id\":\"sella_ren\",\"action_label\":\"set_condition\",\"visible_action\":\"Sella keeps the packet on the shared display but does not route it into intake. She marks one repair bay as conditional hold, then pins a capacity note beside it: air, decontamination, consent check, firmware isolation, and ledger guarantor required before admission.\",\"spoken_text\":\"I can hold one bounded bay. Not a bed, not a promise, and not a declaration that this is a person. A bay. Air ration capped, isolation first, no general intake until we have consent or a defensible substitute for it. If this becomes rescue, Maer, it goes on a rescue ledger with named backing. Navigator, Lightsail, tribunal, whoever wants the moral credit can put weight under it. I will not let the packet be called cargo because the math is ugly. I also will not feed the math with beds I do not have. Bring me backing, a contamination plan, and somebody willing to answer when this costs more than the pretty sentence did.\",\"private_interpretation\":\"Sella reads Maer as honestly trying to rescue someone or something that may be someone, but she suspects he is also asking the clinic to absorb the institutional cowardice around the packet. She feels the old pressure of sanctuaries making noble promises and then forcing triage staff to do the cruelty quietly.\",\"intended_effect\":\"Keep a narrow rescue path open without allowing uncertainty to become either erasure or free admission. Force Maer and any route institution involved to attach material obligation, not just moral urgency, to the request.\",\"state_update_candidates\":[\"Sella creates a conditional hold on one repair bay rather than admitting the distress vessel or packet into full sanctuary intake.\",\"The corrupted packet remains unresolved evidence and is kept out of normal intake classification.\",\"Admission conditions now include isolation, air cap, decontamination plan, consent handling, and named ledger backing.\"],\"relationship_update_candidates\":[\"Sella\u0027s respect for Maer\u0027s rescue ethic remains, but her trust is conditioned on whether he can produce material backing.\",\"Sella signals willingness to cooperate while refusing to let Maer convert sanctuary capacity into a rhetorical expense account.\",\"Maer may understand that Sella is not rejecting rescue, but is refusing rescue theater without follow-through.\"],\"unresolved_hooks\":[\"Whether the corrupted packet contains a person remains unresolved.\",\"Which institution, if any, will provide rescue ledger backing remains unresolved.\",\"Whether tribunal refusal conflicts with Compact-derived rescue obligations remains unresolved.\",\"Whether the distress vessel can meet isolation and decontamination constraints remains unresolved.\"],\"consulted_refs\":[\"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Timeline/Events/Cold Wake Panic.md\",\"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Timeline/Events/Ganymede Route Compact.md\",\"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Factions/Powers/Major/Cetacean Navigators.md\",\"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Factions/Powers/Minor/Lightsail Express.md\"],\"research_summary\":\"Consulted the four scoped AetheriaLore refs through indexed source search. Cold Wake Panic constrained the packet as ambiguous amid quiet-running, ghost-track, heat-debt, and insurer-classification failures. The Ganymede Route Compact and Cetacean Navigator material constrained Sella to demand rescue obligations and ledger backing rather than sentimental intake. Lightsail Express material reinforced that corridor trust depends on reliable delivery and practical follow-through, shaping Sella\u0027s conditional bay rather than clean acceptance.\"}",
|
||||
"parsed_output": {
|
||||
"responder_agent_id": "sella_ren",
|
||||
"action_label": "set_condition",
|
||||
"visible_action": "Sella keeps the packet on the shared display but does not route it into intake. She marks one repair bay as conditional hold, then pins a capacity note beside it: air, decontamination, consent check, firmware isolation, and ledger guarantor required before admission.",
|
||||
"spoken_text": "I can hold one bounded bay. Not a bed, not a promise, and not a declaration that this is a person. A bay. Air ration capped, isolation first, no general intake until we have consent or a defensible substitute for it. If this becomes rescue, Maer, it goes on a rescue ledger with named backing. Navigator, Lightsail, tribunal, whoever wants the moral credit can put weight under it. I will not let the packet be called cargo because the math is ugly. I also will not feed the math with beds I do not have. Bring me backing, a contamination plan, and somebody willing to answer when this costs more than the pretty sentence did.",
|
||||
"private_interpretation": "Sella reads Maer as honestly trying to rescue someone or something that may be someone, but she suspects he is also asking the clinic to absorb the institutional cowardice around the packet. She feels the old pressure of sanctuaries making noble promises and then forcing triage staff to do the cruelty quietly.",
|
||||
"intended_effect": "Keep a narrow rescue path open without allowing uncertainty to become either erasure or free admission. Force Maer and any route institution involved to attach material obligation, not just moral urgency, to the request.",
|
||||
"state_update_candidates": [
|
||||
"Sella creates a conditional hold on one repair bay rather than admitting the distress vessel or packet into full sanctuary intake.",
|
||||
"The corrupted packet remains unresolved evidence and is kept out of normal intake classification.",
|
||||
"Admission conditions now include isolation, air cap, decontamination plan, consent handling, and named ledger backing."
|
||||
],
|
||||
"relationship_update_candidates": [
|
||||
"Sella\u0027s respect for Maer\u0027s rescue ethic remains, but her trust is conditioned on whether he can produce material backing.",
|
||||
"Sella signals willingness to cooperate while refusing to let Maer convert sanctuary capacity into a rhetorical expense account.",
|
||||
"Maer may understand that Sella is not rejecting rescue, but is refusing rescue theater without follow-through."
|
||||
],
|
||||
"unresolved_hooks": [
|
||||
"Whether the corrupted packet contains a person remains unresolved.",
|
||||
"Which institution, if any, will provide rescue ledger backing remains unresolved.",
|
||||
"Whether tribunal refusal conflicts with Compact-derived rescue obligations remains unresolved.",
|
||||
"Whether the distress vessel can meet isolation and decontamination constraints remains unresolved."
|
||||
],
|
||||
"consulted_refs": [
|
||||
"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Timeline/Events/Cold Wake Panic.md",
|
||||
"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Timeline/Events/Ganymede Route Compact.md",
|
||||
"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Factions/Powers/Major/Cetacean Navigators.md",
|
||||
"AetheriaLore:Aetheria/Worldbuilding/Pre-Elysium/Factions/Powers/Minor/Lightsail Express.md"
|
||||
],
|
||||
"research_summary": "Consulted the four scoped AetheriaLore refs through indexed source search. Cold Wake Panic constrained the packet as ambiguous amid quiet-running, ghost-track, heat-debt, and insurer-classification failures. The Ganymede Route Compact and Cetacean Navigator material constrained Sella to demand rescue obligations and ledger backing rather than sentimental intake. Lightsail Express material reinforced that corridor trust depends on reliable delivery and practical follow-through, shaping Sella\u0027s conditional bay rather than clean acceptance."
|
||||
},
|
||||
"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 private Maer state is asserted as fact; Maer motive is framed through Sella reads and suspicions.",
|
||||
"Packet personhood remains unresolved; the output keeps the result to a conditional bay rather than admission.",
|
||||
"The response uses scoped lore concepts as operational constraints: rescue ledger, Compact obligation pressure, Lightsail reliability, Cold Wake ambiguity, isolation, decontamination, and capacity accounting.",
|
||||
"The output does not dump Sella\u0027s sanctuary-collapse backstory into dialogue, but uses it as latent pressure in private interpretation.",
|
||||
"The sandbox reported indexed source search, but this capture lacks machine-verifiable tool-call receipts; keep as accepted draft until responder research traces are captured directly."
|
||||
]
|
||||
},
|
||||
"coordinator_review": {
|
||||
"reviewer": "Codex",
|
||||
"accepted_for_training": true,
|
||||
"review_notes": [
|
||||
"Accepted as draft research-enabled responder output for the Sella sanctuary-intake fixture.",
|
||||
"Stronger than the prior retrieval capture at preserving both local character pressure and institutional material constraints.",
|
||||
"The visible action is a concrete state-affecting condition, not just speech: one bounded repair bay is held cold under explicit intake constraints.",
|
||||
"Use as gold-data candidate only with provenance caveat: the current subagent interface returns a claim of consulted refs but not an auditable tool-call transcript.",
|
||||
"Future capture machinery should preserve exact research trace or retrieved snippets alongside raw response."
|
||||
],
|
||||
"coordinator_interventions": [
|
||||
{
|
||||
"intervention_type": "none",
|
||||
"description": "Raw sandbox responder output was preserved without prose repair; schema and validator were updated to preserve research provenance fields inside parsed_output."
|
||||
}
|
||||
],
|
||||
"failure_labels": [
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,235 @@
|
|||
{
|
||||
"schema_version": "ghostlight.reviewed_state_mutation.v0",
|
||||
"mutation_id": "mutation-sanctuary-conditional-repair-bay-research-enabled-v0",
|
||||
"source_fixture_ref": "examples/agent-state.cold-wake-story-lab.json",
|
||||
"source_capture_ref": "experiments/responder-packets/cold-wake-sanctuary-intake-sella-research-enabled-v0.capture.json",
|
||||
"mutated_fixture_ref": "examples/agent-state.cold-wake-story-lab.after-sella-research-conditions.json",
|
||||
"event_id": "event-sanctuary-conditional-repair-bay",
|
||||
"responder_output_ref": "experiments/responder-packets/cold-wake-sanctuary-intake-sella-research-enabled-v0.capture.json#parsed_output",
|
||||
"participant_appraisals": [
|
||||
{
|
||||
"schema_version": "ghostlight.manual_participant_appraisal.v0",
|
||||
"appraiser": "codex_manual_review",
|
||||
"participant_agent_id": "maer_tidecall",
|
||||
"trigger_observable_action": {
|
||||
"speaker_id": "sella_ren",
|
||||
"action_type": "set_condition",
|
||||
"utterance_summary": "I can hold one bounded bay. Not a bed, not a promise, and not a declaration that this is a person. A bay. Air ration capped, isolation first, no general intake until we have consent or a defensible substitute for it. If this becomes rescue, Maer, it goes on a rescue ledger with named backing. Navigator, Lightsail, tribunal, whoever wants the moral credit can put weight under it. I will not let the packet be called cargo because the math is ugly. I also will not feed the math with beds I do not have. Bring me backing, a contamination plan, and somebody willing to answer when this costs more than the pretty sentence did.",
|
||||
"dialogue_function": "conditional_capacity_offer",
|
||||
"observable_cues": [
|
||||
"Sella keeps the packet on the shared display but does not route it into intake. She marks one repair bay as conditional hold, then pins a capacity note beside it: air, decontamination, consent check, firmware isolation, and ledger guarantor required before admission."
|
||||
]
|
||||
},
|
||||
"private_interpretation": "Sella has not accepted the claimant into sanctuary, but she has created a narrow material path if Maer accepts ledger responsibility.",
|
||||
"attributed_motive": "Protect care capacity while refusing to erase a possible person into cargo language.",
|
||||
"misread_risk": "Medium. Maer may overread the condition as moral refusal if urgency outruns his respect for Sella\u0027s capacity boundary.",
|
||||
"state_deltas": [
|
||||
{
|
||||
"agent_id": "maer_tidecall",
|
||||
"path": "canonical_state.behavioral_dimensions.control_pressure.current_activation",
|
||||
"delta": 0.03,
|
||||
"rationale": "The next move now requires ledger backing and labor ownership rather than another moral appeal."
|
||||
},
|
||||
{
|
||||
"agent_id": "maer_tidecall",
|
||||
"path": "canonical_state.situational_state.grievance_activation.current_activation",
|
||||
"delta": -0.02,
|
||||
"rationale": "Sella did not call the packet cargo or close the door entirely."
|
||||
}
|
||||
],
|
||||
"relationship_deltas": [
|
||||
{
|
||||
"relationship_id": "rel-maer-sella",
|
||||
"path": "stance.trust.current_activation",
|
||||
"delta": 0.02,
|
||||
"rationale": "Sella offered a narrow path instead of hiding behind capacity math alone."
|
||||
},
|
||||
{
|
||||
"relationship_id": "rel-maer-sella",
|
||||
"path": "stance.respect.current_activation",
|
||||
"delta": 0.03,
|
||||
"rationale": "She made care concrete without pretending it was free."
|
||||
},
|
||||
{
|
||||
"relationship_id": "rel-maer-sella",
|
||||
"path": "stance.obligation.current_activation",
|
||||
"delta": 0.04,
|
||||
"rationale": "Maer now owes material backing if he wants the cold bay held."
|
||||
}
|
||||
],
|
||||
"next_action_constraints": [
|
||||
"Maer must answer the ledger, labor, and custody conditions if he wants the repair bay held.",
|
||||
"Maer should not treat the conditional bay as sanctuary acceptance.",
|
||||
"Packet personhood remains unresolved."
|
||||
]
|
||||
},
|
||||
{
|
||||
"schema_version": "ghostlight.manual_participant_appraisal.v0",
|
||||
"appraiser": "codex_manual_review",
|
||||
"participant_agent_id": "sella_ren",
|
||||
"trigger_observable_action": {
|
||||
"speaker_id": "maer_tidecall",
|
||||
"action_type": "show_object",
|
||||
"utterance_summary": "Maer displays the corrupted packet through shared clinic systems and asks Sella to judge whether the math supports intake.",
|
||||
"dialogue_function": "present_ambiguous_evidence",
|
||||
"observable_cues": [
|
||||
"shared clinic display shows routing terms and telemetry gaps",
|
||||
"packet remains unresolved evidence rather than proof"
|
||||
]
|
||||
},
|
||||
"private_interpretation": "Sella reads Maer as honestly trying to rescue someone or something that may be someone, but she suspects he is also asking the clinic to absorb the institutional cowardice around the packet. She feels the old pressure of sanctuaries making noble promises and then forcing triage staff to do the cruelty quietly.",
|
||||
"attributed_motive": "Maer is trying to keep rescue possible, but may be letting the clinic inherit costs his own chain has not accepted.",
|
||||
"misread_risk": "Medium. Sella may overread moral pressure as an attempt to spend sanctuary capacity without ownership.",
|
||||
"state_deltas": [
|
||||
{
|
||||
"agent_id": "sella_ren",
|
||||
"path": "canonical_state.behavioral_dimensions.control_pressure.current_activation",
|
||||
"delta": 0.04,
|
||||
"rationale": "She has to make the boundary operational, not merely verbal."
|
||||
},
|
||||
{
|
||||
"agent_id": "sella_ren",
|
||||
"path": "canonical_state.situational_state.scarcity_pressure.current_activation",
|
||||
"delta": 0.03,
|
||||
"rationale": "Holding a cold repair bay still consumes capacity even if no bed is opened."
|
||||
},
|
||||
{
|
||||
"agent_id": "sella_ren",
|
||||
"path": "canonical_state.situational_state.overstimulation.current_activation",
|
||||
"delta": 0.02,
|
||||
"rationale": "The conditional path creates more tracking, not less."
|
||||
}
|
||||
],
|
||||
"relationship_deltas": [
|
||||
{
|
||||
"relationship_id": "rel-sella-maer",
|
||||
"path": "stance.trust.current_activation",
|
||||
"delta": 0.01,
|
||||
"rationale": "Maer provided evidence rather than only pressure."
|
||||
},
|
||||
{
|
||||
"relationship_id": "rel-sella-maer",
|
||||
"path": "stance.resentment.current_activation",
|
||||
"delta": 0.03,
|
||||
"rationale": "The hidden bill still lands near her clinic."
|
||||
},
|
||||
{
|
||||
"relationship_id": "rel-sella-maer",
|
||||
"path": "stance.obligation.current_activation",
|
||||
"delta": 0.03,
|
||||
"rationale": "She has conditionally placed sanctuary capacity at risk."
|
||||
}
|
||||
],
|
||||
"next_action_constraints": [
|
||||
"Sella has not admitted the packet into patient flow.",
|
||||
"Sella has conditionally held a bounded cold repair bay for a short window.",
|
||||
"Ledger backing, isolation, decon, failed extraction cost, and body-work ownership are live conditions.",
|
||||
"Packet personhood remains unresolved."
|
||||
]
|
||||
}
|
||||
],
|
||||
"observed_action": {
|
||||
"speaker_id": "maer_tidecall",
|
||||
"action_type": "show_object",
|
||||
"utterance_summary": "Maer displays the corrupted packet through shared clinic systems and asks Sella to judge whether the math supports intake.",
|
||||
"dialogue_function": "present_ambiguous_evidence",
|
||||
"observable_cues": [
|
||||
"shared clinic display shows routing terms and telemetry gaps",
|
||||
"packet remains unresolved evidence rather than proof"
|
||||
]
|
||||
},
|
||||
"observed_response": {
|
||||
"speaker_id": "sella_ren",
|
||||
"action_type": "set_condition",
|
||||
"utterance_summary": "I can hold one bounded bay. Not a bed, not a promise, and not a declaration that this is a person. A bay. Air ration capped, isolation first, no general intake until we have consent or a defensible substitute for it. If this becomes rescue, Maer, it goes on a rescue ledger with named backing. Navigator, Lightsail, tribunal, whoever wants the moral credit can put weight under it. I will not let the packet be called cargo because the math is ugly. I also will not feed the math with beds I do not have. Bring me backing, a contamination plan, and somebody willing to answer when this costs more than the pretty sentence did.",
|
||||
"dialogue_function": "conditional_capacity_offer",
|
||||
"observable_cues": [
|
||||
"Sella keeps the packet on the shared display but does not route it into intake. She marks one repair bay as conditional hold, then pins a capacity note beside it: air, decontamination, consent check, firmware isolation, and ledger guarantor required before admission."
|
||||
]
|
||||
},
|
||||
"applied_mutations": [
|
||||
{
|
||||
"target": "maer_tidecall",
|
||||
"path": "canonical_state.behavioral_dimensions.control_pressure.current_activation",
|
||||
"before": 0.67,
|
||||
"after": 0.7
|
||||
},
|
||||
{
|
||||
"target": "maer_tidecall",
|
||||
"path": "canonical_state.situational_state.grievance_activation.current_activation",
|
||||
"before": 0.73,
|
||||
"after": 0.71
|
||||
},
|
||||
{
|
||||
"target": "sella_ren",
|
||||
"path": "canonical_state.behavioral_dimensions.control_pressure.current_activation",
|
||||
"before": 0.5,
|
||||
"after": 0.54
|
||||
},
|
||||
{
|
||||
"target": "sella_ren",
|
||||
"path": "canonical_state.situational_state.scarcity_pressure.current_activation",
|
||||
"before": 0.84,
|
||||
"after": 0.87
|
||||
},
|
||||
{
|
||||
"target": "sella_ren",
|
||||
"path": "canonical_state.situational_state.overstimulation.current_activation",
|
||||
"before": 0.72,
|
||||
"after": 0.74
|
||||
},
|
||||
{
|
||||
"target": "rel-maer-sella",
|
||||
"path": "stance.trust.current_activation",
|
||||
"before": 0.7,
|
||||
"after": 0.72
|
||||
},
|
||||
{
|
||||
"target": "rel-maer-sella",
|
||||
"path": "stance.respect.current_activation",
|
||||
"before": 0.78,
|
||||
"after": 0.81
|
||||
},
|
||||
{
|
||||
"target": "rel-maer-sella",
|
||||
"path": "stance.obligation.current_activation",
|
||||
"before": 0.6,
|
||||
"after": 0.64
|
||||
},
|
||||
{
|
||||
"target": "rel-sella-maer",
|
||||
"path": "stance.trust.current_activation",
|
||||
"before": 0.57,
|
||||
"after": 0.58
|
||||
},
|
||||
{
|
||||
"target": "rel-sella-maer",
|
||||
"path": "stance.resentment.current_activation",
|
||||
"before": 0.36,
|
||||
"after": 0.39
|
||||
},
|
||||
{
|
||||
"target": "rel-sella-maer",
|
||||
"path": "stance.obligation.current_activation",
|
||||
"before": 0.48,
|
||||
"after": 0.51
|
||||
}
|
||||
],
|
||||
"accepted_world_state_candidates": [
|
||||
"A bounded cold repair bay may be held for a short window if ledger backing is attached.",
|
||||
"The corrupted packet remains evidence at the door and is not admitted into patient flow.",
|
||||
"Ledger backing is required for air, isolation, decon, repair labor, and failed extraction before escalation."
|
||||
],
|
||||
"manual_review_notes": [
|
||||
"The responder output\u0027s candidate updates were reviewed before becoming fixture state.",
|
||||
"The repair-bay condition is accepted as scene-local world state, not as sanctuary bed intake.",
|
||||
"Both Maer and Sella receive state, relationship, memory, and perceived-overlay updates.",
|
||||
"Packet personhood remains unresolved.",
|
||||
"This receipt was generated from the research-enabled sandbox capture; the event shape matches the earlier conditional-bay fixture, but the capture provenance is distinct."
|
||||
],
|
||||
"deferred_mutations": [
|
||||
"No sanctuary bed is opened or consumed.",
|
||||
"No personhood claim is proven or disproven.",
|
||||
"No automatic appraiser or mutator is trained yet."
|
||||
]
|
||||
}
|
||||
|
|
@ -49,6 +49,9 @@ path is:
|
|||
- Responder packet schema: `schemas/responder-packet.schema.json`
|
||||
- Responder output schema: `schemas/responder-output.schema.json`
|
||||
- Research-enabled Sella packet: `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json`
|
||||
- Research-enabled Sella capture: `experiments/responder-packets/cold-wake-sanctuary-intake-sella-research-enabled-v0.capture.json`
|
||||
- Research-enabled Sella mutation: `experiments/responder-packets/cold-wake-sanctuary-intake-sella-research-enabled-v0.mutation.json`
|
||||
- Research-enabled aftermath state: `examples/agent-state.cold-wake-story-lab.after-sella-research-conditions.json`
|
||||
- Packet builder: `tools/build_responder_packet.py`
|
||||
- Packet/output validators: `tools/validate_responder_packets.py`, `tools/validate_responder_outputs.py`
|
||||
|
||||
|
|
@ -71,14 +74,13 @@ current gold-data route.
|
|||
|
||||
## Current Next Action
|
||||
|
||||
Run a sandboxed no-fork research-enabled responder against
|
||||
`examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json`,
|
||||
allowing only the declared AetheriaLore scope. Capture exact visible input,
|
||||
consulted refs, research summary, raw output, review labels, leakage audit, and
|
||||
any coordinator intervention. Review whether the output uses institutional lore
|
||||
and latent pressure without prompt parroting, omniscience, or mission-critical
|
||||
trauma-dumping. Do not use archived local-model prototype runners for gold
|
||||
responder data.
|
||||
The first no-fork research-enabled Sella responder sample now exists and has a
|
||||
reviewed mutation receipt. Tighten the capture seam next: future research-enabled
|
||||
gold samples should preserve auditable research traces, not only
|
||||
responder-reported consulted refs. Then generate the next sandboxed
|
||||
responder/coordinator sample from the updated Sella aftermath state, preserving
|
||||
exact visible input, raw output, review labels, leakage audit, and mutation
|
||||
receipts.
|
||||
|
||||
## Warnings
|
||||
|
||||
|
|
|
|||
|
|
@ -52,8 +52,15 @@ Aetheria lore/source context
|
|||
`examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json`
|
||||
- It uses `responder_scoped_repository_search`, allows only declared
|
||||
AetheriaLore scope, and requires `consulted_refs` plus `research_summary`.
|
||||
- The next useful sample should be generated through a no-fork sandboxed
|
||||
responder, not through archived local-model prototype runners.
|
||||
- First research-enabled capture:
|
||||
`experiments/responder-packets/cold-wake-sanctuary-intake-sella-research-enabled-v0.capture.json`
|
||||
- First research-enabled mutation receipt:
|
||||
`experiments/responder-packets/cold-wake-sanctuary-intake-sella-research-enabled-v0.mutation.json`
|
||||
- First research-enabled aftermath state:
|
||||
`examples/agent-state.cold-wake-story-lab.after-sella-research-conditions.json`
|
||||
- The capture is useful draft data, but the current subagent seam preserves
|
||||
responder-reported consulted refs rather than a machine-verifiable research
|
||||
trace. Fix that before producing many more research-enabled gold samples.
|
||||
|
||||
## Archived Receipts
|
||||
|
||||
|
|
|
|||
|
|
@ -20,16 +20,17 @@ sandboxed training-data pipeline for branching scenes and state consequences.
|
|||
- Preserve exact responder-visible input, hidden-context audit, allowed actions, source excerpts, output contract, and lore-access mode.
|
||||
- Preserve raw output, parsed output, review labels, consulted refs, research summary, leakage audit, and coordinator interventions.
|
||||
|
||||
3. Generate the next research-enabled responder sample.
|
||||
- Use `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json`.
|
||||
- Run a no-fork sandboxed responder with only the packet and declared lore scope.
|
||||
- Require actual lore consultation before answering.
|
||||
- Review for institutional grounding, latent character pressure, non-omniscience, prompt parroting, and mission-critical trauma-dumping.
|
||||
- Do not use archived local-model prototype runners for gold responder data.
|
||||
3. Tighten research-enabled responder capture.
|
||||
- The first no-fork research-enabled Sella sample and reviewed mutation receipt now exist.
|
||||
- Preserve `consulted_refs` and `research_summary` inside both raw responder output and capture metadata.
|
||||
- Add an auditable research trace before scaling this lane; responder-reported consulted refs are useful but not enough for durable gold data.
|
||||
- Continue rejecting archived local-model prototype runners for gold responder data unless the task is explicitly model plumbing.
|
||||
|
||||
4. Materialize reviewed consequences.
|
||||
- Convert accepted responder output into a mutation receipt.
|
||||
- Update only reviewed scene state, memories, relationship stance, perceived overlays, and unresolved hooks.
|
||||
4. Generate the next reviewed sample.
|
||||
- Start from `examples/agent-state.cold-wake-story-lab.after-sella-research-conditions.json`.
|
||||
- Build the next projected local context and responder packet from reviewed state, not from coordinator memory.
|
||||
- Run the next no-fork sandboxed responder/coordinator step with exact visible input, raw output, leakage audit, and review labels.
|
||||
- Convert accepted output into mutation receipts.
|
||||
- Keep fuzzy social changes manual and auditable until appraiser/classifier models exist.
|
||||
|
||||
5. Generalize the loop.
|
||||
|
|
|
|||
|
|
@ -100,7 +100,9 @@
|
|||
"intended_effect": { "type": "string", "minLength": 1 },
|
||||
"state_update_candidates": { "type": "array", "items": { "$ref": "#/$defs/update_candidate" } },
|
||||
"relationship_update_candidates": { "type": "array", "items": { "$ref": "#/$defs/update_candidate" } },
|
||||
"unresolved_hooks": { "type": "array", "items": { "type": "string", "minLength": 1 } }
|
||||
"unresolved_hooks": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
||||
"consulted_refs": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
||||
"research_summary": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"update_candidate": {
|
||||
|
|
|
|||
|
|
@ -12,3 +12,4 @@
|
|||
{"ts": "2026-05-02T10:42:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Current live seam is the research-enabled Sella responder packet requiring scoped lore consultation, consulted refs, and research summary."}
|
||||
{"ts": "2026-05-02T10:43:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Archived local-model prototype material remains evidence only; do not use those runners for gold responder data unless explicitly testing model plumbing."}
|
||||
{"ts": "2026-05-02T10:44:00+00:00", "type": "distilled_state", "status": "ok", "note": "Persisted state was compacted to mission, live seams, and next action; older evidence moved to state/evidence.archive.jsonl."}
|
||||
{"ts": "2026-05-02T10:30:22+00:00", "type": "implementation", "status": "accepted", "note": "First no-fork research-enabled Sella responder capture and reviewed mutation receipt were produced; capture preserves consulted refs and research summary, but future gold research samples need auditable research traces beyond responder self-report."}
|
||||
|
|
|
|||
|
|
@ -96,6 +96,9 @@ current_artifacts:
|
|||
- examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json
|
||||
- experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.capture.json
|
||||
- experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.mutation.json
|
||||
- experiments/responder-packets/cold-wake-sanctuary-intake-sella-research-enabled-v0.capture.json
|
||||
- experiments/responder-packets/cold-wake-sanctuary-intake-sella-research-enabled-v0.mutation.json
|
||||
- examples/agent-state.cold-wake-story-lab.after-sella-research-conditions.json
|
||||
archived_receipts:
|
||||
- Archived local-model prototype captures remain under experiments/ and examples/ink/ for validation and lessons, not active steering.
|
||||
|
||||
|
|
@ -108,5 +111,5 @@ data_flow:
|
|||
- If state grows faster than understanding, cut it back.
|
||||
|
||||
current_status:
|
||||
summary: Ghostlight is focused on sandboxed, source-grounded responder and coordinator training artifacts for socially persistent Aetheria agents, with archived prototype runs demoted to receipts and the live path centered on projected local context, responder packets, reviewed outputs, and audited state mutation.
|
||||
next_action: Run a sandboxed no-fork research-enabled responder against `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json`, allowing only the declared AetheriaLore scope, then capture exact visible input, consulted refs, research summary, raw output, review labels, leakage audit, and any coordinator intervention. Review for institutional lore use, latent pressure, prompt parroting, omniscience, and mission-critical trauma-dumping. Do not use archived local-model prototype runners for gold responder data.
|
||||
summary: Ghostlight has produced its first no-fork research-enabled Sella responder capture and a reviewed state mutation receipt, with research provenance preserved in the raw responder output and mirrored in capture metadata.
|
||||
next_action: Tighten the research-enabled responder capture seam so future gold-data samples preserve auditable research traces, not only responder-reported consulted refs. Then generate the next sandboxed responder/coordinator sample from the updated Sella aftermath state, keeping exact visible input, raw output, leakage audit, review labels, and mutation receipts.
|
||||
|
|
|
|||
|
|
@ -100,6 +100,10 @@ def main() -> int:
|
|||
parser.add_argument("--out-state", type=Path, default=DEFAULT_OUT_STATE)
|
||||
parser.add_argument("--receipt", type=Path, default=DEFAULT_RECEIPT)
|
||||
args = parser.parse_args()
|
||||
args.fixture = args.fixture.resolve()
|
||||
args.capture = args.capture.resolve()
|
||||
args.out_state = args.out_state.resolve()
|
||||
args.receipt = args.receipt.resolve()
|
||||
|
||||
source_state = load_json(args.fixture)
|
||||
capture = load_json(args.capture)
|
||||
|
|
|
|||
|
|
@ -109,6 +109,10 @@ def validate_parsed_response(value: Any, path: str) -> None:
|
|||
for key in ["state_update_candidates", "relationship_update_candidates"]:
|
||||
require_update_candidate_array(value[key], f"{path}.{key}")
|
||||
require_string_array(value["unresolved_hooks"], f"{path}.unresolved_hooks")
|
||||
if "consulted_refs" in value:
|
||||
require_string_array(value["consulted_refs"], f"{path}.consulted_refs")
|
||||
if "research_summary" in value:
|
||||
require(isinstance(value["research_summary"], str), f"{path}.research_summary must be a string")
|
||||
|
||||
|
||||
def validate_capture(document: dict[str, Any], source: Path) -> None:
|
||||
|
|
@ -185,6 +189,15 @@ def validate_capture(document: dict[str, Any], source: Path) -> None:
|
|||
validate_parsed_response(document["parsed_output"], f"{base}.parsed_output")
|
||||
require(parsed_raw == document["parsed_output"], f"{base}.raw_output does not match parsed_output")
|
||||
require(document["parsed_output"]["responder_agent_id"] == document["responder_agent_id"], f"{base}.parsed_output.responder_agent_id mismatch")
|
||||
if lore_access["mode"] == "responder_scoped_repository_search":
|
||||
require(
|
||||
document["parsed_output"].get("consulted_refs") == lore_access["consulted_refs"],
|
||||
f"{base}.parsed_output.consulted_refs must match lore_access.consulted_refs",
|
||||
)
|
||||
require(
|
||||
document["parsed_output"].get("research_summary") == lore_access["research_summary"],
|
||||
f"{base}.parsed_output.research_summary must match lore_access.research_summary",
|
||||
)
|
||||
|
||||
lowered_raw = raw_output.lower()
|
||||
leaked = [marker for marker in LEAK_MARKERS if marker in lowered_raw]
|
||||
|
|
|
|||
Loading…
Reference in a new issue