Reassess and Compare Workflows
The workbench supports reassessing completed accessibility assessments and comparing results using the dashboard diff view.
When to Reassess
- Re-evaluate after the team has fixed issues from a prior assessment.
- Verify that remediations resolved the original findings.
- Capture a fresh baseline after code changes.
- Re-upload corrected artifacts for a native assessment.
How Reassessment Works
- Open a completed, failed, or canceled assessment's detail page.
- Click Reassess.
- A new draft assessment is created with the same configuration as the original.
- The new assessment records
rerun_of(parent lineage) andbaseline_run_id(comparison baseline), both set to the source assessment's ID. - For web live assessments, the config is copied as-is: same URLs, crawl settings, auth profile, and sanitization options.
- For native artifact assessments, the config is copied but the artifact bundle is cleared. Upload fresh artifacts before starting.
- Start the new assessment as usual.
What Is Preserved
| Field | Preserved | Notes |
|---|---|---|
| Platform | Yes | |
| URLs (web) | Yes | |
| Targets (native) | Yes | |
| Crawl settings (web) | Yes | |
| Auth profile ID (web) | Yes | Profile must still exist at execution time |
| Audit mode (native) | Yes | |
| Sanitization settings | Yes | |
| Artifact bundle (native) | No | Cleared -- upload new files |
Lineage Tracking
The rerun_of field creates a parent-child relationship between
assessments. The workbench UI shows this lineage on the assessment detail page with a link
to the parent assessment. Multiple reassessments from the same source each point back to the
original. The chain is flat, not recursive.
Diff Comparison
Prerequisites
Both the current assessment and the baseline assessment must:
- Have reached a terminal state (completed, completed with warnings, failed, canceled, or partial success).
- Have a generated
report.jsonin their directories.
How diff works
- Open a completed assessment that has a
baseline_run_idset (typically a reassessment). - Click Compare in Dashboard.
- The workbench fetches the diff URL from the API.
- The API verifies both assessments have reports, then returns a dashboard URL.
- The dashboard opens in a new tab showing the diff view.
What the diff shows
- New findings — issues present in the current assessment but not in the baseline.
- Resolved findings — issues present in the baseline but not in the current assessment.
- Changed findings — issues present in both assessments but with different severity, confidence, or verdict.
- Unchanged findings — issues identical across both assessments.
Manual baseline selection
The baseline_run_id is set automatically when reassessing.
To compare two arbitrary assessments, use the dashboard directly:
http://localhost:4321/diff?run1=<run-id-1>&run2=<run-id-2> State Machine
Assessments follow the same state machine regardless of whether they are new or reassessments:
| From | To |
|---|---|
| draft | queued, canceled |
| queued | starting, canceled, failed |
| starting | running, failed, canceled |
| running | completed, completed_with_warnings, failed, canceled, partial_success |
Terminal states cannot transition further.
API Reference
| Method | Route | Purpose |
|---|---|---|
| POST | /api/runs/:id/rerun | Create a new draft assessment from an existing assessment's config |
| GET | /api/runs/:id/diff-url?baseline=:id | Get the dashboard diff URL for two assessments |
Note: API routes use /runs/ and rerun for backward compatibility. The product UI presents these as assessments and reassessments.
POST /api/runs/:id/rerun
Precondition: Source assessment must be in a terminal state. Returns 201 with the newly created draft assessment object. Returns 404 if the source assessment is not found, or 409 if it is not in a terminal state.
GET /api/runs/:id/diff-url
Query parameter: baseline (required) — the baseline assessment ID.
Returns 200 with { "diff_url": "..." }.
Returns 400 if the baseline parameter is missing or either assessment lacks a report.
Returns 404 if either assessment is not found.