Trace a reproduced retained-list mechanism into a corrective change and inspect why a not-run case keeps review open

HTML for this example

Select the code and use your copy shortcut. Changes in this preview are temporary.

<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>From a finding to an effectiveness check</title><style>*{box-sizing:border-box}body{margin:0;background:#f5eee9;color:#49362b;font:16px/1.65 system-ui,sans-serif}main{max-width:940px;margin:auto;padding:24px}h1{font-size:clamp(1.8rem,5vw,2.7rem);line-height:1.18}h2{font-size:1.35rem}h3{font-size:1.1rem}.eyebrow{font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:#8c634a}.panel{background:white;border:1px solid #dfcbbb;border-radius:12px;padding:22px;margin:18px 0}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}button,input,textarea{font:inherit}button{min-height:44px;padding:10px 14px;border:1px solid #9c7256;border-radius:7px;background:white;color:#6c462e;cursor:pointer}button[aria-pressed=true],button.primary{background:#865a3d;color:white}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #297998;outline-offset:3px}.record{background:#fcf0e5;border-left:4px solid #ad8060;padding:14px}.chain{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.chain article{background:#f5ede5;padding:14px;border-radius:7px}.badge{display:inline-block;background:#f7e3c6;padding:4px 10px;border-radius:20px;font-weight:750}label{display:block;font-weight:650;margin-top:16px}input,textarea{display:block;width:100%;min-width:0;padding:10px;border:1px solid #af907b;border-radius:6px;margin-top:5px}textarea{min-height:90px}pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere}[hidden]{display:none!important}@media(max-width:600px){main{padding:16px}.panel{padding:16px}.chain{grid-template-columns:1fr}}</style></head><body><main><p class="eyebrow">Finding → mechanism → action → verification</p><h1>From a finding to an effectiveness check</h1><p>Original authored training records for an offline workshop resource-card packet. Fixed simulation records, not live software tests or a safety investigation.</p><section class="panel"><h2>F1 · The display duplicates cards on reopen</h2><div class="chain"><article><h3>Source</h3><p>A, B — one each</p></article><article><h3>Reopened display</h3><p>A, B, A, B</p></article><article><h3>Boundary</h3><p>Investigate this reproduced path; other paths remain unexamined.</p></article></div><div class="actions"><button type="button" id="e1">E1 · Source versus display</button><button type="button" id="e2">E2 · Reproduction</button><button type="button" id="e3">E3 · Changed mechanism</button></div><p id="evidence" class="record" role="status">E1: source A,B is unique while the reopened display is A,B,A,B. The supplied source does not contain the duplicates seen in this display.</p><p><strong>Finding limit:</strong> E2/E3 support the retained-list/appending mechanism only in this fixture. No person, motive, or universal cause is identified.</p></section>
<section class="panel"><h2>Which action addresses that mechanism?</h2><div class="actions"><button type="button" id="cleanup">Immediate correction</button><button type="button" id="mechanism">Corrective change</button></div><p id="actionText" class="record">Immediate correction: remove duplicates from the affected packet. That cleans this copy but does not change the append-to-existing mechanism.</p><h2>Review effectiveness separately</h2><p class="badge" id="closure">Effectiveness review OPEN · V2 not run</p><div class="actions"><button type="button" id="v1" aria-pressed="true">V1 · Reopen fixture</button><button type="button" id="v2" aria-pressed="false">V2 · Changed source</button></div><p id="verification" class="record">V1: source A,B; render and reopen. Expected A,B, one each. Supplied authored record: Pass. This is a fixed training result, not a test run by this page.</p><p>Implementation for V1 does not close the action while the relevant changed-source case has no actual result.</p></section>
<section class="panel"><h2>Your investigation and action record</h2><label for="findingInput">Bounded finding · required</label><textarea id="findingInput"></textarea><label for="evidenceInput">Supporting and contradicting evidence · required</label><textarea id="evidenceInput"></textarea><label for="actionInput">Correction, mechanism, and corrective action</label><textarea id="actionInput"></textarea><label for="notes">Planned checks, actual results, and open questions</label><textarea id="notes"></textarea><div class="actions"><button type="button" id="build" class="primary">Build investigation record</button><button type="button" id="reset">Reset practice</button></div><p id="notice" class="record" role="status">Keep actual evidence separate from a proposed explanation.</p><pre id="output" hidden></pre><div id="resetPanel" hidden><p>Clear your practice investigation?</p><button type="button" id="cancel">Keep record</button> <button type="button" id="confirm">Clear record</button></div></section><footer><p>No automatic cause diagnosis, real application testing, or claim that all recurrence is prevented. Your notes stay in this page session only.</p></footer></main><script>
'use strict';const $=s=>document.querySelector(s);const evidence={e1:'E1: source A,B is unique while the reopened display is A,B,A,B. The supplied source does not contain the duplicates seen in this display. This contradicts the source-duplicate explanation for this fixture.',e2:'E2: isolated reproduction retains the old displayed list A,B, then appends A,B again on reopen. Display becomes A,B,A,B. This reproduces a retained-list/appending mechanism in the declared fixture.',e3:'E3: clearing the old displayed list before rendering A,B produces A,B, one each. Alongside E2 this supports the reproduced mechanism; it does not examine every other path.'};for(const id of Object.keys(evidence))$('#'+id).addEventListener('click',()=>{$('#evidence').textContent=evidence[id]});$('#cleanup').addEventListener('click',()=>{$('#actionText').textContent='Immediate correction: remove duplicates from the affected packet. That cleans this copy but does not change the append-to-existing mechanism.'});$('#mechanism').addEventListener('click',()=>{$('#actionText').textContent='Corrective change: replace the displayed list from the current source instead of appending to the existing display. This targets E2\'s retained-list mechanism. Keep the original E1–E3 evidence and verify the relevant cases.'});const verification={v1:'V1: source A,B; render and reopen. Expected A,B, one each. Supplied authored record: Pass. This is a fixed training result, not a test run by this page.',v2:'V2: change source to A,C, then render. Expected A,C with no retained B. Supplied status: Not run. No actual result exists in this packet; effectiveness review stays OPEN.'};for(const id of Object.keys(verification))$('#'+id).addEventListener('click',()=>{$('#verification').textContent=verification[id];for(const key of Object.keys(verification))$('#'+key).setAttribute('aria-pressed',String(key===id))});const ids=['findingInput','evidenceInput','actionInput','notes'];let built=false;for(const id of ids)$('#'+id).addEventListener('input',()=>{$('#output').hidden=true;$('#notice').textContent=built?'Entries changed. Investigation record is stale; build again.':'Investigation entries changed.';$('#resetPanel').hidden=true});$('#build').addEventListener('click',()=>{const missing=[['findingInput','Bounded finding'],['evidenceInput','Supporting and contradicting evidence']].filter(([id])=>!$('#'+id).value.trim()).map(([,n])=>n);if(missing.length){$('#notice').textContent='Complete: '+missing.join(', ')+'.';$('#output').hidden=true;return}$('#output').textContent='INVESTIGATION RECORD — no automated cause conclusion\nFinding: '+$('#findingInput').value+'\nEvidence/contradiction: '+$('#evidenceInput').value+'\nMechanism/action: '+($('#actionInput').value||'Not established')+'\nVerification/open questions: '+($('#notes').value||'No results supplied')+'\nClosure requires actual relevant evidence; this page does not close the action.';$('#output').hidden=false;$('#notice').textContent='Investigation record built. A completed field is not proof of a cause or an effective action.';built=true});$('#reset').addEventListener('click',()=>{$('#resetPanel').hidden=false;$('#notice').textContent='Reset requested. Choose whether to keep the record.'});$('#cancel').addEventListener('click',()=>{$('#resetPanel').hidden=true;$('#notice').textContent='Reset canceled. Investigation entries retained.'});$('#confirm').addEventListener('click',()=>{for(const id of ids)$('#'+id).value='';$('#output').hidden=true;$('#output').textContent='';$('#resetPanel').hidden=true;built=false;$('#notice').textContent='Practice investigation cleared. Fixed E1–E3 and V1/V2 records are unchanged.'});
</script></body></html>