Skip to main content
Forge Docs

Health Scoring

How Forge calculates your project's health score from 0-100 (A-F grade) and how to improve it.

Forge assigns your project a health score from 0 to 100, displayed as a letter grade. The score reflects real problems — missing specs, empty task boards, failed tasks, drift from your plan.

Checking Your Score

L1 (plugin):

/forge:status

L2 (orchestrator):

forge status

Both show the same health dimensions. The orchestrator's score includes task and drift data that the plugin doesn't have access to.

The Letter Grades

GradeScoreMeaning
A90-100Project is well-governed. Spec exists, tasks are tracked, no critical issues.
B80-89Minor gaps. A few warnings but nothing blocking.
C70-79Needs attention. Critical findings or significant drift detected.
D60-69Serious problems. Multiple critical issues or heavy drift.
F0-59Project governance is broken. Immediate remediation needed.

How the Score is Calculated

The score starts at 100 and deducts for problems found:

Finding SeverityDeductionExample
Critical-20 pointsNo .forge/ directory, no spec file, failed tasks
Warning-5 pointsMissing README, no knowledge entries, empty task board
Info0 pointsSuggestions and observations (no score impact)

Drift penalty: If Forge detects that your work has drifted from your spec, an additional penalty applies:

  • drift_score * 30 points deducted
  • Drift of 0.0 (no drift) = 0 penalty
  • Drift of 0.5 (moderate) = -15 points
  • Drift of 1.0 (severe) = -30 points

The score is clamped between 0 and 100.

Example Calculations

ScenarioFindingsScore
Clean project (spec + README + tasks + knowledge)0 critical, 0 warning100 (A)
Missing spec and README0 critical, 2 warning90 (A)
No .forge/ directory1 critical, 2 warning70 (C)
No .forge/ + moderate drift (0.5)1 critical, 2 warning, drift 0.555 (F)
3 critical issues3 critical, 0 warning40 (F)

What Gets Checked

The governance checker examines 5 dimensions:

1. Project Structure

  • Does .forge/ exist and contain valid state?
  • Is there a SPEC.md or equivalent vision document?
  • Is there a README.md?

2. Task Health

  • Are there tasks in the plan?
  • Are any tasks in a failed state?
  • Is the task board empty?

3. Knowledge Base

  • Has the project captured any knowledge (decisions, learnings, patterns)?
  • An empty knowledge base is an Info finding, not a deduction.

4. Drift Detection

  • Compares current task progress against the original spec
  • Uses the configured AI brain (OpenAI or rule-based) to assess alignment
  • Drift score of 0.0 = perfect alignment, 1.0 = completely diverged

5. Agent Activity

  • Are agents making progress?
  • Are there stale assignments (tasks assigned but not started)?

Improving Your Score

ProblemGrade ImpactFix
No spec fileWarning (-5)Create a SPEC.md describing your project goals
No READMEWarning (-5)Add a README.md
Failed tasksWarning per failure (-5)Review and retry or reassign failed tasks
No .forge/Critical (-20)Run forge init
Heavy driftUp to -30Run forge sync to reconcile, or update your spec to reflect intentional changes
Empty knowledgeInfo (0)Use forge_capture_knowledge to record decisions and learnings

Plugin vs. Orchestrator Health

The plugin's governance-mcp server (L1) and the orchestrator's health check (L2) measure different things:

DimensionPlugin (L1)Orchestrator (L2)
Git statusYesNo
Test file ratioYesNo
Security scanYesNo
Code metricsYesNo
Task healthNoYes
File lockingNoYes
Drift detectionNoYes
Knowledge baseNoYes
Spec complianceNoYes

The plugin focuses on code quality indicators visible from the filesystem. The orchestrator focuses on project governance state in .forge/. Both are valid — they measure different aspects of project health.

Health Scoring | NXTG.AI