Skip to content
Back to skills

Tech Stack Builder

ASecurity

Opinionated tech stack recommendations and settled library references. Two modes: (1) `/build-stack` runs parallel researcher agents to compare candidates and emit a stack report + ADRs for greenfield projects; (2) direct reference routing for coding with settled defaults. Use when the user asks to recommend a stack, choose between frameworks, compare open-source tools, scaffold a project with quality gates, set up a security pipeline, or asks how to wire TanStack Router/Query/Table/Form, Mot...

  • 27 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
developmenttypescriptpythonrustgoreactnodefastapidockerawsgit

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add theagenticguy/erpaval --skill tech-stack-builder --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tech Stack Builder?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tech Stack Builder
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/theagenticguy-tech-stack-builder/badge)](https://www.skillsdirectory.com/skills/theagenticguy-tech-stack-builder)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: tech-stack-builder
description: >
  Opinionated tech stack recommendations and settled library references. Two
  modes: (1) `/build-stack` runs parallel researcher agents to compare
  candidates and emit a stack report + ADRs for greenfield projects; (2)
  direct reference routing for coding with settled defaults. Use when the user
  asks to recommend a stack, choose between frameworks, compare open-source
  tools, scaffold a project with quality gates, set up a security pipeline, or
  asks how to wire TanStack Router/Query/Table/Form, Motion, Recharts, D3,
  React Three Fiber, dnd-kit, XY Flow, shadcn/blocks.so, Hono, tRPC, Litestar,
  FastAPI, cyclopts, polars, DuckDB, Biome, pnpm, Vite, uv, ruff, ty, pyright,
  mise, lefthook, golangci-lint, clippy, cargo-nextest, cargo-deny,
  betterleaks, semgrep, osv-scanner, trivy, grype, hadolint, cosign, checkov,
  CDK, or Amplify Gen 2 + Aurora. Do NOT use for product definition or PRD drafting
  (use `product-discovery`); do NOT invoke directly when `erpaval` is running
  — `erpaval` drives `/build-stack` through `CL-SPEC`.
arguments:
  - name: context
    description: Optional initial project context (e.g., "Python API for payments on AWS")
    required: false
user_facing: true
---

## Contents

| 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         |

# Tech Stack Builder

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.

## Mode 1 — `/build-stack` orchestration

Runs 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`.

## Mode 2 — Reference routing for settled defaults

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.

### React + TypeScript web app

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`    |

### Core setups per language

| 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`            |

### Cross-language tooling

| 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` |

### Scaffolds

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.

## Ecosystem fit

- **Upstream of `erpaval`.** `erpaval`'s `CL-SPEC` classifier invokes `/build-stack` when the stack is missing. Don't call both; `erpaval` drives.
- **Downstream of `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.
- **Uses `researcher` agent** (defined in `${CLAUDE_PLUGIN_ROOT}/agents/researcher.md`). Do not define a custom researcher here.

Files in this skill

  • SKILL.md9.8 KB
  • references/domains/aws.md6.4 KB
  • references/domains/backend.md1 KB
  • references/domains/devtools.md3.7 KB
  • references/domains/frontend.md1.8 KB
  • references/domains/infra.md3.3 KB
  • references/health-check-criteria.md4 KB
  • references/opinionated-defaults.md17.2 KB
  • references/orchestrator.md12 KB
  • references/output-templates.md4.9 KB
  • references/search-strategies.md7.1 KB
  • references/stacks/go/core.md4.4 KB
  • references/stacks/python/api.md1.9 KB
  • references/stacks/python/cli.md1.9 KB
  • references/stacks/python/core.md5.7 KB
  • references/stacks/python/data-pipeline.md2.2 KB
  • references/stacks/rust/core.md5.7 KB
  • references/stacks/shared/ci-cd.md12.3 KB
  • references/stacks/shared/code-quality.md2.9 KB
  • references/stacks/shared/containers.md7.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.