Phase 1
Files

Source: c81 phase1-pages — Files (PRO-35); the whitespace page — c12 files grammar at sensitive-category grain, agent-mini-cards' read / write / edit breakdown as the row micro-viz, the c77 sensitive-file session as the drill target

fixture state

11 files touched by agents, 5 sensitive — 1 credential read and redacted by policy.

~/.aws/credentials — Codex CLI, Marcus Chen · Aug 19 · in qpoint/infra · 2 secrets read in ordinary work

category mix

Files

ranked credential → secret → sensitivity → last touch · access = read / write (new) / edit (modified)
Category
Sensitivity
Access · r / w / e
Agents
People
Last touch
Repo
~/.aws/credentials
read redacted by policy · finding raised
credential●●● high
r 1w 0e 0
Codex
1 install
12d agooutside any repo
qplane/.env.local
secret●●● high
r 3w 0e 1
Claude Code
1 install
3d agoqpoint/qplane
qtap-installer-win/certs/qpoint-codesign.p12
secret●●● high
r 2w 0e 0
Claude Code
1 install
4d agoqpoint/qtap-installer-win
~/Downloads/pipeline-contacts.csv
PII●●○ medium
r 2w 0e 0
Claude Desktop
1 install
5h agooutside any repo
~/exports/okta-groups-2026-08.csv
PII●●○ medium
r 0w 1e 0
Gemini
1 install
6d agooutside any repo
infra/s3-staging.tf
config●○○ low
r 1w 0e 1
Codex
1 install
12d agoqpoint/infra
src/analytics/tsconfig.json
config●○○ low
r 0w 0e 1
Claude Code
1 install
15d agoqpoint/qplane-ui
src/dispatch/retry.ts
source○○○ none
r 0w 1e 1
Claude Code
1 install
13d agoqpoint/qplane
src/dispatch/webhook.ts
source○○○ none
r 1w 0e 1
Claude Code
1 install
13d agoqpoint/qplane
infra/CHANGELOG.md
other○○○ none
r 0w 0e 1
Codex
1 install
12d agoqpoint/infra
reports/q2-churn-summary.md
other○○○ none
r 0w 1e 0
Claude Desktop
1 install
14d agono cwd

11 files on record across 7 installs and 7 people — the sensitive ones plus enough source and config rows for an honest category mix, not every file an agent ever opened. Every file was touched in 1 session, so the column is not printed. Secrets and credentials: 1 credential redacted by policy, 2 secrets read in ordinary work · 6 reads in all. Access counts are the sample on record (7-day sessions + the four scenario sessions); on event-bearing sessions they cross-foot with the file_access events. Contents are never captured.

Composition notes

  • Question: what sensitive data are agents touching? The whitespace page — no precedent treats files touched by agents as an inventory class (c19), so the grain is the sensitive category, not the path tree: credential → secret → PII → config → source → other, with the access mix (read / write / edit) as the row's micro-viz.
  • Verdict line from filesVerdict(world) (a sharpened verdicts.files, fold-in candidate): files on record, how many sensitive, then the credential read named — agent, person, date, working repo — and the ordinary secret reads as a receipt. Warn when a credential was read; attention in the all-clear state on purpose: two secrets read in the course of work is still a receipt, and a green line would claim nothing was touched. The page says so under the verdict.
  • Framing band = three claims as filter buttons (files touched = reset · sensitive · secrets & credentials read, the one attention device, its sub naming the redaction) plus the category mix as a segment bar with a row of claims, each a filter. The band spends one color: the attention block's sub is the credential fragment alone (red when a credential was read, amber for the ordinary-secrets receipt when none was); the full accounting prints once in the footer, and the mix bar is a grey ramp — tone lives in the table badges, where the credential row already carries the page's red. Band numbers cross-foot with the rows.
  • Table is the raw UxTableList family so ?id= can pre-open a row. Rows from fileRows(world), pre-ranked; sorters on every column; search rides the Path header. People are person chips (→ User detail) and Agents print the technology marks with the install count as text; Sessions is a column only when a file differs from the rest — when every file has the same count the footer says it once. One attention device per row: the category badge (credential red, secret amber). Sensitivity is a neutral mono meter (●●● high … ○○○ none). The access cell is agent-mini-cards' {read, write, edit} breakdown as a mono triplet over a stacked bar scaled to the table's largest row; writes = new files, edits = existing files modified (the world's definition — events say create / write).
  • Repo means the path belongs to one: never for a home-directory path, else the touching session's repo, else a name-prefix match. The session's working repo is context, shown in the access log — so ~/.aws/credentials sits outside any repo while its read happened in qpoint/infra.
  • Expand = three UxTableListExpandSection cards: header (path, badge, meter, repo, access / sessions / people / last touch, the honest "view details →" stub — there is no file-detail page in Phase 1, the row is the detail); the access log, one row per session with op-level detail from events where the session has them (the c77 sensitive-file session shows read 16:44:48 · redacted) and "counts only" where it does not — every row drills to Session detail as evidence; actors (installs, people, repo) and the not-captured note.
  • Derivation: "redacted" and the finding come from the session's file_access.sensitive / scan_finding events, never from the category; the r/w/e counts on event-bearing sessions equal the events. Nothing hand-typed, nothing fabricated — the world already carries what this page needs.
  • Not captured, stated on the page: before/after content ("diff-shaped outcomes") is a standing data ask (c77); secret dwell is a receipt, never a target (c67). Governance (redaction policy, the finding's lifecycle) lives in findings / control-center — linked from Session detail, not designed here.
  • Open: the sample is the sensitive files plus a few ordinary rows — a real deployment lists thousands of source files, and the category-first rank plus the sensitive/secrets filters are the bet that keeps the page readable; whether "other" should hide by default is untested. A path-cluster view (by repo, by directory) is the natural second framing once the data is real.

Qpoint Brand Style Guide