Skip to content

Simplify daf init wizard for better user onboarding experience #329

@itdove

Description

@itdove

Problem Analysis

The current daf init wizard presents 6 major configuration sections upfront, which can be overwhelming for new users trying to get started quickly:

  1. JIRA Configuration (even though it's optional)
  2. GitHub/GitLab Integration (optional)
  3. Repository Workspace (required)
  4. Keyword Mappings (advanced, optional)
  5. Hierarchical Configuration (advanced, optional)
  6. PR/MR Template Configuration (optional)

Key UX Issues

1. No Clear Presets:

  • No "GitHub-only" or "JIRA-only" or "Local sessions only" quick start options
  • Users must answer all questions even if they only need subset of features
  • No "recommended" or "minimal" configuration path

2. JIRA-Centric Design:

  • Wizard starts with JIRA configuration even though issue tracker integration is optional
  • GitHub/GitLab users might be confused by JIRA-first approach
  • Tool works without any issue tracker, but this isn't obvious

3. Required vs Optional Unclear:

  • All fields are prompted, making it feel like everything is required
  • Advanced options (hierarchical config, keywords) mixed with basic setup
  • No clear indication of what can be skipped safely

4. No Auto-Detection:

  • Could auto-detect GitHub/GitLab from git remote URLs
  • Could auto-suggest workspace from current directory
  • Could infer issue tracker type from environment variables

5. Missing Post-Init Guidance:

  • No "Next Steps" shown after init completes
  • Users don't know whether to run daf sync or daf git new or daf jira new
  • No link to quick start guide or tutorial

Current Init Wizard Flow

daf init
├── JIRA Configuration
│   ├── JIRA URL (https://jira.example.com)
│   ├── Project Key (optional but feels required)
│   └── Comment Visibility (type + value)
├── GitHub/GitLab Integration (optional section)
│   ├── GitHub API URL (Enterprise only)
│   ├── Default labels
│   └── Auto-close on complete
├── Repository Workspace
│   └── Workspace path (required)
├── Keyword Mappings (advanced)
│   └── Keyword → repository routing rules
├── Hierarchical Configuration (advanced)
│   └── Organization config URL
└── PR/MR Template Configuration
    └── Template URL for AI generation

Proposed Solution: Preset-Based Initialization

Step 1: Ask User's Primary Use Case

daf init

Welcome to DevAIFlow! Let's get you set up quickly.

What would you like to use DevAIFlow for?

  1. GitHub Issues integration (recommended for GitHub-centric teams)
  2. GitLab Issues integration (recommended for GitLab-centric teams)
  3. JIRA integration (recommended for enterprise teams)
  4. Local sessions only (no issue tracker, just session management)
  5. Custom configuration (full wizard)

Choice [1]:

Step 2: Preset-Specific Configuration

Preset A: GitHub Issues Only

✓ Detected GitHub remote: https://github.com/org/repo.git
✓ GitHub CLI authenticated: yes (gh auth status)

Required Configuration:
  Workspace path: ~/development [auto-detected]

Optional (press Enter to skip):
  Default labels: backend,devaiflow
  Auto-close issues on complete: no

✓ Configuration saved!

Next Steps:
  1. Install Claude Code skills: daf skills
  2. Create your first issue: daf git new --goal "Your feature"
  3. Or sync assigned issues: daf sync

For help: daf --help
Quick start: https://github.com/itdove/devaiflow#quick-start

Preset B: JIRA Only

Required Configuration:
  JIRA URL: https://jira.company.com
  JIRA Project (for creating issues): PROJ
  Workspace path: ~/development

Optional (press Enter to skip):
  Comment visibility type: group
  Comment visibility value: Engineering Team

✓ Configuration saved!

Next Steps:
  1. Install Claude Code skills: daf skills
  2. Set JIRA_API_TOKEN environment variable
  3. Refresh JIRA fields: daf config refresh-jira-fields
  4. Create your first ticket: daf jira new story --parent PROJ-123 --goal "Your feature"
  5. Or sync current sprint: daf sync --sprint current

For help: daf --help
JIRA setup guide: https://github.com/itdove/devaiflow/docs/jira-integration.md

Preset C: Local Sessions Only

No issue tracker needed! DevAIFlow will manage local sessions only.

Required Configuration:
  Workspace path: ~/development [auto-detected]

✓ Configuration saved!

Next Steps:
  1. Install Claude Code skills: daf skills
  2. Create your first session: daf new --name "my-feature" --goal "Your feature"
  3. List sessions: daf list
  4. Complete session: daf complete <session-name>

For help: daf --help

Step 3: Progressive Enhancement

Add advanced features later via new commands:

# Add PR/MR template after init
daf config add-feature pr-template

# Add keyword mappings when needed
daf config add-feature keywords

# Add hierarchical config for organizations
daf config add-feature hierarchical-config

# Or use TUI for advanced config
daf config edit

Implementation Tasks

Phase 1: Preset-Based Init (MVP)

  • Add preset selection prompt at start of init wizard
  • Implement GitHub-only preset (minimal questions)
  • Implement GitLab-only preset (minimal questions)
  • Implement JIRA-only preset (minimal questions)
  • Implement Local-only preset (no issue tracker)
  • Add auto-detection for git remotes (GitHub/GitLab)
  • Add auto-suggestion for workspace path (current directory or parent)
  • Add post-init guidance (next steps display)

Phase 2: Progressive Enhancement

  • Create daf config add-feature command group
  • Implement add-feature pr-template
  • Implement add-feature keywords
  • Implement add-feature hierarchical-config
  • Implement add-feature github-integration
  • Implement add-feature jira-integration

Phase 3: Improved Auto-Detection

  • Auto-detect issue tracker from git remote URLs
  • Auto-detect workspace from current directory
  • Auto-check if gh/glab/JIRA_API_TOKEN are configured
  • Pre-fill defaults based on detections

Phase 4: Enhanced Guidance

  • Add post-init tutorial option (interactive walkthrough)
  • Generate command suggestions based on configuration
  • Add quick start examples to init output
  • Link to relevant documentation sections

Success Metrics

Before:

  • Init wizard: 20+ prompts, 5-10 minutes
  • User confusion: "What do I need?"
  • Drop-off: Users abandon init halfway

After:

  • Init wizard: 2-5 prompts for presets, 1-2 minutes
  • Clear path: User knows exactly what they're configuring
  • Post-init clarity: User knows exact next steps

Files to Modify

devflow/config/init_wizard.py          # Main init wizard logic
devflow/cli/main.py                    # daf init command
devflow/config/loader.py               # Auto-detection helpers
devflow/cli/commands/config_commands.py # New add-feature command
tests/test_init_command.py             # Test coverage
docs/getting-started/installation.md   # Update documentation
docs/getting-started/quick-start.md    # Update quick start

User Stories

As a GitHub user, I want to set up DevAIFlow with just my workspace path, so that I can start creating issues in under 1 minute.

As a JIRA enterprise user, I want a JIRA-focused setup flow that doesn't ask about GitHub/GitLab, so that I'm not confused by irrelevant options.

As a new user, I want to see what to do next after daf init, so that I can start being productive immediately.

As an advanced user, I want to add advanced features (keywords, hierarchical config) later when I need them, so that I'm not overwhelmed upfront.

Related Issues

This addresses the adoption blocker: "daf init is too complex for new users"

  • Init wizard offers preset-based configuration (GitHub-only, JIRA-only, GitLab-only, Local-only, Full)
  • GitHub preset asks <=3 questions (workspace path + optional settings)
  • JIRA preset asks <=5 questions (URL + project + workspace + optional visibility)
  • Local-only preset asks 1 question (workspace path)
  • Init auto-detects GitHub/GitLab from git remote URLs
  • Init auto-suggests workspace path from current directory
  • Post-init guidance shows next steps with example commands
  • Advanced features (keywords, hierarchical config) can be added later via 'daf config add-feature'
  • Documentation updated with new preset-based flow
  • Tests cover all preset paths and auto-detection

Metadata

Metadata

Assignees

Labels

2.1Issues targeted for version 2.1 releasetask

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions