{
  "schemaVersion": 1,
  "type": "principle",
  "id": "peak-end",
  "evaluation": {
    "reviewedOn": "2026-10-19",
    "status": "limited",
    "modes": [
      "application-fixture"
    ],
    "summary": "The local success and failure paths used accurate completion language, retained input after failure and allowed synthetic recovery. No retrospective satisfaction was measured.",
    "reportUrl": "/design-evaluations/principle-peak-end.json",
    "identity": {
      "target": "Original IonBin synthetic interface example; no external product or human-participant study.",
      "version": "2026-10-19 local fixture",
      "integrity": "SHA-256 f85d1056afd667225a1e0364edfb8f25b4693ffa7b2b8c7d7af5b92338b85ee4 identifies the exact HTML fixture only."
    },
    "environment": [
      "155.0.8059.82 Chromium; fresh context with all network requests blocked.",
      "Synthetic inputs, memory-only state, reduced-motion preference, 1280px and 320px viewports."
    ],
    "tests": [
      {
        "name": "Recovery",
        "mode": "application-fixture",
        "method": "Exercise the original local application fixture and inspect the resulting controls or DOM state.",
        "result": "pass",
        "observation": "Confirmed deletion changed only memory state; Restore brought it back."
      },
      {
        "name": "Honest failure",
        "mode": "application-fixture",
        "method": "Exercise the original local application fixture and inspect the resulting controls or DOM state.",
        "result": "pass",
        "observation": "Failure was stated in text and did not erase the input or claim a successful save."
      },
      {
        "name": "Honest completion",
        "mode": "application-fixture",
        "method": "Exercise the original local application fixture and inspect the resulting controls or DOM state.",
        "result": "pass",
        "observation": "Completion offered review/edit wording after the simulated success state."
      }
    ],
    "security": {
      "scope": "Review of the local example’s stated interaction boundaries; no backend, authentication, production permissions or external service was exercised.",
      "findings": [
        {
          "level": "caution",
          "basis": "advice",
          "title": "Completion must match what actually happened",
          "detail": "Do not celebrate a submission that is pending, rejected or only partially processed. Show what remains and how to recover."
        }
      ],
      "limits": [
        "The example has no real authorization or persistence layer; its UI behavior cannot establish the security of a deployed workflow."
      ]
    },
    "practicalCaveats": [
      "Test the failure ending as carefully as the successful one; a pleasant finish does not repair lost data."
    ],
    "limits": [
      "This checks an authored application example, not the truth, effect size or generality of the named principle.",
      "No users, assistive-technology participants, physical devices or production task outcomes were evaluated."
    ],
    "sources": [
      {
        "label": "Fredrickson and Kahneman: Duration Neglect (1993)",
        "url": "https://pubmed.ncbi.nlm.nih.gov/8355141/",
        "scope": "Author abstract describing two affective-experience experiments."
      },
      {
        "label": "Redelmeier and Kahneman: Patients' Memories of Painful Medical Treatments (1996)",
        "url": "https://pubmed.ncbi.nlm.nih.gov/8857625/",
        "scope": "Original observational study linking retrospective evaluation with peak and final pain; author abstract reviewed. This guide provides no medical advice."
      }
    ]
  }
}
