From outfitter
Verify Outfitter compliance in a codebase. Scans for anti-patterns (throws, console, hardcoded paths) and produces a severity-ranked compliance report. Use for pre-commit checks, code review, or migration validation.
npx claudepluginhub outfitter-dev/outfitter --plugin outfitterThis skill is limited to using the following tools:
Verify Outfitter compliance and produce a structured report.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Verify Outfitter compliance and produce a structured report.
Scan a codebase and produce a Compliance Report at .agents/notes/YYYY-MM-DD-outfitter-check.md documenting:
DO:
outfitter-atlas first for pattern knowledgeDON'T:
outfitter-atlas for pattern expertiseAsk or infer the target:
| Scope | When | Command Modifier |
|---|---|---|
| Single file | "Check this file" | rg PATTERN path/to/file.ts |
| Directory | "Check src/handlers" | rg PATTERN path/to/dir/ |
| Full codebase | "Check compliance" | rg PATTERN --type ts |
Exclude test files unless specifically requested:
rg PATTERN --type ts -g "!*.test.ts" -g "!__tests__/*"
Run each scan and collect results.
# Thrown exceptions (must convert to Result)
rg "throw new" --type ts -g "!*.test.ts" -n
# try/catch control flow (must convert to Result checking)
rg "try \{" --type ts -g "!*.test.ts" -n
Why critical: Breaks type safety, loses error context, makes control flow unpredictable.
# Console usage (must use ctx.logger)
rg "console\.(log|error|warn|info|debug)" --type ts -g "!*.test.ts" -n
# Hardcoded home paths (must use XDG via @outfitter/config)
rg "(homedir\(\)|~\/\.)" --type ts -g "!*.test.ts" -n
Why high: Console breaks structured logging; hardcoded paths break portability.
# Custom error classes (should use taxonomy)
rg "class \w+Error extends Error" --type ts -n
# Handlers without context parameter
rg "Handler<.*> = async \(input\)" --type ts -n
# Missing Result type returns
rg "async.*Handler.*\{" --type ts -A 10 | rg "return [^R]" -B 5
Why medium: Reduces type safety and pattern consistency.
# process.exit without exitWithError
rg "process\.exit\(" --type ts -g "!*.test.ts" -n
# Missing .describe() on Zod schemas used with MCP
rg "z\.(string|number|boolean|object)\(\)(?!.*\.describe)" --type ts -n
Why low: Affects agent experience and exit code consistency.
Count results and assign severity:
| Severity | Findings | Action |
|---|---|---|
| Critical | throw/try-catch in handlers | Must fix before merge |
| High | console.log, hardcoded paths | Should fix before merge |
| Medium | Custom errors, missing context | Fix when touching file |
| Low | Style issues, missing describe | Nice to have |
| Level | Impact | Examples |
|---|---|---|
| Critical | Breaks core patterns, causes runtime issues | Thrown exceptions, unvalidated paths |
| High | Breaks observability or portability | Console logging, hardcoded paths |
| Medium | Reduces type safety or consistency | Custom errors, missing context param |
| Low | Affects polish, not correctness | Style, documentation gaps |
Write the Compliance Report to .agents/notes/YYYY-MM-DD-outfitter-check.md using TEMPLATE.md.
# Create directory if needed
mkdir -p .agents/notes
# Report path (replace YYYY-MM-DD with today's date)
# .agents/notes/2024-01-15-outfitter-check.md
| Status | Criteria |
|---|---|
| PASS | 0 critical, 0 high |
| WARNINGS | 0 critical, 1+ high or medium |
| FAIL | 1+ critical |
## Compliance: [scope]
**Status**: PASS | WARNINGS | FAIL
**Issues**: X critical, Y high, Z medium, W low
{ details follow }
Point to fieldguide patterns for each issue type:
| Issue | Fix Pattern |
|---|---|
throw new | patterns/conversion.md |
try/catch | patterns/results.md |
console.log | patterns/logging.md |
| Hardcoded paths | patterns/file-ops.md |
| Custom errors | patterns/errors.md |
| Missing context | patterns/handler.md |
For a fast pass/fail without full report:
# Critical count (should be 0)
rg "throw new|try \{" --type ts -g "!*.test.ts" -c | wc -l
# High count (should be 0)
rg "console\.(log|error|warn)|homedir\(\)" --type ts -g "!*.test.ts" -c | wc -l
After the compliance scan, detect installed @outfitter/* versions and check for available migrations using the outfitter upgrade command.
# Check for available updates (human-readable)
bunx outfitter upgrade --guide --cwd .
For JSON output (version data only, does not include migration docs):
bunx outfitter upgrade --json --cwd .
If updates are found, append a Migration Guidance section to the compliance report. If all packages are up to date, note that in the report.
The command:
package.json for @outfitter/* dependencies--guide is used, composes migration docs from the kit plugin's shared migrationsoutfitter-atlas — Patterns and fix guidance (load first)outfitter-start — Full adoption workflow with staged plandebug-outfitter — Deep investigation of specific issues