Help us improve
Share bugs, ideas, or general feedback.
From orchestrator
Enforces quality gates in TypeScript/Node.js projects: pre-commit linting/formatting with ESLint/Prettier/tsc, tests/coverage with Vitest, builds, CI checks, security audits, E2E with Playwright, and Lighthouse performance.
npx claudepluginhub devsforge/orchestrator --plugin orchestratorHow this skill is triggered — by the user, by Claude, or both
Slash command
/orchestrator:quality-gatesThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Automated quality checkpoints that ensure code meets standards before proceeding.
Enforces code quality gates via Git hooks: pre-commit checks linting, formatting, type-checking; pre-push verifies tests, 95%+ coverage, and builds before commits/pushes.
Adds a quality:gate script with biome, tsgo, and related tests, plus a GitHub Actions workflow and Stop hook for type checking. Useful for local/CI quality gates and pre-push validation.
Runs quality gates for linting, type checking, unit tests with coverage, spec compliance, and smoke checks at local/CI/deploy levels.
Share bugs, ideas, or general feedback.
Automated quality checkpoints that ensure code meets standards before proceeding.
Runs before code is committed.
# TypeScript check
npx tsc --noEmit
# Lint check
npx eslint . --max-warnings 0
# Format check
npx prettier --check .
Runs before code is pushed.
# All pre-commit checks +
npm test -- --passWithNoTests
# Build check
npm run build
Runs in CI pipeline.
# All previous checks +
npm test -- --coverage
# Coverage threshold
# Fail if coverage < 70%
Runs before deployment.
# All CI checks +
# E2E tests
npx playwright test
# Security audit
npm audit --audit-level=high
# Performance check
npx lighthouse-ci
// tsconfig.json
{
"compilerOptions": {
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true
}
}
Pass Criteria: Zero errors
// .eslintrc
{
"extends": [
"eslint:recommended",
"@typescript-eslint/recommended",
"@typescript-eslint/strict"
],
"rules": {
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-unused-vars": "error",
"no-console": "warn"
}
}
Pass Criteria: Zero errors, zero warnings
// .prettierrc
{
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5"
}
Pass Criteria: All files formatted
// vitest.config.ts
export default defineConfig({
test: {
coverage: {
provider: 'v8',
thresholds: {
statements: 70,
branches: 65,
functions: 70,
lines: 70,
},
},
},
});
Pass Criteria:
npm run build
Pass Criteria: Build succeeds without errors
# Dependency vulnerabilities
npm audit --audit-level=high
# Exit codes:
# 0 = No vulnerabilities
# 1 = Vulnerabilities found
Pass Criteria: No high/critical vulnerabilities
#!/bin/sh
# .husky/pre-commit
npx lint-staged
// package.json
{
"lint-staged": {
"*.{ts,tsx}": [
"eslint --fix",
"prettier --write"
],
"*.{json,md}": [
"prettier --write"
]
}
}
name: Quality Gate
on: [push, pull_request]
jobs:
quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
- name: Install
run: npm ci
- name: TypeScript
run: npm run typecheck
- name: Lint
run: npm run lint
- name: Test
run: npm test -- --coverage
- name: Build
run: npm run build
| Metric | Threshold | Tool |
|---|---|---|
| Type Coverage | 100% | TypeScript |
| Lint Errors | 0 | ESLint |
| Code Smells | < 5 | SonarQube |
| Duplications | < 3% | SonarQube |
| Metric | Threshold | Tool |
|---|---|---|
| Statement Coverage | > 70% | Vitest |
| Branch Coverage | > 65% | Vitest |
| Test Pass Rate | 100% | Vitest |
| Metric | Threshold | Tool |
|---|---|---|
| Critical Vulns | 0 | npm audit |
| High Vulns | 0 | npm audit |
| Secrets | 0 | secretlint |
| Metric | Threshold | Tool |
|---|---|---|
| Bundle Size | < 500KB | vite |
| LCP | < 2.5s | Lighthouse |
| FID | < 100ms | Lighthouse |
# Run all gates
npm run quality
# Individual gates
npm run quality:types # TypeScript
npm run quality:lint # ESLint
npm run quality:test # Tests
npm run quality:build # Build
npm run quality:security # Security audit
npx tsc --noEmitnpx eslint . --fixnpm audit