Context
Maturity scoring (IQ Scan) logic is currently hardcoded in backend/services/scanner.py. Adjusting weights, disabling a criterion, or shifting stage thresholds requires a code change and redeploy. Different workspaces have different priorities (UC compliance, SQL coverage, etc.).
PR #18 (RFC by @stuart-gano) drafts a config-driven engine: a YAML default, Lakebase admin overrides, and a Scoring Config admin UI. This epic captures the work to land it cleanly for Workbench 0.2.
Goal
Workspace admins can edit point weights, toggle criteria on/off, and shift stage thresholds without a code change — with safe defaults, server-side validation, and version-stamped scan history.
Work
Sub-task issue numbers added once filed.
Acceptance
- Admin Dashboard exposes a "Scoring Config" tab that loads, edits, saves, and resets config
- Saving a config change is reflected on the next scan
- Scan results are tagged with a
config_version so historical comparisons remain interpretable
- Server rejects invalid configs (non-contiguous stage ranges, criteria points > 100)
jobs/score_all_spaces.py shares the same scoring engine as the app (no inline duplicate)
- 60+ unit tests pass; manual E2E checklist completed in the PR
docs/genie-space-maturity.md published
Open questions resolved by this epic
(All from PR #18's RFC discussion)
- Stage threshold validation → enforce contiguous ranges in API (Task 5)
- Custom criterion ID without registered Python fn → surface UI warning (Task 4)
- Score history after config change → version-tag scan rows; no auto re-score (Task 5)
- Batch job config → import shared engine (Task 6)
Reference
Context
Maturity scoring (IQ Scan) logic is currently hardcoded in
backend/services/scanner.py. Adjusting weights, disabling a criterion, or shifting stage thresholds requires a code change and redeploy. Different workspaces have different priorities (UC compliance, SQL coverage, etc.).PR #18 (RFC by @stuart-gano) drafts a config-driven engine: a YAML default, Lakebase admin overrides, and a Scoring Config admin UI. This epic captures the work to land it cleanly for Workbench 0.2.
Goal
Workspace admins can edit point weights, toggle criteria on/off, and shift stage thresholds without a code change — with safe defaults, server-side validation, and version-stamped scan history.
Work
Sub-task issue numbers added once filed.
Acceptance
config_versionso historical comparisons remain interpretablejobs/score_all_spaces.pyshares the same scoring engine as the app (no inline duplicate)docs/genie-space-maturity.mdpublishedOpen questions resolved by this epic
(All from PR #18's RFC discussion)
Reference