Skip to content
luiseiman edited this page Apr 5, 2026 · 3 revisions

Stacks

15 technology stacks, auto-detected and composable. Multi-stack projects get all matching stacks merged automatically.

Available Stacks

Stack Detection Rules
python-fastapi pyproject.toml, requirements.txt backend.md, tests.md
react-vite-ts package.json with react/vite frontend.md
swift-swiftui Package.swift, *.xcodeproj ios.md
supabase supabase/ dir, @supabase/supabase-js database.md
docker-deploy Dockerfile, docker-compose* infra.md
data-analysis *.ipynb, pandas/numpy in deps data.md
gcp-cloud-run app.yaml, cloudbuild.yaml gcp.md
redis redis in dependencies redis.md
node-express package.json with express/fastify backend.md
java-spring pom.xml, build.gradle with Spring backend.md
aws-deploy cdk.json, template.yaml (SAM) aws.md
go-api go.mod backend.md
devcontainer .devcontainer/ dir devcontainer.md
hookify .claude/hookify.*.md files present hookify.md
trading User declares or trading keyword in project description trading.md

What Each Stack Provides

stacks/<name>/
├── rules/*.md              — contextual rules with globs: frontmatter
├── settings.json.partial   — permissions and hooks to merge
└── hooks/*.sh              — (optional) stack-specific hooks

Multi-Stack Composition

If your project uses Python + Docker + Redis, all three stacks are detected. Their permissions are merged by set union (no duplicates):

python-fastapi permissions ∪ docker-deploy permissions ∪ redis permissions

Rules from each stack are installed with stack-specific globs, so they only activate when you touch relevant files.

Creating a New Stack

  1. Create stacks/<name>/
  2. Add rules/<name>.md with globs: frontmatter
  3. Add settings.json.partial with permissions
  4. (Optional) Add hooks/<name>.sh for stack-specific validation

See docs/creating-stacks.md for the full guide.

Detection Priority Rules

When indicators conflict, stacks/detect.md defines resolution:

  • pyproject.toml alone does NOT imply python-fastapi — verify fastapi is in dependencies
  • Dockerfile + app.yaml/cloudbuild.yamlgcp-cloud-run takes priority over docker-deploy
  • package.json with both react and express → both react-vite-ts AND node-express (additive)
  • *.py files do NOT auto-trigger data-analysis — requires notebooks, CSV, or SQL files

Glob Notes

  • node-express glob is narrowed to backend paths (src/routes/**, src/services/**, src/middleware/**) to avoid overlap with react-vite-ts
  • data-analysis no longer matches .py files — only *.{sql,ipynb,csv,xlsx} — avoids overlap with python-fastapi

Clone this wiki locally