Skip to content

Recalibrate skill-curator inventory health score to frozen 5-band scale - #10

Merged
RasputinKaiser merged 1 commit into
mainfrom
recalibrate-curator-inventory-score
Jul 21, 2026
Merged

Recalibrate skill-curator inventory health score to frozen 5-band scale#10
RasputinKaiser merged 1 commit into
mainfrom
recalibrate-curator-inventory-score

Conversation

@RasputinKaiser

Copy link
Copy Markdown
Owner

What

Recalibrates skills/skill-curator/scripts/curator.py's score(findings) so the inventory health score discriminates instead of top-saturating near 100.

Why

The old model started at 100 and subtracted small penalties, so any inventory that wasn't badly broken trivially scored ~90-100. It didn't discriminate among decent inventories and the A-F bands were lenient.

Changes (scoring surface only)

  • Baseline drops to 96 (mild curation tax — no near-free perfect score).
  • Steeper, graduated deductions for the common sprawl findings (duplicate surfaces, collision clusters, near-dupes, prune candidates) so scores spread across the range.
  • Letter grades replaced with the frozen bands shared with plugin-audit: 92-100 Exceptional · 82-91 Strong · 68-81 Solid · 50-67 Needs work · <50 Poor (new grade_band() helper).
  • Band is computed from the rounded (displayed) score so the label can never contradict the number.
  • render_md health line now prints the band label (unchanged interpolation of the grade variable).
  • selftest score assertions updated: a clean inventory reaches Exceptional; a sprawl-heavy fixture lands demonstrably lower (Solid/Needs work/Poor).

score() keeps its (int, str) return arity. No other files, versions, or release metadata touched.

Verification

  • python3 scripts/validate.py → PASS 11/11
  • python3 skills/skill-curator/scripts/curator.py selftest → 87/87 passed
  • report --no-plugins --root skills health line → Strong (86/100) (frozen band label)

🤖 Generated with Claude Code

…and scale

score() was a lenient deduct-from-100 model whose small penalties clustered
any not-badly-broken inventory near 100 (top-saturated, non-discriminating).

Recalibrate:
- Start at 96 (mild curation tax; no near-free perfect score).
- Steeper, graduated deductions for the common sprawl findings (duplicate
  surfaces, collision clusters, near-dupes, prune candidates) so scores spread.
- Replace A-F letters with the frozen bands shared with plugin-audit:
  92-100 Exceptional | 82-91 Strong | 68-81 Solid | 50-67 Needs work | <50 Poor.
- Band the rounded (displayed) score so the label never contradicts the number.
- render_md health line now prints the band label (via the same grade variable).
- selftest asserts a clean inventory reaches Exceptional and a sprawl-heavy
  fixture lands demonstrably lower (Solid/Needs work/Poor).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@RasputinKaiser
RasputinKaiser merged commit 1e3b86b into main Jul 21, 2026
2 checks passed
RasputinKaiser added a commit that referenced this pull request Jul 21, 2026
Recalibrated both audit scorers to be demanding and discriminating:
- Graduated credit + leanness rewards; skill_quality gains machine signal (floor 60->74.4)
- N/A dimensions redistribute weight instead of a free max (hooks no-hooks free-10 removed)
- Frozen 5-band grade scale (Exceptional/Strong/Solid/Needs work/Poor); 92+ genuinely hard
- NEW scripts/calibrate.py saturation meter + CI guardrail; self-score floor 57->70
- Integration fix: repoint calibrate selftest fixtures to score.py tier builders

Landed via PRs #10-#14. Merged-tree: validate 11/11, curator 87/87, score+calibrate selftests green, calibrate --check passes over the real inventory.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@RasputinKaiser
RasputinKaiser deleted the recalibrate-curator-inventory-score branch July 21, 2026 05:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant