init-preferences
Interactive wizard to configure user preferences for command defaults and behavior
mkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/marcusgoll/Spec-Flow/HEAD/.claude/commands/project/init-preferences.md -o ~/.claude/commands/init-preferences.mdinit-preferences.md
<objective>
Guide users through interactive preference configuration to customize Spec-Flow command defaults and behavior.
**What it configures:**
- Command default modes (/epic, /tasks, /init-project, /run-prompt)
- UI preferences (usage stats, last-used recommendations)
- Automation behavior (CI/CD defaults)
- Git worktree preferences (parallel development)
- Prototype workflow preferences
- E2E and visual regression testing (v10.4)
- Database migration safety (v10.5)
- Perpetual learning system
**Output:**
- Creates/updates `.spec-flow/config/user-preferences.yaml`
- Provides configuration summary
- Shows example commands using new preferences
**Flags:**
- `--reset`: Reset all preferences to defaults (interactive confirmation)
</objective>
<context>
Existing preferences: @.spec-flow/config/user-preferences.yaml
Preference schema: @.spec-flow/config/user-preferences-schema.yaml
</context>
<process>
### Step 0: Check for Reset Flag
**If $ARGUMENTS contains "--reset":**
1. Read existing preferences to show what will be reset
2. Use AskUserQuestion to confirm:
```
Question: "Reset all preferences to defaults?"
Options:
- "Yes, reset everything" - All preferences will be set to defaults
- "No, keep current preferences" - Cancel reset operation
```
3. If confirmed:
- Copy `.spec-flow/config/user-preferences.example.yaml` to `.spec-flow/config/user-preferences.yaml`
- Display: "✓ Preferences reset to defaults"
- End command
4. If cancelled: End command
### Step 1: Welcome and Introduction
Display welcome message:
```
╔════════════════════════════════════════════════════════════════╗
║ Spec-Flow Preference Configuration Wizard ║
╚════════════════════════════════════════════════════════════════╝
This wizard will help you configure default behavior for Spec-Flow commands.
Your preferences are saved to: .spec-flow/config/user-preferences.yaml
You can always:
- Re-run this wizard to update preferences
- Edit the config file directly
- Override preferences with command-line flags
- Reset with: /init-preferences --reset
Let's get started! 🚀
```
### Step 2: Command Preferences (Round 1 - Epic & Tasks)
**Use AskUserQuestion with 2 questions:**
**Question 1: Epic Command Default Mode**
```json
{
"question": "What default mode should /epic use?",
"header": "/epic mode",
"multiSelect": false,
"options": [
{
"label": "Interactive (recommended for new users)",
"description": "Pause at spec review and plan review for manual approval. Safer for learning the workflow."
},
{
"label": "Auto (recommended for experienced users)",
"description": "Skip all prompts and run until blocker. Faster for experienced users who trust the workflow."
}
]
}
```
**Question 2: Tasks Command Default Mode**
```json
{
"question": "What default mode should /tasks use?",
"header": "/tasks mode",
"multiSelect": false,
"options": [
{
"label": "Standard (recommended for most projects)",
"description": "Generate TDD tasks for direct implementation. Best for API-heavy or backend-focused features."
},
{
"label": "UI-first (recommended for design-heavy projects)",
"description": "Generate HTML mockups first, then implementation tasks. Best for UI-heavy features requiring design approval."
}
]
}
```
### Step 3: Command Preferences (Round 2 - Init-Project & Run-Prompt)
**Use AskUserQuestion with 2 questions:**
**Question 3: Init-Project Command Default Mode**
```json
{
"question": "What default mode should /init-project use?",
"header": "/init-project mode",
"multiSelect": false,
"options": [
{
"label": "Interactive (recommended)",
"description": "Run questionnaire (15-48 questions depending on --with-design). Best for most users."
},
{
"label": "CI (for automation only)",
"description": "Non-interactive mode using environment variables. Only use if you're automating project initialization in CI/CD."
}
]
}
```
**Question 4: Should /init-project include design system by default?**
```json
{
"question": "Include design system setup (--with-design) by default?",
"header": "Design system",
"multiSelect": false,
"options": [
{
"label": "No (recommended for most projects)",
"description": "Skip design system setup. You can always add it later with /init-project --with-design --update."
},
{
"label": "Yes (for design-focused projects)",
"description": "Always include design tokens, brand guidelines, and accessibility standards. Adds ~30 questions to initialization."
}
]
}
```
### Step 4: Command Preferences (Round 3 - Run-Prompt)
**Use AskUserQuestion with 1 question:**
**Question 5: Run-Prompt Command Default Strategy**
```json
{
"question": "What execution strategy should /run-prompt use for multiple prompts?",
"header": "/run-prompt strategy",
"multiSelect": false,
"options": [
{
"label": "Auto-detect (recommended)",
"description": "Analyze prompt dependencies and choose parallel or sequential automatically. Safest and usually fastest."
},
{
"label": "Parallel (fast but risky)",
"description": "Always run prompts simultaneously. Faster but can cause conflicts if prompts modify the same files."
},
{
"label": "Sequential (safe but slow)",
"description": "Always run prompts one-by-one. Slowest but guarantees no conflicts."
}
]
}
```
### Step 5: UI Preferences
**Use AskUserQuestion with 2 questions:**
**Question 6: Show Usage Statistics**
```json
{
"question": "Show usage statistics in command prompts?",
"header": "Usage stats",
"multiSelect": false,
"options": [
{
"label": "Yes (recommended)",
"description": "Display 'used 8/10 times' in mode selection prompts. Helps you see your own patterns."
},
{
"label": "No (minimal UI)",
"description": "Hide usage statExecute multiple sprints in parallel based on dependency graph from sprint-plan.md
Build and validate locally for projects without remote deployment (prototypes, experiments, local-only dev)
Execute multi-sprint epic workflow from interactive scoping through deployment with parallel sprint execution and self-improvement
Execute feature development workflow from specification through production deployment with automated quality gates
Analyze workflow state and provide context-aware guidance with visual progress indicators and recommended next steps
Initialize project documentation, preferences, or design tokens
Implement small bug fixes and features (<100 LOC) without full workflow. Use for single-file changes, bug fixes, refactors, and minor enhancements that can be completed in under 30 minutes.
Enter deep craftsman mode - question everything, plan like Da Vinci, craft insanely great solutions, then materialize to roadmap