{"description":"Structured handoff report contract for outcome, changes, verification, evidence, residual risks, next actions, closeout checklist, QA gates, and stress tests.","objective":"Give a future agent enough structure to start from the main URL and understand how to inspect, plan, build, validate, and improve a serious website without needing prior chat context.","handoff_reports":{"objective":"Make final handoff durable, evidence-backed, and useful to the next agent or maintainer.","why":"A website operating system is incomplete if work ends with passing tests but no record of scope, evidence, residual risks, and next actions. Handoff reports preserve continuity after the chat context disappears.","defaultReportPath":"reports/handoff/","exampleReportPath":"reports/handoff/example-handoff-report.json","requiredSections":[{"id":"outcome","title":"Outcome","requiredFields":["title","status","scope","objective_alignment"],"why":"The next agent needs to know what was actually accomplished and how it maps to the system objective."},{"id":"changes-made","title":"Changes made","requiredFields":["completed_work.item","completed_work.evidence"],"why":"A handoff should name the durable files, endpoints, reports, and contracts changed."},{"id":"verification","title":"Verification","requiredFields":["verification.command","verification.status","verification.evidence"],"why":"Passing claims must cite command output, generated reports, or other inspectable evidence."},{"id":"evidence","title":"Evidence","requiredFields":["contract endpoints","schemas","QA reports","source/crawl/browser/model evidence where relevant"],"why":"Evidence lets future agents trust, reproduce, or challenge the handoff."},{"id":"risks","title":"Remaining risks","requiredFields":["remaining_risks.risk","remaining_risks.severity","remaining_risks.next_action"],"why":"A clean handoff distinguishes complete work from unresolved risk."},{"id":"next-actions","title":"Next actions","requiredFields":["next_actions.task_id","next_actions.why"],"why":"Next work should connect back to the structured backlog and rationale."}],"evidenceSources":["/agent-manifest.json","/contract-registry.json","/agent-tasks.json","/qa-contract.json","/browser-visual-qa.json","/crawl-evidence.json","/aeo-geo-context.json","/why-explanations.json","/real-site-comparisons.json","reports/browser/browser-visual-report.json","reports/crawl/crawl-evidence-report.json"],"closeoutChecklist":["State the outcome and objective alignment.","List files/endpoints/contracts changed.","List verification commands and status.","Link generated reports and evidence paths.","Name unresolved risks with severity and next action.","Point to next tasks from /agent-tasks.json.","State whether a dev server, background process, or open command remains active."],"qaGates":["npm run qa:all","npm audit --omit=dev"],"stressTests":["Remove verification evidence from a handoff fixture and confirm QA fails.","Reference a missing task ID in next actions and confirm review catches it.","Try to mark a handoff complete while residual risks are empty for a fixture site and require explicit none.","Ask a future agent to continue work using only the handoff report and /agent-tasks.json.","Compare handoff evidence against the contract registry and confirm endpoints still exist."],"passCriteria":["Handoff contract endpoint exists.","Example handoff report fixture exists.","Required sections include outcome, changes, verification, evidence, risks, and next actions.","Evidence sources cite current agent contracts and generated reports.","QA validates the fixture path and required handoff fields."],"warningCriteria":["A handoff has passing commands but no generated report paths.","A handoff has next actions but no task IDs.","A handoff has risks but no severity.","A handoff cites stale evidence from a previous build."],"failCriteria":["No handoff report is generated for substantial work.","Verification status is claimed without evidence.","Risks are omitted rather than explicitly marked none.","Next actions do not map to the structured backlog.","Open background work is not disclosed."],"objectiveAlignment":"Preserves the operating system's state so future agents can continue from evidence instead of reconstructing context from memory."}}