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:
- Create a new GitHub Project for your repository.
- Configure the project with the necessary custom fields (
Wave
,Epic
,AI Suitability
, etc.). - Customize the
Status
field with the 7ido4
workflow states. - 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.
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.