backend-code-review
π―Skillfrom dauquangthanh/hanoi-rainbow
Reviews backend code for potential issues, best practices, and code quality using AI-powered analysis within the Hanoi Rainbow spec-driven development framework.
Installation
npx skills add https://github.com/dauquangthanh/hanoi-rainbow --skill backend-code-reviewSkill Details
Overview
# π 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.
[](https://github.com/dauquangthanh/hanoi-rainbow/actions/workflows/release.yml)
[](https://github.com/dauquangthanh/hanoi-rainbow/stargazers)
[](https://github.com/dauquangthanh/hanoi-rainbow/blob/main/LICENSE)
[](https://dauquangthanh.github.io/hanoi-rainbow/)
---
Table of Contents
- [π€ What is Spec-Driven Development?](#-what-is-spec-driven-development)
- [β‘ Get Started](#quick-start)
- [π€ Supported AI Agents](#-supported-ai-agents)
- [π§ Rainbow CLI Reference](#-rainbow-cli-reference)
- [π Core Philosophy](#spec-driven-development-sdd)
- [π Development Phases](#-development-phases)
- [π§ Prerequisites](#-prerequisites)
- [π Learn More](#-learn-more)
- [π Detailed Process](#-detailed-process)
- [π Troubleshooting](#-troubleshooting)
- [π₯ Maintainers](#-maintainers)
- [π¬ Support](#-support)
- [π Acknowledgements](#-acknowledgements)
- [π License](#-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:
```mermaid
flowchart LR
Start([Project Type?])
Start --> Greenfield[π± Greenfield
New Project]
Start --> Brownfield[ποΈ Brownfield
Existing Project]
Greenfield --> GF1[π Regulate
Set Principles]
GF1 --> GF2[π― Specify
Define Features]
GF2 --> GF3[π Clarify
Refine Requirements]
GF3 --> GF4[π Architect
System Design]
GF4 --> GF5[π Standardize
Coding Rules]
GF5 --> GF6[π οΈ Design
Technical Plan]
GF6 --> GF7[π Taskify
Break Down Tasks]
GF7 --> GF8[β‘ Implement
Build Features]
GF8 --> GF9[β Test & Deploy]
Brownfield --> BF1[π Assess Context
Analyze Codebase]
BF1 --> BF2[π Regulate
Update Principles]
BF2 --> BF3[π― Specify
New Feature]
BF3 --> BF4[π Clarify
Requirements]
BF4 --> BF5[π οΈ Design
Integration Plan]
BF5 --> BF6[π Taskify
Task Breakdown]
BF6 --> BF7[β‘ Implement
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