Design pipeline: bolder, onboard, animate, polish, adapt, distill, harden, e2e#23
Merged
m4cd4r4 merged 8 commits intobaseline/pre-design-pipelinefrom Mar 13, 2026
Merged
Design pipeline: bolder, onboard, animate, polish, adapt, distill, harden, e2e#23m4cd4r4 merged 8 commits intobaseline/pre-design-pipelinefrom
m4cd4r4 merged 8 commits intobaseline/pre-design-pipelinefrom
Conversation
- Replace 4 identical stat cards with a horizontal data strip No icon boxes, no cards, no glow - just numbers + labels + dividers - Remove riskGlow shadow effects, replace with 4px left-border accents - Replace 2x2 risk distribution grid with flat number row + stacked bar - Add inline risk badge (CRITICAL/HIGH/MEDIUM/LOW) next to contract names - Ghost empty state updated to match new flat layout - Remove unused Database, TrendingUp imports Result: dashboard reads like data, not an AI template Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Walkthrough steps: - Remove all jargon: vector embeddings, chunked, AI pipeline, hybrid search - Rewrite 5 step descriptions around outcomes lawyers care about - Focus on: risk rating, flagged clauses, plain-English answers Empty state: - "What happens next: Extract → Score → Index" → "What you get: Every clause read → Risk flagged → Nothing missed" - "extract clauses, score risks, build a searchable index" → "read every clause, flag risky provisions" - "Add your first contract" (not "Upload your first contract") Not-yet-analyzed state: - "Run AI analysis to extract clauses, assess risk levels..." → outcome-focused copy Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Dashboard: - Stacked risk bar segments animate scaleX 0→1 from left, staggered 70ms - Risk breakdown numbers (critical/high/medium/low) fade+slide up with 60ms stagger - Overall risk level panel slides in from left (x: -8 → 0) - Risk badges pop in with scale 0.7→1 when analysis data loads Graph page: - Extraction button shows elapsed time: "Analyzing · 45s" (updates every 1s) - Empty state copy: "No Entities Extracted" → "No knowledge graph yet" - CTA: "Extract Entities" → "Build Knowledge Graph" All animations: ease-out-quart [0.25,1,0.5,1], transform+opacity only, 200-500ms Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dashboard/page.tsx: - Contract Portfolio subtitle: font-mono removed, copy → "X contracts · Click to see risk" - Document rows: remove uppercase tracking-wide from page count, sections, Ready status "chunks" → "sections" (lawyer vocabulary) - Risk Assessment panel subtitles: font-mono uppercase → plain text-xs - "Attention Required" h3: font-mono uppercase → text-xs - "Advanced View" → "Search" with Search icon (honest about the link target) - Activity feed: font-mono count → text-xs walkthrough.tsx: - Step counter: "text-xs font-mono text-ink-300 uppercase tracking-wide" → "text-xs text-ink-400" "Step 1 of 5" → "1 of 5" (quieter, less ceremony) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Stat strip: grid-cols-4 always (was grid-cols-2 causing broken divide-y borders on mobile) - PortfolioStat: fluid font sizing (text-xl → text-3xl → text-4xl) and padding at breakpoints - Document list max-height: 60vh on mobile, calc(100vh-300px) on sm+ - Eye button: 44x44px touch target on mobile (p-3 min-w-[44px] min-h-[44px]) - Nav logo subtitle: removed font-mono uppercase decorative treatment Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Nav: remove Search item (redundant with inline search input) - Stat strip: drop "Sections analyzed" (engineering metric), now 3 stats - Contract Portfolio: remove section header, keep minimal count line - Risk panel: replace ghost panel (noisy zeros) with minimal hint - Activity Feed: removed (lawyers don't need action logs) - loadData: no longer fetches activity - Clean up unused imports (Activity, MessageCircle, FileBarChart, Trash2, RotateCcw) - Remove font-mono decorative usage from search results Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove unused Zap import (was left from activity feed removal) - Guard concurrent search: add `searching` check to prevent overlapping requests - Normalize risk level from API: validate against known values, fallback to 'low' - Guard riskAccentBorder lookup with ?? 'border-l-ink-600' fallback - Guard clause_type.replace() with ?? '' to handle null/undefined clause types - Apply clauseTypeLabels in secondary clause panel (was showing raw snake_case) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rewrote dashboard.spec.ts from 12 to 65 tests covering all recent changes:
- Navigation: 5 nav items (no Search), inline search, tour/upload buttons
- Stat strip: 3-column grid (Contracts, Clauses found, Ready to review)
- No 4th stat (Sections analyzed removed), no Activity Feed
- Empty state: CTA, value prop steps, risk panel minimal hint
- Document list: count line, click-to-load risk panel, Eye button
- Risk panel: portfolio view, document view, "Not yet analyzed" state
- Walkthrough: localStorage guard, auto-start, dismiss, prev/next, restart
- Mobile nav: touch events, hamburger menu, mobile link visibility
- Search: inline results, clear button, concurrent search guard
- Upload: disabled state, file picker trigger, drag-drop overlay
Fixed flaky walkthrough tests by mocking API to return empty state instantly.
Fixed mobile nav test: added hasTouch:true, use tap() over click({force}).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
m4cd4r4
added a commit
that referenced
this pull request
Mar 13, 2026
27 targeted tests covering the 4 behaviors from PR #23: - Stat strip grid-cols-3 at desktop/tablet/mobile (no 2x2) - Walkthrough first-visit vs return-visit behaviour - Risk panel populates on contract row click - Empty state copy visible before upload All 27 tests pass on chromium + mobile-chrome. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Owner
Author
PR verification complete ✅Ran targeted Playwright specs (
Spec committed as |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Full design pipeline pass on BrightClause dashboard and document detail page. Eight sequential skill runs, each building on the last.
font-mono uppercase tracking-widefrom Risk panel, stat strip, activity feed headers, and walkthrough step counter. Cleaned inconsistent label treatment.grid-cols-3always for stat strip (was 2x2 on mobile), document list height60vhon mobile, Eye button 44px touch targets, logo subtitle no longer monospaceRiskLevel[], null-safeclause_typein dashboard and document detail,?? 'border-l-ink-600'fallback, removed staleZapimporttests/dashboard.spec.tsfrom 152 lines to 763 lines (65 tests). API mocking for deterministic timing,hasTouch: truefor mobile context,.tap()for mobile nav. All 65 tests passing.Key files changed
src/app/dashboard/page.tsx- primary target, most changessrc/app/documents/[id]/page.tsx- harden + animatesrc/lib/navigation.tsx- remove Search nav itemsrc/lib/walkthrough.tsx- onboard copy + first-time flagtests/dashboard.spec.ts- full rewrite (65 tests)Test plan
npx playwright test tests/dashboard.spec.ts)Generated with Claude Code