← Design · c121

PICKUP.md

c121 · PICKUP: Wave 3

Written 2026-10-23 at the hand-off from the Wave 1–2 session. Start here. Everything needed is on disk; the old session's screenshots aren't needed.

Where things stand

Waves 1 and 2 are built and committed, along with Mark's live review of the impact card, policy detail and Policy Config. Decisions D1–D26 are in CYCLE.md; defaults are in plan/README.md §2.

WhatWhere
Records, Wave 1f3053d52d (cycle opened), 4b472197d (00 model), 0f9d382c2 (01 ModeUntil + BlastRadius), later polish 73c5974a7, d41f597cd, 0e488727b, 8682f3c00, handoff note 85f1e71eb
Wave 2 (design)e6d3fd975 model · a251d279d 02 policy detail · 7b61e97de 03 Policy Config · b91054d43 04 findings · 807713cef 05 teams · a2c10b7ce 06 endpoints · 5f108309c change impact · e225273cb older phase-4 pages
Layere0390dc PolicyTag / PolicyRibbonMark / PolicyDirectionMark + FilterTriggerBar caret fix, released as v0.9.34 (1c28033, publish run green). Design's lockfile resolves 0.9.34.
Illustrator6213b531b export fixes; illustrator/c121-changes-draft-impact-v4.ai is the good one. v1–v3 are defective and untracked. Delete them, or leave them for Mark.

Not deployed. Nothing from c121 is on design-f39.pages.dev yet.

Wave 3, in order

  1. 07 adoption stage (plan/07-adoption-stage.md):
    • Add ?stage=adoption|established (default established) to the fixture seeds, Bar.vue and the composable's knobs.
    • Add a docs section "Exceptions across the adoption lifecycle" to /pages/phase4/governance-model, and fix that page's leftover story line that says "resolves as Enforced" (D16 made it "now enforced").
    • D25: this is lab only, with no qdash demo-world work.
    • Adoption seed: every enforceable policy is Observe org-wide, and the pilot (Engineering plus two users) gets Enforce exceptions. Its draft is "Enforce P-MCP for Finance pilot".
    • Sweep every lab page in both stages.
  2. 08 records (plan/08-records.md):
    • CYCLE.md: Key Changes per package (hashes above) and Outcome.
    • app/data/c114-review.ts: mark superseded rulings supersededBy (W.1 → D3, W.6 → D1/D7, L8 named drafts and L8b approval → D4/D5). Don't delete them.
    • feedback-intents.md for Mark Peterson: the list in plan/README.md §6, plus D16 (outcome at detection, "now enforced") and D17 (one exception per context).
  3. Captures: run the /capture shot program c121-lab over the lab URLs below, in both stages.
  4. Deploy:
    • Run zsh -ic 'npm run deploy' from design. It builds the working tree as is, uncommitted work included, so check the list it prints.
    • Verify on design-f39.pages.dev. Access blocks curl on the internal host.
    • The deploy uses the published layer, which now has the PolicyTag pieces (0.9.34).
  5. Close: update CYCLES.md and HISTORY.md, and run /document-cycle.

Lab URLs (localhost:3000/pages/phase4/mock/…)

policies · policy-detail?policyId=P-MCP (and P-NO-ROOT) · findings · finding-detail?findingId=F-S04 · organization/teams (+ ?v.posture=matrix|cards) · organization/teams/detail?team=Engineering · organization/endpoints (+ detail?endpoint=win-fin-02) · policy-config/proposed-changes · policy-config/history · policy-config/config-file · parts

Gotchas learned this cycle

  • colspan="100%" + table-fixed. UxTableListExpandRow's detail cell uses colspan="100%", which Chrome reads as 100 columns, so a fixed-layout table collapses its real columns. Use automatic layout and give the flexible column w-full max-w-0.
  • The design site's theme toggle (ThemeEditor, fixed bottom-6 right-6) owns the bottom-right corner. The lab tray sits at right-20.
  • PolicyTag's ribbon is z-0 (under sticky table headers at z-1/z-2) with an explicit width. An SVG <img> counts as 0 wide at min-content. Use iconScale and flush per spot.
  • Hidden measuring copies: AvatarRow measures with a hidden copy, so its box must stay overflow-hidden or the page scrolls sideways.
  • Hash redirects (/changes#v13 → History) must run client-side. The hash never reaches the server.
  • Other sessions' work is in this tree (cost-center, c105, c115, c117 brand and photos, component docs registry, launch.json) and in the layer (JumpPills, PageTitle, useStickyBand). Commit with explicit paths, and check git diff --cached for their staged deletion before every commit.
  • Consumer lockfiles: only design's was refreshed to 0.9.34. bob-wire, www, qflow and qdash still pin 0.9.33. Run ../q-nuxt-layer/scripts/update-consumers.sh when they need it. app.qpoint.io is stale; skip it.

Open follow-ups (not Wave 3)

  • PolicyTag needs a removable variant (a ✕ slot) for the Findings policy filter chip, and a design-site docs entry or demo (/document-components).
  • Endpoint activation history is derived, not stored. It's fine for the lab, but the intent wants it preserved.
  • Pre-existing horizontal overflow at 1280px on /policies and /organization/teams (bar).
  • Old version anchors log a harmless Vue Router "couldn't find #v13" warning: the router scrolls before the section renders.

Qpoint Brand Style Guide