Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions docs/dev/bias-profile.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,17 @@ interval lower bound (not the mean) as the surfacing gate.
- `src/screens/BiasProfile.svelte` - the diagnostics modal. Reads
`bias_summary` and `biasListProcessedThreads` on mount;
per-thread observations are pulled on demand when a row is
expanded. Three sections: per-bias evidence table, processed
conversations list with drill-down to observations, footer
citing the math constants.
expanded. Four sections: current-conversation status, bias
landscape chart, per-bias evidence cards with drill-down, and
the processed-conversations list, plus a footer citing the math
constants. The screen is Svelte wire-up only per the frontend
split (see `docs/dev/frontend-organization.md`).
- `src/lib/ui/bias-profile.ts` - the modal's pure display
primitives: row sorting, the RENDER_CAP'd rendered set, catalog
lookups tolerant of unknown keys, number/verdict formatters, the
per-row interpretation prose, the landscape chart's hue and
width geometry, and the current-conversation empty-state copy.
Unit-tested in `tests/bias-profile.test.ts`.
- `supabase/schema.sql` (bias-profile section) - the tables
(`bias_observations`, `bias_summary`, `bias_reactions`), the
columns on `threads` (`bias_processed_at`,
Expand Down
5 changes: 4 additions & 1 deletion docs/dev/frontend-organization.md
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,10 @@ component "to consolidate." Each is locally reasonable.
The aggregate is a layer rebuilt one inch at a time.

Periodically (and after any non-trivial UI work), walk
`src/components/*.svelte` and ask, per file:
`src/components/*.svelte` AND `src/screens/*.svelte` and ask, per
file (the screens are where the convention drifts hardest - they
are the biggest files, and "it's only used by this screen" is the
exact rationalization the convention exists to refuse):

1. **What's in the `<script>` block besides imports, prop
destructuring, `$state` / `$derived` declarations, and
Expand Down
Loading