Way is a sophisticated containerized development environment that orchestrates AI-powered project planning and execution workflows using Claude AI. It creates an AI-powered development team that can break down complex requirements, research solutions, implement code with quality controls, and validate work against acceptance criteria.
-
Clone the repository into your projects directory:
cd ~/projects git clone <way-repo-url> .way
-
Add the alias to your
.bashrc:echo 'alias dev="~/.way/docker/dev.sh"' >> ~/.bashrc source ~/.bashrc
-
Start the development environment:
dev
- Podman: The container runtime used by way (Docker can be used with modifications)
- Git: For cloning the repository and version control
- Claude CLI: Installed automatically in the container
If you do not use podman, modify docker/dev.sh for compatibility with your container runtime
The dev alias runs a containerized development environment that:
- Mounts your current project directory to
/workspacein the container - Provides access to way commands in
/workspace/.way/commands/ - Uses your host user ID/GID for proper file permissions
- Includes Python, Node.js, Claude CLI, Gemini CLI, and development tools
- Maintains git configuration from your host system
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#fff', 'primaryTextColor': '#000', 'primaryBorderColor': '#000', 'lineColor': '#000', 'secondaryColor': '#fff', 'tertiaryColor': '#fff'}, 'flowchart': {'useMaxWidth': false, 'htmlLabels': true, 'curve': 'basis'}}}%%
graph TD
A[pdc <user-story>] --> B["**__Plan Phase__**<br/>• Story Creation (00_story.md)<br/>• Solution Search (01_search.md)<br/>• Solution Selection (02_select.md)<br/>• Solution Definition (03_define.md)<br/>• Plan Creation (04_plan.md)<br/>• Epic Decomposition (05_decompose.md)"]
B --> C["**__Do Phase__**<br/>• Triage (06_triage.md)<br/>• Execute Task (06_execute.md)<br/>• Validate Task (06_validate.md)<br/>• Loop: More Tasks? → Yes/No"]
C --> D["**__Check Phase__**<br/>• Review Completed Work<br/>• Generate Test Plans<br/>• Create Validation Docs<br/>• Validate Against Acceptance Criteria"]
D --> E[Complete Cycle]
E --> F[act.sh <user-story>]
F --> A
%% Styling
style A fill:#e1f5fe
style B fill:#fff3e0
style C fill:#e8f5e8
style D fill:#f3e5f5
style E fill:#c8e6c9
Once inside the container, you can use these commands from /workspace/.way/commands/:
Creates a complete project plan for a user story through 6 phases:
- Story Creation - Uses
00_story.mdto create well-structured user stories - Solution Search - Uses
01_search.mdto research and analyze potential approaches - Solution Selection - Uses
02_select.mdto choose the optimal solution - Solution Definition - Uses
03_define.mdto create detailed specifications - Plan Creation - Uses
04_plan.mdto create implementation plans - Epic Decomposition - Uses
05_decompose.mdto break down into manageable tasks
Example:
plan.sh hypothesis-feedback-toolExecutes development tasks from the plan with intelligent task management:
- Triage - Uses
06_triage.mdto select the next appropriate task - Execute - Uses
06_execute.mdto implement tasks interactively (200-line limit per task) - Validate - Uses
06_validate.mdto validate work interactively - Task Management - Moves tasks between
todo/,doing/,done/,check/,blocked/ - Rate Limit Handling - Automatic retry logic for Claude AI rate limits
- Quality Controls - Comprehensive validation including unit tests, integration tests, manual testing
Example:
do.sh hypothesis-feedback-toolValidates completed work and generates comprehensive test plans:
- Reviews completed tasks against acceptance criteria
- Creates validation documentation
- Generates test scenarios and coverage reports
- Ensures work meets quality standards
Example:
check.sh hypothesis-feedback-toolExecutes focused tasks with specific prompts:
- Runs individual tasks with custom prompts
- Useful for targeted development work
- Provides direct control over task execution
Example:
act.sh hypothesis-feedback-toolProject Development Cycle - runs the complete workflow:
- Combines plan, do, and check phases in sequence
- Automates the full development cycle
- Provides comprehensive logging of all operations
- Creates timestamped log files for tracking
Example:
pdc hypothesis-feedback-toolWhen you run way commands, they create this structure in your project:
project-repo/
└── docs/stories/
└── user-story-name/
├── user-story.md # Story definition
├── solution-space.md # Research results
├── target-solution.md # Selected solution
├── solution-specification.md # Detailed specification
├── plan/ # Implementation plan
│ ├── README.md # Overall plan
│ └── epic-name/ # Epic breakdowns
│ ├── README.md # Epic overview
│ └── task-files.md # Individual tasks
├── delivery/ # Execution tracking
│ ├── todo/ # Pending tasks
│ ├── doing/ # Active tasks
│ ├── done/ # Completed tasks
│ ├── check/ # Validation tasks
│ └── blocked/ # Blocked tasks
└── logs/ # Execution logs
└── pdc_YYYYMMDD_HHMMSS.log
- Specialized Prompts: Each phase uses carefully crafted prompts that define the AI's role and capabilities
- Bias Awareness: Built-in bias management through the
seed.mdanchor file - Judgment Development: Encourages critical thinking and constructive disagreement
- Rate Limit Handling: Automatic detection and retry logic for Claude AI rate limits
- 200-Line Limit: Prevents over-engineering by limiting code additions per task
- Comprehensive Validation: Unit tests, integration tests, manual testing, acceptance criteria verification
- Task Blocking: Intelligent blocking mechanism when prerequisites aren't met
- STOP_PRODUCTION.md: Emergency halt mechanism for critical issues
- Phase-Based Execution: Clear separation between planning, execution, and validation
- Task State Management: Systematic movement of tasks through different states
- Interactive Execution: Human oversight during critical implementation phases
- Comprehensive Logging: Detailed logs for debugging and process improvement
The container includes:
- Ubuntu 24.04 base
- Python 3 with pip and virtual environments
- Node.js 20.x with npm
- Claude CLI and Gemini CLI for AI interactions
- Development tools (git, vim, ripgrep, jq, aider, uv)
- Proper user permissions matching your host
- Git configuration from host system
The container runs with your host user ID/GID, so file permissions should work correctly. If you encounter issues, check that the container is running with the correct user.
The commands handle Claude AI rate limits automatically by:
- Detecting rate limit errors in command output
- Extracting retry timestamps from error messages
- Adding buffer time (10 minutes) to retry times
- Automatically retrying failed requests up to 3 times
If the container build fails:
- Ensure podman is installed and running
- Check your internet connection
- Try rebuilding:
podman build --no-cache -t dev-environment .way/docker/
- Check for
STOP_PRODUCTION.mdfile in delivery directory - Verify task files are properly formatted
- Ensure prerequisites are met before execution
- Review logs in
docs/stories/<user-story>/logs/
To modify way:
- Edit files in
.way/commands/for new commands - Update
.way/docker/Dockerfilefor container changes - Modify
.way/prompts/for AI prompt changes - Update
.way/anchors/seed.mdfor bias management - Test changes by rebuilding the container
This project is licensed under the GNU General Public License v3.0 (GPL v3). See the LICENSE file for details.
The GPL v3 ensures that:
- You can use, modify, and distribute this software
- Any derivative works must also be distributed under GPL v3
- Source code must be made available when distributing modified versions
- This helps maintain the open source nature of the project and its derivatives