AgentStack
SKILL verified MIT Self-run

Compounding Skills:setup

skill-profburial-compounding-skills-compounding-skills-setup · by profburial

One-time setup wizard that builds a personalized .claude/ library from your codebase — run once as /compounding-skills:setup and never again.

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add skill-profburial-compounding-skills-compounding-skills-setup

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Compounding Skills:setup? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

compounding-skills:setup — Personalized .claude/ Setup Wizard

Run this once after installing compounding-skills. It builds a tailored .claude/ library for your project — workflow skills, expert skills, and specialized agents — based on how you actually code.

> One-time skill. After setup completes, use your generated {command_prefix}:compound skill to keep skills in sync. Never run /compounding-skills:setup again on the same project. > > Prerequisite: Run /init first to generate your CLAUDE.md file. This setup wizard focuses on workflow skills and expert skills — project context belongs in CLAUDE.md.

Process knowledge: Load the skill-garden skill for generator logic, codebase analysis techniques, and all output templates.

Communication Style

Pay attention to context cues about the user's technical level. Not every user is a senior developer — some are designers, product managers, or people new to the terminal.

Signals of technical familiarity: Uses terms like "ORM", "middleware", "service objects" naturally; references specific tools by name; has opinions about architecture.

Signals of less familiarity: Asks what things mean; uses general language ("the database thing"); expresses uncertainty about terminal commands.

Adapt accordingly:

  • For technical users: use precise terminology, skip explanations of basic concepts
  • For less technical users: explain jargon when you first use it, use analogies, keep options simple
  • When in doubt, lean toward clarity over brevity — a brief explanation costs less than confusion

Phase 0 — Context Check

Before starting the wizard, scan the current conversation history for signals that the user has already expressed preferences or described their project. Look for:

  • Stack mentions ("I'm building a Rails app", "this is a Next.js project")
  • Workflow preferences ("I use feature branches", "we do TDD")
  • Architectural preferences ("I prefer service objects", "we use domain-driven design")
  • Specific tool mentions ("we use Jest", "Sidekiq for background jobs")
  • Framework details ("we use Pundit for authorization", "Prisma for the ORM")

If the conversation already contains answers to questions from Phases 1–4, pre-fill those answers and skip the corresponding questions. Present a summary of what was inferred:

"I picked up the following from our conversation:

  • Stack: Rails 7.2
  • Git workflow: feature branches + PRs
  • Testing: RSpec, TDD approach

I'll skip those questions and ask about the rest. Sound right?"

Use AskUserQuestion with options: "Looks right — continue" / "Let me correct something"

If the conversation has no relevant context, proceed directly to Phase 1.

Phase 1 — Detect Project Type

Auto-detect whether this is a brownfield (existing code) or greenfield (new) project:

# Count commits
git log --oneline -5 2>/dev/null | wc -l

# Check for project files
ls Gemfile package.json pyproject.toml tsconfig.json go.mod 2>/dev/null

Brownfield (≥5 commits OR recognized project files exist): Proceed to Phase 2A. Greenfield (0–4 commits, no recognized project files): Proceed to Phase 2B.

Also detect the project name from the current directory:

basename $(pwd)

Then ask the user to choose their skill prefix — this becomes the namespace for all workflow skills:

question: "What would you like to prefix your workflow skills with? This becomes the namespace (e.g., workflow:plan, workflow:work, workflow:brainstorm)."
header: "Skill prefix"
options:
  - label: "workflow (Recommended)"
    description: "e.g., workflow:plan, workflow:work, workflow:brainstorm"
  - label: "{detected directory name}"
    description: "e.g., {detected_name}:plan, {detected_name}:work, {detected_name}:brainstorm"
  - label: "Short project alias"
    description: "Use an abbreviated name (you'll type it for every skill)"
  - label: "Generic (no prefix)"
    description: "Skills named simply plan, work, brainstorm — use if this is your only project"

If the user selects "Short project alias" or wants a custom name, prompt for the exact string. Record as {command_prefix}.

Announce: "Detected [brownfield/greenfield] project. Using {command_prefix} as skill prefix."

Process Flexibility

After detecting the project type and choosing a prefix, gauge the user's appetite for configuration:

Use AskUserQuestion:

question: "How much do you want to customize?"
header: "Setup depth"
options:
  - label: "Quick setup (recommended for most projects)"
    description: "I'll analyze your codebase and use smart defaults — takes about 2 minutes"
  - label: "Detailed setup"
    description: "Walk me through each configuration choice — takes about 5 minutes"
  - label: "Just generate defaults"
    description: "Use sensible defaults for my stack, I'll fine-tune later with compound"

Quick setup: Run Phase 2A (brownfield) or Phase 2B with only Q1 (greenfield). Skip Phase 2C — infer framework details from codebase analysis or stack defaults. Use smart defaults for Phases 3–4. Go straight to Phase 5.

Detailed setup: Run all phases as documented below.

Just generate defaults: Skip Phases 2–4 entirely. Detect stack from project files, use all defaults from references/greenfield.md "Greenfield Defaults by Stack" section, and generate with a note that /{command_prefix}:compound should be run to personalize.

Phase 2A — Brownfield: Codebase Analysis

Process knowledge: See references/brownfield.md for the full step-by-step analysis process.

Launch these Explore subagents in parallel to analyze the codebase:

1. Tech Stack Detector
Task Explore: Identify the tech stack and framework versions.
Look for: Gemfile, package.json, pyproject.toml, go.mod, tsconfig.json, .ruby-version, .node-version, Cargo.toml.
Return: Primary language, framework + version, key dependencies, runtime version.
2. Convention Mapper
Task Explore: Map file and directory conventions.
Look for: Where do controllers/services/components/models live?
What naming patterns exist (snake_case, camelCase, kebab-case)?
Any notable structural patterns (feature folders, domain-driven, etc.)?
Check: app/, src/, lib/, pkg/ directories.
Return: Directory structure map, naming conventions, key organizational patterns.
3. Real Pattern Extractor
Task Explore: Find 2-3 representative files that best show coding patterns.
Avoid test files and auto-generated code.
Look for: A typical service/controller, a model/schema, a utility function.
Return: File paths + full content of the 2-3 most representative files.
4. Tooling Inspector
Task Explore: Identify existing tooling setup.
Look for: Test runner (RSpec, Jest, pytest, go test), linter config (.rubocop.yml, .eslintrc, pyproject.toml [tool.ruff]), CI setup (.github/workflows/, .circleci/), formatter (prettier, black, gofmt).
Return: Test command, lint command, CI system, formatter.
5. Git Workflow Analyzer
Task Explore: Analyze git workflow patterns.
Run: git log --oneline -20 2>/dev/null
Look for: Branch naming convention (feat/, fix/, chore/ prefixes), commit message style, PR/merge frequency.
Return: Branch naming pattern, commit message format, workflow style.

Wait for all subagents to complete, then compile findings into a structured summary:

Stack:        {language} {framework} {version}
Structure:    {key directories and naming}
Test runner:  {command}
Linter:       {command}
Git workflow: {pattern}

Display this summary to the user and announce: "Found your stack. Now let's configure your workflow skills."

Phase 2B — Greenfield: Preference Interview

Process knowledge: See references/greenfield.md for the full question bank and rationale.

Use AskUserQuestion to ask these questions. Ask them one at a time.

Question 1 — Language & Framework:

question: "What's your primary language and framework?"
header: "Stack"
options:
  - label: "Ruby on Rails"
    description: "Rails — full stack web framework"
  - label: "TypeScript / Node.js"
    description: "TypeScript with Node, Next.js, or similar"
  - label: "Python"
    description: "Python with Django, FastAPI, or similar"
  - label: "Go"
    description: "Go — standard library or framework"
  - label: "PHP"
    description: "PHP with Laravel, Symfony, or similar"

Question 2 — File Structure:

question: "How do you prefer to organize files?"
header: "Structure"
options:
  - label: "By type (MVC)"
    description: "controllers/, models/, services/ — group by role"
  - label: "By feature/domain"
    description: "users/, orders/, payments/ — group by business domain"
  - label: "Flat with conventions"
    description: "Single directory with naming conventions"
  - label: "Framework default"
    description: "Whatever the framework suggests"

Question 3 — Testing:

question: "What's your testing approach?"
header: "Testing"
options:
  - label: "TDD — tests first"
    description: "Write tests before implementation"
  - label: "Tests after, high coverage"
    description: "Implement first, then write thorough tests"
  - label: "Integration tests only"
    description: "Focus on end-to-end and integration, skip unit tests"
  - label: "Minimal testing"
    description: "Test only critical paths"

Question 4 — Git Workflow:

question: "How do you work with git?"
header: "Git"
options:
  - label: "Feature branches + PRs"
    description: "Branch per feature, review via PR before merging"
  - label: "Trunk-based development"
    description: "Small commits directly to main, fast iteration"
  - label: "Gitflow"
    description: "main + develop + feature/release/hotfix branches"
  - label: "Solo / no strict workflow"
    description: "Commit when ready, no formal process"

Record answers as greenfield_prefs for use in Phase 3+.

Phase 2C — Framework Deep-Dive Interview

Ask stack-specific architecture questions to drive the content of the expert developer skill. Use AskUserQuestion for each question.

Brownfield pre-fill: Before asking, check Phase 2A findings for auto-detectable answers (e.g., pundit in Gemfile → pre-select Pundit, sidekiq → pre-select Sidekiq). Present as confirmation questions — the user confirms and catches anything not auto-detected.

Rails Projects

Question 1 — Architectural Layers:

question: "Which architectural layers does this Rails project use?"
header: "Layers"
multiSelect: true
options:
  - label: "Service objects"
    description: "Business logic in app/services/"
  - label: "Form objects"
    description: "Form validation in app/forms/"
  - label: "Presenters"
    description: "View logic in app/presenters/"
  - label: "Query objects"
    description: "Complex queries in app/queries/"
  - label: "Decorators"
    description: "Draper-style decorators in app/decorators/"
  - label: "Concerns"
    description: "Shared modules in app/models/concerns/ and app/controllers/concerns/"
  - label: "Serializers"
    description: "Response serialization in app/serializers/"
  - label: "Channels"
    description: "ActionCable channels in app/channels/"
  - label: "Mailers"
    description: "Email logic in app/mailers/"
  - label: "Background jobs"
    description: "Job classes in app/jobs/"

Question 2 — Authorization:

question: "Which authorization library does this project use?"
header: "Authorization"
options:
  - label: "Pundit"
    description: "Policy objects in app/policies/"
  - label: "CanCanCan"
    description: "Ability-based access control"
  - label: "Custom"
    description: "Project-specific authorization logic"
  - label: "None"
    description: "No authorization framework"

Question 3 — Serialization:

question: "How does this project serialize API responses?"
header: "Serialization"
options:
  - label: "Jbuilder"
    description: "JSON views in app/views/ (.json.jbuilder)"
  - label: "ActiveModel::Serializers"
    description: "Serializer classes"
  - label: "Blueprinter"
    description: "Blueprint classes"
  - label: "fast_jsonapi / jsonapi-serializer"
    description: "JSONAPI-compliant serializers"
  - label: "Plain Ruby"
    description: "Custom to_json or hash methods"

Question 4 — Background Jobs:

question: "Which background job system does this project use?"
header: "Background jobs"
options:
  - label: "Sidekiq"
    description: "Redis-backed background processing"
  - label: "Resque"
    description: "Redis-backed Resque jobs"
  - label: "Solid Queue"
    description: "DB-backed job queue (Rails 8+)"
  - label: "None"
    description: "No background job system"

Question 5 — API Style:

question: "What API style does this project use?"
header: "API style"
options:
  - label: "REST only"
    description: "Standard RESTful JSON API"
  - label: "GraphQL"
    description: "GraphQL API (graphql-ruby)"
  - label: "Mixed (REST + GraphQL)"
    description: "Both REST and GraphQL endpoints"
  - label: "Full-stack (HTML views)"
    description: "Server-rendered HTML with Hotwire/Turbo"

TypeScript/Node Projects

Question 1 — Framework Variant:

question: "Which Node.js framework are you using?"
header: "Framework"
options:
  - label: "Express"
    description: "Classic Express.js"
  - label: "Fastify"
    description: "High-performance Fastify"
  - label: "NestJS"
    description: "Angular-inspired NestJS"
  - label: "Next.js (API routes)"
    description: "Next.js with API route handlers"

Question 2 — ORM / DB:

question: "Which ORM or database layer does this project use?"
header: "ORM/DB"
options:
  - label: "Prisma"
    description: "Type-safe ORM with schema-first approach"
  - label: "TypeORM"
    description: "Decorator-based ORM"
  - label: "Drizzle"
    description: "Lightweight TypeScript ORM"
  - label: "Sequelize"
    description: "Promise-based ORM"
  - label: "Raw SQL"
    description: "Direct SQL queries (pg, mysql2, etc.)"

Question 3 — Validation:

question: "Which validation library does this project use?"
header: "Validation"
options:
  - label: "Zod"
    description: "Schema-first TypeScript validation"
  - label: "Yup"
    description: "Schema builder for object validation"
  - label: "class-validator"
    description: "Decorator-based validation (common with NestJS)"
  - label: "None"
    description: "Custom or no validation library"

Question 4 — Testing:

question: "Which test framework does this project use?"
header: "Testing"
options:
  - label: "Jest"
    description: "Standard Jest testing"
  - label: "Vitest"
    description: "Vite-native testing framework"
  - label: "Other"
    description: "Custom or other test framework"

Python Projects

Question 1 — Framework:

question: "Which Python web framework does this project use?"
header: "Framework"
options:
  - label: "Django"
    description: "Full-stack Django framework"
  - label: "FastAPI"
    description: "Modern async FastAPI"
  - label: "Flask"
    description: "Lightweight Flask"

Question 2 — ORM:

question: "Which ORM or database layer does this project use?"
header: "ORM"
options:
  - label: "Django ORM"
    description: "Built-in Django database layer"
  - label: "SQLAlchemy"
    description: "Python SQL toolkit and ORM"
  - label: "Tortoise ORM"
    description: "Async ORM inspired by Django ORM"
  - label: "None / Raw SQL"
    description: "Direct SQL or no ORM"

Question 3 — Testing:

question: "Which test framework does this project use?"
header: "Testing"
options:
  - label: "pytest"
    description: "Standard pytest"
  - label: "unittest"
    description: "Python built-in unittest"

Go Projects

Question 1 — Router:

question: "Which HTTP router does this project use?"
header: "Router"
options:
  - label: "chi"
    description: "Lightweight, idiomatic chi ro

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [profburial](https://github.com/profburial)
- **Source:** [profburial/compounding-skills](https://github.com/profburial/compounding-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.