Cycles by week
Week of Aug 10

16 started, 32 closed, 30 carried live.

Busiest record: c67 Teams (20 entries) · 14 carried cycles have gone quiet · layer v0.9.7 → v0.9.10

Started
16
Still open
44
Closed
32
Record entries
101
Commits
95
Captures
398
Releases · deploys
4
/cycles
c71Cycle Atlas1 captures · 10 log entries — the week's busiest recordSee all 1 shots ↓

Commits

95 commits across 10 repos, on each repo's checked-out branch.

Cycles

Started 16

c71Cycle Atlas

Cycle detail pages across all projects — a /cycles listing + full-documentation detail pages joining every repo's cycle records with a backfilled cross-project screengrab archive

started Aug 1510 in the log
c70Thesis Kindle

Convert "Looking In" thesis to Kindle-compatible formats (EPUB + print-replica PDF) while preserving images and foundational status

started Aug 15
c69Operating System

Methods & tooling retro — evaluate how we work against the design methodology, restore order, modernize the skill/agent tooling, and make the philosophy load-bearing

started Aug 156 in the log
c68index-overview

Design the qdash landing page — what the user is greeted with on login, resolving the Fleet Overview / Agent Inventory overlap.

started Aug 149 in the log
c67Teams

Refine the qdash /teams design — composition from c61 concepts, mapping workspace as the pre-SCIM write path, slim spend overview, credentials relocated

started Aug 1420 in the log
c66cost-center

Add unit-of-measurement toggle to qdash /cost page — switch display between currency ($) and tokens

started Aug 146 in the log
c65control-center-v2

Shift the control center from infinitely-configurable controls to a compliance-driven system of pre-defined Policies — research the framework↔policy connection, then mock the policy catalog and per-policy config pages

started Aug 1216 in the log
c64control-center-consolidation

Consolidate the overlapping Control Center / Policy & Enforcement / Compliance work — current-state evaluation, ranked consolidation plan, initial-ideas mock

started Aug 109 in the log

Still open 30

c19AI Asset InventoryBob-Wire

Precedent research for an AI asset inventory page — how existing products present inventories of agents, MCP servers, files, models, and related AI assets

started Jul 313 wks · moved this week
c12qcontrol-live-viewQflow

Live qflow visualization of qcontrol agent events — agents pulsing to event-type nodes, fed by qdash SSE, with a growing timeline scrubber

started Jul 293 wks · moved this week
c18Post-Mortem MapBob-Wire

Post-mortem incident map — visualizing an incident that already occurred: the actors involved (user, agent, MCP servers, files, repos) and their state, on an incident page alongside traditional detail sections

started Jul 244 wks · moved this week
c27mcp-server-fleetQmap

Deterministic synthetic MCP server fleet views for screenshot capture

started May 415 wks · moved this week
c26flatland-viewQmap

Add a flatland view (topdown camera + pitched 3D models) for VOX/OBJ-backed actors

started Apr 2816 wks · moved this week
c25ai-ecosystem-inventory-mapQmap

Build a qmap inventory/index view of the company-wide AI ecosystem using deterministic synthetic data first

started Apr 2117 wks · moved this week
c23custom-obj-modelsQmap

Validate import, normalization, and rendering of custom .obj actor models in qmap

started Apr 1718 wks · moved this week
c22runtime-session-mapQmap

Visualize a single qcontrol runtime session as a qmap entity-type topology

started Apr 1518 wks · moved this week
c21ai-session-mapQmap

Visualize a single AI agent session as a qmap entity-type topology

started Apr 320 wks · moved this week
c1Situation RoomBob-Wire

Situation Room wireframe — problem-space command center for data governance

started Mar 324 wks · moved this week
c59inventory

Design qdash inventory page to surface agent status and footprint at a glance

started Aug 23 wks · quiet 1
c51App Consolidation

Understand the fractured qcontrol app ecosystem and consolidate it into a simple, clean, demoable product on a Nuxt + q-nuxt-layer front-end

started Jul 145 wks · quiet 1
c49Fix the Cloudflare Pages Deploy

Make push to main reliably deploy the design site to Cloudflare Pages *(2026-09-25: reframed as "make the build a manual local step", see PICKUP.md)*

started Jun 1110 wks · quiet 1
c55agent-market-definition

Align the qcontrol agent-monitoring dashboard to specific personas and find market alignment — hypothesis-first, validated against calls later.

started Jul 24parked
c7avoma-notesMarket Analyst

Explore and integrate Avoma notes data into extraction pipeline and dashboard visualizations.

started Feb 25parked
c4refinementMarket Analyst

Refine how extracted data is displayed in the dashboard and improve extraction quality where gaps exist.

started Feb 24parked
c3oauthMarket Analyst

Add Google OAuth to restrict dashboard access to @qpoint.io team members.

started Feb 20parked

Closed 32

c71Cycle Atlas

Cycle detail pages across all projects — a /cycles listing + full-documentation detail pages joining every repo's cycle records with a backfilled cross-project screengrab archive

closed Aug 16 · started Aug 1510 in the log
c60inventory-depth

_To be defined — see [initial-prompt.md](initial-prompt.md)._

closed Aug 15 · started Aug 5
c58agent-mini-card

AgentMiniCard — compact agent summary card composing the AgentPawn, with mock page

closed Aug 15 · started Jul 26
c57pixel-pawns

Build the agent pawn state system from the first real Illustrator pawn art

closed Aug 15 · started Jul 26
c54Policy Enforcement Page

Design-site mock of the v2 Policy & Enforcement page from Figma — tabbed policy-control table built on UxTableList

closed Aug 15 · started Jul 22
c53Agentic Workflows

Formalize and modernize the Claude workflow tooling across the Qpoint project family

closed Aug 15 · started Aug 6
c52Dark Mode (Subtle) — Iteration & Theming

Build a dark-mode color system for the qcontrol app consolidation (qdash, qglass, Nuxt UI), with a design-app-based color picker and theme-file persistence for rapid iteration.

closed Aug 15 · started Jul 16
c48Design Site on Layer

Close the layer gaps so the design site uses only q-nuxt-layer components for everything presentational

closed Aug 15 · started Jun 11
c43AI Ecosystem Inventory Map

Define the qmap implementation path for an inventory/index view of the company-wide AI ecosystem

closed Aug 15 · started Apr 20
c39Timeline Visualization

Horizontal timeline system for artifacts, history, and curated milestones across the design site

closed Aug 15 · started Apr 16
c38qcontrol Visibility Storytelling

Design briefs for the trust, provenance, storytelling, and layered-visibility framing around qcontrol-driven visualizations

closed Aug 15 · started Apr 16
c27Publishing

Publish four internal projects to Cloudflare Pages

closed Aug 15 · started Mar 16
c19Data FlowQmap

QMapDataflow wrapper with config-driven props and tag-based context grouping

closed ≈ Aug 15 · started Mar 30
c17Dataflow DetailQmap

Single dataflow detail view with per-actor context toggling

closed ≈ Aug 15 · started Mar 23
c11AI EcosystemQflow

PixiJS experiments expressing the AI agent monitoring dataset for security teams

closed ≈ Aug 15 · started Apr 3

Pages & components

What this week's captures picture — 2 pages, 8 components, 3 patterns · 13 first captured this week. Each links to its evolution: every moment it was shot, across cycles.

Log

Key Changes entries dated inside the week, from each cycle's record — newest first within a cycle.

c71 Cycle Atlas

Aug 16
  • 2026-08-16 — Close-out: history chips link per-cycle in compound labels; c71 history entry + atlas-listing hero (16 slices); reusable machinery distilled into /capture and /document-cycle skills; embed-visual-records.py promoted from scratchpad to scripts/.
Aug 15
Aug 15
  • 2026-08-15 — Capture script: --slices (sharp 900px bands from full-page renders) + --project per-repo output with merged manifests.
Aug 15
  • 2026-08-15 — Parser + API: server/data/cycles/ tolerant multi-project reader (alias table, header variants, Current Outcome = in-progress, recordless dirs, git-date fallback, honest-skip); /api/cycles + /api/cycles/[project]/[id]. 151 cycles across 8 projects on first run.
Aug 15
  • 2026-08-15 — Pages: /cycles project-grouped listing + /cycles/[project]/[id] full-documentation detail (MDCRenderer narrative, gallery + lightbox, artifacts, live-route links). AppNav Cycles link; history cycle chips link into the atlas per project; hub links to the atlas.
Aug 15
  • 2026-08-15 — Design early backfill: 23 routes (c1–c57 era) with slices → public/cycles/design/; 10 honesty-noted archive entries for the strong matches.
Aug 15
  • 2026-08-15 — Sister backfills: qmap 13 experiment captures + 24 legacy c<N>.outcomes images adopted; qflow 12 experiments (c12 live against qcontrol :7878); bob-wire 31 representative shots (17 cycle indexes + 14 flagship pages, c20 portal 6-slice); qpixel 7 test snapshots as c4 evidence; market-analyst 2 inspected aggregate views (/segments rejected — customer names). All dev servers sequential, explicit ports, killed after. Imagery: 92/151 cycles, ~39 MB.
Aug 15
  • 2026-08-15 — In-repo visual records. Each sister repo now owns its cycle imagery: qmap's docs/images/cycle-history/ convention extended to all five sisters (heroes + full renders, slices stay design-site-only), 50 CYCLE.md files gained a ## Visual record section with repo-relative embeds (GitHub-renderable), provenance READMEs added, one commit per repo. The atlas parser skips that section by title (it renders its own gallery; relative paths wouldn't resolve).
Aug 15
  • 2026-08-15 — State-atlas thread (state-atlas-prompt.md / -plan.md / -research.md). Capture script gained a declarative program runner (--program, actions: click/clickSel/clickText/select+optionScan/set/wheel/drag/clickXY/wait/css/reload; auto-hidden chrome, JS-dispatched interactions work on hidden controls). Two shot programs authored from full control inventories: qflow 100 shots (every cycle ≥8 — layout matrices, shape-language survey, presets, cranked-feed time-lapses; c11's blank default fixed: all 7 tabs captured, playback lit at turn 31, the unattributed-API-key risk view) and qmap 110 shots (scenario frames, context toggles, vox asset gallery, c24's deterministic seek ladder at phase boundaries, c28 in Fixture mode; honest ceilings: c16=2, c27=6). Manifests carry per-shot captions + per-cycle newThing → atlas galleries render figcaptions and a "New in this cycle" line, ordered by program sequence. Full sets propagated to qflow/qmap repos with Visual record sections rewritten as hero + collapsible states. ~210 new images, ~70 MB design-side.
Aug 15
  • 2026-08-15 — Record backfills + qmap early-cycle atlas. Honest CYCLE.md reconstructions written and committed upstream for the five experiment-only cycles: qflow c11 (whose experiment dir turned out to be untracked since April — now finally committed) and qmap c17–c20 (mined from the contemporaneous dev/experiments/CYCLES.md record; c17 dir renamed, c19/c20 dirs created; recorded March dates preferred over the April batch-commit date). Atlas pages flipped from recordless to full records automatically. Then qmap-early.json: 104 shots covering c1–c13 (every cycle ≥8 except c4's honest 4), including all 13 c1 boundary-drawing strategies — after fixing a Family-A grid-hide bug (zeroing tracks while keeping named areas so remounted scenes read a real viewport) and giving c1 per-strategy reloads. qmap manifest now spans c1–c28, 228 entries.

c72 Integrations Create & Manage

Aug 15
  • 2026-08-15 — Cycle created; initial-prompt captured, CYCLE.md written.
Aug 15
  • 2026-08-15 — Requirements research + recipe catalog: all 11 connectors' real setup requirements researched and encoded as typed setup recipes (ui/app/lib/integration-setup.ts) — fields (text/url/secret/secret-multiline/select, conditional via showIf) + tutorial steps (vendor console click-paths, copyable SQL/openssl/IAM-policy snippets, caution notes) + "once connected" expectations. Summary in research-connectors.md.
Aug 15
  • 2026-08-15 — Guided setup modal: IntegrationSetupModal.vue — step rail with completion state, per-step instruction content, inline field collection, injected severity-routing step for channel-backed connectors (live local counts, defaults from the Alerts fallback map), generated Review & connect step (masked secrets, expectations, honesty note) gated on required fields. Saves via new /api/integrations + existing /api/channels in one action.
Aug 15
  • 2026-08-15 — Reuse on detail pages: IntegrationSetupFields.vue shared renderer; [id].vue replaces the disabled stub with the live form (Save / Disconnect / Reopen setup guide), unsaved-edit protection against the 3s poll re-seed. Channel-backed connectors keep the routing panel and gain the config form.
Aug 15
  • 2026-08-15 — Persistence: integration_configs SQLite register mirroring channels; GET/POST/DELETE /api/integrations (web.rs/db.rs). Configured connectors flip to active stat cards on the overview (✓ configured for non-channel connectors).
Aug 15
  • 2026-08-15 — Verified: cargo check clean; API round-trip on a scratch db; Playwright walk-throughs of Splunk (4 steps), Slack (routing), Okta→Entra conditional branch, and Jira detail reuse — screenshots in shots/.
Aug 15
  • 2026-08-15 — Thread: message-preview (message-preview-prompt.md / message-preview-plan.md) — "shape the message" previews for the three notification connectors, each speaking its integration's native language: a Slack window (channel header, APP-badged bot, Block Kit severity bars; knobs for channel, bot name, pixel-pawn vs initials avatar, message detail, and throttling where "per day" visibly collapses the sample stream into one rollup), a PagerDuty incident card (urgency mapping, dedup key that rewrites live, auto-resolve toggle whose off-state shows the incident staying open), and an email digest in a mail frame (From/subject-prefix/delivery-time, live re-grouping by severity/framework/agent, headlines vs full detail). Canned sample narrative shared via message-samples.ts (high credential-leak / medium egress / resolution + digest counts). Architecture: knobs are preview: true SetupFields (seed/persist/review/dirty-tracking ride the c72 machinery free), SetupStep.component + integration-preview.ts registry render the previews in the modal's shape step and as a "Message shape" panel on detail pages. Verified with Playwright knob-permutation shots in shots/.

c69 Operating System

Aug 15
Aug 15
  • 2026-08-15 — Order restored. Backlog committed in five coherent commits (c62 visibility stream, c67 teams, c68 index, c66 cost, registry catch-up). Archive sweep: 22 cycles closed into HISTORY.md with Outcomes written where missing (c17, c33, c37, c40, c48, c54, c60) and c63's CYCLE.md backfilled; HISTORY.md duplicate c25/c12 entries removed; CYCLES.md drained 31 → 16 entries with status parentheticals. Six cycles flagged for Mark's call: c41, c42, c44, c51, c55, c59. c49 kept (blocked on Cloudflare secrets).
Aug 15
  • 2026-08-15 — Conventions codified. cycle-manager gained Park/Resume ops with the PICKUP.md spec (generalized from c62), the real CYCLES.md entry format, and an optional Mode: template line; canonical synced to all 6 sister projects (extensions preserved) and committed in each repo.
Aug 15
  • 2026-08-15 — Tooling modernized. All 9 commands converted to skills/<name>/SKILL.md with frontmatter (market-analyst pattern), commands/ removed. figma collision resolved: command → figma-to-component (layer components), skill stays figma-to-vue (page mocks). release-layer rewritten to verified reality (GitHub Packages, tag-driven publish.yml, update-consumers.sh — tarball flow fully retired); document-pattern/scan-patterns updated to the pattern-registry structure; archive's MCP rebuild step verified REAL (mcp/src/resources.ts imports archive-meta) and kept with justification. New skills: /pickup, /retro.
Aug 15
  • 2026-08-15 — Literacy layer. CLAUDE.md gained a Design Methodology section (wicked problems, assemblage, modularity, edge of chaos + stage rule, 7 modes, 5-question framework, replicate-first, demo-is-the-test) and the missing Tour Guide Sync section; building skills carry a one-line methodology pointer.
Aug 15
  • 2026-08-15 — Content-shots thread (content-shots-prompt.md / -plan.md). Capture script gained content mode (default): hides nav/footer + the page's title/preamble block via a structural rule ("Source:" paragraph anchors the preamble; fallback: first child + trailing <p>s), so heroes open on the visual work; --chrome keeps site chrome; --with-full saves a -full.png when content runs past the 1100px fold. Sweep + curated set recaptured in place (same filenames — no history-page edits); 17 full-page variants; archive entries gained two-image galleries (hero + full; detail view shows gallery instead of image, thumbnails keep the hero). Manifest now carries contentHeight/hasFull for the cycle viewer. Total 2026-q3 imagery: 18 MB. (history-refresh-prompt.md / -plan.md). Built scripts/capture.mts (npm run shots — Playwright against the running dev server, page-registry as manifest, ThemeEditor/devtools hidden): 90/90-route sweep + manifest.json into public/archive/2026-q3/sweep/ (11 MB), 20 curated cycle-named shots. Archive revived with 20 content/archive/2026-q3/ screengrab entries (cycle tags, feeds /timeline). All six /history pages backfilled — design +18 entries (c39→c69, 44 total), qmap +4, qflow +3, bob-wire +4, market-analyst +3, qpixel +1 (sister pages via parallel subagents from their own cycle records) — and hub cards corrected. Cycle-viewer architecture prepped: header parsing contract, cycle-prefixed filenames, manifest, archive cycle tags. Deferred: cycle? field on page-registry (file carries another session's uncommitted work); the reserved 'history' timeline source kind (c39 backlog).

c67 Teams

Aug 15
  • teams-strip-ideas (2026-08-15): /pages/teams-strip-ideas — the Teams strip gains a metric lens. Full catalog brainstormed (spend/adoption/risk/identity families × ranked jobs; per-team trends impossible — daily series is fleet-wide). Five lenses picked for a UxTabGroup switcher (c66 idiom, mode semantics — FilterGroup and dropdown rejected on the page): Spend (default, reconciles with Cost Center), $/person (honest cross-team comparison), Active now (only near-real-time signal), Risk (triage heatmap), Agents/person (adoption depth). Excluded with reasons: Tokens (Cost Center owns the unit toggle), Sessions, People (permanent sub-line anchor), riskScore (sort-only). Four bar semantics, one chip geometry: share-of-total (grey, sums to 100%), per-person scaled-to-max (% dropped from sub-line), fraction-of-self meter (success hue announces the switch), counts-with-severity (no bar — severity never encodes length; "1 Crit · 2 Elev" in words, "clear" quietly). Sort follows the lens desc, Unassigned pins last (amber value in every mode; per-identity denominators; "3 of 61 running" as mapping prompt). Two live strips — Meridian + scale, where the top-5 cap re-ranks per lens (Research/$-per-person, Support-Ops/Active, Core-Banking/Risk surface; none are top spenders). Ship notes: ?teamsBy= URL sync, tooltip = full stat sheet, per-chip estimated asterisk, teamRollups() as the fleet-rollups.ts sibling, by_team-vs-rollup unassigned seam handled by union.
Aug 15
  • teams-strip-axis (2026-08-15): /pages/teams-strip-axis — nine live treatments of the Teams strip on a simplicity ↔ expressiveness axis, lensed baseline at 0, shared lens switcher where treatments can listen. Simplicity: −1 quiet chips (name+value pills, stat sheet on hover — the responsive collapse), −2 ticker (one prose line — the export/digest form), −3 one bar (single stacked proportional object — share-only, the first casualty of abstraction is lens flexibility), −4 headline (one verdict fact per lens). Expressiveness: +1 stat chips (all five metrics per chip — kills cross-team scanning, the tooltip does this job better), +2 fingerprints (normalized column shapes — interesting failure, demands expertise), +3 people cards (one state-colored dot per person — composition instead of aggregate; felix IS the red dot), +4 matrix (scoreboard table, every column keeps its own bar semantic — DataTable, nearly free, but it's the Cost Center table upgrade, not a strip). Axis punchline: the lens switcher exists exactly at the midpoint — simpler loses lenses one by one, richer stops needing them. Verdict: baseline holds the working state; the headline (−4) becomes the all-clear Teams voice (and the c68 landing candidate); people cards (+3) are the challenger to test at checkpoint, with a density question above ~12 people/team.
Aug 15
  • teams-strip-portals (2026-08-15): /pages/teams-strip-portals + thread docs (strip-portals-prompt.md/-plan.md, plus same-day retro backfills strip-metrics-prompt.md, strip-axis-prompt.md). Thesis: a visual means the data it summarizes; a portal proves it — the honesty stance made interactive. Six-law portal grammar (a mark opens what it depicts · hover previews, click commits + writes URL · every aggregate carries its receipt, discrepancies printed not smoothed · negative space is data · descent stops at real data · Esc ascends one level). One composed interactive strip at 26-team scale: Auto lens (data picks each chip's metric; small-caps lens tags; named comparators, no z-scores — "2.7× fleet median", never σ; Risk precedence absolute; sticky selection; degenerates to baseline when nothing is notable; membership = the briefing + residual archive), focus gesture (chip → people card with all five stats + stateful dots + "+N idle" door, siblings → quiet chips, focus = roster filter; per-team lens tabs cut), receipts (addends re-add to the headline; the by_team-vs-rollup seam printed in amber — "$4.02k attributed · $80 unresolved"; estimated-formula popover; descent floor = sessions), return door (bidirectional chip-dot ↔ roster-row hover highlight — /document-pattern candidate), residual chip ("21 teams · nothing notable · $5.4k" — opens the tail, where the matrix belongs), whisper line (fixed-height hover preview — the demoted hover-panel). Lab rejects on-page: hover peephole, per-chip lens tabs, recursive in-chip decomposition, z-scores. Checkpoint strip question now three-way: lensed baseline vs people-cards vs composed portal.
Aug 15
  • teams-strip-overdrive (2026-08-15): /pages/teams-strip-overdrive + thread docs (strip-overdrive-{prompt,plan}.md). Deliberate overshoot study — "how can we err too far in visual communication?" Six graph-heavy treatments of the scale world in the c62 house grammar (dependency-free viewBox SVG, hash jitter, <title> on every mark, halo labels; palette = the c62-validated categorical order + attribution amber, re-run through the dataviz validator this session — ALL PASS), each with a filed crime report: helix wall (metaphor debt — c62's own verdict — + unreadable amplitude), colony (misjudged organic area, aesthetic scatter, decorative cilia), growth rings (fabricated age + radial distortion), loom (hairball — the beauty is the crossings, the crossings are the noise), barcode (the designed survivor: DNA as texture — 214 real fixture bars, length=spend/color=state, every bar a portal; tamed with min bar width), cockpit (the anti-page: 6 FABRICATED-stamped sparklines, rainbow gauge, dual-axis panel, 18 pulses, red-as-frame). Autopsy: six-error taxonomy (metaphor debt · unreadable channels · fabricated levels · aesthetic sorting · ink without a question · motion/status as decoration), each pinned to its guilty treatments. The line, located: expressiveness errs the moment a channel stops answering a question and starts decorating one. Survivor graduates: barcode row as the focus-card interior above ~12 people + a fleet-texture band candidate for the 214-person roster header.
Aug 15
  • teams-strip-swarm (2026-08-15): /pages/teams-strip-swarm + thread docs (strip-swarm-{prompt,plan}.md). Course correction from overdrive per Mark — no metaphors, the data-swarm-ideas grammar applied verbatim to the teams world: every mark maps to one datum, axes chosen so the swarm's shape is the answer, selective ring+halo annotations, legends above, <title> everywhere (973 dots / 971 tooltips). Four plots: attribution swarm (x=team, y=log spend/person, color=state — Unassigned becomes an amber cloud of 61 people-shaped reasons), spend × presence audit field (x=log spend, y=time-since-active with quadrant guides "burning & present"/"spent & gone" — the amber mass drifting stale IS the mapping queue sorted by urgency; j.okafor ringed), shift swarm (one dot = one session, x=hour, y=team, r=tokens, color=model — the ci-pool's overnight band drawn as "pipeline hours — the alibi": the mapping suggestion's evidence made visible; honest because sessions are the descent floor), leverage field (x=sessions, y=tokens/session, total-consumption isoquants — sprinters vs grinders, same bill, opposite styles; Core-Banking + tail folded to grey per the fixed-order rule). Coda: the swarm chip — the strip chip's bar slot replaced by a one-row micro-swarm of its people; at 61 identities the overlap converges to the barcode's texture — the two survivors are one idea at two densities. Checkpoint strip-interior candidates now: share bar / barcode / swarm row.
Aug 15
  • teams-strip-bites (2026-08-15): /pages/teams-strip-bites + thread docs (strip-bites-{prompt,plan}.md). The swarm chip generalized: the metric switcher is the cognitive axis and each lens gets the micro-visualization that best answers its question, decided by live bake-offs (2–3 candidate chip rows per lens, winner pilled, verdict grounded in the dataviz form heuristics). Winners: Spend = micro-swarm (donut is the skill's literal anti-example; bar repeats the sub-line; only the swarm adds shape + outliers), $/person = dot-on-fleet-range (the "progress slider" made honest — position-in-distribution with min/median/max ticks, "2.4× median" drawn), Active = unit dots ≤12 with meter fallback (people are countable; continuous fill fakes continuity at n=9; same density threshold as the focus card — one rule system-wide), Risk = severity glyphs (findings are units not magnitudes; three squares answer one-person-or-systemic; heat cell re-introduces magnitude-by-color for a count), Agents = micro-histogram (the ratio hides its own question — same 2.3 mean, opposite cultures). Composed strip: UxTabGroup lens switcher, winning form follows the lens, every mark keeps <title>; portals' Auto composes on top. Principles table (lens → question → form → what it reveals that the bar hid) + the law: a micro-viz earns the slot only if it answers the lens's question better than the number beside it. The pie's obituary published.
Aug 15
  • teams-strip-levers (2026-08-15): /pages/teams-strip-levers + thread docs (strip-levers-{prompt,plan}.md). The cognitive pass — states → levers. Lens test: (a) unambiguous good direction, (b) attribution to a real action, (c) sub-quarter feedback loop. Audit of the current five: Spend keeps (the one honest state — accountability ledger); $/person → tooltip; Active-now → Auto lens + focus card (weather, but the only real-time signal); Agents/person → focus card (diagnostic, no good direction); Risk upgraded to Open, aged (danger_level is already conditions-based and findings subsume those conditions with workflow + timestamps — age of oldest adds the missing lever: an SLA). Revised set, one per cognitive job: Spend (micro-swarm) · Waste — idle->14d spend, hollow unit dots, ✓ today · Retention — 7d cohort return, filled/hollow dots with meter fallback, ◐ via /api/agents first_seen/last_active (NOT sessions — 200-row cap), explicitly not a dumbbell (one ratio isn't a trend) · Coverage — instrumented % of known machines, gap-emphasized meter, denominator honestly "machines we can see" (no MDM join) · Open, aged — glyphs + oldest-age words, terminal statuses per the backend's own projection. Mapping coverage (the page's most movable lever) headlines the verdict line, not a lens. Candidate ledger with receipts: cache leverage + premium share → Cost Center (harness/workload confounds; cost composition); Exposure-as-composed killed (2/3 of its data doesn't exist; consumer keys are /identity's per decision 3); egress surface → controls (per-agent counts double-count shared hosts; admin lever); guardrail posture → focus card (real lever via tool_calls decision_source). Thresholds anchored to data-max and printed in the whisper line. Follow-up (same day, per Mark): Tokens added as a sixth lens — Spend's native-unit twin (c66 principle: token counts are measured, dollars are estimated; same by_team rows, micro-swarm on a token scale; unit-toggle depth stays on Cost Center). Principle amended: one accountability job, two units.
Aug 15
  • teams-strip-horizons (2026-08-15): /pages/teams-strip-horizons + thread docs (strip-horizons-{prompt,plan}.md). The expansion round — additional data, additional windows, less-defensible territory explored with every danger named. Five schema discoveries (amend the levers ledger): file_access with sensitivity categories is live; quota posture captured (quota_5h/7d, overage_rejected); campaigns has target/direction/window/baseline (runway ✓, was ◐); attestations + controls.packs are literal maturity receipts; session shape rich (tool_kind, durations, exit codes, TLS flags, proc:<pid> uninstrumented-process markers). 21-window catalog tiered ✓◐▲✗ with dangers (Goodhart/privacy/counterfactual/composite/fabrication) and personas — nine new windows incl. friction tax, sensitive-touch surface, shadow-process delta, secret dwell, blowout ledger, unattended autonomy (agent-framed), quota headroom, posture regression. The drawn line: prompt-topic mining — technically small (DLP already reads content), socially a cliff (protect-the-author vs characterize-them); declined; defensible cousin = practice profiles at repo grain. Structural finding: growth is depth, not width — the strip is full at six lenses; the windows pour into the focus card / verdict line / other pages, exactly as the portal grammar predicted. Four graduates (mocked): policy dividend + friction tax as one build (the pair is receipts, either alone is propaganda); spend runway vs campaign (labeled projection, verdict-line breach); fleet-hygiene block as Coverage's descent floor; new-joiner ramp (the positive-direction counterweight). Behavioral drift held for daily aggregates (200-row sessions cap would break the descent-floor law). Capture roadmap (6): daily per-identity aggregates (highest leverage), posture-change events, repo identity from cwd, read-only IdP pull (un-gates offboarding risk from SCIM — roadmap reorder), latest-version feed, session outcome reason.
Aug 15
  • teams-strip-windows (2026-08-15): /pages/teams-strip-windows + thread docs (strip-windows-{prompt,plan}.md). The horizons graduates built at full fidelity, each in its assigned home — depth behind existing marks, not new dashboards: governance ledger (dividend + friction as one two-sided block; 38 enforced / 41 denied with the un-allowlisted MCP offender promoted to its one closing action; pair rule — neither panel renders alone; "enforced," never "prevented"); runway board (per-campaign teams, solid spent / dashed labeled projection / ceiling tick, breach verdict line); fleet-hygiene block (Coverage's descent floor — named laptops, a proc: shadow process, version-lag and zombie rows each with a closing action; receipt re-adds to the chip's gap of 3, with non-counting hygiene rows explicitly separated); ramp panel (three joiner small-multiples vs team p25–p75 bands incl. the stalled case with "check in →"; days-to-band as the enablement number); unattended autonomy (verdict line + six overnight sessions, agent-framed with the 22:00–06:00 threshold printed); secret-dwell and blowout receipt rows (dwell-not-counterfactual; receipt-not-target). All ✓-tier windows only.
Aug 15
  • CORRECTION (2026-08-15): The teams-strip-ideas/swarm-era claim "per-team trends impossible — the daily series is fleet-wide" is wrong as stated. /api/costs applies ?team= scoping before its accumulation loop (web.rs ~2431–2625), so team-scoped totals (incl. cache_read_pct), by_model, and a per-team daily series are all reachable via N scoped fetches with zero backend work. The claim holds only for a single unscoped fetch. Design implications: per-team sparklines become buildable (portal law 5 no longer forbids them — the data exists); Cost Center's team table inherits cache/model split opportunities (c66 follow-on).
Aug 14
  • Cycle split (2026-08-14): Created from c61's teams stream — see initial-prompt.md and teams-refinement-plan.md.
Aug 14
  • teams-ideas-v2 (2026-08-14): /pages/teams-ideas-v2 — composition bake-off. Coda Stacks A ("accountable roster") and B ("teams first") each rendered as a full composed page with the four decisions applied: one merged caveat, mapping coverage % in the summary strip, risk-story roster with per-person identity-gist chip (→ /identity), unmapped band (A) vs mapping drawer (B), slim team cost overview with share bars + "Cost Center →" handoff, adoption strip (fleet-level in A, per-team in B). Verdict: Stack A with B's card language — J1 is the top job, IA doc calls the page a Fleet lens, and 4 free-text teams don't earn cards as the organizing unit pre-SCIM. v3 opens: mapping form factor (band/drawer/sub-route), identity-gist depth, adoption slot, Cost Center EXP gate. Type floor corrected to text-11 (v1 used text-10, which silently renders 16px).
Aug 14
  • teams-ideas-v3 (2026-08-14): /pages/teams-ideas-v3 — the write path designed. Three mapping form factors on A's spine: inline band (expands in place, cheapest interruption), slide-over drawer (full evidence one-at-a-time, but modal and fights bulk), sub-route /teams/mapping (queue/dormant/history tabs, org rail, Okta-remapped lifecycle new→mapped→dormant→archived with disable-don't-delete). Identity gist at three depths (chip only / chip + method / icon + posture summary strip). Verdict: band primary with "open workspace →" escalation to the sub-route; drawer cut; gist = chip + conditional posture strip (appears only while consumer keys > 0).
Aug 14
  • teams-ideas-v4 (2026-08-14): /pages/teams-ideas-v4 — single composed ship candidate in the shipped-integrations idiom (heavy-rule sections: text-18 bold + 3px grey-300 rule + text-11 why-line). Stack A spine with v3 verdicts folded in. Remaining calls made and annotated: adoption folds into deltas (people stat + team-chip pills, no separate strip at 14 people), team drill-down is filter-in-place (team detail page deferred to SCIM day), mapping band ships collapsed. Ends with the 5-item checkpoint agenda (composition, mapping model, gist depth, adoption/drill-down calls, Cost Center EXP gate).
Aug 14
  • Verification (2026-08-14): All three pages SSR 200 on the live dev server, Tailwind rescan via nuxt.config touch after each new file.
Aug 14
  • Registry section split (2026-08-14): New teams page group ("Teams & Users — People, teams, and identity attribution pages") between Security and Admin; all four teams-ideas pages moved into it. Admin group description trimmed to "Org and connector administration pages".
Aug 14
  • teams-ideas-v5 (2026-08-14): /pages/teams-ideas-v5 — states & scale pass on the v4 composition. Four states: first-run (mapping workspace as onboarding hero, teams created in the act of assigning, no roster yet), all-clear (verdict "Nothing needs you", roster falls back to spend order as the attribution ledger, every conditional gone), attention·14 (v4 corrected — verdict line names the work, level-1 expand row designed with top_context chips, level 2 stays AgentExpandDetail), attention·214 (search primary, band drops "map here" above ~8 queue items and becomes pure escalation, team chips cap at top-5-by-spend + unassigned with the tail behind Cost Center). Corrections: verdict line above the strip in every state; amber grammar tightened to attribution debt only (alias, unassigned, band) — credential gist and spend outliers go neutral, severity lives on /identity and Cost Center. Fixtures mirror userRollups() keys + /api/costs by_team rows so the ship rewrite is transcription. New checkpoint item 6: period control (?period= on /teams vs pinning /cost?period=30d on handoff).
Aug 14
  • teams-ideas-v6 (2026-08-14): /pages/teams-ideas-v6 — state machine + component mapping. The four v5 states rendered from one template with a live UxTabGroup switcher (proof the design is conditionals over a single composition, not four designs); section × state matrix as the rewrite spec; onboarding progress line added to first-run ("3 of 8 assigned · $12 of $41 attributed"); vocabulary locked — assign (act) / mapped (state) / attributed (money), "map here ▾" corrected to "assign here ▾". Component audit against component-registry.ts (151 components) + qdash locals: table/chips/bars/search map cleanly (DataTable #details, UxTag, UxCode, UxPercentBar, UxTabGroup, UxAvatar — the last two used live in the mock); qdash PageHeader and StatTile are promotion candidates; three confirmed gaps — verdict line (shared need with c68 index), toned stat sub-line, dashed amber band (hand-rolled 3× in v5). Extraction shortlist ranked with one prerequisite: amber enters the layer tone vocabulary (UxPill stops at warn). Note: layer CLAUDE.md/catalog-skill are stale (~35 components) — component-registry.ts is authoritative.
Aug 14
  • teams-ideas-v7 (2026-08-14): /pages/teams-ideas-v7 — the four states rebuilt on real components, iterating from v5. Roster = layer DataTable: per-column #slots, #details expand in the house ExpandRow card (agents with UxCode context chips + UxPill danger), column search at scale (search: true on Person replaces the hand-rolled search bar), limit + #footer for the collapsed tails, numeric spend so column sort works. UxAvatar in every person cell (incl. first-run queue), UxTag for the scale filter chip. Teams section = v6's chip row cherry-picked whole, kept as one local functional component (TeamChipRow) so the ShareChip extraction boundary is pre-drawn. Findings from the swap: the column config IS the state machine (all-clear/attention/scale are one component + different column arrays and slot presence); DataTable seams — footer is bottom-right not a full-width tail row, and sort is header-label-based so risk-rank relies on row order until a riskScore column exists. Verdict line, toned stat subs, amber band, share chip stay hand-rolled — the four confirmed v6 gaps.
Aug 14
  • teams-ideas-v8 (2026-08-14): /pages/teams-ideas-v8 + app/components/teams/PersonExpandCard.vue — the person expand card designed. Avatar fix: v7 (and v1) crushed UxAvatar initials with a text override; the component's real sizes are small w-9/text-18, reg w-11/text-21 — override removed. Every person row in every state now expands (DataTable bareDetails + the c59 UxTableListExpandSection stack) into TeamsPersonExpandCard: (1) identity & attribution — reg avatar, mono email, source pill → /identity, alias explained (felix's @duck.com merge note), OS user/machines/first-last seen, team with change/assign write path; (2) open work — conditional, the risk story exploded into severity + description + verb rows; (3) agents & usage — agent rows with UxCode top_context chips + a usage line (tokens/% fleet, spend, model chips, tools/MCP). Card replaces the interim AgentExpandDetail at level 1; per-agent "detail →" stays level 2. Deliberate omissions: credential math (/identity), spend history (Cost Center), session logs (agent detail). Could-adds parked for checkpoint: activity sparkline, per-model spend, recent sessions, inline egress decisions.

c68 index-overview

Aug 14
  • Phase 0 (2026-08-14): current-state.md — full qdash audit of the / landing (Fleet Overview) and /inventory, with a five-point overlap table (coverage, at-risk w/ mismatched thresholds, fleet counts, shadow AI, trend sparks) and the seam: Overview owns judgment, Inventory owns nouns. plan.md — five ranked landing questions, health taxonomy (security/monitoring/cost/operational/governance), four-phase plan, six pattern candidates with a starting recommendation (verdict → attention → gateway cards).
Aug 14
  • Decisions (2026-08-14, Mark): daily driver (exec summary parked as a separate future page) · scorecard demoted to a card · canonical coverage band lives on the landing · cycle ends at the mock (qdash port is a follow-on).
Aug 14
  • Phase 1 (2026-08-14): design-brief.md — discovered two prior concept rounds for this exact surface (/pages/fleet-overview-ideas, 8 concepts 2026-08-03; /pages/fleet-overview-ideas-2, 4 analogue mechanisms 2026-08-04), so Phase 2 pivoted from re-ideation to synthesis. Brief locks the five-band hierarchy: verdict sentence → exception queue (empty when healthy, by design) → relocated c59 7b trust & presence band → gateway cards incl. the demoted "Vs. goals" card → quiet footer with install funnel.
Aug 14
  • Phase 2/3 merged — v1 (2026-08-14): /pages/index-overview-v1 built and registered (overview group) — the composed daily-driver landing with both designed states behind a render toggle (Meridian Monday attention day / all clear), consistent c59 numbers (34 · 39 · 87% · 5 shadow · at-risk 4), unified at-risk definition, and a composition-sources note on the page. Smoke-checked: 200, clean dev log.
Aug 14
  • Overlap-analysis thread (2026-08-14): posture-findings-overlap-analysis.md — landing vs /posture vs /findings friction named (three verdicts no master, three at-risk definitions, coverage told 4×, config risk has no action surface). Recommendation: dissolve /posture — factors become triageable configuration findings in a unified Security worklist with a posture-analytics band, installs table → Inventory, score judgment → landing. Plus the Estate-strip proposal (asset deltas as judgment).
Aug 14
  • v2 (2026-08-14): /pages/index-overview-v2 built and registered — v1 + the analysis applied: estate strip with deltas in the trust band (footer keeps only the funnel), "Sandbox disabled on marcus's Claude Code" configuration finding in the queue (verdict counts 5), Findings + Posture gateway cards consolidated into one wide Security card (worklist counts + score as registers of one surface), at-risk tile links "→ Security". v1 untouched for side-by-side. Smoke-checked: 200, clean log.
Aug 14
  • Verdict-ideas thread (2026-08-14, Mark: "don't love the 5 things needing attention"): /pages/index-verdict-ideas — five verdict+queue treatments against the same Monday story: (1) grouped-count family chips replacing the enumerating sentence, (2) worst-thing-first hero with "and 4 more" expander, (3) queue-as-greeting with slim status line and no verdict layer, (4) Act·Decide·Review verb grouping matching the triage workflow, (5) since-Friday delta verdict with NEW/AGING row badges. Shared parameterized QueueRow; comparison notes on-page. Registered, smoke-checked 200 with all five sections rendering.
Aug 14
  • Queue-ideas thread (2026-08-14, Mark's screenshot critique — the row layer-cake): diagnosis: each queue row spent four attention devices (left border + family tag + NEW badge + toned link) inside its own bordered card. /pages/index-queue-ideas — five compact treatments, one device per row: (1) hairline list (no cards, severity dot only, ~half height), (2) one-card dot rail (queue as a single object, rail as severity map), (3) mini table (aligned sev/item/age/action columns), (4) hero + ticker (worst item is the only card, rest are expandable chips — two lines total), (5) briefing lines (glyph-led prose, no containers). Registered, smoke-checked 200.
Aug 14
  • Glance-ideas thread (2026-08-14, Mark: broader, more visual, more abstraction — details behind a click): /pages/index-glance-ideas — five visual-first attention abstractions of the Monday story: (1) annunciator panel (fixed domain cells, lit vs dim ✓, cockpit language), (2) fleet pixel grid (34 cells + 5 dashed shadow ghosts — attention as where, scales past lists), (3) domain health meters (equalizer skyline as the verdict), (4) week strip (events positioned in time, the aging config item as a 3-week amber tail — age is length), (5) pixel-pawn lineup (brand-native: sofia errored, felix needs-input, kai asleep, chen as dashed ghost — attention as who needs help). Each with hover identity + click-to-item; summary owns the surface. Registered, smoke-checked 200 clean.

c66 cost-center

Aug 14
  • Exploration & verdict (2026-08-14): Token data already exists in breakdown rows (by_model/by_agent/by_user/by_team) and daily series; only totals lacks token counts. Filling it properly on the backend is cheap and clean — verdict: feasible + high-value first slice.
Aug 14
  • Backend (implemented 2026-08-14): Added accumulators token_tot and output_tot to the costs() loop; extended /api/costs totals JSON with total_tokens, input_tokens, output_tokens.
Aug 14
  • Frontend (implemented 2026-08-14):
    • State: const { period, unit } = useUrlState({ period: 'all', unit: 'cost' })
    • Control: Added UxTabGroup with units [{ value: 'cost', label: '$' }, { value: 'tokens', label: 'Tokens' }] beside period switcher
    • StatTiles: Computed array swapping between cost-mode tiles (total/provider/estimated/cache%) and token-mode tiles (total/input/output/cache%)
    • BarLists: byAgent/byUser pick r.cost vs r.tokens; titles and formatters follow unit
    • Chart: spendSeries maps n: unit === 'cost' ? s.cost : s.tokens; series key auto-labels the legend
    • Caveat line: Hidden in token mode (currency-only)
    • Known nit: fmtN(0) renders "0" vs fmtC(0) renders "—" — acceptable for v1
Aug 14
  • Cycle docs (design repo, 2026-08-14): Created c66.cost-center/ with initial-prompt.md, CYCLE.md, and cost-unit-toggle-plan.md; updated CYCLES.md to index c66
Aug 14
  • Pivot to mock-first (2026-08-14, same day): Mark reverted the qcontrol implementation (backend + frontend + dist, all restored to committed state) in favor of working out the details on the design site first. Built /pages/cost-center-unit-toggle — a faithful /cost replica seeded with a live data snapshot (period=all, 2026-08-14) with the toggle fully wired: unit-driven tile remap, flipped Last-24h emphasis, unit-following table sort (remount trick for initialSort), mixed-unit targets exempt, plus a design-notes panel. The qcontrol implementation above stands as the validated port path once the mock settles the design.
Aug 13
  • Data findings baked into the mock: the 2026-08-13 batch day (29.9M tokens, $143) flattens the token-mode chart — log-scale/dual-axis question; leaders flip between modes (gpt-5.6-sol #1 by tokens, #3 by cost) — possibly better told as a $/M-token unit-price column; token totals exclude cache reads (~96% cache rate), needs an "excl. cache" sub-label to read honestly.

c62 build-partner

Aug 13
  • Visibility-stream thread (2026-08-13): executed visibility-stream-prompt.md (né data-sources.md) — how to open an automated visibility/progress/recognition stream to partners with minimal team strain. Three artifacts: visibility-stream-plan.md (investigation plan), visibility-stream.md (the ideation: source audit, digest-agent design, Slack mechanics, recognition push, founding artifacts, sequenced v1), and sample-digest.md (proof-of-concept weekly digest generated from real repo data). Key finds: HISTORY.md is a dead source (zero completions archived in 30 days across 9 repos — the mock's "generated, never hand-edited" claim is currently unkeepable); the live sources are CYCLE.md Key Changes, the layer tag stream (14 tags/30d, subjects carry cycle numbers — free join key), qcontrol's git log (46 commits/30d, PR-numbered), and the qevents CHANGELOG (partner-grade Compatibility: lines, but 8 of 12 entries undated "Pending"); two Slack webhooks already run in CI (qtap image notify — likely the known "release channel" — and a stars bot; qcontrol has zero Slack config); the design-site timeline model has 'history'/'git' source slots declared but never implemented; zero scheduled automation exists anywhere in the workspace. Outside research (cited in doc): generate from structured records not raw diffs (94k-release-note study), reviewer-gatekeeper + fixed template + quiet-week doctrine (nobody ships this — white space), per-partner Slack Connect channels with broadcast fan-out + human-shadow rule, earned-vs-given artifact split (Twilio jacket / Arc card / Stripe milestone gifts). Adds decisions 11–16 to the queue; takes positions on #6 (sharp-edges own page + data file) and #7 (declined is canon). Follow-up same day: digest-archive.md — three consecutive weekly issues (Jul 24 – Aug 13) backfilled from real repo data, newest-first, with a stakeholder preamble; seed content for the portal ship-log and the internal pitch. Execution started same day (v1 items 1–2): /partner-digest skill (.claude/commands/partner-digest.md — window detection, gather/filter/draft/voice-check/save loop, never-skip + cite-everything rules), digests/ stream directory seeded with the three backfill issues as dated files (the portal's intended data source), and slack-playbook.md (channel architecture, cadence promise, posting rules, human-shadow rule, emoji vocabulary, welcome template)
Aug 13
  • Partner sell-page concepts (2026-08-13): /pages/partner-ideas (registered, partners group) — four concepts for the /partner page demos land on, all fed by the live digest stream via new server/api/digests/index.get.ts (parses digests/*.md into structured issues + computed meta): (1) the receipts — cadence-promise hero, render-time momentum band (first surface where "never hand-edited" is literally true), latest issue as proof object; (2) the epilogue with receipts — demo recap → the real three-week stream → the tracks fork; (3) said honestly — the stream's slippage quotes as a dated honesty wall + sharp-edges tally; (4) the channel — #qpoint-yourco on an ordinary Thursday, digest bot post from the API, human-shadow reply, 🎫-to-ledger capture. Coda: demo-day composition (recap → receipts → tracks-A doors → honesty → channel, contract one click deep); open review question: honesty wall on-page vs one click deep. Verified SSR against the live dev server
Aug 13
  • Partner Board (2026-08-13): /pages/partner-board (registered) — the partner-facing weekly home, show-not-tell pass on the pitch-heavy ideas page. Glance layer: week-selector chips with activity bars (shipped/in-flight/honest counts as bar heights), DataMetric pulse band with week-over-week delta, shipped cards as bold leads + auto-extracted evidence chips (PRs/versions/cycles/SHAs regexed from digest text), amber "Watch out" flags, pulsing "Moving" lane, "Coming" chips, single ask card with Slack CTA. Detail layer: digest story bodies verbatim behind per-card expand; expand state resets on week switch. All from /api/digests — no hand-written content beyond labels. Open design question: link Watch-out entries to sharp-edge registry entries when referenced
Aug 13
  • Partner Board — Maximal (2026-08-13): /pages/partner-board-max (registered) — deliberate-overreach pass, eight boards of the same /api/digests stream. Solid four: mission-control cockpit (arc gauge, status lamps, sparklines, evidence ticker), heat wall (workstream×week intensity grid, story dot field, cumulative area), river sankey (weeks→lanes ribbons, chips adrift), radar+orbit (shape-of-week polygon with week ghosting, sharp edges as pulsing satellites). Wild four: seismograph (ships as up-spikes, honest notes as dips, live needle), arcade (streak=HP, ships=XP, honest notes=truth tokens, stories as pixel sprites, asks as quests), constellation (stars sized by depth, auto-linked by shared citations), metro map (workstream transit lines, stories as stations, Coming queue as ghost stations on dashed track). Workstream classification + story depth + chips derived from digest text. Coda verdicts — keep: metro, sparkbars/gauges, seismo needle · maybe: heat wall, river · cut: radar, constellation · easter egg: arcade (launch moments / wrapped artifacts, not Thursdays)
Aug 13
  • Arcade & Organism (2026-08-13): the arcade thread iterated wide (prompt/plan: arcade-organism-prompt.md / arcade-organism-plan.md). New server/api/commits/index.get.ts — real raw pulse: git log across 5 repos, 152 commits/45 days, per-day counts (qtap's 0 included honestly). /pages/arcade-organism-ideas (registered) — six living-system concepts: the lobby (cohort as 8-player select, PRESS START reserved seats), strata (curated stories over real commit texture — the Aug 6 batch-commit tower visible), heartbeat (two-chamber EKG, product + design-system traces, Thursday strong beats, BPM readout), double helix (product/design strands rung by the real 14-tag release list, labeled join keys v0.9.10⇄c61), growth rings (ring per week, workstream segments, honest-note scars, Coming buds), world map (90-day wrapped preview, fog-of-war future). Coda homes: strata+heartbeat → the board · rings → monthly recap poster · lobby → cohort page · world map → per-partner wrapped · helix → the deck
Aug 13
  • Data Swarm (2026-08-13): real-data pairing pass (prompt/plan: data-swarm-prompt.md / data-swarm-plan.md) — every mark a real event, AI stats promoted to a first-class progress metric (the dogfood thesis: visibility → controls → safe/efficient AI). Two new APIs: server/api/ai-usage/index.get.ts (parses this machine's Claude Code transcripts for qpoint projects — 91 sessions, 18.0M output / 84.6M input / 3.3B cache-read tokens over 45 days, per-session + per-day + per-hour aggregates, module-cached; labeled "one seat — team-wide is llm.usage on the stream") and server/api/commits/detail.get.ts (per-commit --numstat: 152 commits, +195k/−56k lines). /pages/data-swarm-ideas (registered): AI stat hero band (incl. tokens-per-commit ≈118k, tokens-per-story ≈1.6M) + four plots — (1) expenditure swarm: dot per session, time × log output tokens, size = messages, color = project; (2) tokens-in→code-out: dot per day, log tokens × log lines, tokens/line isoquants, sequential recency hue; (3) commit swarm: dot per commit, time × log lines (the #639 ~52k-line cutover towers correctly); (4) punchcard of attention: day × hour, size = tokens, weekend bands. Dataviz-skill procedure followed: categorical palette machine-validated (first attempt FAILED — slate low-chroma + pink↔emerald deutan-adjacent; fixed order violet/emerald/sky/pink ALL PASS, sky↔pink floor-band covered by legend + labels); 397 marks SSR-verified, all with hover tooltips. Meaning-layer addendum (same day): selective ✓-callouts overlaying the raw signal — derived, not hand-written: digest stories anchor to the commit swarm wherever their own evidence chips (#PR / vX.Y.Z) match a commit subject (6 callouts render: agent coverage, installation identity, dashboard-onto-layer, pixel identity, unified event schema, Dashboard MVP — with ring highlight, leader line, surface-halo labels, side-placement near the plot top); one ⌾ peak-session callout on the expenditure swarm; leverage + punchcard deliberately unannotated with the rule stated on the page
Aug 13
  • Data Swarm II (2026-08-13): pairs iteration (prompt/plan: data-swarm-2-prompt.md / data-swarm-2-plan.md) — no new APIs; amplifies metrics already in the data: session duration, cache-read context depth (3.3B, never previously charted), model mix, adds-vs-deletes. /pages/data-swarm-2-ideas (registered), 8 plots. Solid: metabolism (add×del per commit, churn diagonal, derived ✓-callout lands on #639 — the cutover pruned more than it added), call & response (mirrored tokens/LOC per day, labeled separate scales), context depth (cacheRead×out per session — up-right drift = context is leverage), shift log (session span bars, hour×day, color=model). Out-there: iceberg (output above waterline, 185× cache-context below, one shared log scale), breath (net lines diverging around zero, release breath-marks), orchestra (stacked tokens by model — the fable-5 August entrance reads as a keychange), exchange rate (tok/line daily + 7-day rolling median, ticker framing, ✓ best-day callout). Approximations disclosed on-page (cache/model attributed to session start day). Coda: pairs catalog for iteration III (governance PR-ratio, verbosity, citation density, in-flight age, commit shape, tokens×edge-closures as north star). SSR-verified: 262 dots / 205 bars / 6 areas
Aug 13
  • Data Swarm III (2026-08-13): accountability iteration (prompt/plan: data-swarm-3-prompt.md / data-swarm-3-plan.md) — executes II's pairs-catalog backlog. API extensions: commits/detail gains files + hour; ai-usage gains microscope (busiest day at session-minute grain). /pages/data-swarm-3-ideas (registered), 8 plots. Solid: governance ratio (PR-merged vs direct-push per week — 45% overall, sharply split by repo: product reviews, design pushes direct; the thesis metric applied to ourselves), verbosity (msgs×tokens per session by model, tok/msg guides), commit shape (files×lines, wide-shallow vs narrow-deep), claims vs evidence (words×citations per digest story, avg line — honesty discipline measured). Out-there: promise tracker (every in-flight item auto-arced to its fate via word-overlap against later issues — landed/still-moving/went-quiet, status-colored; "quiet is a debt the next digest owes"), two clocks (radial 24h dials: AI generation vs code landing), the microscope (Jul 27 at message grain — 333 session-minute marks across 21 sessions, granularity's far end), the north star (deliberately empty: cumulative tokens × edges closed, 0 closures — ghost mark "the first closed edge draws here" as commitment device). Coda lesson: progress metrics impress, accountability metrics convert. SSR-verified: 598 marks
Aug 13
  • Thread documentation convention (2026-08-13): each ad-hoc thread now persists <thread>-prompt.md (verbatim) + <thread>-plan.md alongside its artifacts — added to the canonical cycle-manager agent (sister-project sync pending); retro-applied across c62 (data-sources.md → visibility-stream-prompt.md; prompt files added for partner-ideas, partner-board, partner-board-max, arcade-organism)
Aug 10
  • Two-track expansion (2026-08-10): program forked into Track 1 — Qkit, the unified event stream as a product for solution providers (in talks: Cisco, F5, Vanta; no dashboard, they build their offerings on the stream) — and Track 2, the qcontrol dashboard as product for operating companies (itself built on Qkit). Demo strategy: one dashboard demo serves both audiences, then lands on a tracks page outlining the differences + arrangement. Names are working names. Decisions: explore page options c61-ideas-style; mock-first (qdash wiring is follow-on).
Aug 10
  • Precedents-research pass (2026-08-10): precedents-research/ — ~40 real programs across four categories (design-partner, insider/early-access, platform/ISV, founding-customer deal mechanics), all source-linked + spot-verified, with a cross-category feature matrix and implications mapped to program-structures + two-track docs. Headlines: nobody ships a partner portal (function = toggle + chat + changelog — portal must be additive to the human channel); free-vs-paid is the only live disagreement, everything else near-consensus; platform programs launch with small named cohorts; the attribution ledger is the best-precedented portal section. Anchor artifacts: Common Paper DPA (benchmark data), EchelonGraph's public program spec (eBPF-adjacent), Sierra's 100%-conversion retro, Connect with Confluent (closest Qkit analog)

c61 Integrations & Teams

Aug 13
  • integrations-ideas-v2 through v9 (2026-08-13): Five successive refinement iterations exploring JTBD-first reframing, capability-first middle grounds, compact and scalable catalog layouts, and affordance matrices. v2 (operator truth table + ledger framing), v3 (operating outcomes lead), v4 (affordance pass), v5 (simplified four-intent setup), v6 (capability-first), v8 (compact with modal), v9 (scalable catalog with sources/enrichment separated, five-to-six vendor categories, search modal, request path, local SVG marks for branded connectors). v7 discarded (responsive rail collapse at intermediate widths).
Aug 13
  • Layer extractions (2026-08-13): Published @qpoint-io/q-nuxt-layer v0.9.10 with IntegrationCard (components/integration/Card.vue) and IntegrationLogo (components/integration/Logo.vue — id-resolved brand logos rendered as , immune to gradient-id collisions and recoloring). 20 third-party logo SVGs migrated into layer assets/svgs/third-party-logos/. New semantic tokens: surface-logo (white chip background for brand logos, both modes) and surface-sunken-deeper realigned (grey-200 light / grey-800 dark). Gear icon added to layer. Both components documented in design site component registry (new Integration group) with interactive demos.
Aug 13
  • Shipped to product (2026-08-13): Replaced "Projected outbound connectors" section of qcontrol qdash /integrations (branch feat/control-center) with v10 treatment. Typed connector catalog (app/lib/integrations.ts, 11 connectors incl. new generic Custom webhook + S3-compatible storage). Per-connector detail/config pages at /integrations/ with live severity routing for channel-backed connectors via /api/channels. Channel-backed connectors flip to active stat cards only when a routing row is genuinely authored.
Aug 13
  • integrations-ideas-v10 (2026-08-13): /pages/integrations-ideas-v10 — visual treatment refinement applied to v9 catalog. Heavy-rule category sections (title + 3px rule). Active connectors promoted to primary-bordered stat cards (logo cell / name + "active" / value-label stats / gear config rail). Available connectors as recessed add-rows with dashed borders + buttons. View-all expands in place (browse modal removed). Collapsed sections show fixed count (COLLAPSED_ITEM_COUNT=3) with actives always shown, inactives filling remaining slots. Request link always visible.
Aug 13
  • integrations-ideas-v11 (2026-08-13): /pages/integrations-ideas-v11 — same visual treatment as v10 with each category contained in a bordered bg-surface card instead of heavy-rule headings. Tested for alternative container framing.
Aug 13
  • Taxonomy convergence (2026-08-13): Both qdash and design-site catalogs now share five capability headers replacing outbound routing: Sources & enrichment (inbound; Okta/Entra reframed from outbound "map to IdP" to inbound enrichment), Security & observability, Notifications & response, Remediation tracking, Evidence & compliance. Practitioner keywords (SIEM, GRC) moved into why-lines for each capability.

c65 control-center-v2

Aug 12
  • Kick-off + decisions (2026-08-12): vocabulary = Policies above Controls; framework catalog = union of 12 (rules.rs PACKS ∪ frontend catalog — adds HIPAA/GDPR and NIST CSF/ISO 27001 to one list); config pages = one page per policy leaning on ~5 shared shape templates; custom-control engine kept as a de-emphasized escape hatch.
Aug 12
  • research-frameworks.md (2026-08-12): per-framework runtime-addressability analysis for all 12 (provable/attestation/out-of-scope per IA doc §7.5, ok/partial/out fits following the OWASP LLM01–10 exemplar), a reverse view ranking policies by compliance weight (P8 Credential Protection carries 9 frameworks; P10/P1/P2/P9 next), findings R1–R6 (framework-list drift, hipaa/gdpr missing from valid_pack(), casing drift, crosswalk too coarse, only OWASP LLM has a requirements mapping, framework kind should shape the UI).
Aug 12
  • policy-definitions.md (2026-08-12): the canonical roster — 17 policies (P1–P17) in 5 categories (adds Cost & Consumption to /policy's 4), each with purpose, executable underlying rule (rules.rs vocabulary), config shape + fields, defaults (seeded-backed → on), severity, remediation, 12-framework matrix, provenance. Config-shape taxonomy: list editor (P5/P6/P10/P14), threshold (P15/P16/P17), level select (P7/P11), detector list (P8/P9/P12/P13), toggle + exceptions (P1–P4). Exceptions replace enforcement modes — scoped, reasoned, expiring carve-outs instead of the Audit/Enforce cascade. Capability gaps fed back to qcontrol: G1 no negated set operator (allow-lists need the egress allowlisted derived-flag pattern), G2 no injection/PII detector families on content, G3 hipaa/gdpr unrecognized packs. Not carried forward: targets/campaigns, the /policy cascade, per-framework control toggles.
Aug 12
  • /pages/policy-catalog (2026-08-12): the main mock (app/pages/pages/policy-catalog.vue, registered) — 12-framework toggle grid (kind icon, live completeness bar, per-framework "N gaps — enable" bulk close), 4-tile posture rollup (posture % = active ÷ required across active frameworks), categorized policy table in the /policy toggle idiom with Enforcement/Alerting columns replaced by compliance chips (active-framework requirements, red when the policy is off = gap), mono underlying-rule line per row, Configure→ links to the config pages, quiet custom-controls footer. One shared reactive model — framework toggles, policy toggles, gaps, and posture all recompute live.
Aug 12
  • Config shell + 5 shape components (2026-08-12): app/components/policy-config/ (site-local; layer extraction deferred) — Shell (back-link, name + activation toggle, meta strip with SecuritySeverity + satisfies chips, <details> underlying-control disclosure, body dims when inactive, remediation footer), Exceptions (shared section on every policy — scope/value/reason/expiry with add/remove), ListEditor (mutates the passed reactive array so page-level flows can push into it), Threshold (ceiling/floor via dir, observed-value breach state), LevelSelect (ordered floor, below-floor blast-radius preview), DetectorList (families, per-detector toggle + severity + 24h hits, enable-all).
Aug 12
  • 17 config pages (2026-08-12): policy-config-<slug>.vue for P1–P17, all registered — thin shell+shape instantiations from the P-id specs. Deep exemplar = policy-config-egress-allowlist (the prompt's named case): pending non-allowlisted destinations (83-match c64 snapshot framing) with a live approve→list flow, scoped entries (global/host/agent per EgressDecisionModal). Toggle-shaped pages carry a live status band (shadow installs, static-key runs, root runs, never-ask runs). Verified: all 18 routes 200 on the running dev server, SSR content present, no stale classes. Two vocabulary fixes along the way: error-surface/warning-surface don't exist in the layer tokens (swapped for error/10-style tints) and there is no arrow-left icon (back-link uses the precedent's ‹ character).
Aug 12
  • Catalog iteration (2026-08-12): "Show inactive (N)" toggle on the framework strip header — hides non-activated framework cards, live count, defaults to showing all. Later same-day passes: description into its own column (4-col table), shrink-to-fit Policy/Config columns (width:1% + nowrap), align-middle rows, bare-dash empty state replaced with "N mapped frameworks — none active" text, Compliance column header renamed by Mark.
Aug 12
  • /pages/compliance-frameworks (2026-08-12): visual-semantics iteration page (compliance-frameworks.vue, registered) — the policy-catalog framework grid duplicated as baseline with the kind label dropped and ComplianceFrameworkIcon replaced by the new compliance-shield art (via <img>, own brand purples). Inactive state got its own grey-variant svg (compliance-shield-grey.svg, light half #d4d4d4 — a filter can't split the two halves). Iteration same-day: V2 "surface semantics" set added (shared state with V1) — active = white card + grape-400 border, inactive = dashed stroke-strong border on surface-sunken-subtle (one step lighter than the page's surface-sunken); gaps tag → "Enable Required Policies" outline button; progress bar de-semanticized (grey-400 fill via inline style — arbitrary Tailwind classes aren't generated on this page — grape-500 only at 100%); toggle micro→tiny with -mr-3 flush-right fix (UxToggle keeps its label wrapper's pl-2 + root gap-1 even with an empty label slot — layer nit worth fixing upstream).
Aug 12
  • Layer fix — UxToggle empty-label gap (2026-08-12): q-nuxt-layer/components/ux/Toggle.vue — the label wrapper div rendered unconditionally, so a label-less toggle carried a 12px phantom on the right (wrapper pl-2 + root gap-1 as an empty flex item). Root cause of the V2-card alignment issue; the root's inline-flex is load-bearing (track/label row, items-center, gap, reverse mode) and must stay. Fix: v-if="$slots.label" on the wrapper. The -mr-3 page hack removed; labeled toggles verified unaffected. Rides along with ComplianceTag in the next layer release.
Aug 12
  • /pages/policy-catalog-v2 (2026-08-12): expand-row variation (policy-catalog-v2.vue, registered, non-destructive) — Config column dropped to a 3-column table; each policy row is a UxTableListExpandRow whose card carries the underlying rule (mono, sunken box + custom-control escape hatch), the FULL framework mapping as small ComplianceTags (inactive frameworks dimmed at 40%, error state only when an active framework is unmet), severity + P-id + maturity + remediation, and the "Open config page →" link. Activation toggle wrapped in @click.stop so it doesn't fight the row expand. Framework strip/posture rollup identical to v1.
Aug 12
  • /pages/policy-catalog-v3 (2026-08-12): inline-config variation (policy-catalog-v3.vue, registered) — direct duplicate of v2 with the expand row hosting the policy's ACTUAL config controls: shape components (<component :is> over a shape→component map — explicit imports, since resolveComponent can't see auto-imports) + the shared Exceptions section, fed by the same config snapshots the policy-config-* pages carry (CONFIGS/EXCEPTIONS keyed by P-id). Identity strip (rule · severity · P-id · maturity · escape hatch) above the config; config dims at 50% when the policy is off (the config-shell idiom). Poses the open question: do the standalone config pages survive, or is the catalog the config surface?
Aug 12
  • Gap-cluster + pill polish (2026-08-12): exclaim circle sized up to h-5 with an italic muted "Required" label after it (gap rows only); Beta pill iterated warning-amber → grey → light blue → grey body with a #318bc4/60% blue border (Roadmap = full grey) — blue applied via style binding since one-off arbitrary color classes don't generate on pages; #318bc4 is a token candidate if a layer blue ramp ever lands.
Aug 12
  • ComplianceTag gap variant (2026-08-12): third state on the tag — gap: muted grey pill + grey shield for required-but-off, with ONE page-side exclaim circle (UxIcon exclaim in a red-tinted rounded-full span) placed inline after the tag cluster rather than marking every tag. All three catalog pages swapped from :error to :gap + cluster exclaim; the red error variant remains for loud failure contexts. Demo + registry docs updated.
Aug 12
  • ComplianceToggleCard extraction + component docs (2026-08-12): the settled framework card extracted to the layer as compliance/ToggleCard.vue (props name/active/percent/satisfied/required/gaps/gapTitle, emits toggle + enable-gaps; shield art from layer assets, grey bar fill inline to dodge consumer-scan issues); both grids (policy-catalog, compliance-frameworks V2) now consume it — V1 stays inline as the baseline artifact. ComplianceTag gained error (red two-tone shield compliance-shield-error.svg + error border/text) and size ('small' | 'medium', UxToggle convention); small got a py bump; catalog table gap chips → <ComplianceTag size="small" error>. Both components documented: new compliance group in component-registry (also fixes ComplianceFrameworkIcon's dangling group id), registry entries with coverage, interactive demos (_demos/ComplianceTag.vue, _demos/ComplianceToggleCard.vue), and a Compliance section on the /components visual index.
Aug 12
  • Layer component — ComplianceTag (2026-08-12): q-nuxt-layer/components/compliance/Tag.vue — small reusable compliance tag: shield mark + framework name in a grape-50 pill (grape-400 border, grape-600 bold label), optional removable ✕ emitting @remove, label via default slot. Shield asset resolved from the layer's own assets at build (?url import, AgentPawn pattern). Demo strip added to /pages/compliance-frameworks (static, removable, and live-wired tags that deactivate frameworks on remove). Confirmed the design dev server runs NUXT_LOCAL_LAYER (picked the component up without a release). Not yet in a layer release — run /release-layer (→ v0.9.8) before tarball consumers can use it; component not yet added to the design-site component docs.
Aug 12
  • qcontrol application (2026-08-12): qcontrol-application.md written (reuse model, hybrid persistence map, backend backlog B1–B8, supersession map). The six policy-config components extracted to the layer as controlled components (emit contracts: add/remove/change/toggle/toggle-all/floor; arbitrary classes → inline styles; Shell gained the white bg-surface content box + backTo/backLabel props + ComplianceTag satisfies chips) — design locals deleted, all 17 config pages + v3 rewired to the new contracts (v3 imports via #components), registry policy-config group + 6 entries + 6 demos added. Layer v0.9.8 released (commit 4708cf2, tag-driven CI publish, all 5 consumer lockfiles re-resolved — qcontrol's git#main ref included). qdash c13 executed: /controls replaced by the policy catalog (framework strip + 17-policy expand-row table + custom-controls escape section), /policy deleted, one controls/detail.vue (?policyId=) serving all policies, hybrid persistence (egress via /api/egress-decisions, P15/P17 thresholds via real control rule rewrites with dry-run, rest via usePolicyState localStorage). Verified: 11/11 headless DOM checks, live API round-trips, 137 vitest, dist regenerated. See qcontrol crates/qdash/ui/cycles/c13.control-policies/CYCLE.md.

c64 control-center-consolidation

Aug 11
  • V5 (2026-08-11, based on V4): three sections — V4's read header · condition (one-line, UxAddBtn) + clickable severity chips + Category selector (all 8 GovernSheet categories, .ctl-style select with helper caption, forms-plugin chevron) · third section with the GovernSheet's FULL option sets (all 7 decisions with hints, remediation input, all 5 when-it-happens actions incl. require-approval/route with proj marks, all 10 Satisfies packs editable), save beneath. Edit state extended (sev/remediation/approval/route/packs) — shared across variations
Aug 11
  • Condition adding wired (2026-08-11): edit model refactored to a clause array; V4 + V5's UxAddBtn appends an AND clause (signal-appropriate default field via a FIELDS-per-signal map, per-clause ✕ remove, 4-clause cap mirroring GovernSheet); first-clause field select upgraded from single-option to the signal's full field list
Aug 11
  • V5 refinements (2026-08-11): Category moved from section 2 to section 3 left column (above Remediation, GovernSheet order); Save control right-aligned
Aug 11
  • Idea 3 shipped to qdash (2026-08-11): qcontrol/crates/qdash/ui/app/pages/controls.vue — the packs card grid replaced with the managed-list picker (enabled-only removable chips in qdash's primary tint + SentenceSelect add-pill over the not-yet-enabled remainder). Panel title/count/intro/localStorage persistence unchanged; add flows through togglePack so persistence stays in one place. Uncommitted in the qcontrol working tree. First qdash code change of c64 (scope extended by Mark). Note: still the 6-pack list — expanding to the full 10-pack rules.rs vocabulary is consolidation-plan item 2, deliberately not smuggled into this UI change /pages/framework-picker-ideas (framework-picker-ideas.vue, registered) — four compact alternatives to the /controls pack-card grid, rendered against the current grid as baseline at the TRUE 10-pack catalog size (the shipped panel shows 6 — an F2 drift). One shared enabled-set across all variations. Idea 1 toggle chips (all options visible, ~6× less vertical), Idea 2 popover picker (one-line closed state, enable-all), Idea 3 enabled-only + SentenceSelect add-pill (managed-list steady-state), Idea 4 GovernSheet-style checkbox wrap (panel and sheet would read identically)
Aug 11
  • Layer change — ExpandSection wraps text (2026-08-11): UxTableList sets whitespace-nowrap on the whole table (cell behavior), which expand-card content inherits — long captions then set the column's min-content and overflow the card padding (seen on V5's Satisfies caption). Fix: ExpandSection root now carries whitespace-normal — expand cards are prose-shaped, not cells. Benefits every ExpandSection consumer
Aug 11
  • Layer change — SentenceSelect sizes to current selection (2026-08-11): rebuilt q-nuxt-layer/components/sentence/Select.vue on the mirror-span technique — an invisible in-flow span carrying the selected option's label (same font/padding/border metrics) sets the pill width, with the select overlaid absolute inset-0 w-full h-full. First attempt used inline-grid + min-w-0 and did NOT work: an auto grid track still sizes to the select's max-content (its widest option) — the select must be out of flow entirely. Selected label read from selectedOptions[0].text (mount/update/change sync; SSR seeds from modelValue). Side-find: the ⌄ chevron on these pills comes from the layer's @tailwindcss/forms (base strategy) background-image, not the component — appearance-none never affected it, so the component's appearance-suppression was dead code (removed). Chevron reserve slimmed pr-12 → pr-8 (~8px gap between content and the forms-plugin chevron at right 0.5rem)
Aug 11
  • Layer change — SentenceText de-greedied (2026-08-11): removed the hardcoded flex-1 min-w-[200px] from q-nuxt-layer/components/sentence/Text.vue; the pill now sizes to content via the native size attribute (content length, falling back to placeholder length, floor 4) so it sits inline in a sentence like the other pills. Call sites wanting fill pass class="flex-1". Affects all consumers at next layer release — check NotificationRuleCard-style URL fields when bumping
Aug 11
  • V5 shipped to qdash (2026-08-11): qcontrol commit 376baabb on feat/control-center — /controls expand row is now the three-section V5 card (ControlExpandCard.vue), replacing the link-list details and the edit-via-modal path for existing controls. Faithful to the mock with reality corrections: vocabulary-backed fields/signals/ops/decisions instead of the mock's hardcoded lists, static and (backend rules are AND-only — the mock's and/or pill was aspirational), GovernSheet's dry-run preview kept under the sentence, section-1 header shows saved values not the draft. Table gains the category column (5 cols, actions kept per Mark). Hygiene rode along: GovernSheet's authoring engine extracted to useControlDraft (modal + card share it; props/emits contract unchanged so policy.vue promote is untouched), shared useControlVocab cache, real Control interface + tested sevNorm/hasAlert in lib/control.ts, .proj deduplicated into ProjMark.vue, and the mock's dense rowRefs callback-ref pattern dropped entirely (DataTable's bareDetails + slot-scoped close covers it). Two latent bugs fixed in passing: the dry-run timer now clears on unmount, and the follow-the-rule watchers are immediate (the shared vocab cache is usually warm before a card mounts, so vocab-change triggers alone never fired — caught via headless-browser verification: New-control category select rendered empty). Layer released as v0.9.7 (the three sentence/ExpandSection changes above); all consumer lockfiles refreshed. Verified end-to-end in headless Chromium against the live backend: expand/dry-run/severity/add-remove clause/close-X/save-as-copy round trip + New-control modal, zero console errors; dist/ regenerated via the isolated build.
Aug 10
  • Iteration direction chosen (2026-08-10): start from the existing controls table and iterate. /pages/control-center (app/pages/pages/control-center.vue) — 1:1 replica of qdash /controls: template + helper logic copied verbatim (same layer DataTable), Panel/PageHeader chrome inlined, live-data snapshot from /api/controls + /api/security (12 seeded controls, 107 findings, match counts egress 83 · quota 19 · shadow 4 · budget 1), pack enablement as a ref standing in for localStorage; GovernSheet/downloads/cross-links stubbed with titled affordances

c63 qdash Page Status Grid

Aug 10
  • 2026-08-10 — page-status.csv: 22-row grid (6 non-experimental pages + all Inventory sub-pages/details) scored across alive / nuxt skin / design pass / manual fine tuning. Page list from qdash AppSidebar.vue NAV, experimental (EXP) entries excluded, ACT section dropped.

Captures

398 screengrabs taken this week, 2 of a subject with an evolution history.

/cycles
/cycles
Aug 16

The company-wide AI ecosystem inventory map — agents, repos, files, MCP, tools

Teamspace scenario, repository grouping (default)
Teamspace scenario, repository grouping (default)
Aug 15
Demo scenario — the intimate version
Demo scenario — the intimate version
Aug 15
Dramatic lighting on the repository view
Dramatic lighting on the repository view
Aug 15
Enterprise scale
Enterprise scale
Aug 15
Grouped by entity type — the taxonomy view
Grouped by entity type — the taxonomy view
Aug 15
Global Enterprise — the stress case
Global Enterprise — the stress case
Aug 15
Item map: an agent
Item map: an agent
Aug 15
Item map: an API key
Item map: an API key
Aug 15

MagicaVoxel .obj actor models — palette-aware import and lighting studies

The Manager model, source palette, baseline light
The Manager model, source palette, baseline light
Aug 15
Bob Wire (Cowboy) — studio light
Bob Wire (Cowboy) — studio light
Aug 15
Eye Mon Red — source palette back on
Eye Mon Red — source palette back on
Aug 15
Intern types, hybrid tint, flat-readable light
Intern types, hybrid tint, flat-readable light
Aug 15
Runtime lab: Mixed Runtime with vox actors
Runtime lab: Mixed Runtime with vox actors
Aug 15
Network Heavy, true color
Network Heavy, true color
Aug 15
Overdrive Runtime, dramatic lighting
Overdrive Runtime, dramatic lighting
Aug 15
Soft Lit render mode
Soft Lit render mode
Aug 15

Deterministic 10-second session replay — actors and flows arrive on a phased timeline

t=0.5s — Init phase, the root alone
t=0.5s — Init phase, the root alone
Aug 15
t=10s — the whole session on stage
t=10s — the whole session on stage
Aug 15
t=7s — Edit at density
t=7s — Edit at density
Aug 15
t=5.5s — Edit phase opens
t=5.5s — Edit phase opens
Aug 15
Host Fan-Out Surge scenario at completion
Host Fan-Out Surge scenario at completion
Aug 15
File Sprint Handoff mid-sprint (t=6s)
File Sprint Handoff mid-sprint (t=6s)
Aug 15
t=8.8s — heading into Finalize
t=8.8s — heading into Finalize
Aug 15
MCP Relay Dense Core at completion
MCP Relay Dense Core at completion
Aug 15

AI-agent visual language — session graphs, infra map, capability surface, inventory

Session graph, zone layout — Actors → Infra → Files → External
Session graph, zone layout — Actors → Infra → Files → External
Aug 15
Capability surface — tools sized by calls, colored by error rate
Capability surface — tools sized by calls, colored by error rate
Aug 15
Org-wide infra map — endpoints → models, keyed edges
Org-wide infra map — endpoints → models, keyed edges
Aug 15
Inventory graph focused on a user (alice)
Inventory graph focused on a user (alice)
Aug 15
Inventory graph on ci-system — automation's footprint
Inventory graph on ci-system — automation's footprint
Aug 15
The unattributed API key — risk highlighted
The unattributed API key — risk highlighted
Aug 15
Playback at turn 31 — the whole session lit
Playback at turn 31 — the whole session lit
Aug 15
Session playback mid-story — turn ~12 of 31
Session playback mid-story — turn ~12 of 31
Aug 15

Thirteen competing strategies for drawing zone boundaries in 3D

Zone Coloring — tint as boundary
Zone Coloring — tint as boundary
Aug 16
Border Walls — hard fences
Border Walls — hard fences
Aug 16
Convex Hulls wrapping each zone
Convex Hulls wrapping each zone
Aug 16
Force Clustering — physics settling into groups
Force Clustering — physics settling into groups
Aug 16
Gradient Fields — soft ownership
Gradient Fields — soft ownership
Aug 16
Layered Planes
Layered Planes
Aug 16
Nested Rings — the ancestor of rugs
Nested Rings — the ancestor of rugs
Aug 16
Terrain — zones as landforms
Terrain — zones as landforms
Aug 16

Virtual-grid layout engine — recursive bin packing decoupled from rendering

Skewed Regions (the default stress case)
Skewed Regions (the default stress case)
Aug 16
Deep Nested — recursion visible
Deep Nested — recursion visible
Aug 16
Enterprise scale
Enterprise scale
Aug 16
Fractal 3x3x3x3 — pure structure
Fractal 3x3x3x3 — pure structure
Aug 16
Massive — the packing holds
Massive — the packing holds
Aug 16
Medium
Medium
Aug 16
Microservices topology
Microservices topology
Aug 16
Nested containers
Nested containers
Aug 16

Composable flow decorators — ArrowIndicator and PulseIndicator

The bare flow line
The bare flow line
Aug 15
Distributed arrows riding the curve
Distributed arrows riding the curve
Aug 15
Sliding arrow with decay trail
Sliding arrow with decay trail
Aug 15
Experimental: cone meshes
Experimental: cone meshes
Aug 15
Dashed line — direction by drift
Dashed line — direction by drift
Aug 15
Curve height 4 — the ballistic arc
Curve height 4 — the ballistic arc
Aug 15
Comet pulse
Comet pulse
Aug 15
Mountain pulse — the shader wave
Mountain pulse — the shader wave
Aug 15

Organic shape language — noise blobs, squircles, breathing animation

Default noise blobs at 12 segments
Default noise blobs at 12 segments
Aug 15
Breathing on — blobs slowly morphing
Breathing on — blobs slowly morphing
Aug 15
4-segment blobs — coarse, angular organics
4-segment blobs — coarse, angular organics
Aug 15
Blobs with isometric pulse lines
Blobs with isometric pulse lines
Aug 15
24 segments, noise amount cranked to 0.5
24 segments, noise amount cranked to 0.5
Aug 15
Plain circles for comparison
Plain circles for comparison
Aug 15
Plain squares for comparison
Plain squares for comparison
Aug 15
Squircles at exponent 10 — nearly squares
Squircles at exponent 10 — nearly squares
Aug 15

Live qcontrol events — agents pulsing to typed event nodes, growing timeline

Mock feed ~8s — event types materializing
Mock feed ~8s — event types materializing
Aug 15
Agents in packed grid layout
Agents in packed grid layout
Aug 15
Curved pulses
Curved pulses
Aug 15
Event types radial around the agents
Event types radial around the agents
Aug 15
Filtered to claude-cli — one agent's signature
Filtered to claude-cli — one agent's signature
Aug 15
Filtered to the http family
Filtered to the http family
Aug 15
Labels left — ledger reading
Labels left — ledger reading
Aug 15
The long run — timeline grown, field saturated
The long run — timeline grown, field saturated
Aug 15

Screenshot staging — visibility toggles and grid spacing for clean plates

Everything on — the 42-vendor dataset
Everything on — the 42-vendor dataset
Aug 16
Grid spacing 0.5 — packed
Grid spacing 0.5 — packed
Aug 16
Top-down plate at default spacing
Top-down plate at default spacing
Aug 16
Labels hidden — geometry only
Labels hidden — geometry only
Aug 16
Labels and rugs hidden — floating actors
Labels and rugs hidden — floating actors
Aug 16
Meshes hidden — territory without occupants
Meshes hidden — territory without occupants
Aug 16
Grid spacing 3.0 — airy
Grid spacing 3.0 — airy
Aug 16
Wide X, tight Z — banded layout
Wide X, tight Z — banded layout
Aug 16

AI Agents and Users as first-class actor types (icosahedron agents, sphere+cone users)

Progressive Filter — all actors on stage
Progressive Filter — all actors on stage
Aug 15
Group mode — actors gathered by tag
Group mode — actors gathered by tag
Aug 15
Frame 4 — only backend remains
Frame 4 — only backend remains
Aug 15
Frame 2 — vendors removed, layout re-flows
Frame 2 — vendors removed, layout re-flows
Aug 15
Region Migration — 150 actors mid-move
Region Migration — 150 actors mid-move
Aug 15
Scale Storm — 200 actors under pressure
Scale Storm — 200 actors under pressure
Aug 15
Top-down camera on the full cast
Top-down camera on the full cast
Aug 15
User Traffic scenario — the new user meshes in play
User Traffic scenario — the new user meshes in play
Aug 15

Single-dataflow detail with per-actor context toggling

Checkout → Stripe, no context
Checkout → Stripe, no context
Aug 15
User Service → Datadog — observability flow
User Service → Datadog — observability flow
Aug 15
Every context on — maximum situational grounding
Every context on — maximum situational grounding
Aug 15
API Gateway → Checkout — internal routing
API Gateway → Checkout — internal routing
Aug 15
Notifications → SendGrid — external email egress
Notifications → SendGrid — external email egress
Aug 15
Checkout → Orders DB — the database write
Checkout → Orders DB — the database write
Aug 15
Zones + team context — rugs stack
Zones + team context — rugs stack
Aug 15
Security zones toggled on both ends — the cross-zone story
Security zones toggled on both ends — the cross-zone story
Aug 15

Schema-driven DevConfigurator — the control panel renders itself from a typed config

The 8-actor sample scene, isometric
The 8-actor sample scene, isometric
Aug 15
stagePadding 3 — the scene floats
stagePadding 3 — the scene floats
Aug 15
cameraPreset: flatland
cameraPreset: flatland
Aug 15
highlightDataflows: all — every flow lit
highlightDataflows: all — every flow lit
Aug 15
actorLabelScale 2.5 — presentation-size labels
actorLabelScale 2.5 — presentation-size labels
Aug 15
rugPadding cranked — boundaries breathe
rugPadding cranked — boundaries breathe
Aug 15
stagePadding 0 — edge-to-edge composition
stagePadding 0 — edge-to-edge composition
Aug 15
cameraPreset: topdown — one select flips the projection
cameraPreset: topdown — one select flips the projection
Aug 15

QMapDataflow wrapper — tag-driven context grouping with exportable props

Security Zone grouping (default view)
Security Zone grouping (default view)
Aug 15
Flat — no grouping, pure topology
Flat — no grouping, pure topology
Aug 15
Geography grouping — regions as rugs
Geography grouping — regions as rugs
Aug 15
Team grouping from above
Team grouping from above
Aug 15
Team grouping
Team grouping
Aug 15
Topology grouping
Topology grouping
Aug 15
Security zones in flatland projection
Security zones in flatland projection
Aug 15
Zones with every dataflow highlighted
Zones with every dataflow highlighted
Aug 15

One agent session as an entity-type topology (QMapAgentSession)

Full session, entity-type grouping
Full session, entity-type grouping
Aug 15
File Heavy grouped by file access
File Heavy grouped by file access
Aug 15
File Heavy session — the file wall
File Heavy session — the file wall
Aug 15
Grouped by actor type
Grouped by actor type
Aug 15
Grouped by file access
Grouped by file access
Aug 15
Flat — the raw session graph
Flat — the raw session graph
Aug 15
Simple session — the minimal story
Simple session — the minimal story
Aug 15
Full session from above
Full session from above
Aug 15

qcontrol runtime telemetry reduced into a session map (reducer + live bridge)

Mixed Runtime fixture, root auto-selected
Mixed Runtime fixture, root auto-selected
Aug 15
File Heavy fixture
File Heavy fixture
Aug 15
File Surge — 64 file touches
File Surge — 64 file touches
Aug 15
Network Surge from above
Network Surge from above
Aug 15
Network Surge — 120 calls fan out
Network Surge — 120 calls fan out
Aug 15
Overdrive grouped by actor type
Overdrive grouped by actor type
Aug 15
Overdrive flat — the raw sprawl
Overdrive flat — the raw sprawl
Aug 15
Overdrive Runtime — everything at once
Overdrive Runtime — everything at once
Aug 15

Live qcontrol stream — SSE bridge, MCP actors, tool-call flows from the extended reducer

Fixture session, session grouping
Fixture session, session grouping
Aug 15
Dataflows on — sliding arrows and mountain pulses
Dataflows on — sliding arrows and mountain pulses
Aug 15
Dramatic lighting on the session
Dramatic lighting on the session
Aug 15
Entity-type grouping
Entity-type grouping
Aug 15
Event Focus — attention narrowed to the active edge
Event Focus — attention narrowed to the active edge
Aug 15
Event markers over the flows
Event markers over the flows
Aug 15
Flat — the ungrouped event field
Flat — the ungrouped event field
Aug 15
The stream from above
The stream from above
Aug 15
c0Baseline9 shots

Post-transplant baseline — the visualization renders and plays

Idle scene before playback — all nodes placed, no traffic
Idle scene before playback — all nodes placed, no traffic
Aug 15
Playback at 2× — first pulses on the wire
Playback at 2× — first pulses on the wire
Aug 15
2× playback a few seconds in
2× playback a few seconds in
Aug 15
10× sustained
10× sustained
Aug 15
10× — traffic density rises
10× — traffic density rises
Aug 15
100× mid-replay
100× mid-replay
Aug 15
100× late in the replay
100× late in the replay
Aug 15
100× — the full log compressed into moments
100× — the full log compressed into moments
Aug 15
c1Zoom Pan9 shots

Scroll-to-zoom and click-drag panning on a responsive canvas

Default framing, playback running
Default framing, playback running
Aug 15
Drag-pan toward the destination arc
Drag-pan toward the destination arc
Aug 15
Pan vertically while zoomed
Pan vertically while zoomed
Aug 15
Re-centered after zoom/pan excursion
Re-centered after zoom/pan excursion
Aug 15
Wide framing — the whole flow field small in frame
Wide framing — the whole flow field small in frame
Aug 15
Close zoom — individual node detail
Close zoom — individual node detail
Aug 15
Wheel zoom in — sources fill the frame
Wheel zoom in — sources fill the frame
Aug 15
Wheel zoom out past default
Wheel zoom out past default
Aug 15

Layout strategies compared — packed grid, pyramid, circular, grid, arc for both ends

Default: circular sources → arc destinations
Default: circular sources → arc destinations
Aug 15
Arc → arc: twin crescents
Arc → arc: twin crescents
Aug 15
Circular sources → pyramid destinations
Circular sources → pyramid destinations
Aug 15
Grid sources → arc
Grid sources → arc
Aug 15
Grid sources → circular destinations
Grid sources → circular destinations
Aug 15
Grid → grid: the most orthogonal reading
Grid → grid: the most orthogonal reading
Aug 15
Packed grid sources → arc
Packed grid sources → arc
Aug 15
Pyramid sources → arc
Pyramid sources → arc
Aug 15

Node identity — labels, shapes, favicons for network entities

Default: favicon destinations, labels always on
Default: favicon destinations, labels always on
Aug 15
Circular source layout with favicons back on
Circular source layout with favicons back on
Aug 15
Destinations as shapes instead of favicons
Destinations as shapes instead of favicons
Aug 15
Hexagon sources
Hexagon sources
Aug 15
Isometric pulse lines
Isometric pulse lines
Aug 15
Label size pushed to 56px
Label size pushed to 56px
Aug 15
Labels off — pure shape language
Labels off — pure shape language
Aug 15
Square sources
Square sources
Aug 15

Live traffic — dynamic node discovery, activity-based sizing

Feed cranked, ~4s in — first discoveries beyond the seed nodes
Feed cranked, ~4s in — first discoveries beyond the seed nodes
Aug 15
~12s — the field filling in, hot nodes growing
~12s — the field filling in, hot nodes growing
Aug 15
~27s — populated field, activity sizing visible
~27s — populated field, activity sizing visible
Aug 15
Every label on at full density
Every label on at full density
Aug 15
Labels off — pure traffic topology
Labels off — pure traffic topology
Aug 15
Isometric pulse lines
Isometric pulse lines
Aug 15
Random line mode — controlled chaos
Random line mode — controlled chaos
Aug 15
Straight pulse lines
Straight pulse lines
Aug 15

Trail-based pulses — gradient directionality via MeshRope rendering

Default preset after ~9s of feed
Default preset after ~9s of feed
Aug 15
Agent Sprawl preset — wide discovery, dense trails
Agent Sprawl preset — wide discovery, dense trails
Aug 15
Audit Trail preset — sparse, deliberate pulses
Audit Trail preset — sparse, deliberate pulses
Aug 15
Green pulses — the terminal reading
Green pulses — the terminal reading
Aug 15
Trail length 40, slow travel — comet tails
Trail length 40, slow travel — comet tails
Aug 15
Pink pulse color on dark canvas
Pink pulse color on dark canvas
Aug 15
Trail length 5 — staccato darts
Trail length 5 — staccato darts
Aug 15
Steady State preset — calm equilibrium traffic
Steady State preset — calm equilibrium traffic
Aug 15
c7layouts9 shots

Layout system — arc packing, radial destinations, growth relayout

Radial destinations (the new default) after ~9s
Radial destinations (the new default) after ~9s
Aug 15
Agent Sprawl preset under the new layout engine
Agent Sprawl preset under the new layout engine
Aug 15
The Arc Demo preset — the cycle's showcase configuration
The Arc Demo preset — the cycle's showcase configuration
Aug 15
Tight arc: −45°…45°, radius 150
Tight arc: −45°…45°, radius 150
Aug 15
Arc swept wide: −180°…180°, radius 300
Arc swept wide: −180°…180°, radius 300
Aug 15
Arc destinations at defaults
Arc destinations at defaults
Aug 15
Back to radial with pink pulses
Back to radial with pink pulses
Aug 15
Radial at ~20s — growth relayout has fired
Radial at ~20s — growth relayout has fired
Aug 15

Label system — position, color, and background controls (first DevControls build)

Labels bottom (default) after ~9s of feed
Labels bottom (default) after ~9s of feed
Aug 15
Max label size 32 — dashboard-legible
Max label size 32 — dashboard-legible
Aug 15
Labels left — list-like reading
Labels left — list-like reading
Aug 15
Opaque pills: radius 10, padding up
Opaque pills: radius 10, padding up
Aug 15
Labels right
Labels right
Aug 15
Stroked label backgrounds
Stroked label backgrounds
Aug 15
Labels above nodes
Labels above nodes
Aug 15
Background opacity 0 — floating text
Background opacity 0 — floating text
Aug 15

Actor-based scenarios — typed actors with rich metadata, type-colored nodes

Medium scenario (30 actors) at ~12s
Medium scenario (30 actors) at ~12s
Aug 15
Dev Tools with isometric trails
Dev Tools with isometric trails
Aug 15
Dev Tools (raw) — real tool traffic shapes
Dev Tools (raw) — real tool traffic shapes
Aug 15
Large fully populated
Large fully populated
Aug 15
Large scenario (39 actors) mid-discovery
Large scenario (39 actors) mid-discovery
Aug 15
Medium fully discovered (~25s)
Medium fully discovered (~25s)
Aug 15
Small scenario — 15 actors
Small scenario — 15 actors
Aug 15
Tiny scenario — 5 actors, intimate scale
Tiny scenario — 5 actors, intimate scale
Aug 15

Four distinguishable actor mesh archetypes with states and labels

The four archetypes at rest (spin frozen)
The four archetypes at rest (spin frozen)
Aug 16
Active state markers
Active state markers
Aug 16
Everything at 2.0 — flat and bright
Everything at 2.0 — flat and bright
Aug 16
Low ambient, low direct — the moody read
Low ambient, low direct — the moody read
Aug 16
Grid intensity at 3
Grid intensity at 3
Aug 16
Highlighted state
Highlighted state
Aug 16
Ignored — dimmed out of the story
Ignored — dimmed out of the story
Aug 16
Warning state
Warning state
Aug 16

Curved bezier traffic flows — thickness is volume, color is protocol

Dash style (default), spin frozen
Dash style (default), spin frozen
Aug 16
Arrow style
Arrow style
Aug 16
Curve 4, thickness 3 — heavy arcs
Curve 4, thickness 3 — heavy arcs
Aug 16
Speed cranked — traffic urgency
Speed cranked — traffic urgency
Aug 16
Curve 0 — flows hug the ground
Curve 0 — flows hug the ground
Aug 16
Glow style
Glow style
Aug 16
Plain line flows
Plain line flows
Aug 16
Pulse style
Pulse style
Aug 16

Runtime tag-based regrouping with animated boundary morphs

Default: apps by team, vendors by continent, datasets by kind
Default: apps by team, vendors by continent, datasets by kind
Aug 16
Apps regrouped by criticality — mid-morph identity
Apps regrouped by criticality — mid-morph identity
Aug 16
Apps by datacenter
Apps by datacenter
Aug 16
Apps by language
Apps by language
Aug 16
Apps by pod — the finest grain
Apps by pod — the finest grain
Aug 16
Datasets by sensitive-data flag
Datasets by sensitive-data flag
Aug 16
Curve height 8 over the regrouped field
Curve height 8 over the regrouped field
Aug 16
Vendors regrouped by security policy
Vendors regrouped by security policy
Aug 16

Click-to-focus camera framing + isometric↔top-down angle control

View angle 0 — full isometric
View angle 0 — full isometric
Aug 16
Angle 35 — the working tilt
Angle 35 — the working tilt
Aug 16
Angle 70 — flattening out
Angle 70 — flattening out
Aug 16
Curve height 8
Curve height 8
Aug 16
Two more rotation steps
Two more rotation steps
Aug 16
Rotated a step, back at working angle
Rotated a step, back at working angle
Aug 16
Angle 100 — top-down map
Angle 100 — top-down map
Aug 16
Vendors regrouped by security policy under the rotated camera
Vendors regrouped by security policy under the rotated camera
Aug 16

Flat-overview → 3D-detail camera morph as the focus signal

Angle 100 — the flat overview end of the morph
Angle 100 — the flat overview end of the morph
Aug 16
Apps regrouped by criticality at working angle
Apps regrouped by criticality at working angle
Aug 16
Angle 0 — the 3D detail end
Angle 0 — the 3D detail end
Aug 16
Angle 50 — between contexts
Angle 50 — between contexts
Aug 16
Focus centering offsets in play
Focus centering offsets in play
Aug 16
Rotation 45°
Rotation 45°
Aug 16
Rotation 180° — the far side
Rotation 180° — the far side
Aug 16
Rotation 315°
Rotation 315°
Aug 16

Nested infrastructure — Cloud → Region → Cluster → Namespace → Node → Pod

Groups view — the six-deep nesting
Groups view — the six-deep nesting
Aug 16
Cloud padding 2 — outer layers breathe
Cloud padding 2 — outer layers breathe
Aug 16
Back to groups with the tuned layout
Back to groups with the tuned layout
Aug 16
Rotation 210° over groups
Rotation 210° over groups
Aug 16
Actor spacing 3
Actor spacing 3
Aug 16
Pod padding 0 — dense cores
Pod padding 0 — dense cores
Aug 16
Topology from above
Topology from above
Aug 16
Topology view of the same estate
Topology view of the same estate
Aug 16

Pluggable layout strategies — grid vs spiral blob packing inside rugs

Groups view at defaults
Groups view at defaults
Aug 16
Grid packing from above — the comparison plate
Grid packing from above — the comparison plate
Aug 16
Groups view, apps by criticality
Groups view, apps by criticality
Aug 16
Curve height 8
Curve height 8
Aug 16
Spiral at rotation 180°
Spiral at rotation 180°
Aug 16
Spiral packing from above
Spiral packing from above
Aug 16
Topology, grid packing (row by row)
Topology, grid packing (row by row)
Aug 16
Topology, spiral packing (grows from corner)
Topology, spiral packing (grows from corner)
Aug 16

Incremental scene diffing — actors animate in, out, and to new positions

Progressive Filter, frame 1
Progressive Filter, frame 1
Aug 16
Churn — 100 actors cycling
Churn — 100 actors cycling
Aug 16
Deep Nest Drill
Deep Nest Drill
Aug 16
Frame 2 — vendors exiting
Frame 2 — vendors exiting
Aug 16
Frame 3 — the narrowed field
Frame 3 — the narrowed field
Aug 16
Regroup scenario mid-story
Regroup scenario mid-story
Aug 16
Scale Storm — 200 actors arriving
Scale Storm — 200 actors arriving
Aug 16
Static mode — the c11 scenarios without transitions
Static mode — the c11 scenarios without transitions
Aug 16

Three coexisting view modes — topology, group-by-tag, geography

Topology mode (default)
Topology mode (default)
Aug 16
Geography mode — actors on the map
Geography mode — actors on the map
Aug 16
Scale Storm grouped — 200 actors in tag rugs
Scale Storm grouped — 200 actors in tag rugs
Aug 16
Group mode from above
Group mode from above
Aug 16
Group mode at default tags
Group mode at default tags
Aug 16
Region Migration dataset mid-transition
Region Migration dataset mid-transition
Aug 16
Scale Storm dataset in geography mode
Scale Storm dataset in geography mode
Aug 16
Topology from above
Topology from above
Aug 16

MCP server fleet views — flat, usage-sized, and callers

Flat Fleet — the roster
Flat Fleet — the roster
Aug 15
Another selection — a different call neighborhood
Another selection — a different call neighborhood
Aug 15
A server selected — depth-2 callers highlighted
A server selected — depth-2 callers highlighted
Aug 15
Callers View — who calls what, dataflows drawn
Callers View — who calls what, dataflows drawn
Aug 15
Usage view with a hot server selected
Usage view with a hot server selected
Aug 15
Usage-Sized Fleet — servers scaled by traffic
Usage-Sized Fleet — servers scaled by traffic
Aug 15
/experiments/c27.mcp-server-fleet/
/experiments/c27.mcp-server-fleet/
Aug 15

Google-Maps-style semantic zoom — Company → Teams → Apps by clicking

Company level — the whole org as one block
Company level — the whole org as one block
Aug 16
Apps level — the full decomposition
Apps level — the full decomposition
Aug 16
A team expanded at app level (honest ceiling: 4 click-driven states)
A team expanded at app level (honest ceiling: 4 click-driven states)
Aug 16
Teams level after drilling in
Teams level after drilling in
Aug 16

View contexts — wrapper components that pre-configure QMap (QMapPolicyViolation)

The Policy Violation context — violating flow highlighted by the wrapper's defaults
The Policy Violation context — violating flow highlighted by the wrapper's defaults
Aug 15
Same context after ambient motion settles — honest maximum for a single-view cycle
Same context after ambient motion settles — honest maximum for a single-view cycle
Aug 15
/experiments/c16.view-contexts/
/experiments/c16.view-contexts/
Aug 15
/c20/
/c20/
Aug 15
/c20/wireframes/wf1/partner-portal-v1/portal
/c20/wireframes/wf1/partner-portal-v1/portal
Aug 15
/c20/wireframes/wf1/partner-portal-v1/partner
/c20/wireframes/wf1/partner-portal-v1/partner
Aug 15
/about
/about
Aug 15
/insights
/insights
Aug 15
/c8/wireframes/wf1/signal-column-flow-v1/evidence-to-action-flow
/c8/wireframes/wf1/signal-column-flow-v1/evidence-to-action-flow
Aug 15
/c8/
/c8/
Aug 15
/c6/wireframes/wf1/dashboard-v1/inventory/api-keys/detail
/c6/wireframes/wf1/dashboard-v1/inventory/api-keys/detail
Aug 15
/c6/
/c6/
Aug 15
/c5/
/c5/
Aug 15
/c5/wireframes/wf1/agent-inventory-v1/sessions
/c5/wireframes/wf1/agent-inventory-v1/sessions
Aug 15
/c4/wireframes/wf1/agents-v1/sessions
/c4/wireframes/wf1/agents-v1/sessions
Aug 15
/c4/
/c4/
Aug 15
/c3/wireframes/wf1/dataflows-v1/overview
/c3/wireframes/wf1/dataflows-v1/overview
Aug 15
/c3/
/c3/
Aug 15
/c17/wireframes/wf1/policy-definition-v1/control-definition
/c17/wireframes/wf1/policy-definition-v1/control-definition
Aug 15
/c17/
/c17/
Aug 15
/c16/mockups/wf5.m1/control-plane-v1/integrations
/c16/mockups/wf5.m1/control-plane-v1/integrations
Aug 15
/c16/
/c16/
Aug 15
/c15/
/c15/
Aug 15
/c15/wireframes/wf2/agent-native-v1/risk-posture
/c15/wireframes/wf2/agent-native-v1/risk-posture
Aug 15
/c13/
/c13/
Aug 15
/c13/wireframes/wf1/ai-agent-policies-v1/remediation
/c13/wireframes/wf1/ai-agent-policies-v1/remediation
Aug 15
/c10/
/c10/
Aug 15
/c10/wireframes/wf1/security-global-overview-v2/inventory
/c10/wireframes/wf1/security-global-overview-v2/inventory
Aug 15
/c1/
/c1/
Aug 15
/c1/wireframes/wf1/policy-compliance-v1/violation
/c1/wireframes/wf1/policy-compliance-v1/violation
Aug 15
/c0/
/c0/
Aug 15
/c0/wireframes/wf1/vendors-v1/overview
/c0/wireframes/wf1/vendors-v1/overview
Aug 15
/components/coverage
/components/coverage
Aug 15
/components/philosophy
/components/philosophy
Aug 15
/c2/
/c2/
Aug 15
/c14/
/c14/
Aug 15
/c12/
/c12/
Aug 15
/components/agent/agent-pawn
/components/agent/agent-pawn
Aug 15
/pages/policy-detail
/pages/policy-detail
/pages/security-overview
/pages/security-overview
Aug 15
/layer/data-components
/layer/data-components
Aug 15
/components/dev-controls
/components/dev-controls
Aug 15
/visualization
/visualization
Aug 15
/components/security/security-violations-table
/components/security/security-violations-table
Aug 15
/components/security/security-policy-skin
/components/security/security-policy-skin
Aug 15
/components/alert/alert-config
/components/alert/alert-config
Aug 15
/components/security/security-data-flow
/components/security/security-data-flow
Aug 15
/patterns/data-table
/patterns/data-table
Aug 15
/components/security/security-policy-card
/components/security/security-policy-card
Aug 15
/figma/prose
/figma/prose
Aug 15
/patterns/marketing
/patterns/marketing
Aug 15
/method
/method
Aug 15
/patterns
/patterns
Aug 15
/components/table/ux-table-list-header
/components/table/ux-table-list-header
Aug 15
/components/interactive/ux-button
/components/interactive/ux-button
Aug 15

Releases & deploys

Layer releases 4

v0.9.10Aug 13v0.9.10: integration connector set (c61) — IntegrationCard + IntegrationLogo, 20 third-party logos, surface-logo token, gear icon
v0.9.9Aug 12v0.9.9: thin-plus icon
v0.9.8Aug 12v0.9.8: compliance + policy-config component sets (c65)
v0.9.7Aug 11v0.9.7: sentence pill sizing + ExpandSection prose wrapping (c64 V5 prerequisites)

Design-site deploys 0

No deploys recorded this week.

Note: Deploys come from this checkout's deploy-branch reflog, which starts 2026-10-16.

Qpoint Brand Style Guide