with one click
quality
Generate and improve code quality scores for JS/TS projects
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Generate and improve code quality scores for JS/TS projects
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | quality |
| version | 0.4.0 |
| description | Generate and improve code quality scores for JS/TS projects |
| allowed-tools | Bash, Read, Grep, Glob, Edit |
Generate comprehensive quality reports and actionable improvement recommendations.
This skill helps you:
IMPORTANT: Always follow these defaults unless the user explicitly requests otherwise:
Work in a branch - Never commit directly to main. Create a feature branch:
git checkout -b chore/improve-quality
Create a PR - After committing improvements, create a pull request:
gh pr create --title "chore: improve code quality" --body "## Summary
- Improved quality score from X to Y (grade: Z)
## Changes
[list improvements made]
## Quality Report
[include before/after metrics]"
No attribution - Do NOT include any of these in commits or PRs:
Co-Authored-By: Claude or any Claude attribution🤖 Generated with Claude Code or similar footersupkeep binary must be installed and available on your PATH. Install it with:
brew install llbbl/tap/upkeep
(or download a binary from the GitHub releases).upkeep command, verify it is on PATH and stop with a clear message if not:
command -v upkeep >/dev/null 2>&1 || {
echo "upkeep not found on PATH — install it with: brew install llbbl/tap/upkeep" >&2
exit 1
}
The quality score is calculated from 6 weighted metrics:
| Metric | Weight | What It Measures |
|---|---|---|
| Dependency Freshness | 20% | % of dependencies up-to-date |
| Security | 25% | Absence of vulnerabilities |
| Test Coverage | 20% | Code coverage percentage |
| TypeScript Strictness | 10% | Strict compiler options enabled |
| Linting Setup | 10% | Linter configuration quality |
| Dead Code | 15% | Unused code detection setup |
| Grade | Score Range | Meaning |
|---|---|---|
| A | 90-100 | Excellent - well maintained |
| B | 80-89 | Good - minor improvements needed |
| C | 70-79 | Fair - some attention required |
| D | 60-69 | Poor - significant improvements needed |
| F | 0-59 | Failing - major issues present |
upkeep quality --json
This returns:
Show the user:
For metrics scoring below 70, explain:
Many issues can be fixed automatically:
Dependency Freshness:
/upkeep:deps skill to update packagesSecurity:
/upkeep:audit skill to fix vulnerabilitiesTypeScript Strictness:
Linting Setup:
Test Coverage:
User: "How healthy is my project?"
upkeep quality --json# Check outdated packages
upkeep deps --json
# Update all patch versions (usually safe)
<pm> update
# Find vulnerabilities
upkeep audit --json
# Fix what's available
<pm> audit fix # npm
coverage/ directory<pm> test --coverageAdd to tsconfig.json:
{
"compilerOptions": {
"strict": true,
"noUncheckedIndexedAccess": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"exactOptionalPropertyTypes": true,
"noImplicitOverride": true
}
}
Then fix resulting type errors.
For a new project, recommend Biome:
bunx @biomejs/biome init
For existing ESLint projects, ensure Prettier is configured too.
Enable TypeScript dead code detection:
{
"compilerOptions": {
"noUnusedLocals": true,
"noUnusedParameters": true
}
}
Consider adding knip or ts-prune for advanced detection.
| Command | Purpose |
|---|---|
upkeep quality | Generate quality report |
upkeep detect | Check project configuration |
upkeep deps | Dependency freshness details |
upkeep audit | Security details |
After making improvements:
upkeep quality --jsonF → D (Quick wins):
D → C (Foundation):
C → B (Solid):
B → A (Excellence):