Use when verifying code is production-ready. Runs build, lint, and test commands to check compilation, code quality, and test suite. Essential validation step for /build and /audit commands.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
Purpose: Verify code is production-ready by running build, lint, and test commands
Trigger: After code changes, before deployment or sign-off
Input: Working directory, package manager (pnpm)
Output: { passed: boolean, build_result, lint_result, test_result, failures[] }
1. Verify working directory and package manager
pnpm --version)2. Run pnpm build
pnpm build (or pnpm build --filter=... if scoped)3. Run pnpm lint
pnpm lint4. Run pnpm test
pnpm test (or pnpm test --run for CI mode)5. Aggregate results
Success Case:
{
"passed": true,
"build_result": {
"status": "pass",
"duration": "12s"
},
"lint_result": {
"status": "pass",
"warnings": 0
},
"test_result": {
"status": "pass",
"tests": "42 passed"
},
"failures": []
}
Failure Case:
{
"passed": false,
"build_result": {
"status": "fail",
"error": "TypeScript compilation failed",
"stderr": "src/types.ts:45: error TS2322: Type 'string' not assignable to type 'number'"
},
"lint_result": {
"status": "pass"
},
"test_result": {
"status": "fail",
"error": "2 tests failed",
"stderr": "FAIL src/__tests__/auth.spec.ts"
},
"failures": [
"Build failed: TypeScript compilation",
"Tests failed: 2 tests in src/__tests__/auth.spec.ts"
]
}
| Scenario | Action |
|---|---|
| pnpm not found | Return error, ask user to install pnpm |
| Wrong working dir | Return error, ask user to run from monorepo root |
| Build fails | Stop, return build error details for fixing |
| Lint warnings only | Continue (non-blocking), log warnings |
| Tests fail | Continue (collect results), return test error list |
| Unknown error | Capture stderr, return for debugging |
pwd must show root)Called by:
/build command (validation phase)/audit command (quality validation)validation-phase skill (before reporting)Calls: pnpm scripts (no subagents)
Next step: Report results to calling agent for decision
Input:
cwd: "/home/user/monorepo"
package_manager: "pnpm"
Execution:
$ cd /home/user/monorepo
$ pnpm build
→ ✓ Build succeeded (12s)
$ pnpm lint
→ ✓ Lint passed
$ pnpm test --run
→ ✓ 42 tests passed
Output:
{
"passed": true,
"build_result": { "status": "pass", "duration": "12s" },
"lint_result": { "status": "pass", "warnings": 0 },
"test_result": { "status": "pass", "tests": "42 passed" },
"failures": []
}
| Setting | Value | Rationale |
|---|---|---|
| User | root | Monorepo root required |
| Timeout | 5 minutes max | Allow large test suites |
| Fail-fast | No (collect all) | Show all issues in one pass |
| Format | JSON output | Machine-readable for agents |