Sprint 11 — Interactions & Visual Polish Complete
Pre-launch polish. Every interaction refined, every visual polished.
- Brief archive — browse and restore previously generated briefs by domain and date
- Brief sort toggle — severity-grouped vs chronological in settings
- JSON + CSV export — structured data export from settings panel
- Image paste on note — Cmd+V screenshot storage with thumbnail preview
- Selector improvement — ID → class → semantic → fallback (skip Tailwind/framework attrs)
- Element context enrichment — parentContext, elementRole, fullText captured
- Note thumbnails + lightbox — paste images display with modal viewer
- ZIP export — brief.md + images/ folder for full handoff
- Screenshot overlay — drag-to-select visual guide on page
- PDF export — styled report via print dialog with embedded images
- Wispr Flow settings section — voice notes integration docs
- Panel mutual exclusion — brief and archive don't overlap sidebar
- Clear-all confirmation — shows domain name before destructive action
- Bottom bar flex-wrap — responsive layout fixes on narrow widths
- SELECT ELEMENT hidden in Simple Mode — cleaner UI for content reviewers
- Mode chip direct toggle — one-time Dev Mode toast on first switch
Sprint 10 — Feature Polish & Export Architecture
The product works the way a real review tool should.
- Floating in-page note input — textarea anchored near selected element for Wispr Flow
- Domain-scoped brief and notes list — cross-page session grouping with URL headers
- Simple-first onboarding — new installs default to Simple Mode with welcome card
- Self-hosted fonts — DM Sans, DM Mono, Lora, Playfair Display bundled locally
- Save note before switching — prompt strip when element changes with unsaved text
- Individual note delete — delete button in edit mode with inline confirmation
- Domain-wide clear — clears entire domain session with confirmation showing domain
- Filter tab counts — live counts on filter tabs (e.g., "All (4)" · "MED (3)")
- Settings footer — storage used (KB) + version number display
- HTML report logotype — Markup logotype in header of every exported report
- Multi-page URL group headers — notes grouped by URL path with gold current-page border
- Brief URL path headers — every URL group has a path header even if single URL
Sprint 9 — Full Design System Pass
The product looks like a product.
- Logotype — Playfair Display italic gold in header
- Complete design token system — ink, paper, gold, deep-blue, mid-blue, slate, warm-white
- Severity system — Critical · High · Medium · Low on every note
- Severity picker — 4 color-coded buttons below type picker (Dev Mode)
- Severity badge on note cards — visual indicator per note
- Brief sorted by severity — Critical → High → Medium → Low grouping
- Severity summary in brief header — count display (N Critical · N High · etc.)
- Filter tabs — All · Critical · High · Medium · Low with counts
- Settings panel — Developer Mode / Simple Mode toggle
- Simple Mode UI — hides selectors, type picker, severity picker
- Edit mode redesign — clear editing state on card
- Archive panel — brief history browsable interface
- Bottom bar — SELECT ELEMENT and GENERATE BRIEF side by side
- Export buttons — Copy to Clipboard, Export MD+Images, Export as HTML
- ESC pill — visible escape hint on page overlay
- Abbreviated filter tabs — responsive narrow width support
Sprint 7b — Critical Stability Pass
9 bugs fixed. Storage reliability fundamentals locked.
- Notes lost on tab switch — migrated storage from tab-keyed to URL-keyed persistence
- file:// pages blocked — local files now fully supported
- Activation lost on sidebar reopen — sidebar auto-syncs to ON state
- Duplicate note on edit + clear selector — currentNoteId preserved through flow
- Selector row visible at startup — hidden until Markup is ON
- Note cleared on deactivation — deactivateReset() preserves textarea text
- "General note" label on wrong types — only shown when type is General AND no selector
- Session title lost on tab switch — title storage migrated to URL-keyed
- Safety net backup — last 3 snapshots per URL before destructive clear
Sprint 7a — Brief Polish & UX Cleanup
The brief is called Brief. Not AI Brief. Never AI Brief.
- Brief renamed throughout UI and docs
- Back to Notes from brief panel
- Activation hints — guides users when Markup is ON
- Clear selector — deselect current element without cancelling note
- Clear all — wipe notes for a session with confirmation
- Session title + URL in brief header — context always visible
Sprint 6 — Brief & General Notes
The output that makes everything worth doing.
- Brief panel — generates structured markdown from all notes
- General notes — annotate the page without selecting an element
- Auto-focus on note input — keyboard ready immediately
- Session title — name your review session
- Download .md — export the brief as a markdown file
Sprint 5 — Content Script Stability
Make selection actually work.
- Cursor override — crosshair on hover, no browser interference
- Two-mode hover ring — dashed preview, solid locked
- CSS selector generation — accurate, stable selectors via css-selector-generator
Sprint 3–4 — Editing & Types
Notes you can fix. Notes with meaning.
- Undo / redo — full history stack
- Edit mode — reopen and update any saved note
- Note type picker — Bug · Design · Copy · ? · General
- Empty state CTA — guides new users to start annotating
Sprint 1–2 — Foundation
The core loop, end to end.
- Toggle ON/OFF — injects content script into the active page
- Hover ring on elements — preview before committing
- Click to select element — locks CSS selector
- Type a note and save — persisted to chrome.storage.local
- Storage keyed by URL — notes follow the tab forever