← Skills

/setup

After /scaffold before /plan to generate workflow config

install: npx skills add fortunto2/solo-factory/setup
phase: development

Auto-generate project workflow config from existing PRD and CLAUDE.md. Zero interactive questions — all answers extracted from project data that already exists after /scaffold.

# /setup

Auto-generate project workflow config from existing PRD and CLAUDE.md. Zero interactive questions — all answers extracted from project data that already exists after `/scaffold`.

## When to use

After `/scaffold` creates a project, before `/plan`. Creates `docs/workflow.md` so `/plan` and `/build` can work.

## MCP Tools (use if available)

- `project_info(name)` — get project details, detected stack
- `kb_search(query)` — search for dev principles, manifest, stack templates
- `codegraph_query(query)` — check project dependencies in code graph

If MCP tools are not available, fall back to reading local files only.

## Steps

1. **Detect project root:**
   - If `$ARGUMENTS` is provided, look for a project with that name in the current directory or `projects_dir` from `~/.solo-factory/defaults.yaml`.
   - Otherwise use current working directory.
   - Verify the directory exists and has `CLAUDE.md`.
   - If not found, ask via AskUserQuestion.

2. **Check if already initialized:**
   - If `docs/workflow.md` exists, warn and ask whether to regenerate.

3. **Read project data** (parallel — all reads at once):
   - `CLAUDE.md` — tech stack, architecture, commands, Do/Don't
   - `docs/prd.md` — problem, users, solution, features, metrics, pricing
   - `package.json` or `pyproject.toml` — exact dependency versions
   - `Makefile` — available commands
   - Linter configs (`.eslintrc*`, `eslint.config.*`, `.swiftlint.yml`, `ruff.toml`, `detekt.yml`)

4. **Read ecosystem sources** (optional — enhances quality):
   - Detect stack name from CLAUDE.md (look for "Stack:" or the stack name in tech section).
   - If MCP `kb_search` available: search for stack template and dev-principles.
   - Otherwise: look for `stacks/<stack>.yaml` and `dev-principles.md` + `dev-principles-my.md` (personal extensions) in `.solo/` or plugin templates directory (if accessible).
   - If neither available: derive all info from CLAUDE.md + package manifest (sufficient).

5. **Detect languages** from package manifest:
   - `package.json` → TypeScript
   - `pyproject.toml` → Python
   - `*.xcodeproj` or `Package.swift` → Swift
   - `build.gradle.kts` → Kotlin

6. **Create docs directory if needed:**
   ```bash
   mkdir -p docs
   ```

7. **Generate `docs/workflow.md`:**
   Based on dev-principles (from MCP/KB or built-in defaults):
   ```markdown
   # Workflow — {ProjectName}

   ## TDD Policy
   **Moderate** — Tests encouraged but not blocking. Write tests for:
   - Business logic and validation
   - API route handlers
   - Complex algorithms
   Tests optional for: UI components, one-off scripts, prototypes.

   ## Test Framework
   {from package manifest devDeps: vitest/jest/pytest/xctest}

   ## Commit Strategy
   **Conventional Commits**
   Format: `<type>(<scope>): <description>`
   Types: feat, fix, refactor, test, docs, chore, perf, style

   ## Verification Checkpoints
   **After each phase completion:**
   1. Run tests — all pass
   2. Run linter — no errors
   3. Run build — successful (if applicable)
   4. Manual smoke test

   ## Branch Strategy
   - `main` — production-ready
   - `feat/<track-id>` — feature branches
   - `fix/<description>` — hotfixes
   ```

8. **Update `CLAUDE.md`** — add workflow reference to Key Documents section if not present.

9. **Show summary and suggest next step:**
   ```
   Setup complete for {ProjectName}!

   Created:
     docs/workflow.md — TDD moderate, conventional commits

   Next: /plan "Your first feature"
   ```

## Common Issues

### CLAUDE.md not found
**Cause:** Project not scaffolded or running from wrong directory.
**Fix:** Run `/scaffold` first, or ensure you're in the project root with CLAUDE.md.

### workflow.md already exists
**Cause:** Previously set up.
**Fix:** Skill warns and asks whether to regenerate. Existing file is preserved unless you confirm overwrite.

### Wrong test framework detected
**Cause:** Multiple test frameworks in devDependencies.
**Fix:** Skill picks the first found. Edit `docs/workflow.md` manually to specify the correct framework.
Sources