Skip to main content
skill CX Codex

project-min-evaluation — Claude Code skill: checks before you commit

Runs your project's own lint, type and test scripts before the agent calls the work done. Handy when broken commits keep slipping through.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add C3SC0-V4113/Scaffold --skill project-min-evaluation -a claude-code
Open on GitHub

What project-min-evaluation does

The skill fires on phrases like done, complete, before commit, quality check, verify. The agent reads package.json and the lockfiles, picks a package manager, and runs only scripts that actually exist under scripts. Order is fixed: lint, typecheck, format:check, test, doctor, check. The test:e2e script runs only when end-to-end behavior changed.

No runner is hardcoded. If packageManager is set, that manager wins; otherwise the skill looks at pnpm-lock.yaml, bun.lock or bun.lockb, and falls back to npm for package-lock.json or no signal at all. The first failure stops everything: fix it, then rerun from that script. Skipping a red check to reach a later one is off the table.

The report marks each script as passed, failed, or not defined. A failure comes with the exact command, the exact error, and the scope left unverified. Ask for typecheck in a repo that never defined it, and the skill says the expected script is missing instead of inventing a command. That is the point: an agent that stays quiet about a check it never ran is worth a follow-up question.

What it helps with

  • run lint and type checks before a commit
  • stop at the first failing script instead of pushing on
  • pick the package manager from the project lockfiles
  • report which expected scripts are missing from package.json
  • avoid calling a task complete while tests fail

Example prompts for the agent

  • run the project's minimum checks before I commit
  • done — verify quality using the scripts in package.json
  • run lint, typecheck and test, start from the failing one

How to install project-min-evaluation

1Skills CLI (Vercel)

npx skills add C3SC0-V4113/Scaffold --skill project-min-evaluation -a claude-code

2Manually: put the files in place

~/.claude/skills/project-min-evaluation/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/project-min-evaluation/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about project-min-evaluation

How do I install project-min-evaluation in Claude?

Run npx skills add C3SC0-V4113/Scaffold --skill project-min-evaluation -a claude-code. The skill lands at ~/.claude/skills/project-min-evaluation/SKILL.md.

What does project-min-evaluation do?

Before reporting work as complete, it runs the quality scripts defined in package.json in a fixed order and stops at the first failure.

Which scripts does it run?

lint, typecheck, format:check, test, doctor and check when defined. test:e2e only when end-to-end behavior changed.

Source text

SKILL.md · Apache-2.0
---
name: project-min-evaluation
description: "Trigger: done, complete, finish, before commit, quality check, verify. Run the project's own minimum quality scripts before claiming work is complete."
license: Apache-2.0
metadata:
  author: purrfold
  version: "1.0"
---

# Project Minimum Evaluation

## Activation Contract

Load this skill before reporting implementation work as complete, before committing, or when asked to verify quality.

## Hard Rules

1. Detect the package manager from the project; never hardcode a runner.
2. Run only scripts defined in `package.json` `scripts`; report expected scripts that are missing instead of inventing commands.
3. Run from the repository root, in the order below, and do not skip a failing step to reach a later one.
4. Never claim completion while a check fails or was not run.

## Decision Gates

| Project signal | Runner |
| --- | --- |
| `packageManager` field in `package.json` | use the manager it names |
| `pnpm-lock.yaml` | `pnpm run <script>` |
| `bun.lock` or `bun.lockb` | `bun run <script>` |
| `package-lock.json`, or no other signal | `npm run <script>` |

| Script | Run when |
| --- | --- |
| `lint` | always, if defined |
| `typecheck` | always, if defined |
| `format:check` | always, if defined |
| `test` | always, if defined |
| `doctor` | always, if defined |
| `check` | always, if defined (aggregate gate) |
| `test:e2e` | only when end-to-end behavior changed |

## Execution Steps

1. Read `package.json` and the lockfiles to choose the runner.
2. Collect the scripts from the table that exist in `scripts`.
3. Run each existing script in table order with the chosen runner.
4. Stop at the first failure, fix it, and rerun from that script.

## Output Contract

Report each script as passed, failed, or not defined. For a failure or a check that cannot run, give the exact command, the exact error, and the unverified scope.

## References

- [references/script-discovery.md](references/script-discovery.md) — detection edge cases.

© purrfold · Apache-2.0 · C3SC0-V4113/Scaffold

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set2

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor