sw-tech-stack-planner

Use when user wants a tech stack recommendation, technology choices, docker-compose setup, or architecture decisions for a software project – reads vision.md, user-stories.md, use-cases.md and generates requirements/tech-stack.yaml silently.

16 stars

Best use case

sw-tech-stack-planner is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when user wants a tech stack recommendation, technology choices, docker-compose setup, or architecture decisions for a software project – reads vision.md, user-stories.md, use-cases.md and generates requirements/tech-stack.yaml silently.

Teams using sw-tech-stack-planner should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/sw-tech-stack-planner/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/development/sw-tech-stack-planner/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/sw-tech-stack-planner/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How sw-tech-stack-planner Compares

Feature / Agentsw-tech-stack-plannerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when user wants a tech stack recommendation, technology choices, docker-compose setup, or architecture decisions for a software project – reads vision.md, user-stories.md, use-cases.md and generates requirements/tech-stack.yaml silently.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# SW Tech Stack Planner

## Overview

Reads all available requirements files and recommends the best modern, production-ready tech stack for the project. Outputs a clean YAML file at `requirements/tech-stack.yaml`. Operates silently – no file content shown in the chat.

**Language detection:** Read the user's input language and respond in that language. Default to German if undetectable.

---

## Required Input – Check in Order

Read all files that exist and combine the information:

1. `requirements/vision.md` – project type, complexity, target audience
2. `requirements/user-stories.md` – feature scope, integrations needed
3. `requirements/use-cases.md` – flows, actor interactions, edge cases

If none exist and no input is given, stop and respond:

> No requirements files found.
> Run `/sw-idea-analyzer` first, or describe your project directly:
> `/sw-tech-stack-planner <your description>`

---

## Stack Selection Rules

### Always Docker-First

Every recommendation must include:
- Full `docker-compose.yml` ready to run with `docker compose up`
- All services (database, cache, backend, frontend) in containers
- Named volumes for data persistence
- Environment variables via `.env` file (never hardcoded)
- Health checks on database services

### Database

| Project type | Default choice |
|-------------|----------------|
| Relational data, complex queries | PostgreSQL |
| Simple relational, small project | MySQL / MariaDB |
| Cache, sessions, queues | Redis (always add if backend has async work) |
| Document / flexible schema | MongoDB |
| Multi-model / graph | Neo4j or ArangoDB |

Always include **Testcontainers** when the language/framework supports it (Java, Kotlin, Go, .NET, Node.js).

### Frontend

| Signal from requirements | Recommendation |
|--------------------------|----------------|
| Complex UI, dashboard, SPA | Next.js 15 (App Router) + TypeScript |
| Static / content site | Astro or Next.js static export |
| Mobile app | React Native + Expo |
| Admin panel only | shadcn/ui + Next.js |
| Simple form / landing page | Next.js or plain HTML |

### Backend

| Signal from requirements | Recommendation |
|--------------------------|----------------|
| REST API, moderate complexity | NestJS (Node.js) or FastAPI (Python) |
| High performance, concurrency | Go (Gin / Fiber) or Rust (Axum) |
| Enterprise / Java shop | Spring Boot 3 |
| Full-stack in one repo | Next.js API routes or tRPC |
| Real-time / websockets | NestJS + Socket.io |
| Data-heavy / ML pipeline | FastAPI + Celery |

### Auth

| Requirement | Choice |
|------------|--------|
| SaaS, social login, managed | Clerk or Auth.js |
| Self-hosted, full control | Keycloak (Docker) |
| Simple JWT, own users | NestJS JWT + Passport or Spring Security |

### Testing

Always recommend a layered testing strategy:
- **Unit:** Jest / Vitest (TS), pytest (Python), JUnit 5 (Java)
- **Integration:** Testcontainers (real DB in Docker per test run)
- **E2E:** Playwright
- **API:** Supertest (NestJS) or httpx (FastAPI)

### Deployment

| Scale | Choice |
|-------|--------|
| Small / hobby | Coolify (self-hosted) or Railway |
| Production / team | Docker Compose on VPS + Traefik reverse proxy |
| Kubernetes scale | Helm chart on k3s or managed K8s |
| Serverless preference | Vercel (frontend) + Supabase (backend) |

---

## Output Format

Write `requirements/tech-stack.yaml` with these exact sections:

```yaml
project:
  name: ""
  type: ""           # web-app | api | mobile | cli | fullstack
  complexity: ""     # simple | medium | complex

frontend:
  framework: ""
  language: ""
  ui_library: ""
  state_management: ""
  notes: ""

backend:
  framework: ""
  language: ""
  runtime: ""
  notes: ""

database:
  primary: ""
  cache: ""
  orm: ""
  migrations: ""

auth:
  solution: ""
  strategy: ""       # jwt | session | oauth
  notes: ""

testing:
  unit: ""
  integration: ""
  e2e: ""
  api: ""
  testcontainers: true | false

deployment:
  strategy: ""
  reverse_proxy: ""
  ci_cd: ""
  registry: ""

docker:
  compose_version: "3.9"
  services: []       # list all service names
  volumes: []
  networks: []

rationale:
  frontend: ""       # 1-2 sentences why this choice
  backend: ""
  database: ""
  auth: ""
  deployment: ""
```

---

## Output Rules

- **Never output the YAML or any file content in the chat.**
- Do not show tech stack details, code blocks, or configuration in the chat response.
- The only chat output allowed is the confirmation lines.
- Use the user's language in the `rationale` field values.

---

## File Output

**Steps:**
1. If `requirements/` does not exist: `mkdir -p requirements`
2. Analyze all available inputs and select the best stack
3. Write the complete YAML to `requirements/tech-stack.yaml`
4. Print **only** these lines to the chat:

> ✅ File created: `requirements/tech-stack.yaml`
> This is now the official tech stack for all following coding skills.

One optional summary sentence max (e.g. "Recommended Next.js 15 + NestJS + PostgreSQL + Docker stack with Testcontainers."). No YAML, no code blocks, no full output.

---

## Next Skill

> ▶ **Next steps:**
> - Run `/sw-use-case-coder UC-001` to generate production-ready code for a specific use case
> - Run `/sw-use-case-coder all MVP` to scaffold all MVP use cases at once

Related Skills

stacktape

16
from diegosouzapw/awesome-omni-skill

Build and deploy full-stack apps to AWS. Use when user wants to deploy an app, build a SaaS, create an API, set up a database, or ship any web application to production.

stack

16
from diegosouzapw/awesome-omni-skill

Load technology stack configurations with project templates, dependencies, and best practices. Supports dotnet, node, python, java, go.

stack-selection

16
from diegosouzapw/awesome-omni-skill

Tech stack selection with decision trees, user preferences, and blueprint defaults. Use when choosing frameworks, libraries, or tools for new projects or features.

sojustack-best-practices

16
from diegosouzapw/awesome-omni-skill

Best-practice guidance for the SojuStack monorepo (NestJS + Drizzle + Better Auth + TanStack Start). Use when editing files in apps/api or apps/web, designing routes, query/form patterns, auth/transaction flows, or implementing cross-stack features.

setup-tanstack-start

16
from diegosouzapw/awesome-omni-skill

Bootstrap a new web project with TanStack Start, React, Tailwind CSS v4, and shadcn/ui on top of the base tooling stack. Consult this skill whenever creating a web app, setting up a frontend project, starting a React application, or initializing anything involving TanStack Start, TanStack Router, TanStack Query, Tailwind, shadcn, or Vite.

senior-fullstack

16
from diegosouzapw/awesome-omni-skill

Fullstack development toolkit with project scaffolding for Next.js/FastAPI/MERN/Django stacks and code quality analysis. Use when scaffolding new projects, analyzing codebase quality, or implementing fullstack architecture patterns.

senior-fullstack-ai-engineer

16
from diegosouzapw/awesome-omni-skill

Senior full-stack developer with 10+ years of experience and AI engineering expertise. Builds production-ready applications using modern frameworks (Flask, FastAPI, React), AI/ML technologies (LLMs, RAG, model deployment), and cloud infrastructure. Use for all development tasks requiring full-stack and AI/ML implementation.

rails-inertia-stack

16
from diegosouzapw/awesome-omni-skill

Generate production-ready Rails applications with Inertia.js, React, TypeScript, Server-Side Rendering (SSR), and ShadcnUI components, configured for deployment with Kamal. Use when creating new Rails projects that need modern SPA-like frontend with SEO-friendly SSR, or when helping users set up Inertia.js with Rails. Supports PostgreSQL, MySQL, and SQLite databases.

preferences-react-tanstack-ui-development

16
from diegosouzapw/awesome-omni-skill

React and TanStack UI development patterns including component design, routing, and state management. Load when working with React components or TanStack libraries.

prd-v06-technical-specification

16
from diegosouzapw/awesome-omni-skill

Define implementation contracts (APIs and data models) that developers will build against during PRD v0.6 Architecture. Triggers on requests to define APIs, design database schema, create data models, or when user asks "define APIs", "data model", "database schema", "API contracts", "technical spec", "endpoint design", "schema design". Consumes ARC- (architecture), TECH- (Build items), UJ- (flows), SCR- (screens). Outputs API- entries for endpoints and DBT- entries for data models. Feeds v0.7 Build Execution.

prd-planner

16
from diegosouzapw/awesome-omni-skill

Analyzes PRDs and creates beads task breakdown for multi-agent implementation

plaid-fintech

16
from diegosouzapw/awesome-omni-skill

Expert patterns for Plaid API integration including Link token flows, transactions sync, identity verification, Auth for ACH, balance checks, webhook handling, and fintech compliance best practices...