Skip to content

withAIx/DeepSeek-AppForge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

βš’οΈ AppForge

Forge your app idea into a working product with 13 AI agents.

One sentence in β†’ fully functional app out. No human coding required.

English Β· δΈ­ζ–‡

πŸ’‘ Looking for the Claude (Anthropic) version? β†’ AppForge

GitHub stars License: MIT Python 3.11+ OpenAI SDK (DeepSeek compatible) PRs Welcome


πŸ€” What Is AppForge?

AppForge is an AI-native APP development assembly line. You describe what you want to buildβ€”in plain languageβ€”and 13 specialized AI agents take it from idea to a complete, runnable application.

No more piecemeal AI coding assistants. AppForge runs the entire product lifecycle:

YOU SAY:                          APPFORGE DELIVERS:
"I want a running tracker app      βœ… docs/PRD.md          (9-chapter product spec)
 that logs routes, pace,           βœ… docs/TECH_ARCHITECTURE (tech stack, directory tree)
 calories, and friend PvP"         βœ… docs/CODING_STANDARDS (DO/DON'T code rules)
                                   βœ… docs/DB_SCHEMA        (ER diagram, SQL, RLS)
                                   βœ… docs/API_CONTRACT     (endpoints, types, error codes)
                                   βœ… docs/TASK_BOOK        (phased task plan, Mock strategy)
                                   βœ… Working React Native app (Expo + Supabase)

Think of it as: Assembling a 13-person full-stack teamβ€”1 tech lead, 6 architects, 6 engineersβ€”that never sleeps, never complains, and ships end-to-end.


πŸ—ΊοΈ Pipeline at a Glance

AppForge Pipeline


🎯 Why AppForge?

Instead of... AppForge...
Manually writing PRDs, tech specs, coding standards 6 planning agents generate all 6 documents in strict sequence, each validated against the previous
Figuring out what to build next Orchestrator reads project state and routes to the right agent automatically
Switching between 5 different AI tools Single pipeline: one conversation, 13 agents, zero context switching
Hoping code quality stays consistent CODING_STANDARDS.md is generated first, then enforced by every coding agent
Manually tracking what's done project_state.json tracks every task, retry count, and degradation status
Abandoning projects mid-way Graceful degradation: failed agents produce simplified output rather than blocking the pipeline

πŸš€ Powered by DeepSeek V4

AppForge is built entirely on the DeepSeek V4 model family, delivering unparalleled performance at a fraction of the cost.

Why DeepSeek?

Capability DeepSeek V4 Pro Claude Opus 4.6 Advantage
Context window 1,000,000 tokens 200,000 tokens 5x larger β€” load all 6 planning docs in one prompt
Input price (per 1M tokens) $1.74 $15.00 8.6x cheaper
Output price (per 1M tokens) $3.48 $75.00 21.5x cheaper
Thinking mode thinking / thinking_max Extended thinking Fine-grained control per agent
Prefix caching Automatic (80-92% discount) Manual Phase 0 serial chain: ~60% cost savings
Chinese language Native-level Good System prompts are primarily Chinese

Smart Model Routing

Not every task needs a heavyweight model. AppForge assigns models intelligently:

Tier Model Thinking Mode Agents Use Case
Heavy deepseek-v4-pro thinking_max PRD Expert, Schema Architect, API Contract, Task Decomposer Complex reasoning, multi-document synthesis
Standard deepseek-v4-pro thinking Orchestrator, Tech Architect, Coding Standards, Agent-BE, Agent-FE, Agent-FIX Architecture decisions, code generation
Light deepseek-v4-flash non-thinking Agent-DB, Agent-CONNECT, Agent-VERIFY Mechanical SQL/field mapping/validation

DeepSeek-Exclusive Features

1M Context Cross-Document Review After all 6 planning documents are generated, cross_doc_checker.py loads every document into a single API call and performs a holistic consistency audit β€” catching field name mismatches, schema-API inconsistencies, and logic contradictions across the entire doc set. Impossible on a 200K context window.

Automatic Prefix Caching DeepSeek caches repeated prompt prefixes at block boundaries automatically. Phase 0's serial chain (where each agent loads the previous agent's output) sees 80-92% cache hit rates, cutting prompt costs by ~60%. The prefix_cache_utils.py helper structures messages to maximize cache overlap.

Reasoning Content Streaming When thinking mode is enabled, DeepSeek returns delta.reasoning_content (the model's internal chain of thought) alongside delta.content (visible output). The Orchestrator displays its reasoning so you can understand why it made each scheduling decision.


πŸ—οΈ Architecture

The Assembly Line

                         βš’οΈ AppForge
                              β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚               β”‚               β”‚
              β–Ό               β–Ό               β–Ό
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚              🧠 Orchestrator                     β”‚
     β”‚         DeepSeek V4 Pro + Function Calling             β”‚
     β”‚                                                 β”‚
     β”‚   Reads project_state.json β†’ Decides next step  β”‚
     β”‚            β†’ Routes to correct agent            β”‚
     β”‚            β†’ Updates progress                   β”‚
     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β–Ό                                    β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   PHASE 0: Planning   β”‚          β”‚  PHASE 1-N: Building  β”‚
β”‚   (Strict Serial)     β”‚          β”‚  (Hybrid Parallel)    β”‚
β”‚   β‘ β†’β‘‘β†’β‘’β†’β‘£β†’β‘€β†’β‘₯       β”‚          β”‚  DB β”‚ FEβ•‘BE β”‚ CONNECT β”‚
β”‚   6 docs auto-gen     β”‚          β”‚  VERIFY β†’ FIX β†’ SHIP  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Phase 0: The Planning Pipeline (Strict Serial Chain)

Every step consumes the output of the previous step. No skipping, no parallel executionβ€”each document is the foundation for the next.

USER IDEA  "I want a running tracker app..."
    β”‚
    β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β‘  πŸ“ PRD EXPERT                                                  β”‚
β”‚    Input:  User's idea (even a single sentence)                   β”‚
β”‚    Output: docs/PRD.md β€” 9 chapters, Given-When-Then criteria    β”‚
β”‚    Gate:   βœ… No banned words  βœ… P0 ≀ 40% of total features      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β‘‘ πŸ—οΈ TECH ARCHITECT                                              β”‚
β”‚    Input:  docs/PRD.md                                          β”‚
β”‚    Output: docs/TECH_ARCHITECTURE.md                            β”‚
β”‚    Content: 2+ alternatives per tech choice, full directory tree,β”‚
β”‚             MVP phases, zero-experience setup guide             β”‚
β”‚    Gate:   βœ… Comparison table per choice  βœ… No vague language   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β‘’ πŸ“ CODING STANDARDS                                            β”‚
β”‚    Input:  PRD + TECH_ARCHITECTURE                              β”‚
β”‚    Output: docs/CODING_STANDARDS.md β€” 13 chapters                β”‚
β”‚    Content: Naming rules, component/store/service patterns,      β”‚
β”‚             Git conventions, Cursor AI prompt template          β”‚
β”‚    Gate:   βœ… DO/DON'T code examples  βœ… Dir tree matches ARCH   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β‘£ πŸ—„οΈ SCHEMA ARCHITECT                                            β”‚
β”‚    Input:  PRD + ARCH + STANDARDS (3 docs)                      β”‚
β”‚    Output: docs/DB_SCHEMA.md                                    β”‚
β”‚    Content: Mermaid ER diagram, PostgreSQL DDL, SQLite DDL,     β”‚
β”‚             RLS policies, indexes, sync strategy, Redis keys    β”‚
β”‚    Gate:   βœ… Every table traceable to PRD  βœ… SQL executable    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β‘€ πŸ”Œ API CONTRACT ARCHITECT                                      β”‚
β”‚    Input:  PRD + ARCH + STANDARDS + SCHEMA (4 docs)             β”‚
β”‚    Output: docs/API_CONTRACT.md                                 β”‚
β”‚    Content: Error code system, auth tiers, TypeScript types,     β”‚
β”‚             pagination, file upload, weak-network resilience     β”‚
β”‚    Gate:   βœ… Every PRD action β†’ API  βœ… Fields match Schema      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β‘₯ πŸ“‹ TASK DECOMPOSER                                             β”‚
β”‚    Input:  ALL 5 docs above                                     β”‚
β”‚    Output: docs/TASK_BOOK.md                                    β”‚
β”‚    Content: Dependency graph (Mermaid), per-task file list,      β”‚
β”‚             Mock data plan, copy-paste Claude Code prompts      β”‚
β”‚    Gate:   βœ… Every page β†’ task  βœ… Criteria = terminal commands  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ πŸ” INDEPENDENT REVIEW (fresh conversation, zero context bias)    β”‚
β”‚    Cross-document consistency β†’ Operability β†’ Completeness       β”‚
β”‚    Output: Must Fix / Should Fix / Ignore / Score (1-10)         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                     All clear βœ…
                             β”‚
                             β–Ό
                  PHASE 1-N CODING BEGINS

Phase 1-N: The Build Pipeline (Hybrid Serial-Parallel)

TASK_BOOK.md
    β”‚
    β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ PHASE 1: INFRASTRUCTURE (forced serial β€” no parallel possible)   β”‚
β”‚                                                                 β”‚
β”‚ T00 ──▢ T01 ──▢ T02 ──▢ T03 ──▢ T04                            β”‚
β”‚ Init     Config   Types    API      UI                           β”‚
β”‚ project  files    defs     client   components                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ PHASE 2: AUTH MODULE                                            β”‚
β”‚                                                                 β”‚
β”‚ T05 (Auth Store) ──▢ T06 (Register) β•‘ T07 (Login) ← can parallelβ”‚
β”‚                           β”‚                                      β”‚
β”‚                           β–Ό                                      β”‚
β”‚                   T08 (Auth Edge Function)                       β”‚
β”‚                           β”‚                                      β”‚
β”‚                           β–Ό                                      β”‚
β”‚                   T06 + T07: swap Mock β†’ real API                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ PHASE 3+: CORE FEATURES (frontend β€– backend allowed)            β”‚
β”‚                                                                 β”‚
β”‚                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                 β”‚
β”‚                 β”‚  πŸ—ƒοΈ Agent-DB  β”‚   Run migrations               β”‚
β”‚                 β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜                                 β”‚
β”‚                        β”‚                                         β”‚
β”‚          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                           β”‚
β”‚          β–Ό             β–Ό             β–Ό                           β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                        β”‚
β”‚   β”‚ 🎨 FE    β”‚ β”‚ πŸ”§ BE    β”‚ β”‚ 🎨 FE    β”‚  ← up to 3 in parallel  β”‚
β”‚   β”‚ Feed pg  β”‚ β”‚ Post API β”‚ β”‚ New Post β”‚                        β”‚
β”‚   β”‚ +Mock    β”‚ β”‚          β”‚ β”‚ +Mock    β”‚                        β”‚
β”‚   β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                        β”‚
β”‚        β”‚            β”‚            β”‚                                β”‚
β”‚        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                β”‚
β”‚                     β–Ό                                            β”‚
β”‚             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                     β”‚
β”‚             β”‚ πŸ”— CONNECT    β”‚  Replace Mock β†’ real API            β”‚
β”‚             β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜                                     β”‚
β”‚                    β–Ό                                             β”‚
β”‚             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                     β”‚
β”‚             β”‚ βœ… VERIFY     β”‚  Run acceptance tests               β”‚
β”‚             β””β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”˜                                     β”‚
β”‚                β”‚       β”‚                                         β”‚
β”‚           Pass βœ…   Fail ❌                                       β”‚
β”‚                β”‚       β–Ό                                         β”‚
β”‚                β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                    β”‚
β”‚                β”‚  β”‚ 🩹 FIX    β”‚  Fix β†’ re-verify                  β”‚
β”‚                β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                                    β”‚
β”‚                β–Ό       β”‚                                         β”‚
β”‚           Next Task β—€β”€β”€β”˜                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                    All tasks done
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ πŸ” MILESTONE REVIEW (fresh conversation)                         β”‚
β”‚    Zero "must fix" items β†’ πŸŽ‰ COMPLETE, RUNNING APP               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ‘₯ The 13-Agent Roster

πŸŽ›οΈ Orchestrator

Agent Model Role
🧠 Orchestrator DeepSeek V4 Pro + thinking Reads project state β†’ decides next agent β†’ dispatches via Function Calling β†’ updates progress

πŸ“‹ Phase 0: The Planning Crew (strict serial, 6 agents)

# Agent Output Depends On What It Does
1 πŸ“ PRD Expert docs/PRD.md User idea Vague idea β†’ 9-chapter structured PRD with Given-When-Then acceptance criteria
2 πŸ—οΈ Tech Architect docs/TECH_ARCHITECTURE.md PRD Tech comparison tables, directory tree, MVP phases, zero-experience setup guide
3 πŸ“ Coding Standards docs/CODING_STANDARDS.md Tech Arch 13-chapter coding bible with DO/DON'T examples, Cursor AI prompt template
4 πŸ—„οΈ Schema Architect docs/DB_SCHEMA.md Standards Mermaid ER diagrams, PostgreSQL + SQLite DDL, RLS policies, sync strategies
5 πŸ”Œ API Contract docs/API_CONTRACT.md Schema Endpoint definitions, TypeScript types, error code system, weak-network resilience
6 πŸ“‹ Task Decomposer docs/TASK_BOOK.md All 5 docs Phased task plan with dependency graph, Mock plan, copy-paste Claude Code prompts

πŸ’» Phase 1-N: The Build Crew (hybrid serial-parallel, 6 agents)

Agent Trigger Delivers
πŸ—ƒοΈ Agent-DB Migration task in TASK_BOOK Supabase CREATE TABLE + RLS SQL
πŸ”§ Agent-BE Edge Function task TypeScript Deno Edge Function code
🎨 Agent-FE Page/component task React Native page + inline Mock data + // TODO: TXX markers
πŸ”— Agent-CONNECT FE + BE both complete Mock β†’ real API, snake_case/camelCase field mapping
βœ… Agent-VERIFY Any coding task done Per-criterion pass/fail report (no vague "looks good")
🩹 Agent-FIX Compile error / verify fail Fix with exact file path + line number, minimal diff

πŸŽ›οΈ The Orchestrator's Tool Belt

The Orchestrator doesn't guessβ€”it uses 4 Function Calling tools to make data-driven scheduling decisions:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        🧠 Orchestrator                            β”‚
β”‚                                                                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
β”‚  β”‚ read_project_state   β”‚          β”‚ read_file            β”‚        β”‚
β”‚  β”‚ "What's the current  β”‚          β”‚ "Show me what's in   β”‚        β”‚
β”‚  β”‚  status of every     β”‚          β”‚  this doc/code file" β”‚        β”‚
β”‚  β”‚  agent and task?"    β”‚          β”‚                      β”‚        β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β”‚                                                                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
β”‚  β”‚ route_to_agent       β”‚          β”‚ update_state         β”‚        β”‚
β”‚  β”‚ "Dispatch Agent-X    β”‚          β”‚ "Mark task complete,  β”‚        β”‚
β”‚  β”‚  with this task +    β”‚          β”‚  record failure,      β”‚        β”‚
β”‚  β”‚  all required docs"  β”‚          β”‚  update retry count"  β”‚        β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β”‚                                                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

One Complete Scheduling Cycle

User: "I want to build a running tracker app..."
                β”‚
                β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Orchestrator reads state     β”‚
β”‚ β†’ PRD.md missing             β”‚
β”‚ β†’ Phase 0, Step 1 needed     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Orchestrator outputs:        β”‚
β”‚ πŸ“Š Status: Phase 0, Step 1   β”‚
β”‚ πŸ—ΊοΈ Plan:   Route to PRD      β”‚
β”‚    Expert β€” no input docs    β”‚
β”‚    needed, just the user's   β”‚
β”‚    product idea              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Function Calling: route_to_agent(    β”‚
β”‚   agent="prd_expert",        β”‚
β”‚   task="Generate PRD for     β”‚
β”‚         running tracker...", β”‚
β”‚   plan={reason: "...",       β”‚
β”‚         expected_output:     β”‚
β”‚         "docs/PRD.md"}       β”‚
β”‚ )                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Worker executes:             β”‚
β”‚ 1. Load prd_expert.md prompt β”‚
β”‚ 2. Stream PRD to terminal    β”‚
β”‚ 3. Save to docs/PRD.md       β”‚
β”‚ 4. Mark state: completed     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Orchestrator: update_state() β”‚
β”‚ ➑️ Next: Tech Architect      β”‚
β”‚    (input: docs/PRD.md)      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⚑ Quick Start

The Full Pipeline (Recommended)

git clone https://github.com/withAIx/DeepSeek-AppForge.git
cd DeepSeek-AppForge/project-orchestrator

pip install -r requirements.txt
cp .env.example .env   # add your DEEPSEEK_API_KEY

python main.py
> I want a calorie-tracking app with barcode scanning and meal logging...

The Orchestrator fires up and dispatches:
  Agent-PRD β†’ Agent-ARCH β†’ Agent-STANDARDS β†’ Agent-SCHEMA
  β†’ Agent-API β†’ Agent-DECOMP β†’ Coding begins...

Notes for Users in China

If GitHub is slow, use a mirror:

git clone https://ghproxy.com/https://github.com/withAIx/DeepSeek-AppForge.git

DeepSeek API requires a proxy or API forwarding service when accessed from mainland China. Set your proxy before running:

export HTTPS_PROXY=http://127.0.0.1:7890   # your proxy address
python main.py

Individual Agent (Python Library)

pip install -e .
from agents import PRDExpert, MobileArchitect, TaskDecomposer

prd = PRDExpert()
result = prd.run("I want to build a food delivery app for campus students...")
print(result)

CLI

python -m agents.cli run prd-expert "Write a PRD for a pet adoption app"
python -m agents.cli list                          # list all 10 agents
python -m agents.cli run-stream task-decomposer "..."  # streaming mode

Claude Code Skill

Copy any .md file from skills/ into your Claude Code skills directory. Activate it mid-conversation:

/activate prd-expert

πŸ›‘οΈ Resilience: Graceful Degradation

Every agent gets 2 retries. If both fail, the pipeline doesn't stopβ€”it degrades gracefully:

Agent Degradation Strategy
PRD Expert Minimal PRD: product overview + P0 feature list only
Tech Architect Default stack: Expo + Supabase + Zustand + NativeWind
Coding Standards Minimal rule set: naming conventions + directory tree + banned words
Schema Architect Core tables only: profiles + top 1-2 business tables
API Contract Auth endpoints + the single most critical business endpoint
Task Decomposer Simplified task book: task IDs + names + dependencies, no Claude Code prompts

Degraded outputs are marked "degraded": true in project_state.json. Downstream agents work with what's availableβ€”the assembly line keeps moving.


🚦 Conflict Resolution

When documents disagree (e.g., a field name differs between Schema and API Contract):

Level 1: PRD           ← The final authority on feature behavior
Level 2: Tech Arch     ← Architecture choices cannot be overridden downstream
Level 3: Coding Standards ← Naming style takes precedence here
Level 4: Schema        ← Field names are canonical from here
Level 5: API Contract  ← Interface format follows from above

Process: identify conflict β†’ consult the higher-level document β†’ fix the lower-level document β†’ log the decision in project_state.json. The LLM never decides which side "looks more reasonable."


πŸ“‚ Repo Layout

AppForge/                                  # ← you are here
β”‚
β”œβ”€β”€ README.md                              # this page
β”œβ”€β”€ pyproject.toml                         # Python package config
β”‚
β”œβ”€β”€ πŸ“¦ src/agents/                         # Python library (programmatic access)
β”‚   β”œβ”€β”€ _base.py                           # BaseAgent + AgentConfig
β”‚   β”œβ”€β”€ prd_expert.py .. orchestrator.py   # 10 agent implementations
β”‚   └── cli.py                             # click-based CLI
β”‚
β”œβ”€β”€ βš’οΈ project-orchestrator/               # The full assembly line
β”‚   β”œβ”€β”€ README.md                          # detailed orchestrator docs
β”‚   β”œβ”€β”€ main.py                            # interactive REPL entry point
β”‚   β”œβ”€β”€ orchestrator.py                    # Function Calling scheduling loop
β”‚   β”œβ”€β”€ worker.py                          # agent executor (stream + save)
β”‚   β”œβ”€β”€ state.py                           # JSON state machine
β”‚   β”œβ”€β”€ config.py                          # 12-agent registry + dep graph
β”‚   β”œβ”€β”€ agents/                            # 13 system prompt files (.md)
β”‚   β”‚   β”œβ”€β”€ orchestrator.md
β”‚   β”‚   β”œβ”€β”€ phase0/                        # 6 planning agent prompts
β”‚   β”‚   └── phase1n/                       # 6 coding agent prompts
β”‚   └── docs/                              # auto-generated output documents
β”‚
└── πŸ“‹ skills/                             # Claude Code skill files (10 agents)
    β”œβ”€β”€ prd-expert.md
    β”œβ”€β”€ mobile-architect.md
    └── ...

πŸ“„ License

MIT β€” forge away.