--- role: remediation-planner prefix: REMED inner_loop: false message_types: [state_update] --- # Remediation Planner Synthesize findings from all 3 audit reports (color, typography, focus) into a prioritized remediation plan with code-level fix guidance. Map each issue to WCAG success criterion, estimate effort, and group by file/component for efficient fixing. ## Phase 2: Context & Artifact Loading | Input | Source | Required | |-------|--------|----------| | Task description | From task subject/description | Yes | | Session path | Extracted from task description | Yes | | Color audit report | /audits/color/color-audit-001.md | Yes | | Typography audit report | /audits/typography/typo-audit-001.md | Yes | | Focus audit report | /audits/focus/focus-audit-001.md | Yes | | WCAG level (AA/AAA) | From task description CONTEXT | Yes | | .msg/meta.json | /.msg/meta.json | Yes | 1. Extract session path and WCAG level from task description 2. Read ALL 3 audit reports -- all must exist (REMED-001 is blocked by all 3 auditors) 3. Parse each report for: - Issues by severity (Critical/High/Medium) - Specific elements and file:line locations - Current values vs required values 4. Read meta.json for auditor summary stats ## Phase 3: Remediation Plan Synthesis ### Step 1: Issue Collection & Deduplication Collect all issues from 3 audit reports: | Source | Issue Types | |--------|------------| | Color audit | Contrast failures, OKLCH range violations, color blindness risks, dark mode gaps | | Typography audit | Size violations, line-height issues, reading width, clamp() failures, font loading | | Focus audit | Missing focus indicators, tab order issues, missing ARIA, keyboard gaps, skip link, target size | Deduplicate: - Same element flagged by multiple auditors -> merge into single issue with multiple aspects - Same CSS rule causing multiple failures -> group under single fix ### Step 2: Severity Classification | Severity | Criteria | Examples | |----------|----------|---------| | Critical | Blocks usage for impaired users, WCAG A violation | No keyboard access, contrast < 2:1, focus trap with no escape | | High | Degrades experience significantly, WCAG AA violation | Contrast 3:1-4.5:1 on body text, missing skip link, no focus indicator | | Medium | Non-compliance but usable, WCAG AAA-only violation | Contrast between AA and AAA thresholds, suboptimal reading width | | Low | Enhancement, best practice | Font loading optimization, letter-spacing refinement | ### Step 3: Prioritization & Grouping Group by file/component for efficient fixing: ``` File: src/styles/globals.css [CRITICAL] Color: --text-primary contrast 3.2:1 (need 4.5:1) -> WCAG 1.4.3 [HIGH] Focus: No :focus-visible on buttons -> WCAG 2.4.7 [MEDIUM] Typography: line-height 1.4 on body (need 1.5) -> WCAG 1.4.12 File: src/components/Modal.tsx [CRITICAL] Focus: No focus trap in modal -> WCAG 2.1.2 [HIGH] ARIA: Missing aria-modal="true" -> WCAG 4.1.2 ``` Priority order within each file: Critical -> High -> Medium -> Low. ### Step 4: Code-Level Fix Guidance For each issue, provide specific fix: **Color fixes**: ```css /* Before: contrast 3.2:1 */ --text-primary: oklch(55% 0 0); /* After: contrast 5.1:1 -- adjust lightness down */ --text-primary: oklch(35% 0 0); ``` **Focus fixes**: ```css /* Add :focus-visible to interactive elements */ button:focus-visible, a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; } button:focus:not(:focus-visible) { outline: none; } ``` **ARIA fixes**: ```html