mitodl/agent-kit/validate-before-commit

Claude Code and agent skill by mitodl/agent-kit

Trust tier 3
  • community
  • ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Source check pending

Checking that the SKILL.md file is still in the repository.

Run the full validation sequence before declaring any task done. Use this skill proactively after any code or infrastructure change — run the repository's hooks with prek, then mypy and pulumi preview (where applicable), without waiting to be asked. Never declare success without passing checks.

Install

npx vskill@latest install mitodl/agent-kit/validate-before-commit

Semi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard

SKILL.md

Validate Before Commit

Do not declare a task done until the full validation sequence has passed. Run these checks proactively — do not wait for the human to ask.

Standard sequence

bash
# 1. Linting, formatting, and basic static checks
uv run prek run --all-files
# 2. Type checking
uv run mypy <package_or_src_dir>
# 3. Infrastructure plan (if Pulumi files were changed)
pulumi preview --stack <stack-name>

mitodl repositories run their hooks with prek, which reads the same .pre-commit-config.yaml (or prek.toml) that pre-commit did. Use the command for the repository's prek pin:

RepositoryHook command
Python with uv (prek in the prek dependency group)uv run prek run --all-files
Node (@j178/prek in devDependencies)npx prek run --all-files
Neither (prek installed as a tool)prek run --all-files
Not yet migrated (still uses pre-commit)uv run pre-commit run --all-files in a uv project, otherwise pre-commit run --all-files

In a repository with .github/workflows/autofix.yml, the same hooks run in CI as the prek check. When the hooks' only problems are ones they fixed themselves, autofix.ci commits those fixes to the PR, except under .github/. If any hook still fails, nothing is committed and the check stays red. Running the hooks locally first avoids both.

Rules

  • Run the hooks before mypy; they may auto-fix formatting that would

otherwise produce mypy noise.

  • If the hooks auto-fix files, stage the changes and re-run them to confirm

every hook passes cleanly.

  • mypy errors are blocking — do not leave type errors for the human to clean up.
  • pulumi preview output must be reviewed: unexpected replacements or deletions

are bugs, not acceptable side effects.

For Dagster / dg changes

After modifying assets, sensors, or code location structure, also confirm the workspace loads cleanly:

bash
dg check

Interpreting failures

Read the full error output before proposing a fix. Do not apply a speculative patch without understanding the root cause — iterating blindly on the same error multiple times is worse than pausing to diagnose.

Security

  • Security scanPassed, 98 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
5
7-day trend score
14

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Extension points

  • hookPre/post lifecycle hooks

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/mitodl/agent-kit/validate-before-commit/badge)](https://verified-skill.com/skills/mitodl/agent-kit/validate-before-commit)

Something wrong with this skill or its page? Tell us.