{
  "id": "ptichi.work_explanation_recovery_fixtures",
  "version": "1.0",
  "evidence_class": "synthetic_fixture",
  "title": "Ptichi Work Explanation Recovery Fixtures v1",
  "purpose": "Provide project-authored workplace-message pairs with one deliberately bounded structural change for inspecting the Ptichi Listener Recoverability method and future product regressions.",
  "claim_boundary": "These fixtures are authored scenarios, not user observations. Take B is designed to expose a structural difference; it is not evidence that a real listener understood, preferred or learned from it, and it does not demonstrate Ptichi product efficacy.",
  "csv_role": "The companion CSV is a fixture index. The JSON file is the complete source of fixture text and required anchors.",
  "anchor_contract": "ptichi.listener_recoverability_rubric@1.0",
  "fixtures": [
    {
      "id": "status-01",
      "job": "project_status_update",
      "audience": "project sponsor",
      "synthetic": true,
      "failure_mode": "chronology_before_status",
      "target_anchor": "point",
      "required_anchors": ["point", "meaning_boundary", "action"],
      "take_a": "We met with QA twice this week, reviewed the vendor comments, and went through the remaining test cases. The release is still on track for Friday, and the final security check is the only condition left. Operations will confirm it Thursday afternoon.",
      "take_b": "The release is still on track for Friday. We met with QA twice this week, reviewed the vendor comments, and went through the remaining test cases. The final security check is the only condition left. Operations will confirm it Thursday afternoon.",
      "bounded_change": "Move the current status to the first sentence without deleting the supporting history.",
      "inspection_focus": "Does moving the point before chronology make the intended status easier to locate in one listening pass?"
    },
    {
      "id": "status-02",
      "job": "project_status_update",
      "audience": "steering committee",
      "synthetic": true,
      "failure_mode": "condition_removed_from_date",
      "target_anchor": "meaning_boundary",
      "required_anchors": ["point", "meaning_boundary", "uncertainty_update"],
      "take_a": "We will release on Tuesday. The integration test finishes Monday morning, and we will confirm the result by noon.",
      "take_b": "We will release on Tuesday if the integration test passes Monday morning. We will confirm the result by noon.",
      "bounded_change": "Restore the condition that makes the Tuesday date conditional.",
      "inspection_focus": "Does the meaning-changing condition survive the explanation?"
    },
    {
      "id": "status-03",
      "job": "project_status_update",
      "audience": "delivery team",
      "synthetic": true,
      "failure_mode": "next_step_without_owner",
      "target_anchor": "action",
      "required_anchors": ["point", "action"],
      "take_a": "The data load is complete. The reconciliation needs to be finished before the handover.",
      "take_b": "The data load is complete. The migration team needs to finish the reconciliation before the handover.",
      "bounded_change": "Add the owner to the existing next step.",
      "inspection_focus": "Can the listener identify who owns the next action?"
    },
    {
      "id": "status-04",
      "job": "project_status_update",
      "audience": "client lead",
      "synthetic": true,
      "failure_mode": "vague_attention_line",
      "target_anchor": "meaning_boundary",
      "required_anchors": ["point", "meaning_boundary", "action"],
      "take_a": "The rollout is on track, but there are still a few things to watch. We will review them tomorrow.",
      "take_b": "The rollout is on track, but one region still has incomplete pricing data. We will review that data tomorrow.",
      "bounded_change": "Replace a vague attention phrase with the material risk.",
      "inspection_focus": "Can the listener recover what specifically deserves attention?"
    },
    {
      "id": "status-05",
      "job": "project_status_update",
      "audience": "weekly team meeting",
      "synthetic": true,
      "failure_mode": "manufactured_action",
      "target_anchor": "action",
      "required_anchors": ["point"],
      "take_a": "The pilot completed as planned and no action is needed from the team. Please confirm that you agree with this status.",
      "take_b": "The pilot completed as planned and no action is needed from the team.",
      "bounded_change": "Remove an unnecessary request when the message genuinely requires no listener action.",
      "inspection_focus": "Can not_required remain distinct from a missing action?"
    },
    {
      "id": "technical-01",
      "job": "technical_explanation",
      "audience": "operations manager",
      "synthetic": true,
      "failure_mode": "jargon_before_consequence",
      "target_anchor": "point",
      "required_anchors": ["point", "support", "meaning_boundary"],
      "take_a": "We changed the service to asynchronous event processing with a retry queue. A temporary downstream failure will no longer block the user request, but some updates may arrive later.",
      "take_b": "A temporary downstream failure will no longer block the user request. We changed the service to asynchronous event processing with a retry queue, but some updates may arrive later.",
      "bounded_change": "Move the user consequence before the technical mechanism.",
      "inspection_focus": "Can the listener recover why the technical change matters before processing the implementation detail?"
    },
    {
      "id": "technical-02",
      "job": "technical_explanation",
      "audience": "finance stakeholder",
      "synthetic": true,
      "failure_mode": "mechanism_without_consequence",
      "target_anchor": "point",
      "required_anchors": ["point", "support"],
      "take_a": "The process now writes the validation result to a durable queue before the worker continues.",
      "take_b": "A result already committed to the queue remains available if this worker stops. The process now writes the validation result to a durable queue before the worker continues.",
      "bounded_change": "Add the business-relevant consequence before the unchanged mechanism.",
      "inspection_focus": "Can the listener recover the consequence rather than only the implementation?"
    },
    {
      "id": "technical-03",
      "job": "technical_explanation",
      "audience": "product manager",
      "synthetic": true,
      "failure_mode": "tradeoff_removed",
      "target_anchor": "meaning_boundary",
      "required_anchors": ["point", "support", "meaning_boundary", "action"],
      "take_a": "The new cache makes the dashboard load faster because repeated reads no longer hit the database. We should enable it for all users.",
      "take_b": "The new cache makes the dashboard load faster because repeated reads no longer hit the database. Data may be up to two minutes old, so we need to decide whether that delay is acceptable before enabling it for all users.",
      "bounded_change": "Restore the trade-off that changes the rollout decision.",
      "inspection_focus": "Can the listener recover the limitation that matters to the decision?"
    },
    {
      "id": "technical-04",
      "job": "technical_explanation",
      "audience": "support colleague",
      "synthetic": true,
      "failure_mode": "technology_name_as_explanation",
      "target_anchor": "support",
      "required_anchors": ["point", "support", "action"],
      "take_a": "The update is eventually consistent because we use Kafka. If the value is missing, check again later.",
      "take_b": "The update can arrive after the user action because it is processed asynchronously. If the value is missing, check again later.",
      "bounded_change": "Replace a technology name with the smallest mechanism needed for the support action.",
      "inspection_focus": "Can the mechanism be recovered without requiring product-specific jargon?"
    },
    {
      "id": "technical-05",
      "job": "technical_explanation",
      "audience": "business process owner",
      "synthetic": true,
      "failure_mode": "oversimplification_changes_truth",
      "target_anchor": "meaning_boundary",
      "required_anchors": ["point", "meaning_boundary"],
      "take_a": "The new rule prevents duplicate orders.",
      "take_b": "The new rule blocks duplicate orders when the same customer reference is detected within 24 hours.",
      "bounded_change": "Restore the scope condition that prevents the claim from becoming absolute.",
      "inspection_focus": "Does the boundary preserve the actual scope of the technical rule?"
    },
    {
      "id": "risk-01",
      "job": "risk_or_delay_explanation",
      "audience": "project sponsor",
      "synthetic": true,
      "failure_mode": "risk_without_trigger",
      "target_anchor": "meaning_boundary",
      "required_anchors": ["point", "meaning_boundary", "uncertainty_update"],
      "take_a": "There is a risk to the Friday release. We will know more after testing tomorrow.",
      "take_b": "There is a risk to the Friday release if the overnight volume test exceeds the current processing limit. We will know after testing tomorrow.",
      "bounded_change": "Name the condition that turns a generic risk statement into a bounded risk.",
      "inspection_focus": "Can the listener recover what would make the risk material?"
    },
    {
      "id": "risk-02",
      "job": "risk_or_delay_explanation",
      "audience": "client manager",
      "synthetic": true,
      "failure_mode": "delay_without_impact",
      "target_anchor": "point",
      "required_anchors": ["point", "action"],
      "take_a": "The vendor file will arrive two days late. We are following up with them.",
      "take_b": "The vendor file will arrive two days late, which moves the reconciliation start to Thursday. We are following up with them.",
      "bounded_change": "Add the consequence of the delay without changing the cause or action.",
      "inspection_focus": "Can the listener recover what the delay changes?"
    },
    {
      "id": "risk-03",
      "job": "risk_or_delay_explanation",
      "audience": "steering committee",
      "synthetic": true,
      "failure_mode": "false_certainty",
      "target_anchor": "uncertainty_update",
      "required_anchors": ["point", "meaning_boundary", "uncertainty_update"],
      "take_a": "The migration will finish by Wednesday. One dependency is still being tested.",
      "take_b": "The migration can finish by Wednesday if the remaining dependency passes testing. We will know by Tuesday afternoon.",
      "bounded_change": "Replace an unconditional promise with the actual condition and update point.",
      "inspection_focus": "Is uncertainty represented as a testable condition rather than hidden?"
    },
    {
      "id": "risk-04",
      "job": "risk_or_delay_explanation",
      "audience": "operations lead",
      "synthetic": true,
      "failure_mode": "mitigation_without_owner",
      "target_anchor": "action",
      "required_anchors": ["point", "action"],
      "take_a": "The batch may overrun the maintenance window. The package size should be reduced before the next run.",
      "take_b": "The batch may overrun the maintenance window. The operations team should reduce the package size before the next run.",
      "bounded_change": "Add the owner to the mitigation.",
      "inspection_focus": "Can the listener recover who will act?"
    },
    {
      "id": "recommendation-01",
      "job": "recommendation",
      "audience": "decision maker",
      "synthetic": true,
      "failure_mode": "recommendation_without_reason",
      "target_anchor": "support",
      "required_anchors": ["point", "support"],
      "take_a": "I recommend option B for the rollout. It can start next week.",
      "take_b": "I recommend option B for the rollout because it keeps the existing support process unchanged. It can start next week.",
      "bounded_change": "Add the decision-relevant reason for the recommendation.",
      "inspection_focus": "Can the listener recover why option B is preferred?"
    },
    {
      "id": "recommendation-02",
      "job": "recommendation",
      "audience": "product owner",
      "synthetic": true,
      "failure_mode": "recommendation_boundary_removed",
      "target_anchor": "meaning_boundary",
      "required_anchors": ["point", "support", "meaning_boundary"],
      "take_a": "We should use the automated check because it reduces manual review time.",
      "take_b": "We should use the automated check because it reduces manual review time, but exceptions still need human review.",
      "bounded_change": "Restore the exception that limits the recommendation.",
      "inspection_focus": "Can the listener recover where the recommendation stops applying?"
    },
    {
      "id": "recommendation-03",
      "job": "recommendation",
      "audience": "architecture board",
      "synthetic": true,
      "failure_mode": "alternatives_without_decision",
      "target_anchor": "point",
      "required_anchors": ["point", "support"],
      "take_a": "Option A is simpler to operate. Option B scales better. Option C gives us more control.",
      "take_b": "I recommend option A. Option A is simpler to operate. Option B scales better. Option C gives us more control.",
      "bounded_change": "Add the intended recommendation before the unchanged option comparison.",
      "inspection_focus": "Can the listener recover the actual decision rather than only the option list?"
    },
    {
      "id": "recommendation-04",
      "job": "recommendation",
      "audience": "team lead",
      "synthetic": true,
      "failure_mode": "manufactured_request",
      "target_anchor": "action",
      "required_anchors": ["point", "support"],
      "take_a": "I recommend keeping the current process because the error rate is already within the agreed threshold. Can you approve that we keep it?",
      "take_b": "I recommend keeping the current process because the error rate is already within the agreed threshold.",
      "bounded_change": "Remove a request when this fixture is informational rather than approval-seeking.",
      "inspection_focus": "Can an unnecessary action remain not_required rather than being manufactured?"
    },
    {
      "id": "difficult-01",
      "job": "difficult_question",
      "audience": "senior stakeholder",
      "synthetic": true,
      "failure_mode": "invented_certainty_when_unknown",
      "target_anchor": "uncertainty_update",
      "required_anchors": ["point", "uncertainty_update"],
      "take_a": "Yes, the defect is caused by the new release. We are checking the logs now.",
      "take_b": "We do not know yet whether the new release caused the defect. We are checking the deployment logs and will update you by 15:00.",
      "bounded_change": "Replace unsupported certainty with the known state and a concrete update point.",
      "inspection_focus": "Can the listener recover what is known versus what remains unresolved?"
    },
    {
      "id": "difficult-02",
      "job": "difficult_question",
      "audience": "client sponsor",
      "synthetic": true,
      "failure_mode": "uncertainty_without_update_evidence",
      "target_anchor": "uncertainty_update",
      "required_anchors": ["point", "uncertainty_update"],
      "take_a": "I am not sure whether the supplier can meet the date.",
      "take_b": "I am not sure whether the supplier can meet the date. Their capacity confirmation is due tomorrow morning, and I will update the plan after that.",
      "bounded_change": "Add the evidence event that will change the answer.",
      "inspection_focus": "Does uncertainty include a concrete path to resolution?"
    },
    {
      "id": "difficult-03",
      "job": "difficult_question",
      "audience": "meeting participants",
      "synthetic": true,
      "failure_mode": "answer_after_context",
      "target_anchor": "point",
      "required_anchors": ["point", "support"],
      "take_a": "We discussed three options last month, then the vendor changed the interface, and the testing team raised another concern. So no, we cannot switch this week.",
      "take_b": "No, we cannot switch this week. We discussed three options last month, then the vendor changed the interface, and the testing team raised another concern.",
      "bounded_change": "Move the direct answer before the unchanged context.",
      "inspection_focus": "Can the answer be recovered before the supporting history?"
    },
    {
      "id": "concise-01",
      "job": "concise_meeting_explanation",
      "audience": "cross-functional meeting",
      "synthetic": true,
      "failure_mode": "repeated_justification",
      "target_anchor": "point",
      "required_anchors": ["point", "support"],
      "take_a": "We need to postpone the workshop because the data is incomplete. The reason is that several fields are missing, so the data is not ready, which is why the workshop should move.",
      "take_b": "We need to postpone the workshop because several required data fields are missing.",
      "bounded_change": "Remove repeated restatements while preserving the point and reason.",
      "inspection_focus": "Can repetition be removed without deleting the support anchor?"
    },
    {
      "id": "concise-02",
      "job": "concise_meeting_explanation",
      "audience": "project meeting",
      "synthetic": true,
      "failure_mode": "stacked_qualifiers_hide_point",
      "target_anchor": "point",
      "required_anchors": ["point", "meaning_boundary"],
      "take_a": "I think it may probably make sense to consider moving the cutover if the test fails.",
      "take_b": "We should move the cutover if the test fails.",
      "bounded_change": "Replace stacked hedges with a direct conditional recommendation.",
      "inspection_focus": "Can the point and its condition be distinguished?"
    },
    {
      "id": "concise-03",
      "job": "concise_meeting_explanation",
      "audience": "team meeting",
      "synthetic": true,
      "failure_mode": "action_buried_in_background",
      "target_anchor": "action",
      "required_anchors": ["point", "action"],
      "take_a": "We reviewed the backlog, talked through the two open design questions, and compared the estimates. The only thing I need today is a decision on the API owner.",
      "take_b": "I need a decision today on the API owner. We reviewed the backlog, talked through the two open design questions, and compared the estimates.",
      "bounded_change": "Move the listener request before the unchanged background.",
      "inspection_focus": "Can the action be recovered without waiting through the history?"
    },
    {
      "id": "concise-04",
      "job": "concise_meeting_explanation",
      "audience": "status meeting",
      "synthetic": true,
      "failure_mode": "metric_without_consequence",
      "target_anchor": "point",
      "required_anchors": ["point", "support"],
      "take_a": "The queue is at 18,000 messages and processing is 420 per minute. Maintenance starts in 30 minutes; assume no new arrivals and a steady processing rate.",
      "take_b": "The backlog will not clear before maintenance at this rate. The queue is at 18,000 messages and processing is 420 per minute. Maintenance starts in 30 minutes; assume no new arrivals and a steady processing rate.",
      "bounded_change": "Add the operational consequence before the unchanged metrics.",
      "inspection_focus": "Can the listener recover what the numbers imply?"
    }
  ],
  "rights": {
    "state": "project-authored",
    "note": "All fixture wording is synthetic and project-authored. No customer, participant or confidential work material is included. Available for inspection and citation; no separate reuse licence is granted."
  },
  "created_at": "2026-09-09",
  "last_reviewed": "2026-09-12",
  "authoring_boundary": "Scenario facts and intended decisions are supplied by the author. Details added in Take B are fictional premises, not facts inferred from Take A. These pairs are text inspection material, not recordings or measured results."
}
