0.0 / 30
What changed in the harness
Selection accuracy 95→95, token cost up 1%, unconfirmed writes 0%→0%.
Category breakdown
Where the score comes from.
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
01Safety
02Legibility
25.4 / 30
03Economics
19.7 / 20
04Discoverability
17.2 / 20
Highest-impact fix
Estimated gain +30 pointsAdd explicit identity and permission preflight tools
Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
Defects and rewrites.
7 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
get_momentum |
no_return_description |
Get current developer momentum and return a briefing containing the last checkpoint, next step, blockers, and branch context. Use this to understand where the developer left off. Pass tier or model to control detail level. |
get_reentry_briefing |
no_return_description |
Get a synthesized re-entry briefing that helps a developer understand where they left off. Returns the briefing with focus, recent activity, and suggested next steps. Pass tier or model to control detail level. |
get_current_task |
no_return_description |
Return a bird's eye view of all active Claude sessions, showing what each session is working on, which branch it is on, and when it last did something. Useful when running multiple parallel sessions across worktrees. |
save_checkpoint |
no_return_description |
Save a development checkpoint and return confirmation that it was recorded. Call this after completing a task or meaningful piece of work, not just at end of session. Each checkpoint helps the next session (or developer) pick up exactly where you left off. |
get_context_snapshot |
no_return_description |
Return a compact context snapshot containing what you were doing, what is next, and momentum. Use this for quick orientation without a full briefing. |
get_whats_hot |
no_return_description |
Return a summary of activity across all registered projects, sorted by momentum, showing what the developer is working on across their entire portfolio. |
setup_project |
no_return_description |
Set up KeepGoing hooks and instructions and return a status message describing what was configured. Use scope "user" for global setup (all projects) or "project" for per-project setup. |
Selection evidence
Confusable tool pairs.
6 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
get_momentum |
get_context_snapshot |
high | Both describe near-identical function: get_momentum reports 'last checkpoint, next step, blockers' and says 'understand where the developer left off', while get_context_snapshot reports 'what you were doing, what is next, and momentum' for 'quick orientation'. A task like 'where did I leave off' or 'what's next' maps plausibly to either. |
get_momentum |
get_reentry_briefing |
high | Both take identical tier/model schema and serve the same purpose: get_momentum 'understand where the developer left off' and get_reentry_briefing 'understand where they left off' with focus/recent activity/next steps. A re-entry or orientation task could select either. |
get_current_task |
get_context_snapshot |
medium | The name get_current_task strongly suggests 'my current task', but its description is a multi-session overview; get_context_snapshot covers personal 'what you were doing'. A task phrased 'what am I currently working on' could be routed to either. |
get_current_task |
get_whats_hot |
medium | Both are activity-overview tools: get_current_task summarizes active Claude sessions/branches, get_whats_hot summarizes activity across projects. A vague 'give me an overview of what's going on' task could select either depending on session vs project framing. |
get_session_history |
get_reentry_briefing |
medium | A task like 'what did I work on recently' fits both the chronological session-checkpoint list and the synthesized re-entry briefing with 'recent activity'; the agent must infer whether raw history or a synthesized summary is wanted. |
get_momentum |
get_current_task |
medium | For a task like 'what am I working on now', get_momentum (last checkpoint, next step, blockers) returns the personal state while get_current_task's name matches 'current task' but its description is the parallel-session overview; either could be chosen. |
Compare the field