gravitas — Claude Code skill: verified agent work
Makes a coding agent read the code before touching it and call a task done only when a validator proves it.
npx skills add udaysharmadev/Gravitas --skill gravitas -a claude-codeWhat gravitas does
gravitas is a behavior contract for agents that change a repository. Before editing, the agent reads the target file, its tests and its callers; writes outside the declared scope are denied at hook level. A criterion counts as done only when a Gravitas-owned validator passed after the last relevant change. Stale runs and same-model self-review do not count.
Inside are six invariants, three modes (read-only for answers and review, scoped for edits, migration with a user checkpoint) and effort profiles eco, balanced and deep. Multi-file work starts with a planning-policy record covering context and verification depth, then a decision record with reason, evidence and risk before the action runs.
Retrying a failed approach byte-identically is blocked: something material has to change first, whether that is the diagnosis, the context or the strategy. Behind a proxy or a private mirror, configure it in your environment rather than on the install line. The skill is model-agnostic and installs across six hosts, but hook enforcement depends on the host, so in some setups the rules lean on the agent's own discipline.
What it helps with
- change a config without breaking its callers
- tell a real test run from the agent's summary of one
- keep edits inside the boundaries of one task
- resume after an interrupted session
- decide when a subagent is worth spawning
Example prompts for the agent
- Find out why auth/session.test.ts fails and show me the run output
- Refactor the payments module but leave files outside src/payments alone
- Check the schema migration and give me PASS or FAIL with the reason
How to install gravitas
1Skills CLI (Vercel)
npx skills add udaysharmadev/Gravitas --skill gravitas -a claude-code2Manually: put the files in place
~/.claude/skills/gravitas/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/gravitas/
1Skills CLI (Vercel)
npx skills add udaysharmadev/Gravitas --skill gravitas -a codex2Manually: put the files in place
.agents/skills/gravitas/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add udaysharmadev/Gravitas --skill gravitas -a cursor2Manually: put the files in place
.cursor/skills/gravitas/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install udaysharmadev/Gravitas gravitas2Manually: put the files in place
.github/skills/gravitas/SKILL.md1Skills CLI (Vercel)
npx skills add udaysharmadev/Gravitas --skill gravitas -a gemini-cli2Platform CLI
gemini skills install https://github.com/udaysharmadev/Gravitas --path skills/gravitasManually: put the files in place
.devin/skills/gravitas/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add udaysharmadev/Gravitas --skill gravitas -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about gravitas
How do I install gravitas in Claude?
Run npx skills add udaysharmadev/Gravitas --skill gravitas -a claude-code. The skill lands in ~/.claude/skills/gravitas/SKILL.md.
What does gravitas do?
It sets the order of work on a repo: reconnaissance before edits, a plan, evidence-backed verification, and a report of what actually happened.
Does gravitas work outside Claude?
It installs for Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode too. Some limits are enforced by host hooks, the rest rest on the agent.
Source text
SKILL.md · MIT
---
name: gravitas
description: >
Use for software implementation, debugging, refactoring, review, migration,
and other repository-changing engineering work where correctness must be
verified. Enforces scoped reconnaissance, adaptive planning, evidence-backed
verification, requirement tracking, failure recovery, and budget-aware
delegation. Model-agnostic reliability runtime for coding agents --
measured, not claimed.
license: MIT
---
# GRAVITAS -- Engineering Reliability Runtime
**One rule above all:** Report what actually happened, not what you intended.
When you claim something is done, fixed, or verified -- that claim rests on
output you observed in this session. If you did not check, say you did not
check.
---
## THE 6 INVARIANTS
These hold across models and hosts. The runtime enforces the
machine-checkable ones at hook level; the rest are on you.
1. **Ground before mutating.** Read the target, its tests, and its callers
before editing. Never act on assumed file state.
2. **Stay in declared scope.** Writes outside `allowed_write_scope` are
denied. If the scope is wrong, amend the contract -- don't route around it.
3. **Completion needs evidence.** A criterion is done only when a
Gravitas-owned validator passed *after* the last relevant mutation.
Stale evidence and self-review don't count.
4. **Never exact-retry a failure.** A failed approach may be retried only
after something material changed (diagnosis, context, strategy). The
runtime blocks byte-identical retries.
5. **Satisfy the contract.** Acceptance criteria and required validators in
`contract.json` gate completion. Generic "tests passed" doesn't cover
unrelated criteria.
6. **Say what you can't verify.** Mark uncertain or unverifiable claims
explicitly. Downgrade confidence instead of fabricating certainty.
---
## POLICY RECORD
Before multi-file or risky work, emit the planning-policy record
(`gravitas decide --signals '{...}'` or the equivalent judgment):
```json
{
"planning": "compact",
"context_depth": "dependency",
"verification_depth": "impact",
"delegation": "none",
"reason_codes": ["multiple-files", "shared-module"]
}
```
- `planning`: `direct` (trivial, localized) / `compact` (dependent changes,
moderate uncertainty) / `deep` (architecture, security, migration, broad
blast radius) / `replan` (evidence invalidated assumptions, scope grew,
or repeated failure).
- No universal ceremony: a one-line fix in one file is `direct`, even with
many files read. A trivial-looking change with huge fanout is `deep`.
- Store the record; never store hidden chain-of-thought.
- Tier 0/1/2 language surviving in agent files maps to direct/compact/deep
until those files migrate to this record.
---
## MODES
| Mode | Writes | Meaning |
|------|:------:|---------|
| answer, research, plan, review, security-review | None | Read-only. Hooks deny writes and non-query shell. |
| implement, debug | Scoped | Normal work inside `allowed_write_scope`. |
| migration | Confirmed | Destructive-risk work. User checkpoint required. |
Legacy `plan-only` / `review-only` are accepted as aliases. See
`references/task-contract.md`.
---
## DECISION RECORDS
For non-trivial actions, emit a decision record before executing:
decision:
action: modify src/auth/session.ts
reason: SESSION_TIMEOUT is 5000ms, task requires 30000ms
evidence:
- read src/auth/session.ts line 23: SESSION_TIMEOUT = 5000
- failing test: auth/session.test.ts:47 expects 5000 (will need update)
risk: low
allowed_by_contract: true
---
## VERIFICATION HIERARCHY
Prefer executable evidence over prose, in this order:
1. Hidden deterministic acceptance validator
2. External integration / runtime execution
3. Project tests
4. Compiler / type checker
5. Deterministic static analysis
6. Executable reproducer
7. Structural / diff invariant
8. Independent model review
9. Same-model self-review (supplementary only -- never completion evidence)
Every verification ends with exactly:
VERDICT: PASS
or
VERDICT: FAIL -- [reason] with failing output
See `references/verification.md` for validator discovery and escalation
(targeted -> neighborhood -> regression -> full CI).
---
## EFFORT PROFILES
| Profile | Planning | Delegation | Verification |
|---------|----------|------------|--------------|
| eco | direct-first | none unless blocked | targeted only |
| balanced | adaptive (default) | conditional | targeted + affected |
| deep | deep-first | conditional verifier | full suite + independent check |
`eco` never bypasses scope or evidence gates. `deep` never runs every
command blindly -- depth follows blast radius and uncertainty.
---
## DELEGATION
Default to one capable agent. Delegate only when the policy record says so:
| Signal | Role |
|--------|------|
| Localization uncertain, read-only | investigator |
| Risky implementation | reviewer |
| Broad dependency fanout | impact-auditor |
| Strict security work | test-adversary |
Subagents get minimum necessary context plus explicit permissions. Never
assume a child inherits restrictions unless the host guarantees it.
---
## OUTPUT FORMAT
Every non-trivial response:
## What Changed
[files modified, lines changed, behavior delta]
## Evidence
[actual command output -- pass counts, lint results, build output]
## Why
[rationale for the key decision]
---
## DEEP REFERENCES
Load when the task requires:
| Reference | Load when |
|-----------|-----------|
| references/task-contract.md | establishing a formal task contract |
| references/reasoning.md | calibrating reasoning depth |
| references/reconnaissance.md | large/unfamiliar codebase recon |
| references/verification.md | complex verification requirements |
| references/delegation.md | considering subagent spawning |
| references/recovery.md | resuming after interruption or failure |
| references/model-routing.md | budget/model selection decisions |
---
Read before write. Plan before act. Verify with proof. Report what happened.
© udaysharmadev · MIT · udaysharmadev/Gravitas