<!-- source: openspec/changes/apply-connected-stack-coordinate-grid/verification.md -->

# Verification — apply CAD coordinate-grid pattern to the connections section

All commands run from the repo root. `<branch>` =
`feat/rap-1265/connected-stack-coordinate-grid`. No `forge` state-file gate —
this change is executed directly (Claude Code), so `~/.forge/state/RAP-*.json`
never exists; the PR-existence gate is `gh pr list`.

## Acceptance — static greps

```bash
SEC=apps/web/src/components/home/connected-stack.tsx

# 1. section is a positioning context
grep -nE 'id="connections"[^>]*' "$SEC"            # className includes `relative`
grep -nq 'className="relative' "$SEC" && echo OK-relative

# 2. the CAD tile is present, blueprint tone, normal intensity
grep -nq 'bg-pattern-cad' "$SEC"        && echo OK-cad
grep -nq 'text-blueprint'  "$SEC"       && echo OK-tone
grep -nq 'opacity-70'      "$SEC"       && echo OK-intensity

# 3. fade is on the WRAPPER, not the CAD element (anti-pattern guard).
#    These two classes must NOT appear in the same class attribute.
! grep -nE 'class[^"]*"[^"]*bg-pattern-cad[^"]*pattern-fade' "$SEC" && echo OK-not-same-el
! grep -nE 'class[^"]*"[^"]*pattern-fade[^"]*bg-pattern-cad' "$SEC" && echo OK-not-same-el2
grep -nq 'pattern-fade-top' "$SEC"      && echo OK-fade-present

# 4. strip is decorative + inert + bottom-anchored, height tracks padding
grep -nq 'aria-hidden'                 "$SEC" && echo OK-aria
grep -nq 'pointer-events-none'         "$SEC" && echo OK-inert
grep -nq 'absolute inset-x-0 bottom-0' "$SEC" && echo OK-anchor
grep -nq 'h-16 md:h-32'                "$SEC" && echo OK-height

# 5. no forbidden paint introduced in this file
!  grep -nE 'box-shadow|drop-shadow|backdrop-blur'  "$SEC" && echo OK-no-shadow
#    (background gradients: the ONLY mask gradient allowed is via the
#     pattern-fade-top UTILITY; no inline `background:linear-gradient` here)
!  grep -nE 'background:\s*(linear|radial)-gradient' "$SEC" && echo OK-no-gradient-fill

# 6. utilities exist upstream (no new CSS needed)
grep -nq 'bg-pattern-cad'   packages/ui/src/styles/patterns.css && echo OK-cad-util
grep -nq 'pattern-fade-top' packages/ui/src/styles/patterns.css && echo OK-fade-util
```

All `echo` lines must print. Any missing `OK-*` = fail.

## Acceptance — spec amendments

```bash
# paint-map row 06 flipped to applied
grep -nE 'connected-stack.*P5 · applied' openspec/current/home/blocks.md && echo OK-paintmap-row
grep -nq 'Three placements applied'      openspec/current/home/blocks.md && echo OK-tally

# budget raised to 3 (location: design-components.md, or wherever the budget
# table lives — see design.md § Repo reconciliation)
grep -rnq 'Patterns total' openspec/current && \
  grep -rnE 'Patterns total.*3 (per|/) page' openspec/current && echo OK-budget-3

# decision record added
grep -nq 'D-DS-9' openspec/decisions.md && echo OK-d-ds-9
```

## Acceptance — build gates

```bash
pnpm -F web typecheck        # passes
pnpm -F web build            # passes; home-route JS delta ≈ 0 (CSS-only)
gh pr list --head <branch>   # PR exists
```

## Manual checks (dev server)

`pnpm -F web dev`, open `/`:

1. **Renders** — the CAD coordinate grid paints inside the connections
   section's bottom padding, dense at the section's lower edge.
2. **Fades** — the grid dissolves *upward* toward the CTA. There must be **no
   hard top edge** (that would mean the wrapper mask didn't composite — fail).
3. **Crosshairs present** — weighted `+` nodes at 60px pitch are visible (if
   only the faint background grid shows with no crosshairs, the CAD mask was
   clobbered — fail).
4. **Off text** — the pattern never touches the footnote or CTA text at any
   viewport width. Resize 320px → 1440px to confirm the `h-16 md:h-32` strip
   stays within the padding.
5. **Contained** — the grid is bounded to the connections section; it does not
   bleed into the sections above or below.
6. **Reduced cost** — Network panel shows no new request from this placement;
   Performance trace shows no RAF (pure CSS).
7. **A11y** — axe/VoiceOver: the strip is `aria-hidden`, not announced.

## Definition of done

- All `OK-*` greps print; spec greps print; typecheck + build pass; PR exists.
- Manual checks 1–7 pass, with 2 + 3 (fade composites, crosshairs survive) the
  load-bearing visual gates for the nested-mask technique.
