|
| 1 | +--- |
| 2 | +date_created: 2026-07-24 |
| 3 | +date_modified: 2026-07-24 |
| 4 | +title: "The coverage roster lands — a filterable org column in front of the workbench flow, fewest corpus first" |
| 5 | +lede: "The workbench gets its missing first move: a sticky left column listing every org the workspace client can see, filterable by name, sorted by corpus count ascending — so the organizations that could and should have more corpus content surface at the top, zero-corpus in red, one click from their card." |
| 6 | +publish: true |
| 7 | +authors: |
| 8 | + - Michael Staton |
| 9 | +augmented_with: |
| 10 | + - Claude Code on Claude Fable 5 |
| 11 | +files_changed: |
| 12 | + - services/record-surrealdb-resolver/src/resolver.ts |
| 13 | + - services/record-surrealdb-resolver/src/handlers.ts |
| 14 | + - services/workspace/src/capabilities.ts |
| 15 | + - apps/org-workbench/src/OrgRoster.svelte |
| 16 | + - apps/org-workbench/src/App.svelte |
| 17 | + - apps/org-workbench/src/app.css |
| 18 | + - apps/org-workbench/src/lib/org-client.ts |
| 19 | + - apps/org-workbench/src/lib/types.ts |
| 20 | +tags: |
| 21 | + - Org-Workbench |
| 22 | + - Corpus |
| 23 | + - Coverage |
| 24 | + - Organizations |
| 25 | +--- |
| 26 | + |
| 27 | +# The coverage roster — the column in front of the flow |
| 28 | + |
| 29 | +## What shipped ([#32](https://github.com/lossless-group/augment-it/issues/32)) |
| 30 | + |
| 31 | +Until now the workbench flow started with a search box — which presumes you |
| 32 | +already know which org to work. The actual operator job is often the |
| 33 | +opposite: **find the orgs whose corpus is thin.** The new `OrgRoster` column |
| 34 | +answers it directly: |
| 35 | + |
| 36 | +- Every organization the workspace client can see (the default filter IS the |
| 37 | + workspace: `client_access CONTAINS` the active client, `reach-edu` today — |
| 38 | + switching workspaces re-scopes the roster automatically). |
| 39 | +- Sorted by **corpus count ascending** by default (toggle to descending); |
| 40 | + zero-corpus counts render red. |
| 41 | +- Each row: name + `corpus · links · streams · people` counts. |
| 42 | +- Name/slug filter box; click a row → the org card opens; every write in the |
| 43 | + workbench refreshes the counts via the existing `entity-updated` event. |
| 44 | + |
| 45 | +Server-side, one new read: `organization.roster` — counts ride `array::len` |
| 46 | +over the entity lists plus a graph `count(<-affiliations)` for people; no |
| 47 | +arrays cross the wire. Proven live before wiring: 319 reach-edu orgs, with |
| 48 | +the long zero-corpus tail the sort is built to surface. |
| 49 | + |
| 50 | +## Lineage |
| 51 | + |
| 52 | +This is **layer 2 of the corpus-coverage issue** |
| 53 | +([[context-v/issues/Corpus-Items-Not-Visible-On-Person-Cards-Coverage-Hard-To-Assess|#20]]) — |
| 54 | +"the real job: which relevant orgs/people have NO corpus items?" — promoted |
| 55 | +from "folds into the component-library sweep" to its own build at the |
| 56 | +operator's request. The per-card visibility half shipped this morning; with |
| 57 | +the roster, coverage is now assessable end to end: find the gap in the |
| 58 | +column, open the card, fill it, watch the count move. |
| 59 | + |
| 60 | +## Verification |
| 61 | + |
| 62 | +Resolver + workspace typechecks clean; svelte-check 93 files / 0 errors; |
| 63 | +org-workbench build green; both service containers rebuilt (resolver for the |
| 64 | +verb, workspace for the capability map) and reconnected. Operator |
| 65 | +walk-through: the roster should open with zero-corpus orgs on top |
| 66 | +(Philanthropy Roundtable et al.), filter as you type, and the New America |
| 67 | +row should show its 1 corpus item from this afternoon. |
0 commit comments