Help us improve
Share bugs, ideas, or general feedback.
From erpaval
Opinionated tech stack recommendations and settled library references. Runs parallel researcher agents to compare candidates and emit a stack report + ADRs for greenfield projects, or routes direct references for coding with settled defaults.
npx claudepluginhub theagenticguy/erpaval --plugin erpavalHow this skill is triggered — by the user, by Claude, or both
Slash command
/erpaval:tech-stack-builderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
| File | When to load |
references/domains/aws.mdreferences/domains/backend.mdreferences/domains/devtools.mdreferences/domains/frontend.mdreferences/domains/infra.mdreferences/health-check-criteria.mdreferences/opinionated-defaults.mdreferences/orchestrator.mdreferences/output-templates.mdreferences/search-strategies.mdreferences/stacks/go/core.mdreferences/stacks/python/api.mdreferences/stacks/python/cli.mdreferences/stacks/python/core.mdreferences/stacks/python/data-pipeline.mdreferences/stacks/rust/core.mdreferences/stacks/shared/ci-cd.mdreferences/stacks/shared/code-quality.mdreferences/stacks/shared/containers.mdreferences/stacks/shared/git-hooks.mdRecommends full technology stacks for new projects based on requirements, team expertise, and constraints like scale, performance, budget, and time-to-market.
Provides Python scripts for fullstack project scaffolding, code quality analysis, project optimization, plus reference guides for modern stacks like React, Next.js, Node, PostgreSQL, Docker.
Evaluates technology stacks using weighted decision matrix. Compares frameworks, languages, databases via scored criteria like performance, ecosystem, maintenance, security. For objective tech selection.
Share bugs, ideas, or general feedback.
| File | When to load |
|---|---|
references/orchestrator.md | Running /build-stack — intake → parallel research → synthesis → ADRs |
references/opinionated-defaults.md | Deciding health-check vs full-research per category |
references/search-strategies.md | Configuring researcher agent tool use (Context7, exa, nova, etc.) |
references/health-check-criteria.md | HEALTHY / CAUTION / WARNING classification for recommendations |
references/output-templates.md | Format specs for the stack report, ADRs, comparison matrices |
references/domains/backend.md | Backend researcher domain config |
references/domains/frontend.md | Frontend researcher domain config |
references/domains/infra.md | Infrastructure researcher domain config |
references/domains/aws.md | AWS researcher domain config |
references/domains/devtools.md | Dev-tooling researcher domain config |
references/stacks/typescript/ | Settled TypeScript/React patterns — 15 library references |
references/stacks/python/ | Settled Python patterns — core, CLI, API, data pipeline |
references/stacks/go/ | Settled Go patterns — modules, golangci-lint, govulncheck, chi |
references/stacks/rust/ | Settled Rust patterns — cargo, clippy, nextest, cargo-deny |
references/stacks/shared/ | Cross-language tooling — mise, lefthook, security, CI/CD, containers |
templates/stack-report.md | Full report skeleton (instantiated by orchestrator) |
templates/adr-template.md | ADR format for significant choices |
templates/comparison-matrix.md | Comparison matrix format |
templates/scaffold/ | Ready-to-copy project scaffolds — python, typescript, go, rust |
Two-mode skill: /build-stack runs parallel researcher agents to produce a stack report + ADRs, and standalone reference routing teaches settled coding patterns when the user is already building.
/build-stack orchestrationRuns a forked orchestrator that launches the plugin researcher agent in parallel across up to five domain configs (backend, frontend, infra, aws, devtools). Each instance researches its slice, scores candidates against health-check-criteria.md, and writes a comparison matrix. The orchestrator synthesizes, resolves conflicts via explicit priority (user constraints → avoid list → ecosystem coherence → health → familiarity), and emits:
| Artifact | Description |
|---|---|
tech-stack-report.md | Unified stack table, per-layer analysis, comparison matrices, architecture diagram |
adr/NNN-*.md | 3–5 ADRs for non-obvious or long-horizon decisions |
| Dependency snippets | pyproject.toml, package.json, mise.toml scoped to the recommended stack |
| Scaffold (optional) | Phase 5 generates real config files via templates/scaffold/ if the user opts in |
Hybrid defaults philosophy: ~60% of categories have opinionated winners (ruff, uv, biome, mise) — the researcher runs a health check only on those. The remaining ~40% (web framework, ORM, IaC, component library) get full comparison research, because the landscape actively shifts. See references/opinionated-defaults.md for the split.
To start: /build-stack with optional context (e.g., /build-stack Python API for payments on AWS). Full runbook in references/orchestrator.md.
When the user is already coding and needs a specific library pattern, route them to one reference file. Don't pre-load everything — each reference carries real weight, and loading all of them doubles the active context for no gain.
Start with the stack overview (references/stacks/typescript/webapp.md), then load one library reference on demand:
| Library / layer | Reference |
|---|---|
| TanStack Router | references/stacks/typescript/tanstack-router.md |
| TanStack Query | references/stacks/typescript/tanstack-query.md |
| TanStack Table | references/stacks/typescript/tanstack-table.md |
| TanStack Form | references/stacks/typescript/tanstack-form.md |
| Motion (ex framer-motion) | references/stacks/typescript/motion.md |
| Recharts + D3 | references/stacks/typescript/visualization.md |
| React Three Fiber + Drei | references/stacks/typescript/react-three-fiber.md |
| dnd-kit | references/stacks/typescript/dnd-kit.md |
| XY Flow (React Flow) | references/stacks/typescript/xy-flow.md |
| blocks.so + shadcn/ui | references/stacks/typescript/ui-blocks.md |
| Amplify Gen 2 + Aurora | references/stacks/typescript/amplify-aurora.md |
| Scenario | Reference |
|---|---|
| TypeScript core (pnpm, biome, zod, vitest) | references/stacks/typescript/core.md |
| Node API (Hono, tRPC, Fastify) | references/stacks/typescript/node-api.md |
| AWS CDK (TypeScript) | references/stacks/typescript/cdk.md |
| Python core (uv, ruff, ty/pyright, pytest) | references/stacks/python/core.md |
| Python CLI (cyclopts, rich) | references/stacks/python/cli.md |
| Python API (FastAPI, Litestar) | references/stacks/python/api.md |
| Data pipeline (polars, DuckDB, Parquet) | references/stacks/python/data-pipeline.md |
| Go project (modules, golangci-lint, govulncheck) | references/stacks/go/core.md |
| Rust project (cargo, clippy, nextest, cargo-deny) | references/stacks/rust/core.md |
| Scenario | Reference |
|---|---|
| mise versions + tasks | references/stacks/shared/mise-config.md |
| lefthook + conventional commits | references/stacks/shared/git-hooks.md |
| Security pipeline (7-layer shift-left) | references/stacks/shared/security.md |
| CI/CD (GitHub Actions per language) | references/stacks/shared/ci-cd.md |
| Container security (Dockerfile, hadolint, grype) | references/stacks/shared/containers.md |
| Code-quality configs | references/stacks/shared/code-quality.md |
When the user asks to scaffold a project with quality gates pre-wired, load the matching file from templates/scaffold/ — python.md, typescript.md, go.md, or rust.md. Each scaffold contains concrete, ready-to-copy files: dependency manifests, linter configs, mise.toml, lefthook.yml, CI workflow, Dockerfile, .gitignore, .editorconfig — wired to the full security pipeline.
erpaval. erpaval's CL-SPEC classifier invokes /build-stack when the stack is missing. Don't call both; erpaval drives.product-discovery. Product-discovery owns PRD, HMW, and EARS — those skills explicitly exclude tech choices. When they hand off a PRD, Section 15 maps directly to /build-stack intake.researcher agent (defined in ${CLAUDE_PLUGIN_ROOT}/agents/researcher.md). Do not define a custom researcher here.