Skip to content

fix: rework agent readiness scoring for realistic scores#18

Merged
chiruu12 merged 2 commits into
mainfrom
feat/launch-prep
May 11, 2026
Merged

fix: rework agent readiness scoring for realistic scores#18
chiruu12 merged 2 commits into
mainfrom
feat/launch-prep

Conversation

@chiruu12
Copy link
Copy Markdown
Owner

@chiruu12 chiruu12 commented May 9, 2026

Summary

The old agent readiness score gated 50 points (out of 100) behind files nobody has — devcard.json (20pts), llms.txt (10pts), AGENTS.md (20pts, not even tracked). A developer with perfect repos maxed out at ~50.

New scoring rewards things developers already do that make profiles machine-parseable:

Signal Old New
Structured READMEs 15 15
Stack/dependency files 10 15 (graduated)
Topics/metadata 10 12
Repo descriptions 0 10
CI adoption 5 8
Test adoption 0 8
Commit quality 0 8
Classification 10 8
License adoption 0 6
devcard.json 20 5 (bonus)
llms.txt 10 5 (bonus)
AGENTS.md 20 (dead) removed

Real-world scores now make sense:

  • chiruu12: 63 (was ~35)
  • karpathy: 50 (was ~30)
  • torvalds: 34 (was ~18)

Test plan

  • 365 tests pass (4 new scoring tests added)
  • Lint clean
  • Verified on 4 real profiles

Reward things devs already do (stack, CI, tests, descriptions,
commit quality) instead of gating 50% on files nobody has.
devcard.json/llms.txt are now 5pt bonuses, not requirements.
Copilot AI review requested due to automatic review settings May 9, 2026 21:39
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request updates the agent readiness scoring rubric to produce more realistic 0–100 scores by shifting weight from rarely-present “agent files” to common, machine-parseable repository signals (docs/stack/metadata/CI/tests/licenses/commit hygiene).

Changes:

  • Reworked compute_agent_readiness_score to use a new 100-point rubric with graduated stack depth, repo description coverage, test/license adoption, and commit-quality contributions, while making devcard.json / llms.txt small bonuses.
  • Updated and expanded scoring tests to match the new rubric and validate new signals (stack graduation, commit quality, repo descriptions).
  • Adjusted expected “high score” thresholds and clamping tests for the new distribution.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
src/devcard/analyzers/scoring.py Replaces the old agent-readiness rubric with a new weighted scoring model based on common repo signals + small bonuses for agent-specific files.
tests/test_scoring_dual.py Updates existing agent-readiness tests and adds new cases to cover the new scoring signals and expected score ranges.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 103 to +105
Rubric:
- devcard.json exists: 20 pts
- llms.txt exists: 10 pts
- Structured READMEs (docs_adoption): 15 pts
- Dependency files/stack: 10 pts (>=5 items=10, >=1=5)
- Topics/metadata coverage: 10 pts (proportional)
- Classification coverage: 10 pts (proportional)
- CI adoption: 5 pts
- AGENTS.md in active repos: 20 pts (reserved, returns 0)
- Dependency files/stack depth: 15 pts (graduated)
Comment on lines +161 to +164
if devcard.commit_quality is not None and devcard.commit_quality.commits_analyzed > 0:
conv_score = min(devcard.commit_quality.conventional_commits_pct / 100, 1.0)
msg_score = min(devcard.commit_quality.avg_message_length / 72, 1.0)
score += (conv_score * 0.6 + msg_score * 0.4) * 8
…magic number

1. Rubric comment: "Structured READMEs" → "Documentation adoption (docs signal)"
   to accurately reflect that docs_adoption measures the FILE_PATTERNS docs
   signal, not specifically structured READMEs.

2. Magic number 72 → _IDEAL_COMMIT_MSG_LENGTH constant. 72 is the git
   convention for max commit subject line length.
@chiruu12 chiruu12 merged commit 090c89a into main May 11, 2026
3 checks passed
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.

2 participants