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
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
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 ago | outside any repo | |
qplane/.env.local | secret | ●●● high | r 3w 0e 1 | Claude Code 1 install | 3d ago | ⑂qpoint/qplane→ | |
qtap-installer-win/certs/qpoint-codesign.p12 | secret | ●●● high | r 2w 0e 0 | Claude Code 1 install | 4d ago | ⑂qpoint/qtap-installer-win→ | |
~/Downloads/pipeline-contacts.csv | PII | ●●○ medium | r 2w 0e 0 | Claude Desktop 1 install | 5h ago | outside any repo | |
~/exports/okta-groups-2026-08.csv | PII | ●●○ medium | r 0w 1e 0 | Gemini 1 install | 6d ago | outside any repo | |
infra/s3-staging.tf | config | ●○○ low | r 1w 0e 1 | Codex 1 install | 12d ago | ⑂qpoint/infra→ | |
src/analytics/tsconfig.json | config | ●○○ low | r 0w 0e 1 | Claude Code 1 install | 15d ago | ⑂qpoint/qplane-ui→ | |
src/dispatch/retry.ts | source | ○○○ none | r 0w 1e 1 | Claude Code 1 install | 13d ago | ⑂qpoint/qplane→ | |
src/dispatch/webhook.ts | source | ○○○ none | r 1w 0e 1 | Claude Code 1 install | 13d ago | ⑂qpoint/qplane→ | |
infra/CHANGELOG.md | other | ○○○ none | r 0w 0e 1 | Codex 1 install | 12d ago | ⑂qpoint/infra→ | |
reports/q2-churn-summary.md | other | ○○○ none | r 0w 1e 0 | Claude Desktop 1 install | 14d ago | no 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.