stack-audit
Stack Audit
Scan a codebase to identify Outfitter Stack adoption candidates and generate an audit report.
Quick Start
Option 1: Run the scanner (recommended for large projects)
bun run plugins/outfitter-stack/skills/stack-audit/scripts/init-audit.ts [project-root]
Generates .outfitter/adopt/ with:
audit-report.md- Scan results and scopeplan/- Stage-by-stage task files
Option 2: Manual scan (smaller projects)
Run the audit commands below to understand scope.
Audit Commands
Critical Issues - Exceptions
# Count throw statements
rg "throw (new |[a-zA-Z])" --type ts -c
# List throw locations
rg "throw (new |[a-zA-Z])" --type ts -n
# Count try-catch blocks
rg "(try \{|catch \()" --type ts -c
Console Usage
# Count console statements
rg "console\.(log|error|warn|debug|info)" --type ts -c
# List console locations
rg "console\.(log|error|warn|debug|info)" --type ts -n
Hardcoded Paths
# Homedir usage
rg "(homedir\(\)|os\.homedir)" --type ts -c
# Tilde paths
rg "~/\." --type ts -c
# Combined path issues
rg "(homedir|~\/\.)" --type ts -n
Custom Error Classes
# Find custom error classes
rg "class \w+Error extends Error" --type ts -n
# Count usage of custom errors
rg "new MyCustomError\(" --type ts -c
Generated Structure
.outfitter/adopt/
├── audit-report.md # Scan results, scope, recommendations
└── plan/
├── 00-overview.md # Status dashboard, dependencies
├── 01-foundation.md # Dependencies, context, logger
├── 02-handlers.md # Handler conversions
├── 03-errors.md # Error taxonomy mappings
├── 04-paths.md # XDG path migrations
├── 05-adapters.md # CLI/MCP transport layers
├── 06-documents.md # Documentation updates
└── 99-unknowns.md # Items requiring review
Migration Stages
| Stage | Blocked By | Focus |
|---|---|---|
| 1. Foundation | - | Install packages, create context/logger |
| 2. Handlers | Foundation | Convert throw to Result |
| 3. Errors | Handlers | Map to error taxonomy |
| 4. Paths | - | XDG paths, securePath |
| 5. Adapters | Handlers | CLI/MCP wrappers |
| 6. Documents | All | Update docs to reflect patterns |
| 99. Unknowns | - | Review anytime |
Audit Report Fields
| Field | Description |
|---|---|
| Exceptions | throw statements to convert to Result |
| Try/Catch | Error handling blocks to restructure |
| Console | Logging to convert to structured logging |
| Paths | Hardcoded paths to convert to XDG |
| Error Classes | Custom errors to map to taxonomy |
| Handlers | Functions with throws to convert |
| Unknowns | Complex patterns requiring review |
Error Taxonomy Reference
When mapping errors, use this reference:
| Original | Outfitter | Category |
|---|---|---|
NotFoundError |
NotFoundError |
not_found |
InvalidInputError |
ValidationError |
validation |
DuplicateError |
ConflictError |
conflict |
UnauthorizedError |
AuthError |
auth |
ForbiddenError |
PermissionError |
permission |
Generic Error |
InternalError |
internal |
Effort Estimation
| Count | Effort Level |
|---|---|
| 0 | None |
| 1-5 | Low |
| 6-15 | Medium |
| 16+ | High |
Interpreting Results
High-Priority Items
- Functions with 3+ throw statements (complex error handling)
- Files with 3+ try-catch blocks (may need restructuring)
- Custom error classes with high usage counts
Medium-Priority Items
- Isolated throw statements (simple conversions)
- Console logging (straightforward migration)
- Hardcoded paths (mechanical replacement)
Low-Priority Items
- Documentation updates (can happen last)
- Test file updates (follow handler changes)
Next Steps After Audit
- Review
audit-report.mdfor accuracy - Adjust priorities in
plan/00-overview.md - Begin with Stage 1 (Foundation)
- Load
outfitter-stack:stack-patternsfor conversion guidance - Load
outfitter-stack:stack-templatesfor scaffolding
Constraints
Always:
- Run audit before planning adoption
- Review unknowns for complex patterns
- Estimate effort before committing
Never:
- Skip the audit phase
- Underestimate try-catch complexity
- Ignore custom error classes
Related Skills
outfitter-stack:stack-patterns- Target patterns referenceoutfitter-stack:stack-templates- Component templatesoutfitter-stack:stack-review- Verify compliance
More from outfitter-dev/agents
codebase-recon
This skill should be used when analyzing codebases, understanding architecture, or when "analyze", "investigate", "explore code", or "understand architecture" are mentioned.
92graphite-stacks
This skill should be used when the user asks to "create a stack", "submit stacked PRs", "gt submit", "gt create", "reorganize branches", "fix stack corruption", or mentions Graphite, stacked PRs, gt commands, or trunk-based development workflows.
76code-review
This skill should be used when reviewing code before commit, conducting quality gates, or when "review", "fresh eyes", "pre-commit review", or "quality gate" are mentioned.
34hono-dev
This skill should be used when building APIs with Hono, using hc client, implementing OpenAPI, or when "Hono", "RPC", or "type-safe API" are mentioned.
28software-craft
This skill should be used when making design decisions, evaluating trade-offs, assessing code quality, or when "engineering judgment" or "code quality" are mentioned.
28subagents
This skill should be used when coordinating agents, delegating tasks to specialists, or when "dispatch agents", "which agent", or "multi-agent" are mentioned.
25