π‘ Summary
Hanoi Rainbow enables specification-driven development to streamline project creation and management with AI assistance.
π― Target Audience
π€ AI Roast: βPowerful, but the setup might scare off the impatient.β
Risk: Medium. Review: shell/CLI command execution; outbound network access (SSRF, data egress); API keys/tokens handling and storage; filesystem read/write scope and path traversal. Run with least privilege and audit before enabling in production.
π Hanoi Rainbow
Drive Quality Together with AI-Powered Framework
Stop guessing. Start specifying.
Turn your ideas into production-ready applications through clear specifications, not trial-and-error coding.
Table of Contents
- π€ What is Spec-Driven Development?
- β‘ Get Started
- π€ Supported AI Agents
- π§ Rainbow CLI Reference
- π Core Philosophy
- π Development Phases
- π§ Prerequisites
- π Learn More
- π Detailed Process
- π Troubleshooting
- π₯ Maintainers
- π¬ Support
- π Acknowledgements
- π License
π‘ What is Spec-Driven Development?
Traditional approach: Write code first, figure it out as you go.
Spec-Driven approach: Define what you want first, then let AI build it right.
For decades, we treated specifications as throwaway notesβjust a formality before the "real" coding began. Spec-Driven Development flips this around: your specification becomes the blueprint that directly generates working code, not just a suggestion.
Think of it like architecture: You wouldn't build a house without blueprints. Why build software without clear specifications?
Development Approaches
Hanoi Rainbow supports both Greenfield (new projects) and Brownfield (existing projects) development:
flowchart LR Start([Project Type?]) Start --> Greenfield[π± Greenfield<br/>New Project] Start --> Brownfield[ποΈ Brownfield<br/>Existing Project] Greenfield --> GF1[π Regulate<br/>Set Principles] GF1 --> GF2[π― Specify<br/>Define Features] GF2 --> GF3[π Clarify<br/>Refine Requirements] GF3 --> GF4[π Architect<br/>System Design] GF4 --> GF5[π Standardize<br/>Coding Rules] GF5 --> GF6[π οΈ Design<br/>Technical Plan] GF6 --> GF7[π Taskify<br/>Break Down Tasks] GF7 --> GF8[β‘ Implement<br/>Build Features] GF8 --> GF9[β Test & Deploy] Brownfield --> BF1[π Assess Context<br/>Analyze Codebase] BF1 --> BF2[π Regulate<br/>Update Principles] BF2 --> BF3[π― Specify<br/>New Feature] BF3 --> BF4[π Clarify<br/>Requirements] BF4 --> BF5[π οΈ Design<br/>Integration Plan] BF5 --> BF6[π Taskify<br/>Task Breakdown] BF6 --> BF7[β‘ Implement<br/>Add Feature] BF7 --> BF8[β Test & Deploy] style Greenfield fill:#90EE90 style Brownfield fill:#87CEEB style GF8 fill:#FFD700 style BF7 fill:#FFD700
Greenfield projects start with establishing principles, architecture, and standards before building features. Brownfield projects begin with /rainbow.assess-context to understand existing architecture and patterns, then follow a streamlined workflow to add new features while maintaining consistency.
Key Differences:
| Aspect | π± Greenfield | ποΈ Brownfield |
|--------|--------------|---------------|
| Starting Point | Empty project | Existing codebase |
| Setup Phase | /rainbow.regulate | /rainbow.assess-context (once per project) |
| Focus | Establish foundations first | Integrate with existing patterns |
| Timeline | 2-4 weeks (MVP) | 1-2 weeks per feature |
| Flexibility | Complete freedom in design | Must maintain consistency |
| Commands Used | Full workflow (8 core commands) | Streamlined (6 core commands) |
Install Rainbow CLI
Recommended: Install once, use everywhere
uv tool install rainbow-cli --from git+https://github.com/dauquangthanh/hanoi-rainbow.git
Then use it anywhere:
rainbow init <PROJECT_NAME> rainbow check
Need to upgrade? See the Upgrade Guide or run:
uv tool install rainbow-cli --force --from git+https://github.com/dauquangthanh/hanoi-rainbow.git
uv tool install rainbow-cli --force --native-tls --from git+https://github.com/dauquangthanh/hanoi-rainbow.git
uvx --from git+https://github.com/dauquangthanh/hanoi-rainbow.git rainbow init <PROJECT_NAME>
uvx --native-tls --from git+https://github.com/dauquangthanh/hanoi-rainbow.git rainbow init <PROJECT_NAME>
Why install?
- β Available everywhere in your terminal
- β
Easy to upgrade with
uv tool upgrade - β Cleaner than shell aliases
- β Better tool management
Your First Project in 8 Steps
π‘ Automatic Version Control: All Rainbow commands automatically generate appropriate git commit messages and commit changes upon completion. Commands use semantic commit prefixes (
docs:,feat:,test:,chore:) to maintain a clear project history.
1οΈβ£ Set Project Rules
Launch your AI assistant in the project. You'll see /rainbow.* commands available.
Create your project's guiding principles:
/rainbow.regulate Create principles for code quality, testing, user experience, and performance
2οΈβ£ Write the Specification
Describe what you want to build and why (not the tech stack yet):
/rainbow.specify Build a photo organizer with albums grouped by date. Users can drag-and-drop albums to reorganize them. Albums show photos in a tile view. No nested albums allowed.
3οΈβ£ Design System Architecture (Optional)
Document your system architecture once per product:
/rainbow.architect Create C4 diagrams, document tech stack decisions and architecture patterns
4οΈβ£ Set Coding Standards (Optional)
Create coding standards for your team:
/rainbow.standardize Define naming conventions, file organization, and best practices
5οΈβ£ Create Technical Design
Now specify how to build it (tech stack and architecture):
/rainbow.design Use Vite with vanilla HTML, CSS, and JavaScript. Keep libraries minimal. Store metadata in local SQLite. No image uploads.
6οΈβ£ Break Down Tasks
Generate an actionable task list:
/rainbow.taskify
7οΈβ£ Build It
Execute all tasks automatically:
/rainbow.implement
8οΈβ£ Test & Iterate
Run your application and fix any issues. Your AI assistant will help debug.
Want more details? Read our complete guide.
π€ Supported AI Agents
| Agent | Support | Notes | | ----------------------------------------------------------- | --------- |---------------------------------------------------| | Amazon Q Developer CLI | β οΈ | Amazon Q Developer CLI does not support custom arguments for slash commands. | | Amp | β | | | Auggie CLI | β | | | Claude Code | β | | | CodeBuddy CLI | β | | | Codex CLI | β | | | Cursor | β | | | Gemini CLI | β | | | GitHub Copilot | β | | | Google Antigravity | β | IDE-based agent with slash command support | | IBM Bob | β | IDE-based agent with slash command support | | Jules | β | | | Kilo Code | β | | | opencode | β | | | Qoder CLI | β | | | Qwen Code | β | | | Roo Code | β | | | SHAI (OVHcloud) | β | | | Windsurf | β | |
π§ Rainbow CLI Reference
The rainbow command supports the following options:
Commands
| Command | Description | | ------------- | ---------------------------------------------------------------- | | `init
Pros
- Facilitates clear project specifications.
- Integrates AI assistance for development.
- Supports both new and existing projects.
- Automates version control and task management.
Cons
- May require a learning curve for new users.
- Dependency on AI may limit creativity.
- Complexity in managing existing codebases.
- Potential for over-reliance on automation.
Related Skills
pytorch
SβIt's the Swiss Army knife of deep learning, but good luck figuring out which of the 47 installation methods is the one that won't break your system.β
agno
SβIt promises to be the Kubernetes for agents, but let's see if developers have the patience to learn yet another orchestration layer.β
nuxt-skills
SβIt's essentially a well-organized cheat sheet that turns your AI assistant into a Nuxt framework parrot.β
Disclaimer: This content is sourced from GitHub open source projects for display and rating purposes only.
Copyright belongs to the original author DauQuangThanh.
