You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
return`Complete the planned DELETE for ${artifact.file}, or revise the plan if the file should remain.`;
186
+
}
187
+
return`Create or update ${artifact.file} so the planned ${artifact.operation.toUpperCase()} artifact exists, or revise the plan if it is no longer in scope.`;
message: 'Plan declares ui_proof_slots but no ui-proof-slots artifact was found beside the plan.',
338
+
fix_hint: 'Create ui-proof-slots.json or ui-proof-slots.md beside the plan, or set ui_proof_slots: [] with a no_ui_proof_rationale if the phase is not UI-sensitive.',
Copy file name to clipboardExpand all lines: bin/lib/ui-proof.mjs
+39-4Lines changed: 39 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -446,6 +446,41 @@ function normalizeObservedBundle(entry) {
446
446
};
447
447
}
448
448
449
+
functioncomparisonFixHint(code){
450
+
consthints={
451
+
invalid_observed_bundle: 'Fix the observed proof bundle metadata, then rerun ui-proof compare.',
452
+
unsatisfied_observed_claim_status: 'Record a passed observed claim only after the changed UI state has been exercised and evidenced.',
453
+
unsatisfied_observed_comparison_status: 'Set comparison_status_by_slot to satisfied only for slots backed by matching observations and artifacts.',
454
+
missing_required_evidence_kind: 'Add observed evidence for every evidence kind required by the planned slot, or narrow the planned slot before verification.',
455
+
human_evidence_cannot_bypass_required_non_human_evidence: 'Add the missing non-human evidence; human approval may narrow or waive but cannot replace it.',
456
+
route_state_mismatch: 'Capture proof for the exact planned route/state, or update the plan before execution.',
457
+
environment_mismatch: 'Capture proof in the planned environment, or record a narrowed claim limit and rerun comparison.',
458
+
viewport_mismatch: 'Capture proof for the planned viewport, or narrow the viewport claim explicitly.',
459
+
requirement_mismatch: 'Declare the planned requirement id in the observed proof bundle scope.',
460
+
claim_mismatch: 'Keep the planned and observed claims identical so proof maps to the exact UI assertion.',
461
+
observation_claim_mismatch: 'Add a passed observation that supports the exact planned claim.',
462
+
observation_route_state_mismatch: 'Attach observations to the exact planned route/state.',
463
+
missing_supporting_observation_evidence_kind: 'Add passed supporting observations for each required evidence kind.',
464
+
unsatisfied_proof_step: 'Rerun or replace failing proof steps before claiming the slot is satisfied.',
465
+
missing_manual_acceptance_evidence: 'Record human evidence when the planned slot requires manual acceptance.',
466
+
missing_manual_acceptance_observation: 'Add a passed human observation for manual acceptance.',
467
+
unsatisfied_observation_result: 'Resolve failed observations or classify the slot as partial, waived, or deferred.',
468
+
missing_minimum_observation: 'Add observations covering every planned minimum observation.',
469
+
missing_claim_limit: 'Preserve the planned claim limit in the observed proof bundle.',
470
+
missing_expected_artifact_type: 'Attach the planned artifact type, such as screenshot, report, trace, or DOM snapshot.',
471
+
missing_observed_bundle: 'Create an observed UI proof bundle for the planned slot, or explicitly waive/defer the slot with claim narrowing.',
472
+
};
473
+
returnhints[code]||'Fix the proof issue, rerun the comparison, and keep the slot partial until evidence matches the plan.';
Copy file name to clipboardExpand all lines: distilled/workflows/verify.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ Before starting, read these files:
14
14
5. From the SUMMARY.md loaded in step 3, if a `<judgment>` section is present - read `<anti_regression>` rules as additional verification targets: confirm that invariants listed there were not broken by execution. Read `<active_constraints>` to calibrate verification scope.
15
15
6. The relevant codebase files - the code that was actually built
16
16
7.**Session-boundary fallback:** If the SUMMARY.md loaded in step 3 has no `<judgment>` section, check whether `.planning/.continue-here.bak` exists. If it does, read its `<judgment>` section. Treat `<anti_regression>` rules as additional verification targets and `<active_constraints>` to calibrate verification scope (same usage as step 5). After reading, run `node .planning/bin/gsdd.mjs file-op delete .planning/.continue-here.bak --missing ok` (auto-clean).
17
+
8.`node .planning/bin/gsdd.mjs control-map --json` to reconcile workflow/lifecycle state and checkpoint presence (`.planning/.continue-here.md`) before deciding pass/fail.
17
18
18
19
Establish your verification basis (must-have sources, requirement scope, previous report status) before beginning code inspection. Do not jump to loose file reading until this basis is explicit.
19
20
@@ -130,7 +131,7 @@ Note: this step does NOT replace levels 1–3. An artifact can satisfy the evide
130
131
131
132
<ui_proof_comparison>
132
133
If the plan defines non-empty `ui_proof_slots`, compare planned UI proof against observed bundles before closure. Prefer `gsdd ui-proof compare <planned-slots-json> [observed-bundle-json ...]` when planned slots are available as JSON or fenced JSON; otherwise perform the same field-by-field comparison and record reduced assurance if no deterministic command could run. If the plan records only `no_ui_proof_rationale`, verify the rationale instead of requiring a bundle. Each observed bundle must include top-level `proof_bundle_version`, `scope`, `route_state`, `environment`, `viewport`, `evidence_inputs`, `commands_or_manual_steps`, `observations`, `artifacts`, `privacy`, `result`, and `claim_limits`.
133
-
Classify each slot as exactly one of: `satisfied`, `partial`, `missing`, `waived`, `deferred`, or `not_applicable`. Waiver/deferment narrows the claim; it is not proof. Screenshots, traces, videos, reports, accessibility scans, Gherkin, visual diffs, and manual notes are artifact types or activities mapped onto existing evidence kinds, not new evidence kinds. Artifact count is never proof; each artifact must tie to the slot claim, route/state, observation, artifact path/link, privacy metadata, and claim limit.
134
+
Classify each slot as exactly one of: `satisfied`, `partial`, `missing`, `waived`, `deferred`, or `not_applicable`. Deterministic comparison issues include `severity` and `fix_hint`; use those as the normal repair feedback loop before closing verification. Waiver/deferment narrows the claim; it is not proof. Screenshots, traces, videos, reports, accessibility scans, Gherkin, visual diffs, and manual notes are artifact types or activities mapped onto existing evidence kinds, not new evidence kinds. Artifact count is never proof; each artifact must tie to the slot claim, route/state, observation, artifact path/link, privacy metadata, and claim limit.
134
135
For live UI runtime proof, expect `agent-browser` as the default captured tool unless the observed bundle explains a project-native equivalent or an availability constraint. Do not fail solely because another browser tool was used, but downgrade vague proof that lacks exact route/state, planned viewport coverage or rationale, interactive steps/refs where relevant, screenshot/report artifacts, or relevant console/network observations. Existing Playwright tests count as canonical repeatable regression evidence, not a replacement for scoped runtime evidence when the slot requires `runtime`.
135
136
Artifact privacy metadata must include `visibility`, `retention`, `sensitivity`, and `safe_to_publish`; raw screenshots, traces, videos, DOM snapshots, and reports default to local-only and unsafe unless sanitized. Run `gsdd ui-proof validate <path>` or treat `gsdd health` E10 as blocking; add `--claim <...>` when relying on the bundle for public, tracked, delivery, release, or publication proof. Visual taste, accessibility judgment, baseline acceptance, subjective polish/layout quality, and privacy publication require human evidence or explicit waiver; human approval does not replace required `code`, `test`, `runtime`, or `delivery` evidence. Source annotations, AST/cAST findings, semantic search, comments, and Semble-like retrieval are discovery hints only.
0 commit comments