ido4

    User Guide: Day-to-Day with ido4

    This guide provides practical, step-by-step instructions for managing your software projects with ido4. It covers the complete lifecycle of a task, from creation to completion, and explains how to manage the waves of work.

    Prerequisite: You should be familiar with the concepts in the Core Concepts guide.


    1. Initializing Your Project

    While the sandbox is great for learning, you'll want to use ido4 on your own repositories. The project:init command sets up a new or existing repository for use with ido4.

    # Navigate to your project's directory
    cd /path/to/your-repo
    
    # Run the initialization command
    ido4 project:init
    

    This command will:

    1. Create a new GitHub Project for your repository.
    2. Configure the project with the necessary custom fields (Wave, Epic, AI Suitability, etc.).
    3. Customize the Status field with the 7 ido4 workflow states.
    4. Create a .ido4/project-info.json file in your local repository to store configuration.

    2. The 7 States of a Task

    In ido4, every task progresses through a defined 7-state lifecycle. Understanding these states is key to managing your project's workflow.

    Workflow Diagram Placeholder for a real workflow diagram

    State 1: Backlog

    • What it is: The entry point for all new tasks. An idea or a requirement that has been captured but not yet analyzed.
    • How it gets here: A new issue is created and added to your GitHub Project.

    State 2: In Refinement

    • What it is: The task is being actively analyzed and prepared for development.
    • How it gets here: A team member runs ido4 task:start-refinement [issue-number].
    • Activities: During this phase, you define acceptance criteria, estimate effort, identify dependencies, classify the task's AI suitability, and assign it to a Wave.

    State 3: Ready for Dev

    • What it is: The task is fully specified, and all its prerequisite tasks are complete. It is ready to be worked on.
    • How it gets here: After refinement is complete, a team member runs ido4 task:approve-refinement [issue-number].

    State 4: Blocked

    • What it is: The task cannot be worked on because one or more of its dependencies are not yet Done.
    • How it gets here: This state is often set automatically when dependencies are identified. It can also be set manually.

    State 5: In Progress

    • What it is: The task is actively being implemented by a developer or an AI assistant.
    • How it gets here: A developer or AI runs ido4 task:start [issue-number].
    • Rule: The system enforces a "single active task" principle to maintain focus.

    State 6: In Review

    • What it is: The implementation is complete, and the work is awaiting review and approval from a human team member.
    • How it gets here: The developer or AI runs ido4 task:submit-for-review [issue-number].

    State 7: Done

    • What it is: The task has been reviewed, approved, and is considered complete.
    • How it gets here: A team member runs ido4 task:approve [issue-number].
    • Effect: Completing a task may unblock other tasks that depend on it.

    3. Managing Dependencies

    Dependencies are the backbone of the ido4 workflow. They define the order of work and allow the system to automatically determine what can be worked on next.

    • Setting Dependencies:

      # A task can depend on one or more other tasks
      ido4 task:set-dependencies [issue-number] "Depends on: #15, #17"
      
    • Checking Dependencies:

      # See if a task is ready to be worked on
      ido4 task:check-dependencies [issue-number]
      

      The tool will tell you if any prerequisite tasks are not yet Done.


    4. Managing Waves

    Waves are the containers for your work, ensuring that related tasks are completed together.

    • Assigning a Task to a Wave:

      # Manually assign a task to a specific wave
      ido4 task:set-wave [issue-number] "wave-001-authentication"
      
    • Auto-Assigning a Wave: ido4 can also suggest a wave based on the task's dependencies.

      # Let ido4 determine the correct wave
      ido4 task:assign-wave [issue-number]
      
    • Checking Wave Status:

      # Get a summary of all waves in the project
      ido4 wave:list
      
      # Get detailed status for a specific wave
      ido4 wave:status "wave-001-authentication"
      

    This guide covers the fundamental commands for your daily workflow. For a complete list of all available commands and their options, please refer to the Command Reference.