Agent skill
typescript-quality-gate
Runs TypeScript/JavaScript code quality checks. Use when checking TypeScript or JavaScript quality, linting, running tests, validating TypeScript code, or running TS/JS checks. Covers formatting and linting with biome, type checking with tsc, and test execution with bun test.
Install this agent skill to your Project
npx add-skill https://github.com/philoserf/claude-code-setup/tree/main/skills/typescript-quality-gate
SKILL.md
TypeScript Quality Gate
Run a standardized set of TypeScript/JavaScript quality checks. Auto-fix what's fixable, report the rest with specific locations.
Prerequisites
Verify these tools are available before running checks. All run via bunx — no global installs needed.
biome— formatter and linter (bunx biome)tsc— TypeScript compiler for type checking (bun run tscorbunx tsc)bun test— test runner (built into Bun)
If the project uses prettier + eslint instead of Biome, adapt accordingly — check package.json for which tools are configured.
Check Sequence
Run checks in this order. Formatting first so later tools analyze clean code.
1. Format (auto-fix)
Run bunx biome format --write . — report which files were modified. If no files changed, report "formatting clean."
If the project uses Prettier instead, run bunx prettier --write ..
2. Lint fix (auto-fix)
Run bunx biome check --fix . — apply safe auto-fixes for lint and import organization. Report which rules were fixed and in which files.
If the project uses ESLint instead, run bunx eslint --fix ..
3. Lint (report)
Run bunx biome check . — report remaining issues with file, line, rule name, and message. If a biome.json or biome.jsonc exists, it's picked up automatically.
If using ESLint, run bunx eslint ..
4. Type check (report)
Run bunx tsc --noEmit — report type errors with file, line, and error code. If a tsconfig.json exists, it's picked up automatically. Skip this step for pure JavaScript projects with no tsconfig.json.
5. Test (report)
Run bun test — if test files exist (*.test.ts, *.spec.ts, or a __tests__/ directory). Report pass/fail counts. If no tests exist, note it in the summary.
If the project uses a different runner (vitest, jest), check package.json scripts and use the appropriate command.
Output
After all checks complete, present a summary table:
| Check | Status | Details |
|-------------|--------|----------------------|
| biome fmt | FIXED | 4 files formatted |
| biome fix | FIXED | 2 auto-fixes |
| biome check | PASS | |
| tsc | FAIL | 3 type errors |
| bun test | PASS | 12 passed, 0 failed |
Then list specific issues grouped by file, with line numbers and rule/error codes. Offer to fix reported issues if the user wants.
Tool Detection
Check package.json and config files to determine the project's toolchain:
| Signal | Toolchain |
|---|---|
biome.json or biome.jsonc |
Biome |
.eslintrc.* or eslint.config.* |
ESLint |
.prettierrc.* or prettier in deps |
Prettier |
tsconfig.json |
TypeScript |
vitest in deps |
Vitest |
jest in deps |
Jest |
| None of the above | Default to Biome |
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
pre-release
Validates a project is ready to tag and ship. Use when tagging a release, cutting a version, shipping a package, or asking "are we ready to release?" Checks repo hygiene, CI status, docs, version sync, and build verification. Optimized for Obsidian plugins with fallback detection for other project types.
local-issues
Reviews a codebase for bugs, design issues, and code cleanliness problems with specific file paths and line numbers. Use when auditing code quality, finding bugs, doing a code review, finding problems, or reviewing a project for issues. Creates issue files in `.issues/` directory.
skill-improve
Generates prioritized improvement recommendations for Claude Code skills. Use when improving skills, enhancing customizations, or wanting actionable feedback on how to make a skill better. Provides impact/effort prioritization with specific fix suggestions.
release
Executes the final release workflow for Obsidian plugins after pre-release checks pass. Use when tagging a release, publishing a version, or shipping an Obsidian plugin. Bumps version via bun run script, creates git tag, pushes to trigger GitHub Actions, and updates GitHub release notes from CHANGELOG.md.
skill-quality
Scores Claude Code skills (1-5) across 6 weighted quality dimensions aligned with official Anthropic docs. Use when evaluating skill quality, rating skills, scoring customizations, comparing skill effectiveness, or checking if a skill follows best practices. Produces per-dimension scores with evidence, weighted totals, quality tier classification, and actionable improvement recommendations.
obsidian-cli
Interacts with Obsidian vaults using the Obsidian CLI to read, create, and manage notes, tasks, properties, tags, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, add to daily note, find notes about a topic, check tasks, append to a note, query the vault, list tags, list files, manage bookmarks, check sync status, view file history, use templates, query bases, run QuickAdd, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.
Didn't find tool you were looking for?