Settings / profiles / knobs — assessment and programme¶
Date: 2026-08-11
Scope: Config knobs, module/workflow profiles, Settings UI, install-profile clarity, env catalog.
Out of scope: Speaker identity/voice profile subsystem (except Speakers tab pointer).
Live architecture: config_architecture.md · User guide: settings.md
Verdict¶
TranscriptX has a working dual-stack config system (53 / 718 / 16 / 734 ownership) and a capable Settings hub, but taxonomy and docs lagged the code: overloaded “profile”, orphaned data/profiles fixtures, dual validation paths, and no dedicated settings guide. This programme restores clarity, then cleans and hardens without restarting a full Pydantic migration.
Assessment findings¶
ID |
Finding |
Severity |
|---|---|---|
F1 |
No live |
High (accessibility) |
F2 |
“Profile” means install / UI preset / disk module profile / in-config semantic map / STT / speaker |
High (clarity) |
F3 |
|
Medium |
F4 |
PROFILE targets |
Low |
F5 |
Dual |
Medium (hardening) |
F6 |
Resolver tempfile rebuild debt remains |
Medium (hardening) |
F7 |
|
Low (fixed this PR) |
F8 |
Common Settings still labelled “Semantic Similarity v2” after public rename |
Medium (UX; fixed this PR) |
F9 |
Motif B14 keys in Common but missing from semantic profile guided_fields |
Low (fixed this PR) |
F10 |
Legacy |
Medium (hardening; fixed this PR) |
F11 |
|
Low (follow-up) |
F12 |
Archived plans still advertise stale 41/598/10 metrics |
Docs trap (call out only) |
Programme phases¶
Phase 0 — Organisation (this PR)¶
Live user settings guide + developer architecture + this assessment
Taxonomy in TERMS / STORAGE / installation cross-links
Index wiring (USER_INDEX, DEV_INDEX, Sphinx
docs/index.md)
Phase 1 — Cleanup (this PR + small follow-ups)¶
Docstring / UX label honesty; motif guided_fields alignment
.env.examplelegacy reject comments; allowlist purpose honestyDual-validation and dual-semantic-store comments (no behaviour change yet)
Follow-up: decide whether to delete, relocate, or document-only keep
data/profilesfixtures
Phase 2 — Hardening (follow-up PRs)¶
Track |
Goal |
Risk |
|---|---|---|
H1 |
Collapse object + leaf validation behind one API |
Medium — file load behaviour |
H2 |
Replace resolver tempfile rebuild |
Medium — run/Settings parity |
H3 |
Use |
Low |
H4 |
Clarify or merge in-config |
High product decision |
H5 |
Optional bootstrap of seed profiles into |
Product decision |
H6 |
Install-profile marker simplification (pre_release residual) |
Low if docs stay honest |
Done criteria (Phase 0–1)¶
User can find Settings guidance from USER_INDEX / Sphinx
Developer can find live architecture without reading archive plans
Load-order docstring matches tested behaviour
Semantic Similarity Common groups no longer say “v2”
Legacy audio
*_ENABLEDenv keys marked rejected in.env.examplePhase 2 tracks H1–H6 tracked but not required for this PR
Non-goals¶
New analysis knobs or registry count churn for its own sake
Speaker profiles contract changes
Re-opening full ownership migration /
analysis.pystructural split