Start with Outfitter Stack — scaffold new projects or adopt patterns in existing codebases. Detects context, scans for adoption candidates, and orchestrates phased conversion.
Scaffolds new projects or orchestrates phased adoption of Outfitter Stack patterns in existing codebases.
npx claudepluginhub outfitter-dev/outfitterThis skill is limited to using the following tools:
migration/assessment.mdmigration/patterns-quick-ref.mdreferences/manual-scan.mdreferences/new-project-scaffolding.mdscripts/scan.tsscripts/setup.shtemplates/PLAN.mdtemplates/SCAN.mdtemplates/stages/adapters.mdtemplates/stages/documents.mdtemplates/stages/errors.mdtemplates/stages/foundation.mdtemplates/stages/handlers.mdtemplates/stages/overview.mdtemplates/stages/paths.mdtemplates/stages/unknowns.mdStart with Outfitter Stack — new projects or existing codebase adoption.
package.json:
outfitter-atlas (patterns) and context-management (task persistence)..agents/plans/outfitter-start/ with scan results and staged plan.outfitter-check for compliance audit.outfitter-issue to report.For new projects, use the CLI with agent-guided setup.
Check for files that inform preset choice:
ls CLAUDE.md SPEC.md PLAN.md README.md 2>/dev/null
If context files exist, read them and look for keywords:
cli presetmcp presetdaemon presetminimal presetUse AskUserQuestion to clarify before running commands. See references/new-project-scaffolding.md for the full decision flow.
Key questions:
outfitter init <cli|mcp|daemon> . --name <name>
# Or: outfitter init . --preset <preset> --name <name>
Options:
--no-tooling — Skip linter, lefthook, claude settings--with <blocks> — Specific blocks: claude, linter, lefthook, bootstrap, scaffolding--force — Overwrite existing filesAfter scaffolding:
bun install && bun run devoutfitter-atlas for pattern referenceFor existing projects, generate a phased adoption plan.
Produce a structured adoption plan at .agents/plans/outfitter-start/ containing:
DO:
stages/overview.mdDON'T:
outfitter-atlas — you need it for conversion patternsstages/overview.mdoutfitter-check, confirm no violationsRun the setup script to scan the codebase and generate the plan.
# From the plugin directory (when installed):
./skills/outfitter-start/scripts/setup.sh [project-root]
# Or use the skill's scan functionality directly
The script will refuse to run if a plan already exists (won't override).
.agents/plans/outfitter-start/
├── PLAN.md # Entry point with navigation
├── SCAN.md # Scan results, effort estimates
└── stages/ # Task files for each stage
| Finding | Meaning |
|---|---|
| 0 throws, 0 custom errors | Greenfield — skip to Foundation, use fieldguide presets |
| 1-5 throws | Low effort — straightforward conversions |
| 6-15 throws | Medium effort — plan your approach |
| 16+ throws | High effort — work through stages methodically |
| Custom error classes | Map each to taxonomy (see stages/errors.md) |
| High console count | Lots of logging to convert (see stages/handlers.md) |
| Package Discovery table | Review all @outfitter/* options before installing |
| High blast radius handlers | Split into caller-focused sub-phases before converting |
@outfitter/types should be treated as optional unless the target project
has clear branded-type or utility adoption points.
After reviewing SCAN.md:
Adjust the plan based on your assessment.
stages/overview.mdFoundation (required first)
│
├── Paths (can run parallel)
│
└── Handlers
│
├── Errors
│
└── Adapters
│
└── Documents (last)
Unknowns: Review throughout, resolve before Documents
Work through stages in order, updating stages/overview.md as you go.
stages/foundation.md)stages/overview.mdUpdate stages/overview.md as you work:
| Status | When to Use |
|---|---|
| ⬜ Not Started | Haven't begun this stage |
| 🟡 In Progress | Currently working on it |
| ✅ Complete | All checklist items done |
| 🔴 Blocked | Waiting on another stage |
| ⏭️ Skipped | Not applicable (e.g., no MCP tools) |
For fast pattern lookup during execution: migration/patterns-quick-ref.md
Confirm the codebase follows Outfitter Stack patterns.
Run these — all should return no results:
# No throws in application code
rg "throw new" --type ts -g "!*.test.ts"
# No console logging (except entry points)
rg "console\.(log|error|warn)" --type ts -g "!*.test.ts"
# No hardcoded home paths
rg "homedir\(\)" --type ts
Run the review skill for comprehensive checking:
/outfitter-check
From stages/overview.md:
Result<T, E>throw statements in application codeconsole.log in production codeoutput() and exitWithError()Delete the plan directory:
rm -rf .agents/plans/outfitter-start
| File | Purpose |
|---|---|
| references/new-project-scaffolding.md | Full guide for new project setup |
| scripts/setup.sh | Entry point — generates migration plan |
| migration/assessment.md | Decision tree for scope evaluation |
| migration/patterns-quick-ref.md | Quick lookup → links to fieldguide |
| references/manual-scan.md | Manual ripgrep commands |
outfitter-atlas — Patterns and templates (load first)outfitter-check — Compliance verificationYou MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.