I01 hypothesis and retest evidence — Prepare a repeatable product development procedure that traces a user problem to hypothesis, prototype/test record, unresolved issue and…

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>I01 hypothesis and retest evidence</title><style>*{box-sizing:border-box}body{margin:0;font:16px/1.55 system-ui,sans-serif;color:var(--ink);background:var(--bg)}main{max-width:1120px;margin:auto;padding:30px}h1{font-size:clamp(30px,4vw,44px);line-height:1.12;letter-spacing:-.035em;margin:5px 0 12px}h2{font-size:23px;line-height:1.3;margin:0 0 15px}h3{font-size:17px;margin:0 0 8px}p{margin:0 0 12px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:750;color:var(--accent)}.small,footer{font-size:13px;color:var(--muted)}footer{margin:27px 0}.panel{background:white;border:1px solid var(--line);padding:23px;border-radius:9px;margin-top:22px}.two{display:grid;grid-template-columns:1.35fr 1fr;gap:23px}.row{display:flex;gap:9px;flex-wrap:wrap;align-items:center}button{font:700 14px system-ui;min-height:44px;padding:10px 16px;border:1px solid var(--accent);background:var(--accent);color:white;border-radius:5px;cursor:pointer}button.secondary{color:var(--accent);background:white}button[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--ink)}button:disabled{opacity:.45;cursor:default}:focus-visible{outline:3px solid #d28b25;outline-offset:3px}label{display:block;font-size:13px;font-weight:650}input,textarea,select{display:block;width:100%;padding:11px;font:16px/1.5 system-ui;color:var(--ink);background:white;border:1px solid #9baab6;border-radius:4px;margin:6px 0 15px}textarea{min-height:100px;resize:vertical}.error{color:#a02b20;font-size:14px;min-height:23px}.result{font-size:40px;line-height:1.25;letter-spacing:-.04em;font-weight:750}.notice{padding:15px;background:#fff3db;border-left:4px solid #cf9d3e;font-size:14px;margin:16px 0}details{margin-top:23px;border-top:1px solid var(--line);padding-top:15px}summary{cursor:pointer;min-height:44px;font-weight:700}.time-row{display:grid;grid-template-columns:75px 1fr 70px;gap:14px;padding:15px 0;border-top:1px solid var(--line)}.time-row p{font-size:14px;margin:5px 0}.time-row input{margin:0;text-align:center}.range{font-size:13px;font-weight:700;color:var(--accent)}[hidden]{display:none!important}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 ui-monospace,Consolas,monospace} @media(max-width:740px){main{padding:23px 16px}.two{grid-template-columns:1fr;gap:0}.panel{padding:20px}}@media(max-width:380px){main{padding:20px 12px}.panel{padding:17px}.time-row{grid-template-columns:1fr 65px}.range{grid-column:1/-1}.row button{flex:1}}:root{--ink:#283d53;--bg:#f0f5f8;--accent:#347a8d;--muted:#657c8e;--line:#c9dce4}.board{display:grid;grid-template-columns:1.35fr 1fr;gap:24px;margin-top:25px}.hypothesis{background:#244f65;color:white;padding:25px;border-radius:9px}.hypothesis .eyebrow{color:#badde4}.hypothesis h2{font-size:29px}.hypothesis p{font-size:15px}.state{display:inline-block;background:#f2d9a1;color:#665026;padding:6px 11px;border-radius:5px;font-weight:750}.mock{background:white;border:1px solid var(--line);border-radius:9px;padding:24px}.mock-row{border-bottom:1px solid var(--line);padding:12px 0;font-size:14px}.mock-row strong{display:block}.missing-field{border:2px dashed #d4a851;background:#fff7e6;padding:12px;border-radius:5px;margin-top:15px;min-height:75px}.chain{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:23px 0}.node{padding:18px;border:1px solid var(--line);background:white;border-radius:7px}.node b{display:block;color:var(--accent);font-size:21px}.node p{font-size:13px;margin:6px 0 0}.evidence-view{background:#e7f1f5;padding:22px;border-left:5px solid #438b9c;margin-top:18px;border-radius:5px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.steps{padding-left:23px}.steps li{padding:10px 0}.steps p{font-size:14px;margin:6px 0 0}.packet textarea{min-height:330px;font:13px/1.7 ui-monospace,Consolas,monospace}.task-script{font:25px/1.45 Georgia,serif}.blank-state{font-size:14px;font-weight:700;padding:14px;background:#fff4dc;border-radius:5px}@media(max-width:700px){.board,.fields{grid-template-columns:1fr}.chain{grid-template-columns:repeat(2,1fr)}.hypothesis{padding:22px}}</style></head><body><main><p class="eyebrow">I01 · original fictional development packet</p><h1>Make the next decision traceable.</h1><p>Keep the hypothesis, planned test, actual observations and unresolved retest in separate records.</p><section class="board"><div class="hypothesis"><p class="eyebrow">H01 · task-specific hypothesis</p><h2>A user can identify the missing contact reference without a facilitator hint.</h2><p id="hypothesis-state" class="state">Unvalidated · no actual T01 result</p><p style="margin-top:17px">Idea I01: proposed tool for volunteers identifying missing submission fields.<br>E01: actual problem evidence <strong>TO CONFIRM</strong>.</p><p>Prototype readiness and an expected answer do not establish a real need or an unaided result.</p></div><div class="mock"><p class="eyebrow">P01 · mock submission R01</p><h2>Missing-field test specimen</h2><div class="mock-row"><strong>Project title</strong>Present in the mock; exact wording not supplied.</div><div class="mock-row"><strong>Description</strong>Present in the mock; exact wording not supplied.</div><div class="missing-field"><strong>Contact reference</strong><br><span class="small">Blank in this supplied specimen</span></div></div></section><section class="panel"><div class="row"><button id="view-t01" type="button" aria-pressed="true">T01 · planned test</button><button id="view-o02" type="button" class="secondary">O02 · fictional branch</button><button id="view-t02" type="button" class="secondary">T02 · planned retest</button></div><div class="evidence-view" role="status"><p class="eyebrow" id="view-kind">Plan, not a participant result</p><h2 id="view-title">T01 has not been run</h2><p id="view-detail">Actual participant observation and assistance are blank.</p><p id="view-next" class="small">Confirm the approved research route and retain actual observations.</p></div><p class="task-script">“Look at this mock submission. Which field is missing?”</p><p class="small">Planned T01 script. Record actual wording if it changes; this page does not run a participant session.</p><details><summary>Test-owner expected answer · separate from actual observation</summary><p>Contact reference. This is the supplied expected answer, not a participant response or validated hypothesis.</p></details></section><section class="chain" aria-label="Separate illustrative iteration branch"><div class="node"><b>O02</b><p>Fictional assisted identification; not an actual T01 result</p></div><div class="node"><b>B01</b><p>Wording unclear is a proposed interpretation; alternatives remain open</p></div><div class="node"><b>P02</b><p>Proposed revision; exact wording and version not supplied</p></div><div class="node"><b>T02</b><p>Planned retest; actual result and closure evidence absent</p></div></section><div class="two"><section class="panel"><h2>Development procedure · draft for owner review</h2><p class="small">Actual SOP owner/version/effective date, product scope, research route and decision authority: TO CONFIRM.</p><ol class="steps"><li><strong>Capture problem and source</strong><p>Keep E01 unconfirmed until actual evidence is supplied.</p></li><li><strong>State hypothesis and scope</strong><p>Specify what observation supports or challenges unaided identification.</p></li><li><strong>Prepare bounded prototype</strong><p>Identify P01 version and R01 mock; confirm fit with the question.</p></li><li><strong>Plan test and expected observation</strong><p>Retain task wording and assistance-recording fields; keep the expected answer separate.</p></li><li><strong>Confirm approved research process</strong><p>Use actual participant and permission references; do not invent sessions.</p></li><li><strong>Record actual observations</strong><p>Retain exact actions/words, version, context, all hints and evidence.</p></li><li><strong>Decide from evidence</strong><p>Record iterate, stop or request further review with reason and authority.</p></li><li><strong>Preserve issues and retests</strong><p>Keep issue, revision and actual retest evidence together; a redraw does not close B01.</p></li></ol></section><section class="panel"><h2>Next evidence request</h2><label for="next-request">Draft request<textarea id="next-request">Confirm E01 and the approved T01 research route. Preserve every facilitator hint in actual observations. Obtain the exact P02 change and T02 evidence before reviewing B01 resolution.</textarea></label><label for="recipient">Intended reviewer / owner<input id="recipient" value="Actual research and decision owner · to confirm"></label><p id="request-error" class="error" role="alert"></p><div class="notice"><strong>Separate release-review boundary</strong><p>Organization-defined prerequisites, actual authority and approvals are not supplied. Prototype or test decisions do not authorize launch.</p></div></section></div><section class="panel"><h2>Actual observation note · blank before the session</h2><p class="small">Use approved research permissions and permitted references. Local notes are unverified and do not change the fictional source state.</p><p id="observation-state" class="blank-state" role="status">No actual observation supplied. H01 remains unvalidated.</p><div id="observation-fields" class="fields"></div></section><section class="panel"><h2>Issue / iteration / retest record · actual evidence</h2><p id="issue-note-state" class="blank-state" role="status"></p><div id="issue-fields" class="fields"></div></section><section class="panel packet"><div class="row" style="justify-content:space-between"><h2>Exact development handoff draft</h2><button id="select-packet" type="button">Select text</button></div><label for="packet">Plain-text preparation packet · copy manually<textarea id="packet" readonly></textarea></label><p id="select-status" class="small" role="status"></p></section><footer>HTML review/plain-text companion to maintained hypothesis, test, issue and decision records. No actual participant test, user-count/success metric, submission, validated hypothesis, issue closure, permission, launch, collection or saved edits. The original eight-step draft is not a universal mandatory process.</footer></main><script>
'use strict';const $=id=>document.getElementById(id);

let view='t01';const observation=[['test-id','Actual test ID'],['version','Actual prototype version'],['participant','Permitted participant reference'],['context','Actual context'],['task-wording','Exact actual task wording'],['actions','Observed actions / words'],['hints','All facilitator hints / assistance'],['interpretation','Result interpretation and uncertainty'],['evidence','Actual observation evidence reference']];const issues=[['issue-evidence','Actual observation / evidence reference'],['alternatives','Issue interpretation / alternatives'],['iteration-decision','Authorized iteration decision / reason'],['p02-change','Actual P02 version / exact change'],['t02-plan','Actual T02 plan / assistance-recording method'],['retest','Actual retest observations / uncertainty'],['closure','Actual issue review decision / evidence'],['release-prerequisites','Organization-defined release checks / authority']];function noteState(values){const n=values.filter(v=>v.trim()).length;return n===0?'No actual observation supplied. H01 remains unvalidated.':n<observation.length?'Observation note incomplete. Do not infer unaided completion or validation.':'User-supplied observation note only. Verify evidence, assistance and authority; no validation is inferred.';}function issueState(revision,retest,decision){return revision&&retest&&decision?'Evidence references supplied; actual issue-review authority must verify them':'Resolution unconfirmed; revision alone is not closure';}function render(){for(const id of['t01','o02','t02'])$('view-'+id).setAttribute('aria-pressed',String(id===view));const r={t01:['Plan, not a participant result','T01 has not been run','Planned task: identify the missing field in P01/R01. Expected answer is separate; actual observation and hints are blank.','Confirm the approved research route; retain actual words/actions, all hints and evidence.'],o02:['Separate fictional planning branch','O02: identification only after a hint','This is not an actual T01 result. B01 wording unclear is a proposed interpretation, not a proven cause. Alternatives remain open.','Preserve O02 → B01 → proposed P02 → planned T02. Assisted identification does not demonstrate the unaided H01 task.'],t02:['Planned retest, not an outcome','T02 result and B01 resolution are unconfirmed','P02 is proposed; exact revised wording and actual retest observations are not supplied. A new screen does not erase the issue.','Obtain exact P02 changes, record every T02 hint and retain actual issue-review decision/evidence.']}[view];$('view-kind').textContent=r[0];$('view-title').textContent=r[1];$('view-detail').textContent=r[2];$('view-next').textContent=r[3];}function update(){$('issue-note-state').textContent=issueState($('p02-change').value.trim(),$('retest').value.trim(),$('closure').value.trim());$('observation-state').textContent=noteState(observation.map(([id])=>$(id).value));const valid=$('next-request').value.trim()&&$('recipient').value.trim();$('request-error').textContent=valid?'':'Supply an evidence request and intended recipient.';$('packet').value=valid?['I01 · FICTIONAL PRODUCT DEVELOPMENT REVIEW','SOP owner/version/effective date, research route, decision authority: TO CONFIRM.','E01 actual problem evidence: TO CONFIRM; intended task is not proof of user need.','H01: identify missing contact reference WITHOUT a facilitator hint. State: UNVALIDATED.','P01/R01: title/description present; contact reference blank. Exact present-field wording not supplied.','Planned T01: Look at this mock submission. Which field is missing?','Test-owner expected answer: contact reference. No actual T01 participant result supplied.','SEPARATE FICTIONAL BRANCH: O02 requires hint → B01 wording unclear (interpretation, not proven cause) → proposed P02 exact change unknown → planned T02 result unknown.','Revision alone does not close B01; retain alternatives and all assistance.','DRAFT REQUEST: '+$('next-request').value.trim(),'INTENDED RECIPIENT: '+$('recipient').value.trim(),'ACTUAL OBSERVATION NOTE · USER-SUPPLIED / UNVERIFIED',...observation.map(([id,label])=>label+': '+($(id).value.trim()||'[not supplied]')),'Note completeness: '+$('observation-state').textContent,'ISSUE / RETEST / RELEASE NOTE · USER-SUPPLIED / UNVERIFIED',...issues.map(([id,label])=>label+': '+($(id).value.trim()||'[not supplied]')),'Native record must separately identify actual decision, reason, authority, open issues and required release checks.','No validation, issue closure, participant permission or release approval is created by this draft.'].join(String.fromCharCode(10)):'';$('select-packet').disabled=!valid;$('select-status').textContent='';}function buildFields(list,container){for(const[id,text]of list){const l=document.createElement('label');l.setAttribute('for',id);l.textContent=text;const field=document.createElement('textarea');field.id=id;field.addEventListener('input',update);l.appendChild(field);$(container).appendChild(l);}}buildFields(observation,'observation-fields');buildFields(issues,'issue-fields');for(const id of['t01','o02','t02'])$('view-'+id).addEventListener('click',()=>{view=id;render();});for(const id of['next-request','recipient'])$(id).addEventListener('input',update);$('select-packet').addEventListener('click',()=>{$('packet').focus();$('packet').select();$('select-status').textContent='Draft text selected. Copy manually; no participant test or decision occurred here.';});render();update();
</script></body></html>