| name | project-summary |
| description | Analyze GitHub projects and generate comprehensive architecture documentation (architecture.md). Use when users request project analysis, architecture summaries, or documentation of code structure. Triggers on queries like "analyze this GitHub project", "generate architecture.md", "summarize project structure", or "document the codebase architecture". |
Project Summary
Overview
This skill helps analyze GitHub projects and generate a comprehensive architecture.md file that documents the project's structure, key components, file purposes, and architectural decisions.
Workflow
Step 1: Gather Project Information
Before analyzing, collect the necessary information:
-
Get the GitHub repository URL or local path
- If URL is provided, use web scraping to fetch README and repository structure
- If local path is provided, use bash tools to explore the directory
-
Identify the project type
- Detect programming language(s) from file extensions
- Identify frameworks (React, Django, Flask, etc.)
- Determine build tools (package.json, requirements.txt, Cargo.toml, etc.)
Step 2: Analyze Project Structure
Systematically explore and document the project:
-
Map the directory structure
tree -L 3 -I 'node_modules|__pycache__|.git|dist|build'
-
Identify key directories and their purposes
/src or /app - Main source code
/tests or /test - Test files
/docs - Documentation
/config - Configuration files
/public or /static - Static assets
/scripts - Build/deployment scripts
-
Catalog important files
- Configuration files (package.json, setup.py, Cargo.toml, etc.)
- Entry points (main.py, index.js, main.rs, etc.)
- Documentation (README.md, CONTRIBUTING.md, etc.)
Step 3: Analyze Code Architecture
Examine the codebase systematically:
-
Identify architectural patterns
- MVC, MVVM, microservices, monolithic, etc.
- Component structure (for frontend projects)
- Module organization (for backend projects)
-
Document key components
- Core modules and their responsibilities
- API endpoints or routes
- Database models or schemas
- Service layers
- Utility functions
-
Map dependencies and relationships
- Internal module dependencies
- External library usage
- Data flow between components
Step 4: Generate Architecture Diagrams (Mermaid äŒå
+ ASCII åé)
IMPORTANT: æ¯åŒ æ¶æåŸéœçšãMermaid äŒå
ãASCII åéãååŸèŸåºãå
çšå³çæ ïŒäžæ¹ïŒéå®åŸåœ¢è¯ä¹ïŒ
åçšåäžè¯ä¹åæ¶äº§åº Mermaid åŸïŒéŠéïŒGitHub/VS Code/Obsidian å¯çŽæ¥æž²æïŒå ASCII åŸïŒææ¬ç»åç/
æ æž²æç¯å¢åéïŒãå³çæ åªå³å®"ç»åªç§ç»æ"ïŒäžå³å®"çšåªç§è¯æ³"ââ䞀ç§è¯æ³éœèŠèŸåºã
4.0 Auto-Select Diagram Style (Decision Tree)
Run through these checks in order after Step 2â3 analysis. Use the first matching pattern:
项ç®åæç»æ
â
ââ ML/深床åŠä¹ æš¡å项ç®? (torch/transformers äŸèµ + model/ policy/
â networks/ ç®åœ, æè®ç»/æšçèæ¬)
â âââ¶ Pattern 7: åŒ é绎床æµåŸïŒå å åšæŽäœæ¶æåŸä¹äžïŒ
â æ¯äžªæ žå¿æš¡ååç¬ç»äžåŒ ïŒéç»ŽåºŠæ žéªæž
åïŒ
â
ââ ååš docker-compose.yml / kubernetes/ / å€äžªç¬ç« service ç®åœ?
â âââ¶ Pattern 4: 埮æå¡äº€äºåŸ
â
ââ ååš DAG / pipeline / workflow / etl / airflow / prefect å
³é®è¯?
â âââ¶ Pattern 1: 线æ§å€çæµæ°Žçº¿
â
ââ ååš components/ / pages/ / views/ (åç«¯æ¡æ¶ç¹åŸ)?
â ââ åµå¥å±çº§ ⥠3 å±? âââ¶ Pattern 6: åµå¥ç»ä»¶æ¶æ
â ââ åŠå âââ¶ Pattern 3: æš¡åäŸèµæ
â
ââ ååšææŸäžéŽä»¶éŸ (middleware/ / interceptor / filter / handler)?
â âââ¶ Pattern 5: 请æ±å€çæµæ°Žçº¿
â
ââ ååšæž
æ°åå±ç®åœ (controllers/ + services/ + models/ / repositories/)?
â âââ¶ Pattern 2: åçŽå屿¶æ
â
ââ 以äžåäžææŸ?
âââ¶ Pattern 3: æš¡åäŸèµæ (æéçšå
åº)
å€å项ç®ïŒåŠå
šæ ïŒïŒåç«¯çš Pattern 2 æ 5ïŒåç«¯çš Pattern 6ïŒååŒç»äž€åŒ åŸã
4.1 Mermaid äŒå
+ ASCII åéïŒååŸèŸåºçºŠå®ïŒ
æ¯äžªéèŠåŸçç« èïŒæ¶ææ»è§ / å€çæµæ°Žçº¿ / æ žå¿æš¡å诊解çéžç°æ»åŸïŒïŒå
èŸåº MermaidïŒåèŸåº ASCIIïŒ
åèªå äžè¡ç²äœå°æ é¢åºåïŒ
**æ¶ææ»è§ïŒMermaidïŒ**
```mermaid
flowchart TD
A["æš¡å A"] --> B["æš¡å B"]
```
**æ¶ææ»è§ïŒææ¬ç»åçïŒ**
```
ââââââââââ ââââââââââ
â æš¡å A ââââââ¶â æš¡å B â
ââââââââââ ââââââââââ
```
纊å®èŠç¹ïŒ
- Mermaid åšåãASCII åšåïŒMermaid æ¯éŠéå±ç€ºåœ¢æïŒASCII æ¯æ æž²æç¯å¢ïŒçº¯ç»ç«¯ãPR diffïŒçåéïŒ
åæ¶æ¿èœœ Mermaid äžäŸ¿è¡šèŸŸç粟ç»å¯¹éœïŒåŠ Pattern 7 ç â é¶æ®µåéïŒã
- è¯ä¹äžèŽïŒäž€åŒ åŸå¿
须衚蟟åäžå¥èç¹ãèŸ¹ãæ¹åã忝ââäžèœäžåŒ å€ç»äžäžªæš¡åã
- æ¹åéæ©ïŒé»è®€
flowchart TD 纵åïŒïŒäŒå
纵å TDââ纵ååŸåš GitHub/ææ¡£éæŽæè¯»ïŒèç¹äžäŒè¢«
åæãåªæåœéŸæ¡æçïŒâ€3~4 䞪èç¹ïŒäžæ åæ¯æ¶æèè flowchart LRïŒæšªåïŒã
â ïž å·²ç¥åïŒæ 5+ èç¹ç忥éç¯ç»æ flowchart LRïŒæž²æäŒè¢«æåŸåŸå®œãæ¯äžªæ¡åŸå°ãæåçäžæž
ã
忥éç¯ / å€çæµæ°Žçº¿å³äŸ¿"æŠå¿µäžæ¯æšªåæµ"ïŒä¹çš flowchart TDïŒæ«å°Ÿçšåå蟹
ïŒSTEP -->|"äžäžæ¥è§æµ"| OBSïŒè¡šèŸŸåç¯å³å¯ïŒäžèŠäžºäº"暪çèµ°"ç¡¬çš LRã
- ML 项ç®ç Pattern 7 éžç°æ»åŸïŒMermaid çš
subgraph 衚瀺æ¯äžª"é¶æ®µ"ïŒshape åè¿èç¹æ çŸïŒ
ASCII ä»çš â åéé¶æ®µçææ¬ç»åçïŒäž€è
å¹¶åïŒä¿¡æ¯äºè¡¥ïŒã
4.2 Mermaid è¯æ³å®å
šååïŒé¿å
æž²æå€±èŽ¥ïŒ
Mermaid å¯¹ç¹æ®å笊ææïŒå¡å¿
éæ¡éµå®ïŒåŠåæŽåŸæž²æå€±èŽ¥ïŒ
- ææèç¹æ çŸå ååŒå·ïŒ
A["ææ¬ + [B,5,2]"]ãå€å®çšè±åœ¢ D{"æ¡ä»¶ ?"}ãåŒå·å
å¯å®å
šå
å«
[ ]ã( )ã:ã?ã/ãÃãâãâ çå笊ã
- çŠæ¢è£ž
< > |ïŒäŒè¢«åœæ HTML æ çŸæèŸ¹è¯æ³ãç¹æ® token åŠ <|NAV|>ã<image> èŠæ¹å䞺
纯æåïŒåŠ NAVç¹æ®tokenãimageå äœïŒïŒå®æŽå圢æŸè¿æ£ææ ASCII çã
- æ¢è¡çš
<br/>ïŒèç¹å
å€è¡åæ A["第äžè¡<br/>第äºè¡"]ã
- 蟹æ çŸä¹å åŒå·ïŒ
A -->|"æ¯"| BãA -->|"èŸåº checkpoint"| Bã
- èç¹ id çš ASCIIïŒ
A/M1/HSïŒïŒäžæåªæŸè¿æ çŸææ¬ïŒid äžèŠå subgraph id éåã
- 埪ç¯/åéŠçšåå蟹ïŒ
STEP -->|"äžäžæ¥è§æµ"| OBSãLOOP --> SPINïŒè¡šèŸŸéç¯ã
- çæåèªæ£ïŒæ¬å·é
å¯¹ãæ¯äžª
subgraph éœæ endãç®å€Ž --> 宿Žãæ è£žç¹æ®å笊ã
4.3 å Pattern ç Mermaid æš¡æ¿
æ 4.0 éäžç PatternïŒå¥çšå¯¹åº Mermaid 骚æ¶ïŒåè¡¥ ASCII ææ¬ç»åçïŒïŒ
Pattern 1 çº¿æ§æµæ°Žçº¿ â flowchart LR
flowchart LR
I["èŸå
¥å± Input"] --> P["å€çå± Process"] --> B["äžå¡å± Business"] --> O["èŸåºå± Output"]
Pattern 2 åçŽåå± â flowchart TDïŒèªé¡¶åäžåå±ïŒå¯çš subgraph å
裹æ¯å±ïŒ
flowchart TD
UI["è¡šç€ºå± UI<br/>React / Templates"] --> SVC["äžå¡é»èŸå±<br/>Controllers / Use Cases"]
SVC --> DAO["æ°æ®è®¿é®å±<br/>Repositories / ORM"] --> DB["æ°æ®åº<br/>PostgreSQL / Redis"]
Pattern 3 æš¡åäŸèµæ â flowchart TD
flowchart TD
MAIN["äž»åºçšå
¥å£<br/>main.py / index.js"] --> A["æš¡åA auth/"]
MAIN --> B["æš¡åB api/"]
A --> U["å·¥å
ጼ utils/"]
B --> D["æ°æ®åº db/"]
Pattern 4 埮æå¡äº€äº â flowchart TDïŒçœå
³æåºïŒ
flowchart TD
GW["API Gateway"] --> AUTH["Auth Svc :8001"]
GW --> USER["User Svc :8002"]
GW --> ORDER["Order Svc :8003"]
USER --> DB["æ°æ®åºé矀<br/>PostgreSQL / Redis"]
ORDER --> DB
Pattern 5 请æ±å€çæµæ°Žçº¿ïŒåžŠåæ¯ïŒ â flowchart TD + è±åœ¢å€å®
flowchart TD
REQ["çšæ·è¯·æ±"] --> MW["Middleware<br/>è®€è¯ â éæµ â æ¥å¿"]
MW --> R{"è·¯ç±å¹é
?"}
R -->|"/api/v1/*"| CTL["Controller äžå¡å€ç"]
R -->|"/static/*"| ST["StaticHandler"]
CTL --> CACHE{"åœäžçŒå?"}
CACHE -->|"æ¯"| RESP["ååº"]
CACHE -->|"åŠ"| DB["Database 读/å"] --> RESP
Pattern 6 åµå¥ç»ä»¶ â flowchart TD + åµå¥ subgraph
flowchart TD
subgraph APP["App"]
subgraph LAYOUT["Layout"]
NAV["Navbar"]
SIDE["Sidebar"]
subgraph MAIN["Main Content"]
LIST["List"]
DETAIL["Detail"]
end
end
end
Pattern 7 åŒ é绎床æµåŸ â flowchart TD + æ¯äžªé¶æ®µäžäžª subgraphïŒshape åè¿èç¹
flowchart TD
subgraph IN["èŸå
¥"]
X["rgb [B,T,224,224,3]<br/>depth [B,224,224,1] (Ã10=ç±³)"]
end
subgraph ENC["é¶æ®µA · çŒç åš"]
E["ViT-S(patch14) â tokens [B,(T+1)Ã256,384]"]
end
subgraph HEAD["é¶æ®µB · åšäœ/æ©æ£å€Ž"]
H["TransformerDecoder â head(384â3)"]
end
OUT["èŸåº 蜚迹 [N,32,3] (Îx,Îy,Îyaw)"]
X --> E --> H --> OUT
Pattern 7 ç Mermaid ç»"é¶æ®µçº§éžç°"ïŒASCII ææ¬ç»åçä»å¿
ç»ïŒæ¿èœœéå± shape äž â é¶æ®µåéã
ç»ŽåºŠæ žéªæ³šéïŒã䞀è
å¹¶åã
4.4 Width AdaptationïŒå®œåºŠèªéåºïŒä»
çšäº ASCII åéåŸïŒ
以äžå®œåºŠ/对éœè§ååªé对 ASCII ææ¬ç»åçïŒMermaid ç±æž²æåšèªåšåžå±ïŒæ éæç®å®œåºŠã
åšçæ ASCII åŸåïŒå
ç¡®å®ç®æ 宜床ïŒ
| åºæ¯ | ç®æ 宜床 | 诎æ |
|---|
| é»è®€ïŒæªæå®ïŒ | 80 å | å
Œå®¹ææç»ç«¯å GitHub PR é¢è§ |
çšæ·æå® --wide æå®œå± | 120 å | å
讞æŽå€èç¹å¹¶æ |
| ç®å项ç®ïŒâ€5 䞪暡åïŒ | 60 å | é¿å
空çœè¿å€ |
宜床æ§å¶è§åïŒ
æ¯äžª box ç宜床 = ceil(æé¿æ çŸåç¬Šæ° / 2) * 2 + 4 (å«èŸ¹æ¡ïŒä¿æå¶æ°)
æ°Žå¹³ Pattern 1 èç¹æ°äžé:
80 åæš¡åŒ: æå€ 4 䞪èç¹å¹¶æ (æ¯èç¹ ~14 å + 5 åç®å€Ž)
120 åæš¡åŒ: æå€ 6 䞪èç¹å¹¶æ
è¶
åºèç¹æ°æ¶ïŒæè¡å€ç:
ââââââââ ââââââââ ââââââââ
â A ââââââ¶â B ââââââ¶â C â
ââââââââ ââââââââ ââââ¬ââââ
â
ââââââââ âŒ
â E âââââââââââââ
ââââââââ â D â
ââââââââ
äžè±ææ··æå¯¹éœè§åïŒäžæå笊å 2 åïŒïŒ
def visual_width(s):
return sum(2 if '\u4e00' <= c <= '\u9fff' else 1 for c in s)
def center_label(label, box_inner_width):
vw = visual_width(label)
pad = box_inner_width - vw
return ' ' * (pad // 2) + label + ' ' * (pad - pad // 2)
çææ¶ææ€é»èŸå¿ç®ææå·¥æ ¡å¯¹ïŒç¡®ä¿æ¡å
æåè§è§å±
äžã
ASCII Diagram Style Reference
Use these box-drawing character sets:
| çšé | å笊é |
|---|
| æ®éæš¡åæ¡ | âââ â âââ |
| 区è°/顶屿¡ | âââ â âââ |
| è线/å¯éæ¡ | ââââ â ââââ |
| ç®å€Ž | âââ¶ âââ· âââ â ⌠Ⲡ|
| 忝/æ±å | âââ âââ ⬠⎠⌠|
Pattern 1: 线æ§å€çæµæ°Žçº¿ïŒæ°Žå¹³ïŒ
For sequential data/request processing pipelines:
ââââââââââââ ââââââââââââ ââââââââââââ ââââââââââââ
â èŸå
¥å± ââââââ¶â å€çå± ââââââ¶â äžå¡å± ââââââ¶â èŸåºå± â
â Input â â Process â â Business â â Output â
ââââââââââââ ââââââââââââ ââââââââââââ ââââââââââââ
Pattern 2: åçŽå屿¶æ
For layered/tiered system architecture:
ââââââââââââââââââââââââââââââââââââââââ
â è¡šç€ºå± (UI Layer) â
â React Components / Templates â
â âââââââââââââââââââââââââââââââââââââââ£
â äžå¡é»èŸå± (Service Layer) â
â Controllers / Use Cases â
â âââââââââââââââââââââââââââââââââââââââ£
â æ°æ®è®¿é®å± (Data Layer) â
â Repositories / ORM Models â
â âââââââââââââââââââââââââââââââââââââââ£
â æ°æ®åº (Database) â
â PostgreSQL / Redis â
ââââââââââââââââââââââââââââââââââââââââ
Pattern 3: æš¡åäŸèµåŸïŒæ 圢ïŒ
For showing module/component dependencies:
âââââââââââââââââââââââââââââââââââââââ
â äž»åºçšå
¥å£ â
â main.py / index.js â
ââââââââ¬âââââââââââââââ¬ââââââââââââââââ
â â
⌠âŒ
ââââââââââââ ââââââââââââ
â æš¡å A â â æš¡å B â
â auth/ â â api/ â
ââââââ¬ââââââ ââââââ¬ââââââ
â â
⌠âŒ
ââââââââââââ ââââââââââââ
â å·¥å
·åº â â æ°æ®åº â
â utils/ â â db/ â
ââââââââââââ ââââââââââââ
Pattern 4: 埮æå¡/ç»ä»¶äº€äºåŸ
For distributed systems or service interactions:
âââââââââââââââââââ
â API Gateway â
ââââââââââ¬âââââââââ
âââââââââââŒââââââââââ
â â â
⌠⌠âŒ
ââââââââââââ ââââââââââ ââââââââââ
â Auth Svc â âUser Svcâ â Order â
â :8001 â â :8002 â â Svc â
ââââââââââââ ââââââ¬ââââ â :8003 â
â âââââ¬âââââ
⌠âŒ
ââââââââââââââââââââ
â æ°æ®åºé矀 â
â PostgreSQL/Redis â
ââââââââââââââââââââ
Pattern 5: 请æ±å€çæµæ°Žçº¿ïŒåžŠæ³šéïŒ
For detailed request/data flow with annotations:
çšæ·è¯·æ±
â
âŒ
âââââââââââââââââââââââââââââââââââââââââ
â Middleware â
â [讀è¯] âââ¶ [éæµ] âââ¶ [æ¥å¿è®°åœ] â
âââââââââââââââââââââ¬ââââââââââââââââââââ
â
âŒ
âââââââââââââââââââââââââââââââââââââââââ
â Router â
â /api/v1/* âââ¶ APIHandler â
â /static/* âââ¶ StaticHandler â
âââââââââââââââââââââ¬ââââââââââââââââââââ
â
âââââââââââŽâââââââââââ
⌠âŒ
âââââââââââââââ ââââââââââââââââ
â Controller â â Cache â
â (äžå¡å€ç) â â (Redis) â
ââââââââ¬âââââââ ââââââââââââââââ
â
âŒ
âââââââââââââââ
â Database â
â (读/åå犻) â
âââââââââââââââ
Pattern 6: åµå¥ç»ä»¶æ¶æ
For frontend component hierarchies or nested modules:
ââââââââââââââââââââââââââââââââââââââââââ
â App â
â ââââââââââââââââââââââââââââââââââââ â
â â Layout â â
â â ââââââââââââ ââââââââââââââââ â â
â â â Navbar â â Sidebar â â â
â â ââââââââââââ ââââââââââââââââ â â
â â ââââââââââââââââââââââââââââââââ â â
â â â Main Content â â â
â â â ââââââââââ ââââââââââââââ â â â
â â â â List â â Detail â â â â
â â â ââââââââââ ââââââââââââââ â â â
â â ââââââââââââââââââââââââââââââââ â â
â ââââââââââââââââââââââââââââââââââââ â
ââââââââââââââââââââââââââââââââââââââââââ
Pattern 7: åŒ é绎床æµåŸïŒML/深床åŠä¹ æš¡å项ç®ïŒ
For neural network models: document input/output dimension changes at
every stage, from raw input to final output. æ¯äžªæ žå¿æš¡åäžåŒ "éžç°æ»åŸ"
- äžåŒ 代ç äœçœ®è¡š + æé¶æ®µå±åŒçååŸã
ç»ææš¡æ¿ïŒçš â åé倧鶿®µïŒâ/⌠䞲èïŒshape ååšåŒ éååïŒïŒ
ââââââââââââââââââââââ èŸå
¥ ââââââââââââââââââââââ
rgb [B, T, 224, 224, 3] depth [B, 224, 224, 1]ïŒÃ10 = ç±³ïŒ
ââââââââââââââ é¶æ®µ A · çŒç åš ââââââââââââââ
ViT-S(patch14): 224/14=16 â æ¯åž§ 16Ã16=256 token à 384 绎
â concat + å¯åŠä¹ PE
⌠tokens [B, (T+1)Ã256, 384]
TransformerDecoder(2å±,8倎) â query [B, 32, 384]
⌠cond_embed [B, 32, 384]
ââââââââââââââ é¶æ®µ B · æ©æ£å€ŽïŒÃ20 æ¥å»åªïŒââââââââââââââ
noisy_action [Næ ·æ¬, 32æ¥, 3] âLinear(3â384)+PEââ¶ [N, 32, 384]
TransformerDecoder(16å±, causal mask) â head(384â3) â εÌ
ââââââââââââââââââââââ èŸåº ââââââââââââââââââââââ
蜚迹 [N, 32, 3] (Îx, Îy, Îyaw) â犻æ£åââ¶ åšäœåºå
代ç äœçœ®è¡šïŒå¿
é¡»éåŸç»åºïŒåœæ°çº§å®äœïŒïŒ
| æš¡å | è·¯åŸ | è莣 |
|---|
| æšçå°è£
| model/policy.py | s2_step()(:110)ãs1_step()(:200) |
| çŒç åš | encoder/backbone.py | RGB-D â token |
åŸéŠå£°æ shape æ¥æºïŒææ shape åèªåªäžª configïŒåŠ
"shape åèª habitat_dual_system_cfg.pyïŒB=1ãresize 384Ã384"ïŒã
ç»ŽåºŠæ žéªæž
åïŒååŸåéé¡¹æ žå¯¹ïŒçŠæ¢åé
çœ®åæšæïŒïŒ
- æ¥ dataset èé config åïŒ
__getitem__/collate_fn å³å®çå®èŸå
¥ã
å
žåé·é±ïŒé
çœ®å« memory_size=8ïŒäœ dataset åªç»æ·±åºŠååœå 1 åž§ïŒ
image_goal å®äžºäž€åž§ééæŒæ¥ 6 ééèé 3 ééã
- æ¥ encoder forward èéæ³åœç¶ïŒæ± å/è£åª/æŒæ¥éœäŒæ¹ shapeã
å
žåé·é±ïŒä»¥äžº ResNet åº 7Ã7=49 䞪空éŽäœçœ®ïŒå®é
代ç é
adaptive_avg_pool2d(4,4) åŒºå¶ 16 䞪ïŒééäžè¿æŒäº 64 绎空éŽåµå
¥ã
- ç»æèªæŽœæ ¡éªïŒæšå¯Œåºç token æ°åºäžç»æåžžéå»åââäœçœ®çŒç
max_lenãLinear ç in_featuresãmask 尺寞ã对äžäž = æšéäºïŒåæ¥ä»£ç ã
- åœäžå/åäœïŒæ·±åºŠæ¯ 0-1 åœäžåïŒÃ10=ç±³ïŒè¿æ¯æ¯«ç±³ïŒåšäœæ¯å·®åÃ4
è¿æ¯ç»å¯¹åæ ïŒåšåŸäžæ 泚æ¢ç®å
³ç³»ã
- æ æ³éæç¡®å®çåŒæ "â" 并泚æåå ïŒåŠ VLM visual token æ°
åå³äº processor åšæ resizeïŒã
- æšç vs è®ç»è·¯åŸååŒç»ïŒäž€è
èŸå
¥ shape åžžäžåïŒéæ ·æ°ã
teacher forcingãnoise 泚å
¥ïŒã
Diagram Selection Guide:
- Pipeline (Pattern 1): CI/CD, data processing, ETL pipelines
- Layered (Pattern 2): Web apps, backend services with clear tiers
- Dependency tree (Pattern 3): Libraries, monorepos, module graphs
- Service mesh (Pattern 4): Microservices, distributed systems
- Request flow (Pattern 5): API servers, middleware-heavy apps
- Nested (Pattern 6): Frontend frameworks, plugin architectures
- Tensor flow (Pattern 7): ML models â shapes at every stage, verified
against dataset/encoder/config code
Step 5: Generate architecture.md
IMPORTANT: Generate the architecture.md document in Chinese (Simplified Chinese).
Create a comprehensive architecture document with the following structure in Chinese:
# é¡¹ç®æ¶æ
## é¡¹ç®æŠè¿°
[项ç®çç®èŠæè¿°åå
¶ç®ç]
## ææ¯æ
- **çŒçšè¯èš**: [äŸåŠïŒPython 3.9+, TypeScript]
- **æ¡æ¶**: [äŸåŠïŒReact 18, Django 4.2]
- **æ°æ®åº**: [äŸåŠïŒPostgreSQL, MongoDB]
- **æå»ºå·¥å
·**: [äŸåŠïŒWebpack, Vite]
- **æµè¯å·¥å
·**: [äŸåŠïŒJest, pytest]
## 项ç®ç»æ
[垊泚éçç®åœæ ]
## æ¶ææ»è§
[æ ¹æ®é¡¹ç®ç±»åçš Step 4.0 å³çæ éå®ç»æïŒåæ 4.1 ååŸçºŠå®èŸåºïŒå
MermaidïŒå ASCIIã
å¿
é¡»è³å°æäžåŒ åŸå±ç€ºæš¡åå
³ç³»æå€çæµçšã]
**æ¶ææ»è§ïŒMermaidïŒ**
```mermaid
[åšæ€æå
¥ Mermaid æ¶æåŸïŒéµå® 4.2 è¯æ³å®å
šåå]
æ¶ææ»è§ïŒææ¬ç»åçïŒ
[åšæ€æå
¥åè¯ä¹ç ASCII æ¶æåŸ]
å€çæµæ°Žçº¿
[åŠæé¡¹ç®æææŸçæ°æ®/请æ±å€çæµçšïŒåæ ·ååŸèŸåºïŒ
- æ°æ®è¿å
¥ç³»ç»åç»è¿åªäºæš¡å
- åæš¡åçå€çè莣
- æç»èŸåºåœ¢åŒ]
å€çæµçšïŒMermaidïŒ
[åšæ€æå
¥ Mermaid æµæ°Žçº¿åŸïŒåæ¥éç¯çš flowchart LRïŒå«åæ¯çšè±åœ¢å€å®]
å€çæµçšïŒææ¬ç»åçïŒ
[åšæ€æå
¥åè¯ä¹ç ASCII æµæ°Žçº¿åŸïŒåŠéçšïŒ]
æ žå¿æš¡å诊解ïŒå«åŒ é绎床ååïŒ
[ä»
ML/深床åŠä¹ 项ç®ïŒå¯¹æ¯äžªæ žå¿æš¡åïŒæ Pattern 7 ç»åº
éžç°æ»åŸïŒèŸå
¥âçŒç â䞻干âèŸåºïŒæ¯æ¥æ shapeïŒã代ç äœçœ®è¡šã
æé¶æ®µå±åŒçæ°æ®æµååŸã次èŠåºçº¿æš¡åå¯çšç²Ÿç®çïŒååŸ+äžæ®µè¯ŽæïŒã
åŸéŠæ³šæ shape æ¥æº configïŒè¿äŒŒåŒæ "â"ã]
æ žå¿ç»ä»¶
[ç»ä»¶/æš¡ååç§°]
- äœçœ®:
path/to/component
- çšé: [该ç»ä»¶çåèœè¯Žæ]
- å
³é®æä»¶:
file1.ext - [ç®èŠæè¿°]
file2.ext - [ç®èŠæè¿°]
- äŸèµå
³ç³»: [该ç»ä»¶äŸèµçå
¶ä»éšå]
[䞺æ¯äžªäž»èŠç»ä»¶é倿€ç»æ]
æ¶ææš¡åŒ
[æè¿°äœ¿çšçæ¶ææš¡åŒïŒäŸåŠïŒMVCãå屿¶æç]
æ°æ®æµ
[è¯Žææ°æ®åŠäœåšç³»ç»äžæµåšïŒé
å ASCII æµååŸ]
é
眮诎æ
[è®°åœéèŠçé
眮æä»¶åç¯å¢åé]
æå»ºäžéšçœ²
[诎ææå»ºè¿çšåéšçœ²æµçšïŒåŠæææŸïŒ]
å
³é®è®Ÿè®¡å³ç
[åŒåŸæ³šæçæ¶ææè®Ÿè®¡å³ç]
æµè¯çç¥
[æµè¯æ¹æ³åç»ææŠè¿°]
### Step 6: Review and Refine
Before finalizing:
1. **Verify completeness**
- All major components documented
- Key files have purpose descriptions
- Relationships are clear
- æ¯åŒ åŸéœæå¯¹åºç°ïŒMermaidïŒåšåïŒ+ ASCII ææ¬ç»åçïŒåšåïŒïŒè¯ä¹äžèŽ
2. **Check accuracy**
- File paths are correct
- Component descriptions match actual code
- Technology versions are accurate
- Mermaid äž ASCII åŸéœåç¡®åæ ç宿¶æïŒäž€è
èç¹/蟹äžèŽïŒ
- (ML 项ç®) åŒ é shape å·²æ Pattern 7 æ žéªæž
åéé¡¹æ žå¯¹ïŒ
dataset çå®èŸå
¥ãencoder forwardãç»æåžžéèªæŽœãåäœæ¢ç®
3. **Ensure clarity**
- Use clear, concise language
- Include examples where helpful
- Avoid overly technical jargon unless necessary
- **Mermaid å¯è¯»æ§**ïŒé»è®€ `flowchart TD` 纵åïŒ5+ èç¹åå¿çš LRïŒé¿å
æž²æå宜åå°ãæåéŸèŸšïŒïŒ
èç¹æ çŸå
šåŒå·ãæ 裞 `<>|`ã`subgraph` åéåïŒç¡®è®€èœæ£åžžæž²æ
- ASCII ææ¬ç»åçåšæ åç»ç«¯å®œåºŠïŒâ€80 åäŒå
ïŒäžå¯è¯»
## Best Practices
1. **Use Chinese (Simplified Chinese) for all content in architecture.md** - All descriptions, explanations, and documentation should be in Chinese
2. **Mermaid äŒå
+ ASCII åéïŒååŸïŒ** - æ¯åŒ åŸå
Mermaid å ASCIIïŒStep 4.1ïŒïŒè³å°å«äžåŒ æ»è§åŸ + äžåŒ æ°æ®/è¯·æ±æµçšåŸ
3. **Mermaid é»è®€ `flowchart TD` 纵å** - çºµåæŽæè¯»ãäžè¢«åæïŒåªæ â€3~4 èç¹äžæ 忝çæçéŸæçš LRã
**åå¿**æ 5+ èç¹çéç¯/æµæ°Žçº¿ç»æ LRïŒäŒæž²æåŸå宜åå°ãæåçäžæž
ïŒââçš TD + åå蟹衚蟟åç¯
4. **éµå® Mermaid è¯æ³å®å
šååïŒStep 4.2ïŒ** - èç¹æ çŸå
šå åŒå·ãçŠè£ž `<>|`ãæ¢è¡ `<br/>`ã蟹æ çŸå åŒå·ïŒçæåèªæ£
5. **Use the decision tree (Step 4.0) to select diagram style** - Never manually guess; run through the tree in order and use the first match
6. **Respect width budget (Step 4.4, ASCII only)** - Default 80 cols; fold to next row when nodes exceed the limit; verify Chinese character double-width alignment
7. **Be thorough but concise** - Document all important aspects without overwhelming detail
8. **Use examples** - Include code snippets or file excerpts when they clarify concepts
9. **Focus on "why" not just "what"** - Explain architectural decisions and their rationale
10. **Make it actionable** - Help new developers understand how to navigate and contribute
11. **For ML projects, shapes must come from code, not assumptions** - Every tensor dimension in diagrams must be verified against dataset `__getitem__`/collate, encoder forward, and the actual config; run the Pattern 7 ç»ŽåºŠæ žéªæž
å before drawing
## ASCII Diagram Quick Reference
Box styles:
æ®é ââââ â ââââ
åŒºè° ââââ â ââââ
åè§ ââââ® â â°âââ¯
Connectors:
æ°Žå¹³ ââââ ââââ
åçŽ â â
ç®å€Ž âââ¶ âââ· âââ ⌠â²
åå âââ âââ ⬠⎠âŒ
Labels inline:
ââ[æ çŸ]âââ¶ ââ[区è°]âââ¶
## Common Project Types
### Frontend Projects (React/Vue/Angular)
- Focus on component hierarchy
- Document state management approach
- Note routing structure
- Explain build configuration
### Backend Projects (Django/Flask/Express)
- Document API structure
- Explain database models
- Note middleware and authentication
- Describe service layers
### Full-stack Projects
- Clearly separate frontend and backend documentation
- Document API contracts
- Explain data synchronization
- Note deployment architecture
### Library/Package Projects
- Focus on public API
- Document internal modules
- Explain build and distribution process
- Note testing and examples
### ML / Deep Learning Projects (PyTorch/Transformers)
- æŽäœæ¶æçš Pattern 3/5ïŒè®ç»/è¯äŒ°/æšçæå¡çæš¡åå
³ç³»ïŒïŒæ žå¿æš¡å
åŠèµ· "æ žå¿æš¡å诊解" ç« èçš Pattern 7 åŒ é绎床æµåŸ
- å¿
读äžç±»æä»¶åç»åŸïŒdatasetïŒ`__getitem__`/collateïŒçå®èŸå
¥ shapeïŒã
model forwardïŒæ¯å±åæ¢ïŒãtrain/eval configïŒå蟚çäžè¶
åæ°åŒïŒ
- åºåè®ç»äžæšçäž€æ¡æ°æ®æµïŒæå€±è®¡ç®è·¯åŸ vs éæ ·/å»åªè·¯åŸïŒ
- æ æ³šå»ç»/å¯è®ç»æš¡åãé¢è®ç»æéæ¥æº
- 倿š¡åä»åºïŒåºçº¿ + äž»æšæš¡åïŒïŒäž»æšæš¡å宿Žè¯Šè§£ïŒåºçº¿ç²Ÿç®ç