From 6c8c9c528cf72ce2d947da584602cdc5a22ee707 Mon Sep 17 00:00:00 2001 From: Nikita Agarwal Date: Thu, 11 Jun 2026 00:51:44 -0700 Subject: [PATCH 01/28] chore: stop ignoring .tmp/ (scratch demos land here) Co-Authored-By: Claude Opus 4.7 --- .gitignore | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitignore b/.gitignore index a02b96fa..9db80d47 100644 --- a/.gitignore +++ b/.gitignore @@ -90,6 +90,3 @@ packages/*/assets/ # Local Mintlify dev server log (transient) mint-dev.log - -# local scratch (dev logs, probe scripts) -/.tmp/ From ddcedc6acce0bc81547019c99011b7abfdee01cc Mon Sep 17 00:00:00 2001 From: Nikita Agarwal Date: Thu, 11 Jun 2026 01:43:38 -0700 Subject: [PATCH 02/28] docs: add audit poster restructure + dashboard restraint spec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Calms /policies and /projects toward the agenteye demo aesthetic (strip scanlines, gridline overlays, hard-offset shadows) and restructures /audit into a single-screen poster + four below-fold sections (strengths / quirks / how to improve / come back better). Pink migrates from #e4587d → #e4587c throughout. Also ignores .superpowers/ — the brainstorming companion's scratch directory. Co-Authored-By: Claude Opus 4.7 --- .gitignore | 3 + ...6-06-11-audit-poster-restructure-design.md | 295 ++++++++++++++++++ 2 files changed, 298 insertions(+) create mode 100644 docs/superpowers/specs/2026-06-11-audit-poster-restructure-design.md diff --git a/.gitignore b/.gitignore index 9db80d47..d161b0e6 100644 --- a/.gitignore +++ b/.gitignore @@ -90,3 +90,6 @@ packages/*/assets/ # Local Mintlify dev server log (transient) mint-dev.log + +# superpowers brainstorm session scratch +.superpowers/ diff --git a/docs/superpowers/specs/2026-06-11-audit-poster-restructure-design.md b/docs/superpowers/specs/2026-06-11-audit-poster-restructure-design.md new file mode 100644 index 00000000..5004bf0a --- /dev/null +++ b/docs/superpowers/specs/2026-06-11-audit-poster-restructure-design.md @@ -0,0 +1,295 @@ +# Audit poster restructure + dashboard restraint + +**Date:** 2026-06-11 +**Branch:** `luv-434` +**Status:** design — awaiting review + +## Goal + +Pull the failproofai dashboard's visual treatment back toward the calm aesthetic of the +agenteye demo (dark canvas, sharp 1px borders, no decorative overlays). Concurrently +restructure `/audit` into a single-screen poster + four below-fold sections. The audit +poster is the only quirk-bearing surface; `/policies` and `/projects` become calm, info- +dense surfaces with no brutalist decoration. + +## Scope + +### In scope + +- Strip body-level decoration site-wide (scanlines, dual gridline overlay, noise filter, + per-page hard-offset shadows, text-shadow stamps). +- Migrate the brand pink from `#e4587d` to `#e4587c` everywhere it appears (one hex digit; + ~36 references across 4 CSS files). +- Rebuild `/audit` into 5 sections with a new component layout. +- Restyle `/policies` and `/projects` to use only the calm base styles. +- Keep the current top-nav (no sidebar swap). + +### Out of scope + +- Reminder delivery mechanism (email / push / cron). UI for selecting a cadence ships; + the dispatch backend ships in a follow-up. +- Perks fulfillment (what "pro features for a month" unlocks, the entitlement system, + invite tracking). UI for the share-to-unlock card ships; the backend ships in a + follow-up. +- Rarity data collection. The poster reads `archetypeRarityPct` and `scoreRank` from a + new (mocked-for-now) field on the audit result; a separate task populates them from + real aggregate data. +- Mobile layout polish. The current `/audit` desktop-first treatment carries over. +- Top-nav → sidebar migration. Considered and rejected (option C, scope question). +- Animation tuning. Existing sigil reveal animation is dropped; no new animations. + +## Visual system change (cross-cutting) + +### Body atmosphere — strip + +In `app/globals.css`: + +- Remove `body::before` (engineering-plate cross-hatch gridlines at 96px and 24px tile + sizes). +- Remove `body::after` (fractalNoise SVG overlay). +- Replace the body background-image stack with a single soft cyan/teal radial glow at + top-right plus the existing bottom-left pink glow, attached to `background-attachment: + fixed`. Net visual: a calm, slightly atmospheric dark canvas — closer to the demo's + "soft glow around the app frame" feel. + +In `app/audit/audit-styles.css`: + +- Remove `.scanline-overlay`. +- Remove every `box-shadow: NNpx NNpx 0 0 var(--accent-pink-shadow)` declaration (hard- + offset pink stamps) — except the share-button hover state, which is the only + interaction that earns the effect. +- Remove every `repeating-linear-gradient(…)` declaration used as a per-section + background (the pink+green gridlines on `.archetype-frame`, `.empty-panel`, + `.score-share-card`, `.showoff-cta`, `.share-card`). +- Remove every `text-shadow: NNpx NNpx 0 var(--accent-pink-shadow)` declaration (the + hard-stamp shadow on display-font headings). +- Remove every `box-shadow: 6px 6px 0 0 var(--accent-pink-shadow)` style (similar + treatment on `.sigil-wrap[data-bare="true"]`, `.empty-glyph-grid`, the project list + empty-state grid). + +### Pink color migration + +Replace `#e4587d` with `#e4587c` (RGB 228,88,125 → 228,88,124) in: + +| File | Refs | +|---|---| +| `app/globals.css` | `--accent-pink` token + a few inline rgbs | +| `app/audit/audit-styles.css` | bulk of refs (~25) | +| `assets/audit/poster-styles.css` | poster-export styles | +| `assets/audit/styles.css` | shared audit assets | + +The derived `rgba(228, 88, 125, X)` values also become `rgba(228, 88, 124, X)`. The hex +delta is subliminal but the design system needs the canonical value. + +### Surfaces that calm down + +Apply this rule globally: `1px solid var(--line-2)` borders, `var(--bg-2)` fill, no +shadows, no inner backgrounds with gridlines. Internal dividers become `1px dashed +var(--line)`. This is the demo's atomic look. + +Affected classes (existing): `.archetype-frame`, `.strength-row` container, +`.score-share-card`, `.finding`, `.policy-card`, `.share-card`, `.empty-panel`, +`.running-panel`, `.showoff-cta`, `.panel`. + +## `/audit` page — new structure + +``` +┌──────────────────────────────────────────────┐ +│ 01 POSTER (single screen, fits viewport) │ +├──────────────────────────────────────────────┤ +│ 02 STRENGTHS — what it's great at │ +├──────────────────────────────────────────────┤ +│ 03 QUIRKS — what to improve │ +├──────────────────────────────────────────────┤ +│ 04 HOW TO IMPROVE — install/configure │ +├──────────────────────────────────────────────┤ +│ 05 COME BACK BETTER — reminder + perks │ +└──────────────────────────────────────────────┘ +``` + +Each section sits in a calm shell: header row (small green eyebrow `// label` + a small +section count on the right), then a plain lowercase title, then content. 1px solid +divider between sections. + +### Section 01 — Poster + +A self-contained PNG-capture region. Anything inside this region must work as a stand- +alone shareable image. Layout (3-column grid: score · persona · sigil): + +| Slot | Content | +|---|---| +| Top-left | `▣ failproof_ai · audit` wordmark (small, ink color, brand mark pink) | +| Top-right | `№ 01 of 08 · audited 2026-06-11` (archetype index from data + date) | +| Body left | `87 / 100` (display font, 76px, pink); below: `top 15%` (small caps, green) | +| Body center | `the optimist` (display font, 32px, lowercase); below: 3-keyword strip `pace · conviction · forgetful` (green · ink · pink); below: `// only 12% of agents are this archetype` (rarity) | +| Body right | 8×8 sigil tile (12px cells, 1px border, no plate, no animation, no stacked shadows) | +| Bottom-right | `audit yours → failproof.ai` (small horizontal text, green) | + +The capture region uses a `1px dashed var(--accent-pink-soft)` outer border to read as a +poster-like edge. A subtle radial pink glow at top-right gives the poster a hint of +depth without competing with the body. + +**Outside the capture region** (UI only, not part of the PNG): a row of three share +buttons — `[ 𝕏 post your archetype ] [ in share on linkedin ] [ ↓ download poster ]` — +plus a scroll hint `scroll for full report ↓`. + +Dropped from the current Identity hero: hard-offset shadow, archetype index "corner" +labels (TL/TR/BL/BR positioned text), dashed-frame chrome, sigil plate with crosshair +marks, sigil reveal animation, archetype "tagline" prose line, archetype "common in" +meta grid, archetype closing line, signature receipt block. + +### Section 02 — Strengths · "what it's great at" + +3 rows; each: `✓` glyph · headline + sub-detail · right-aligned metric with small-caps +unit label. No card chrome, no hover backgrounds, no checkmark backdrop. 1px dashed +divider between rows. + +The metric units currently fluctuate (sessions / 18-of-18 / 80k cap). The spec keeps +this — uniform metrics would be a separate spec — but adds a note to the implementation: +prefer `N / M sessions` framing when possible, fall back to absolute counts. + +### Section 03 — Quirks · "what to improve" + +A 4-column table: + +| Col | Width | Content | +|---|---|---| +| `time` | 60px | timestamp like `09:14` (5-sec resolution) | +| `what slipped` | 1fr | tool call + arg; below in dim: `would've been caught by: ` | +| `severity` | 80px | pill (low / medium / high) — color-coded | +| `seen` | 70px | `new` · `2× this wk` · `recurring` | + +Section header on the right shows `N slipped through`. The row is a plain grid; no card +chrome, no corner crosshairs, no per-finding numbered card. + +The current 4-quadrant `.finding-body` (description · evidence · cost · fix) is +collapsed. Evidence + fix are accessible via an inline expander (chevron on the row), or +deferred to the "how to improve" section below — they're not duplicated on the row +itself. + +### Section 04 — How to improve · "install or configure" + +A small card per recommended action. Each card: + +- Left: title (`install no-sensitive-files` or `configure …`); below: + `would catch quirk #N · `; below: `$ failproofai install ` + (green, monospace, dashed top-divider above it). +- Right: install/configure button (pink outlined, small caps, primary affordance). + +Card chrome: `1px solid var(--line-2)`, background `var(--bg-2)`. No shadows. 10px gap +between cards. + +The mapping from quirk → fix is explicit in copy (`would catch quirk #1`) — this is the +only cross-reference between sections. + +### Section 05 — Come back better · "build the habit" + +Two side-by-side cards, equal width: + +**Left card — Set a reminder.** Title + one-sentence sub. A row of 4 cadence buttons: +`3d` · `7d` · `14d` · `30d`. The current selection (`7d` default) has a pink filled +outline; the others are plain 1px ink-color outlines. Clicking a cadence persists the +choice (UI-only in this spec; backend dispatch is out of scope). + +**Right card — Unlock failproof perks.** Title + sub: `share with 3 friends → unlock +pro features for a month.` Progress bar (6px tall, pink fill on dark track), `1 of 3 +invited · 2 to go` text, `invite a friend` button (pink outlined). Footer: `// invites +are tracked by signup — they have to run an audit too.` + +Both card backgrounds are `var(--bg-2)` with `1px solid var(--line-2)` borders. No +shadows. + +The perks card UI is real; the backend that tracks invites + grants entitlement is +out of scope. The component should accept `inviteCount` and `inviteTarget` as props +and render proportionally — the placeholder values (1/3) come from a mock for now. + +## `/policies` and `/projects` — calm-down + +The structure does not change. Only the styles do: + +- `app/projects/page.tsx` already wraps in `.report` + `.section` chrome — that stays. + The inner empty-state pixel grid loses its hard-offset shadow. +- The inner `ProjectList` component currently uses Tailwind utilities that resolve to + the audit palette through shadcn aliases. It calms automatically once the underlying + tokens (`--card`, `--border`, etc.) lose their decorative treatments. No component + changes expected. +- `app/policies/page.tsx` wraps `HooksClient`. The client uses `Button`, `lucide` icons, + and table-style activity. Same auto-calm via tokens. No restructure. +- Section headers in both pages keep the existing `━━