📦 deps(thirdparty): update snapshots
This commit is contained in:
@@ -0,0 +1,183 @@
|
||||
---
|
||||
name: stack-audit
|
||||
version: 0.1.0
|
||||
description: Scan codebase for Outfitter Stack adoption candidates. Identifies throw statements, console usage, hardcoded paths, and custom errors. Use when assessing adoption scope or checking readiness.
|
||||
context: fork
|
||||
agent: stacker
|
||||
allowed-tools: Read Grep Glob Bash(rg *) Bash(bun *)
|
||||
---
|
||||
|
||||
# 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)
|
||||
|
||||
```bash
|
||||
bun run plugins/outfitter-stack/skills/stack-audit/scripts/init-audit.ts [project-root]
|
||||
```
|
||||
|
||||
Generates `.outfitter/adopt/` with:
|
||||
- `audit-report.md` - Scan results and scope
|
||||
- `plan/` - Stage-by-stage task files
|
||||
|
||||
**Option 2: Manual scan** (smaller projects)
|
||||
|
||||
Run the audit commands below to understand scope.
|
||||
|
||||
## Audit Commands
|
||||
|
||||
### Critical Issues - Exceptions
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
1. Review `audit-report.md` for accuracy
|
||||
2. Adjust priorities in `plan/00-overview.md`
|
||||
3. Begin with Stage 1 (Foundation)
|
||||
4. Load `outfitter-stack:stack-patterns` for conversion guidance
|
||||
5. Load `outfitter-stack:stack-templates` for 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 reference
|
||||
- `outfitter-stack:stack-templates` - Component templates
|
||||
- `outfitter-stack:stack-review` - Verify compliance
|
||||
Reference in New Issue
Block a user