Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
1617ce0
docs: start milestone v1.34 Both-Themes Perfection (Dark Signature + …
szTheory Jun 4, 2026
99bc00a
docs(128): capture phase context
szTheory Jun 4, 2026
7487085
docs(state): record phase 128 context session
szTheory Jun 4, 2026
a1a902b
docs(128): research phase domain — contrast gate harness + dark seed …
szTheory Jun 4, 2026
9ba5496
docs(128): add research + validation strategy
szTheory Jun 4, 2026
52d3890
docs(128): pattern map analog files
szTheory Jun 4, 2026
49ad50f
docs(128): create phase plan — contrast gate harness (3 plans, 3 waves)
szTheory Jun 4, 2026
aba977f
docs(128): create phase plan
szTheory Jun 4, 2026
af1529e
feat(128-01): install @axe-core/playwright devDep + wire test:e2e:adm…
szTheory Jun 4, 2026
6da526b
feat(128-01): create contrast-pairs.mjs muted-alpha manifest (D-11)
szTheory Jun 4, 2026
d2b9d00
docs(128-01): complete axe dep + muted-alpha manifest plan
szTheory Jun 4, 2026
b08959f
feat(128-02): create contrast-checker.mjs with WCAG math, D-15 guards…
szTheory Jun 4, 2026
ef87c5f
feat(128-02): wire Makefile contrast targets and update DESIGN-TOKENS.md
szTheory Jun 4, 2026
f6d58c5
docs(128-02): complete contrast-checker + make targets plan
szTheory Jun 4, 2026
e9c7f24
feat(128-03): create admin_contrast_matrix.spec.ts — full axe contras…
szTheory Jun 4, 2026
9bd4f6e
docs(128-03): commit 128-CONTRAST-REPORT.md as curated phase baseline…
szTheory Jun 4, 2026
2a94f69
docs(128-03): complete contrast gate harness plan — SUMMARY + state u…
szTheory Jun 4, 2026
c7f75dd
docs(128): add code review report
szTheory Jun 4, 2026
9aebedb
fix(128): CR-01 WR-01 WR-02 WR-03 contrast-checker guard + ratio corr…
szTheory Jun 4, 2026
66c08c7
fix(128): CR-02 WR-04 CR-03 scenario-scoped reports + non-fatal AAA pass
szTheory Jun 4, 2026
7bed911
fix(128): WR-04 producer-namespace the token checker report filename
szTheory Jun 4, 2026
d17b9eb
fix(128): CR-01 WR-02 document bidirectional D-15 lockstep guard
szTheory Jun 4, 2026
f1efd9e
docs(phase-128): complete phase execution
szTheory Jun 4, 2026
2245335
docs(dx-1): charter + dx-1.1 spec for queued Docker DX milestone
szTheory Jun 4, 2026
9489be3
docs(129): capture phase context
szTheory Jun 4, 2026
bea01ad
docs(state): record phase 129 context session
szTheory Jun 4, 2026
5db118e
docs(129): create phase plan — dark brand expression audit
szTheory Jun 4, 2026
209e13b
docs(129): create phase plan
szTheory Jun 4, 2026
6a488d9
feat(129-01): write 129-DARK-AUDIT-BACKLOG.md — ranked dark-expressio…
szTheory Jun 4, 2026
452bbe9
docs(129-01): complete dark-theme brand-expression audit plan
szTheory Jun 4, 2026
95e1dec
docs(phase-129): complete phase execution
szTheory Jun 4, 2026
2eacb3d
docs(130): capture phase context
szTheory Jun 4, 2026
6e5caa0
docs(state): record phase 130 context session
szTheory Jun 4, 2026
f612474
docs(130): research phase domain — live file audit + drift corrections
szTheory Jun 4, 2026
5ca7160
docs(130): add research + validation strategy
szTheory Jun 4, 2026
37b1ea9
docs(130): map patterns to existing analogs
szTheory Jun 4, 2026
80e1cde
docs(130): create phase plan — 4-wave dark surface ramp + depth tokens
szTheory Jun 4, 2026
73f1a14
docs(130): revise plans — add .ops-kbd swap, resolve research questions
szTheory Jun 4, 2026
db0ef8d
docs(130): create phase plan
szTheory Jun 4, 2026
d89e990
feat(130-01): add pixelmatch+pngjs devDeps and light-pixel-diff.mjs W…
szTheory Jun 4, 2026
5c13930
feat(130-01): add verify.opsui alias to scrypath_ops/mix.exs (D-13)
szTheory Jun 4, 2026
4c4369f
docs(130-01): complete light-pixel-diff + verify.opsui plan
szTheory Jun 4, 2026
ffc6a88
feat(130-02): declare elevation tokens in both @plugin blocks
szTheory Jun 4, 2026
225ab59
docs(130-02): complete elevation token declaration plan
szTheory Jun 4, 2026
d4b7faf
feat(130-03): GROUP A token-swaps + GROUP B helper+overrides in app.css
szTheory Jun 4, 2026
0958736
feat(130-03): D-10 shadow dual-path override + ops_code_block DK-09 r…
szTheory Jun 4, 2026
173d74e
docs(130-03): complete recipe routing layer plan — GROUP A/B/C/D changes
szTheory Jun 4, 2026
4ffd8a9
fix(130-04): add verify.opsui to preferred_envs so mix verify.opsui r…
szTheory Jun 4, 2026
164c591
fix(130-04): remove scrypath-demo body class on admin paths to fix da…
szTheory Jun 4, 2026
e1a46cf
fix(130-04): correct path in light-pixel-diff.mjs (one level up, not …
szTheory Jun 4, 2026
3f612bc
docs(130-04): partial summary — D-11 proof bundle steps 1-4 results a…
szTheory Jun 4, 2026
a214290
docs(130-04): add elevation-surface subsection to DESIGN-TOKENS.md
szTheory Jun 4, 2026
e4234fa
docs(130-04): complete plan — finalize SUMMARY, VALIDATION, STATE, RO…
szTheory Jun 4, 2026
a4e9dd9
docs(130): verification PASS — DARKTOKEN-01 met, Cluster 3 deferred t…
szTheory Jun 4, 2026
bc7a1a1
docs(131): UI design contract — glow, dark shadow, and copper accent …
szTheory Jun 4, 2026
6113f2e
docs(131): capture phase context
szTheory Jun 4, 2026
aeda5f8
docs(state): record phase 131 context session
szTheory Jun 4, 2026
64bf11e
docs(131): research + validation strategy
szTheory Jun 4, 2026
89e3411
docs(131): pattern map for plan grounding
szTheory Jun 4, 2026
78bd0b1
docs(131): create phase plan (4 plans, 3 waves)
szTheory Jun 4, 2026
71a6a27
feat(131-01): declare three dark shadow tokens + two @theme light def…
szTheory Jun 4, 2026
32ced41
feat(131-01): declare .ops-glow and copper vocabulary classes in @lay…
szTheory Jun 4, 2026
ec9b99e
docs(131-01): complete token + class contracts plan
szTheory Jun 4, 2026
dedef65
feat(131-02): apply panel-dark seated depth to four target panels (Pr…
szTheory Jun 4, 2026
27dcdde
feat(131-02): compose violet glow onto route-mark, active nav, and re…
szTheory Jun 4, 2026
c8427b3
feat(131-02): tune shell radial wash on mobile (DK-10) — 14%→10% alph…
szTheory Jun 4, 2026
0fb72bb
docs(131-02): complete dark application rules plan — panel-dark + glo…
szTheory Jun 4, 2026
b9e2e09
feat(131-03): re-style shared eyebrow slot to .ops-copper-eyebrow
szTheory Jun 4, 2026
99a4efd
docs(131-03): add glow/depth and copper vocabulary sections to DESIGN…
szTheory Jun 4, 2026
e604249
docs(131-03): complete plan 03 — eyebrow in-situ proof + DESIGN-TOKEN…
szTheory Jun 4, 2026
10025f3
docs(131-04): record D-11 bundle results + copper AA re-confirmation …
szTheory Jun 4, 2026
1e14367
docs(131-04): record human-verify APPROVED for Task 3 checkpoint
szTheory Jun 4, 2026
fe19dac
docs(131-04): complete plan — D-11 bundle green, copper AA all PASS, …
szTheory Jun 4, 2026
5a8720f
docs(131-04): update STATE.md + ROADMAP.md — Phase 131 plan 04 complete
szTheory Jun 4, 2026
d005091
docs(131): mark phase complete — restore milestone fields, update ROA…
szTheory Jun 4, 2026
1aee8aa
docs(131): add phase verification report — 3/3 must-haves verified, h…
szTheory Jun 4, 2026
8a3fc4c
docs(132): capture phase context
szTheory Jun 4, 2026
b4023f2
docs(state): record phase 132 context session
szTheory Jun 4, 2026
ee45925
docs(132): UI design contract
szTheory Jun 4, 2026
beb75a8
docs(132): approve UI design contract
szTheory Jun 4, 2026
a870fb0
docs(132): record UI-SPEC approval state
szTheory Jun 4, 2026
637ecd3
docs(132): research a11y contrast remediation
szTheory Jun 4, 2026
1147151
docs(132): add validation strategy
szTheory Jun 4, 2026
7686553
docs(132): map implementation patterns
szTheory Jun 4, 2026
afd76b0
docs(132): create phase plan
szTheory Jun 4, 2026
3ffe3a7
docs(132): resolve contrast research question
szTheory Jun 4, 2026
c4e6ff8
docs(132): mark phase planned
szTheory Jun 4, 2026
2764dd9
test(132-01): add failing contrast token guard tests
szTheory Jun 4, 2026
aa3bfed
feat(132-01): extend contrast checker for named AA tokens
szTheory Jun 4, 2026
4d6fcb3
feat(132-01): route contrast fixes through scoped tokens
szTheory Jun 4, 2026
8c5623e
docs(132-01): document phase contrast token floors
szTheory Jun 4, 2026
1f1838b
docs(132-01): complete a11y contrast token remediation plan
szTheory Jun 4, 2026
644f840
docs(132-02): record rebuilt static contrast proof
szTheory Jun 4, 2026
8c91c7b
docs(132-02): attach browser contrast proof
szTheory Jun 4, 2026
2388a85
docs(132-02): complete contrast proof plan
szTheory Jun 4, 2026
902747d
fix(132): close named muted contrast guard gap
szTheory Jun 4, 2026
657ef72
docs(132): record clean code review
szTheory Jun 4, 2026
e467ce6
docs(phase-132): complete phase execution
szTheory Jun 4, 2026
66c719b
docs(phase-132): evolve project context
szTheory Jun 4, 2026
5451adb
docs(133): capture phase context
szTheory Jun 4, 2026
9e6b4d7
docs(state): record phase 133 context session
szTheory Jun 4, 2026
a267442
docs(state): point resume at phase 133 context
szTheory Jun 4, 2026
fcb8fc7
feat(brand): v1.35 brand system & scry/path logo + adoption
szTheory Jun 24, 2026
1d18859
docs(state): reconcile pointers — v1.35 complete, resume v1.34 at Pha…
szTheory Jun 24, 2026
481f374
docs(133): research dark/path motion expression phase
szTheory Jun 24, 2026
3049572
docs(133): add validation strategy
szTheory Jun 24, 2026
cae5b47
docs(133): create phase plan
szTheory Jun 24, 2026
354b91f
docs(133): create phase plan (3 plans, 2 waves) + patterns
szTheory Jun 24, 2026
8e52595
feat(133-01): add .ops-path-* motion vocabulary to app.css
szTheory Jun 25, 2026
57efe4b
feat(133-01): add shimmer attr to ops_code_block and wire merge-trace…
szTheory Jun 25, 2026
ea766f3
docs(133-01): document .ops-path-* path-motion vocabulary in DESIGN-T…
szTheory Jun 25, 2026
c236c3c
docs(133-01): complete .ops-path-* motion vocabulary plan
szTheory Jun 25, 2026
2b4490c
test(133-02): add motion_contract_test static CSS assert
szTheory Jun 25, 2026
0bf9e28
docs(133-02): complete motion-discipline static CSS contract plan
szTheory Jun 25, 2026
2634ba1
test(133-03): add admin_path_motion.spec.ts — reduced-motion + patch-…
szTheory Jun 25, 2026
5eff9ee
docs(133-03): complete DARKMOTION-01 path-motion browser proof plan
szTheory Jun 25, 2026
d0e2c0a
docs(133): add code review report
szTheory Jun 25, 2026
01d74a6
fix(133): use 1.17-compatible MapSet.new + drop unused SeedScenario i…
szTheory Jun 25, 2026
eb610de
test(133): persist human verification items as UAT
szTheory Jun 25, 2026
0e14c22
docs(133): add phase verification report (human_needed)
szTheory Jun 25, 2026
38e5079
test(133): assert dark/light path-motion glow deterministically + add…
szTheory Jun 25, 2026
fc4984d
docs(133): close path-motion verification as automated (0 human UAT)
szTheory Jun 25, 2026
4a0b1f2
ci(133): build operator UI assets in phase105-e2e so /admin/search is…
szTheory Jun 25, 2026
817f5a3
style: mix format motion_contract_test + layouts brand_mark (clear re…
szTheory Jun 25, 2026
fc986c1
test(ops): assert v1.5 inline brand mark in ops shell contract (not o…
szTheory Jun 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -643,6 +643,19 @@ jobs:
mix esbuild scrypath_ecommerce
mix tailwind scrypath_ecommerce

# The operator UI mounted at /admin/search loads its OWN stylesheet
# (/admin/search/assets/css/app.css) built from scrypath_ops/assets/css/app.css and
# served from scrypath_ops/priv/static — which is gitignored and symlinked into the
# example's _build (path dep). Without this build, CI serves no .ops-* CSS: glow tokens,
# path-motion rules, and the recommended-card box-shadow are all absent, so any spec that
# asserts ops styling (admin_path_motion) fails and the other ops e2e tests run unstyled.
- name: Build operator UI assets (scrypath_ops CSS/JS at /admin/search)
working-directory: scrypath_ops
run: |
mix deps.get
mix assets.setup
mix assets.build

- name: Start example Phoenix server
working-directory: examples/scrypath_ecommerce
env:
Expand Down
29 changes: 25 additions & 4 deletions .planning/PROJECT.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,27 @@ Scrypath is an open-source Elixir library for declarative, Ecto-native search in

Make search indexing feel native to Ecto and ergonomic for Phoenix teams without hiding the operational realities of keeping search in sync.

## Current Milestone
## Current Milestone: v1.35 Brand System & Logo Identity

No active milestone. v1.33 Admin UI Insane Polish shipped and archived on 2026-06-03.
**Goal:** Turn the strategy-only `prompts/scrypath-brand-book.md` into a high-fidelity, repo-safe, **self-contained `brandbook/` package** with a **proper logo system the owner chooses from** at its center, then adopt the chosen identity across the live product. The existing logos are AI-generic and sit in the rectangular `<rect>` cage the owner dislikes — they are replaced, not reused.

**Target features:**
- A senior-lens **brand pressure-test + cited research + decision-log** (keep-vs-refine palette/type, logo architecture, token expression).
- A **logo system the owner picks from**: 3–5 distinct transparent/un-caged directions (refined routed monogram, a fully-integrated typemark, a waypoint mark), then the full optimized SVG family (primary no-tagline, inverse, typemark, mark, mono, stacked, optional tagline, favicon, social card) + usage rules.
- An interoperable **design-tokens package** (JSON/CSS/daisyUI theme) mirroring the live ops tokens, plus **self-contained subset woff2** fonts.
- A standalone, scoped, light/dark **HTML brand book** + copy-ready examples + accessibility checks.
- **Adoption** of the chosen logo/tokens across `scrypath_ops` (logo + favicon), `website/` (brand-mark + OG), and the root README — keeping the contrast gate green.

**Locked decisions:**
- New milestone **v1.35** at **phase 137**; **v1.34 (phases 133–136) paused** and resumes after.
- **Build + adopt** (not artifacts-only): the chosen logo/tokens are wired into ops UI, website, favicon, OG, README.
- Palette/type are **open to evidence-based refinement** but **bias-to-keep** — they're implemented live; any change keeps the `contrast-pairs.mjs` AA gate green.
- Fonts shipped as **subset woff2** (SIL OFL, license-clean) so the book is self-contained offline.
- Logo: **no rectangular cage**, unified mark+logotype, mark close to type, **no subtitle on the primary**, **≥1 integrated typemark**, **owner picks the direction**.

This is an explicit owner-initiated brand wedge. It is brand/UI work only — Phase 97–99 runtime scope guard still applies. Source plan: `~/.claude/plans/brand-book-pressure-test-scalable-alpaca.md`.

> **Paused:** v1.34 Both-Themes Perfection (phases 128–136) is paused at Phase 133 (5/9 complete). It resumes at `.planning/phases/133-dark-path-motion-expression-r-g/133-CONTEXT.md` after v1.35 ships; any v1.35 brand-token refinement feeds forward into v1.34's remaining dark-polish phases. Source plan: `~/.claude/plans/v1-33-admin-ui-deep-tower.md`.

## Current Mode: idle release train

Expand Down Expand Up @@ -52,6 +70,8 @@ Phase 97 through 99 banned capability classes:

## Current State

**v1.34 — Both-Themes Perfection (Dark Signature + AA Gate)** is active. Phase 132 completed on **2026-06-04**: A11Y-TOKEN-01 is validated with rebuilt assets, zero AA failures for light/dark/system-dark, AAA body/long-form advisory evidence, and light-baseline recapture recorded in `132-CONTRAST-REPORT.md`.

**v1.32 — Admin UI/UX Design System Cleanup** shipped + archived in-repo on **2026-06-01** across phases **116-118**.

**What shipped:**
Expand Down Expand Up @@ -185,12 +205,13 @@ Current planning files: **`.planning/{ROADMAP,STATE}.md`** plus archives under *

## Planning window

**Active milestone:** none. The release train is idle after v1.33 archive.
**Active milestone:** v1.35 Brand System & Logo Identity (phases 137–143). Milestone scaffolded; Phase 137 (BRAND-AUDIT-01) + Phase 138 (LOGO-DIRECTIONS-01) under way, blocked at the logo selection checkpoint. **Paused:** v1.34 Both-Themes Perfection (resume at Phase 133, DARKMOTION-01).

## Requirements

### Validated

- [x] **Phase 132** (2026-06-04): **A11Y-TOKEN-01** — both-theme AA hard gate green for muted text and selected violet fills; browser contrast proof covers light, dark, and system-dark; AAA body/long-form status remains advisory/report-only.
- [x] **v1.33** (2026-06-03): **HARNESS-01**, **SEED-01**, **AUDIT-01**, **TOKEN-01**, **COMP-01**, **MOTION-01**, **IA-01**, **COPY-01**, **RECOVER-01**, **EXPLORE-01**, **SHELL-01**, **VERIFY-01** — task-first admin-UI IA (Recover/Explore nav + front-door), design-system tightening, restrained micro-animation, per-screen polish, and shell coherence; screenshot-driven audit + 40-shot matrix; live admin smoke green in CI.
- [x] **v1.32** (2026-06-01): **ASSET-01**, **TOKEN-01**, **BRAND-01**, **COMP-01**, **A11Y-01**, **SCREEN-01**, **SCREEN-02**, **VERIFY-01** — mounted admin asset contract, Scrypath operator tokens, shared LiveView primitives, screen hierarchy cleanup, and focused verification.
- [x] **v1.31** (2026-06-01): **DEMO-01**–**DEMO-02**, **E2E-01**–**E2E-03**, **DX-01**, **DOC-01**, **OPS-01**, **CLOSE-01** — realistic seeded demo, deterministic advisory E2E proof, Docker/dev DX, documentation, ops UI clarity, and maintainer closeout.
Expand Down Expand Up @@ -291,4 +312,4 @@ This document evolves at milestone boundaries.
4. Update Context with current state

---
*Last updated: 2026-06-01 — v1.32 admin UI/UX design-system cleanup completed*
*Last updated: 2026-06-22 — v1.34 paused at Phase 133; v1.35 Brand System & Logo Identity opened (phases 137–143)*
106 changes: 106 additions & 0 deletions .planning/REQUIREMENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# Requirements: Scrypath v1.35 Brand System & Logo Identity

**Defined:** 2026-06-22
**Status:** Active
**Core Value:** Make search indexing feel native to Ecto and ergonomic for Phoenix teams without hiding the operational realities of keeping search in sync.

> **Paused milestone:** v1.34 Both-Themes Perfection (phases 128–136) is paused at Phase 133 with 5/9 phases complete. Its requirements are preserved verbatim in the **Appendix** at the bottom of this file for an exact resume after v1.35 ships.

## Milestone Intent

An owner-initiated brand/identity wedge: take `prompts/scrypath-brand-book.md` — a strategically thorough but
artifact-thin "deep-research" brand doc — and turn it into a **genuinely high-fidelity, implementation-ready,
repo-safe brand package**, with a **proper logo system the owner chooses from** at its center.

The two concrete gaps this milestone closes:
1. **The logos are AI-generic and caged.** Both `scrypath_ops/priv/static/images/logo.svg` and
`website/src/assets/brand-mark.svg` are a "path-S" mark inside a `<rect rx="12">` dark box — exactly the
rectangular-background cage the owner dislikes. There is no proper lockup, no integrated typemark, no usage
system, no favicon/social family. These are **replaced, not reused**.
2. **There is no real, self-contained brand book** — the existing `.md` is a strategy doc, not a usable
design-system package an engineer can build UI / landing pages / docs from.

The milestone pressure-tests the brand from a senior brand-designer + design-system + a11y + Elixir-OSS lens,
designs and lets the owner **choose** a logo direction, ships a self-contained `brandbook/` HTML package
(logos, tokens, subset-woff2 fonts, component examples, usage rules, a11y notes), then **adopts** the chosen
identity across the live product surfaces.

### Locked decisions
- **Sequencing:** new milestone **v1.35** beginning at **phase 137**; v1.34 (133–136) paused, resumes after.
- **Adoption:** build the `brandbook/` package **and** rewire the chosen logo/tokens into ops UI, website, favicon, OG image, README (not artifacts-only).
- **Palette/type:** open to **evidence-based refinement** (not locked), but **bias-to-keep** — the violet+copper palette + Space Grotesk / Inter / IBM Plex Mono stack is already implemented live in `scrypath_ops` (Tailwind v4 + daisyUI) and `website/`; any change must keep the `contrast-pairs.mjs` AA gate green and is justified in the decision-log.
- **Fonts:** check in **subset woff2** (the three families are SIL OFL → embed+subset is license-clean; include OFL files) so the HTML book is self-contained offline.
- **Logo non-negotiables:** transparent / **no rectangular `<rect>` cage**; unified mark+logotype sharing geometry/weight; mark sits close to the type; **primary lockup has no subtitle** (a tagline lockup is a separate optional file); **≥1 fully-integrated typemark** with the route/node motif worked into the letterforms; **show options, owner picks**.
- **Repo hygiene:** everything self-contained under `/brandbook/`; SVG/HTML/CSS/JSON/MD first; svgo every SVG; subset fonts; prefer the live HTML over raster screenshots; no build system added for the book; total new brand-asset weight kept small (target < ~400KB).
- **Scope guard holds:** Phase 97–99 runtime breadth ban is unaffected — this is brand/UI work, not library runtime scope.

## Requirements

### Pressure-test & research

- [ ] **BRAND-AUDIT-01**: The current brand book is audited against a full expert-lens decision-point sweep, producing `brandbook/notes/pressure-test.md` (scored dark-spots/footguns across brand strategy, distinctiveness, logo system, color, type, layout, components, voice, OSS DX, Phoenix readiness, repo hygiene), `brandbook/notes/research.md` (cited current references), and `brandbook/notes/decision-log.md` (decision-matrix with explicit ship/reject/defer + confidence for keep-vs-refine palette, keep-vs-refine type, logo architecture, token expression). Default recommendation: keep palette/type, spend creativity on the logo unless a concrete defect is found.

### Logo system

- [ ] **LOGO-DIRECTIONS-01**: 3–5 genuinely distinct, transparent, un-caged logo directions exist as real SVG (each as icon-only mark, primary horizontal lockup, and small 16/24px size), spanning at least a refined routed monogram, a fully-integrated typemark, and a waypoint/wayfinding mark; `brandbook/notes/logo-options.html` shows them on transparent + light + dark + in-context (favicon, navbar, README header) at real scale; the **owner selects** a primary direction (and optional alt) at an explicit checkpoint, recorded in `brandbook/notes/logo-options.md`.
- [ ] **LOGO-SYSTEM-01**: From the chosen direction, `brandbook/assets/` holds the full optimized transparent family — `logo-primary.svg` (no tagline), `-primary-inverse`, `-typemark`, `-mark`, `-mark-mono`, `-stacked`, `-with-tagline` (separate/optional), `favicon.svg`, `social-card.svg` (1200×630) — with clear-space, minimum-size, one-color, and misuse rules; every mark is legible at 16px and hero scale; no `<rect>` cage; transparency verified.

### Design system package

- [ ] **TOKENS-PKG-01**: `brandbook/tokens/{tokens.json, tokens.css, daisyui-theme.example.js}` express primitive + semantic tokens (light + dark, state colors, focus-ring) reconciled with `scrypath_ops/assets/css/DESIGN-TOKENS.md` and the `contrast-pairs.mjs` guard; subset woff2 for the three OFL families land in `brandbook/assets/fonts/` with `@font-face` + OFL license text; any phase-137 refinement is expressed once here as the single source.
- [ ] **BRANDBOOK-HTML-01**: `brandbook/index.html` is a standalone, responsive, scoped (no-leak) HTML brand book with a light/dark toggle that opens from `file://` and covers strategy/voice, logo system + do/don't, color palette with contrast notes, type scale, spacing/radius/shadow/motion tokens, component examples + states in both modes, microcopy good/bad + error pattern, imagery rules, implementation notes, and license credits; with `brandbook/examples/{components.html, landing-page-section.html, readme-header-example.md}`, `brandbook/README.md`, and `brandbook/notes/accessibility-checks.md`.

### Adoption & verification

- [ ] **BRAND-ADOPT-01**: The chosen identity + any token refinement is adopted across the live product — `scrypath_ops` logo + favicon, `website/src/assets/brand-mark.svg` + `og-image.svg`, and the root `README.md` header — with the `contrast-pairs.mjs` AA gate **green** in both themes, `scrypath_ops` assets + `website` rebuilding and rendering correctly in light and dark, and `mix verify.opsui` + design-token/contrast contracts passing.
- [ ] **BRAND-VERIFY-01**: The milestone is proven end-to-end — the brand book + examples open standalone (fonts offline, light/dark works), every `brandbook/assets/*.svg` is transparent/cage-free/svgo-clean and legible at 16px + hero scale, repo hygiene holds (no unrelated diffs, no binary bloat, weight within budget, fonts subset), and a final report ships with artifact manifest, top decisions, cited research, commands run, and a must/should/nice next-commit plan; human UAT passes.

## Out of Scope

| Feature | Reason |
|---------|--------|
| Renaming the project / changing the `scrypath` Hex package name | The library is published as `scrypath`; this milestone styles the existing name. Naming-collision nuance is handled by always pairing "Scrypath" with a descriptor, not by a rename. |
| New Scrypath runtime APIs or search capabilities | Phase 97–99 scope guard still applies; v1.35 is brand/UI work, not runtime breadth. |
| A user-customizable / per-org theme editor | Theming stays the two brand-defined themes + system. |
| Wholesale palette/type replacement "to look different" | Refinement is allowed only where the pressure-test finds a concrete defect; gratuitous change causes thrash in the already-built ops UI. Bias-to-keep. |
| Checking in heavy raster artifacts (large PNG screenshots, font superfamilies) | Repo-size hygiene: the live HTML renders palettes/components; fonts are subset; raster is last-resort only. |
| Adding a build system / bundler for the brand book | The book is plain standalone HTML/CSS/SVG; no toolchain dependency. |
| Promoting brand assets to a required CI merge gate | Out of scope; the brand book is a reference + adopted assets, not a new gate. |

## Traceability

| Requirement | Phase | Status |
|-------------|-------|--------|
| BRAND-AUDIT-01 | Phase 137 | In progress |
| LOGO-DIRECTIONS-01 | Phase 138 | In progress (awaiting owner pick) |
| LOGO-SYSTEM-01 | Phase 139 | Pending |
| TOKENS-PKG-01 | Phase 140 | Pending |
| BRANDBOOK-HTML-01 | Phase 141 | Pending |
| BRAND-ADOPT-01 | Phase 142 | Pending |
| BRAND-VERIFY-01 | Phase 143 | Pending |

---

## Appendix — PAUSED v1.34 Requirements (resume after v1.35)

> Preserved verbatim from the v1.34 milestone (defined 2026-06-04). v1.34 is paused at Phase 133; phases 128–132 are complete, 133–136 pending. Resume at `.planning/phases/133-dark-path-motion-expression-r-g/133-CONTEXT.md`.

**Milestone intent:** Make the `scrypath_ops` admin UI's existing dark/light/system theming genuinely perfect and brand-expressive in both modes (dark signature, light at parity), backed by a formal automated WCAG AA contrast gate (AAA for body text), with continued design-system/IA polish on v1.33's under-touched surfaces. Locked: comprehensive both-themes scope; system-follows-OS default; AA hard gate / AAA-body advisory; keep Tailwind v4 + daisyUI + `.ops-*`.

| Requirement | Phase | Status |
|-------------|-------|--------|
| CONTRAST-HARNESS-01 | Phase 128 | Complete |
| DARKAUDIT-01 | Phase 129 | Complete |
| DARKTOKEN-01 | Phase 130 | Complete |
| GLOW-01 | Phase 131 | Complete |
| COPPER-01 | Phase 131 | Complete |
| A11Y-TOKEN-01 | Phase 132 | Complete |
| DARKMOTION-01 | Phase 133 | Complete |
| SCREEN-DARK-01 | Phase 134 | Pending |
| SHELL-DARK-01 | Phase 135 | Pending |
| DUALVERIFY-01 | Phase 136 | Pending |

- **DARKMOTION-01** (Phase 133, complete): restrained path-expression motion (line draw/reveal, node pulse, active-path tracing on the route mark/diagrams, code-block shimmer on hover) via existing `--duration-ops-*`/`--ease-ops-*` tokens, transform/opacity only, reduced-motion-safe, tuned for dark without breaking light; honors v1.33's A3 no-re-fire precedent.
- **SCREEN-DARK-01** (Phase 134, pending): under-iterated surfaces (Search result rows, Sync/Drift drift-chips/preflight depth, Playbooks empty/populated) reach dark-signature + light-parity quality across all seed states.
- **SHELL-DARK-01** (Phase 135, pending): shell chrome (header/nav, command palette, theme toggle, flash, `.ops-shell` radial violet wash) brand-expressive and AA-clean in both themes; weak header-nav dark contrast fixed; palette/flash adopt the dark ambient-shadow-plus-border recipe.
- **DUALVERIFY-01** (Phase 136, pending): end-to-end proof — `mix verify.opsui` + ScrypathOps LiveView suite + mounted ecommerce admin Playwright smoke green; CONTRAST-HARNESS-01 AA in both themes with AAA-body report; 40-shot matrix re-captured with a v1.33→v1.34 before/after gallery; milestone audit + human UAT.
Loading