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 orchestratorThis skill is limited to using the following tools:
Automated quality checkpoints that ensure code meets standards before proceeding.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides MCP server integration in Claude Code plugins via .mcp.json or plugin.json configs for stdio, SSE, HTTP types, enabling external services as tools.
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