oh-pdd-design-doc-generator
npx skills add https://github.com/openharmonyinsight/openharmony-skills --skill oh-pdd-design-doc-generator
Agent 安装分布
Skill 文档
è®¾è®¡ææ¡£çæå¨
åºäº PRD ææ¡£èªå¨çæé¸¿èç³»ç»ï¼HarmonyOS/OpenHarmonyï¼è®¾è®¡ææ¡£ï¼å æ¬æ¶æè®¾è®¡ææ¡£ååè½è®¾è®¡ææ¡£ã
å¿«éå¼å§
æä¾ PRD ææ¡£è·¯å¾ï¼
åºäº {PRDææ¡£} çæè®¾è®¡ææ¡£
æå®è¾åºç±»åï¼
çææ¶æè®¾è®¡ææ¡£ååè½è®¾è®¡ææ¡£ï¼åºäº {PRDææ¡£è·¯å¾}
OpenHarmony 代ç åæ
å¨çæè®¾è®¡ææ¡£åï¼éè¦åæ OpenHarmony åé代ç ç»æï¼ç¡®ä¿æ°è®¾è®¡ä¸ç°ææ¶æå ¼å®¹ã
åææ¥éª¤
1. åç°ä»£ç ç»æ
ä½¿ç¨ Glob å·¥å ·å¿«éåç°ç®å½ç»æåå ³é®æä»¶ï¼
| æä»¶ç±»å | æç´¢æ¨¡å¼ | 说æ |
|---|---|---|
| é ç½®æä»¶ | **/bundle.json, **/BUILD.gn, **/config.json |
é¨ä»¶å®ä¹ãæå»ºé ç½® |
| ææ¡£æä»¶ | **/README.md, **/*.md |
模å说æãä½¿ç¨æå |
| æ¥å£æä»¶ | **/*.idl, **/include/*.h |
IDL æ¥å£ãC++ 头æä»¶ |
| å æ°æ®æä»¶ | **/*.gn, **/*.gni |
GN æå»ºèæ¬ |
| SA é ç½® | **/sa_profile/*.json, **/etc/profile/*.json |
SA é ç½®æä»¶ |
2. æç´¢å ³é®ä¿¡æ¯
ä½¿ç¨ Grep å·¥å ·æç´¢å ³é®åæåç»ä»¶ä¿¡æ¯ï¼
| æç´¢ç®æ | æç´¢å ³é®å | æåä¿¡æ¯ |
|---|---|---|
| SA ID | "sa-id" |
å·²åé ç SA ID |
| åç³»ç» | subsystem_name |
åç³»ç»ç»ç» |
| ä¾èµå ³ç³» | external_deps |
ç»ä»¶ä¾èµ |
| æ¥å£å®ä¹ | interface |
IDL æ¥å£ |
| æå¡ç±» | class.*Service |
æå¡å®ç°ç±» |
| Provider | .*Provider |
SA Provider ç±» |
3. 读åå ³é®é ç½®
ä½¿ç¨ Read å·¥å ·è¯»åå ³é®é ç½®æä»¶ï¼
bundle.json: é¨ä»¶å®ä¹ååç³»ç»å½å±BUILD.gn: æå»ºä¾èµåç¼è¯é项sa_profile/*.json: SA é ç½®åå¯å¨åæ°README.md: 模å说æåä½¿ç¨æå*.idl: æ¥å£å®ä¹åæ°æ®ç»æ
4. æºè½æ¢ç´¢
ä½¿ç¨ Task å·¥å ·å¯å¨ Explore 代çè¿è¡å¤è½®æ¢ç´¢ï¼
- åç°ç¸å ³æ¨¡åçç®å½ç»æ
- æ¥æ¾ç¸ä¼¼åè½çå®ç°åè
- æåæ¥å£è®¾è®¡åæ°æ®ç»æ
å½åæ¨¡å¼æ¨æ
éè¿æä»¶åç®å½å½åæ¨æåè½ï¼
| å½åæ¨¡å¼ | æ¨æåè½ | ç¤ºä¾ |
|---|---|---|
*_service.cpp |
æå¡å®ç° | disk_info_service.cpp |
*_provider.h/cpp |
SA Provider å®ç° | disk_manager_provider.cpp |
*_listener.idl |
äºä»¶ç嬿¥å£ | IDiskChangeListener.idl |
*_types.idl |
æ°æ®ç±»åå®ä¹ | DiskInfoTypes.idl |
*/kits/ |
å¯¹å¤ API å± | kits/js/, kits/native/ |
*/innerkits/ |
å é¨ API å± | innerkits/native/ |
*/sa_profile/ |
SA é ç½®æä»¶ | sa_profile/5001.json |
*/test/ |
æµè¯ä»£ç | test/unittest/ |
*/mock/ |
æµè¯ Mock | test/mock/ |
åæè¾åº
代ç åæå®æåçæï¼
- ç°æ SA æ¸ å: å·²åé ç SA ID åæå¡åç§°
- åç³»ç»ç»ç»: åç³»ç»åé¨ä»¶ç屿¬¡ç»æ
- ä¾èµå ³ç³»å¾: ç»ä»¶é´çä¾èµå ³ç³»
- æ¥å£åè: ç¸ä¼¼åè½çæ¥å£è®¾è®¡åè
- 代ç 飿 ¼åè: å½åè§èãç®å½ç»æç
ç«åæ¹æ¡åæç« èè¦æ±
æ¶æè®¾è®¡ææ¡£ 第2ç« å¿ é¡»ä¸ºç«åæ¹æ¡åæï¼ä½äºéæ±èæ¯ä¹åã鸿èç³»ç»æ¶æåæä¹åã
ç« èç»æ
2. ç«åæ¹æ¡åæ
2.1 ç«åè¯å«
- ååºä¸»è¦ç«åï¼è³å°2-3个ï¼
- 说æç«åéæ©çç±
- ç«åç±»åï¼å类产åãææ¯æ¹æ¡ãè¡ä¸æ å
2.2 ç«åææ¯æ¹æ¡åæ
对æ¯ä¸ªç«ååæï¼
- æ ¸å¿ææ¯æ¶æ
- å ³é®ææ¯ç»ä»¶
- éä¿¡æºå¶
- æ°æ®æµç¨
- å ³é®æµç¨å¾ãæ¶åºå¾
2.3 ææ¯å¯¹æ¯è¡¨æ ¼
| 对æ¯é¡¹ | æ¬æ¹æ¡ | ç«åA | ç«åB |
|---|---|---|---|
| æ¶ææ¨¡å¼ | |||
| æ ¸å¿ææ¯ | |||
| éä¿¡æºå¶ | |||
| è¿ç¨æ¨¡å | |||
| å®å ¨æºå¶ | |||
| è·¨è¯è¨æ¯æ |
2.4 å·®å¼å设计
- æ¬æ¹æ¡ç¸å¯¹äºç«åçåæ°ç¹
- è§£å³çç«åçç¹
- ææ¯ä¼å¿è¯´æ
- åé´ä¸æ¹è¿
è¾åºè¦æ±
- 使ç¨4+1è§å¾ãæµç¨å¾ãæ¶åºå¾åç°ç«åææ¯æ¹æ¡
- è³å°å å«2个ç«åç详ç»åæ
- å¿ é¡»æææ¯å¯¹æ¯è¡¨æ ¼
- å¿ é¡»æç¡®å·®å¼å设计ç¹
ç« è顺åºéªè¯
çææ¶æè®¾è®¡ææ¡£æ¶ï¼éªè¯ç« è顺åºï¼
æ å顺åºï¼éæ±èæ¯ â ç«åæ¹æ¡åæ â 鸿èç³»ç»æ¶æåæ â æ¶æè®¾è®¡...
éªè¯è§åï¼
- â 第1ç« å¿ é¡»æ¯”éæ±èæ¯”
- â 第2ç« å¿ é¡»æ¯”ç«åæ¹æ¡åæ”ï¼å¿ éï¼
- â ç«åæ¹æ¡åæå¿ é¡»å¨éæ±èæ¯ä¹å
- â ç«åæ¹æ¡åæå¿ 须卿¶æè®¾è®¡ä¹å
- â å¦é¡ºåºéè¯¯ï¼æç¤ºç¨æ·è°æ´
éªè¯é»è¾ï¼
- æåææ¡£ä¸ææä¸çº§æ é¢ï¼# å¼å¤´ï¼
- éªè¯ç¬¬1ç« æ¯å¦ä¸º”éæ±èæ¯”
- éªè¯ç¬¬2ç« æ¯å¦ä¸º”ç«åæ¹æ¡åæ”æ”ç«ååæ”
- å¦ç¼ºå¤±ç¬¬2ç« æé¡ºåºé误ï¼è¿åé误æç¤º
çæå 容
æ¶æè®¾è®¡ææ¡£ (architecture_vX.md)
å å«ä»¥ä¸æ åç« èï¼æé¡ºåºï¼ï¼
| ç« è | å 容 |
|---|---|
| 1. éæ±èæ¯ | 项ç®èæ¯ãä¸å¡éæ±ãææ¯ææ |
| 2. ç«åæ¹æ¡åæ | ç«åè¯å«ãææ¯æ¹æ¡å¯¹æ¯ãå·®å¼å设计ï¼å¿ éï¼ |
| 3. 鸿èç³»ç»æ¶æåæ | ç°ææ¶æãå¯å¤ç¨ç»ä»¶ |
| 4. æ¶æè®¾è®¡ | æ´ä½æ¶æãææ¯éåãæ¨¡ååå |
| 5. æ°æ®æ¨¡å | æ ¸å¿æ°æ®ç»æãæ°æ®åºè®¾è®¡ |
| 6. æ¥å£è®¾è®¡ | IDLæ¥å£ãNAPIæ¥å£ |
| 7. é¨ç½²æ¶æ | è¿ç¨æ¨¡åãå¯å¨ä¾èµ |
| 8. å®å ¨é§æ§éç§å¯é æ§åæ | å®å ¨è®¾è®¡ãé§æ§è®¾è®¡ãéç§ä¿æ¤ãå¯é æ§ |
| 9. éæ±åè§£ä¸ä»£ç éè¯ä¼° | éæ±æåã代ç éä¼°ç® |
| 10. éå½ | é误ç ãæ§è½ææ |
åè½è®¾è®¡ææ¡£ (functiondesign_vX.md)
å å«ä»¥ä¸æ åç« èï¼
| ç« è | å 容 |
|---|---|
| 1. æ¦è¿° | ææ¡£ç®çãæ¨¡åæ¸ å |
| 2. 模åå®ä¹ | 忍¡åèè´£ãè¾å ¥è¾åºãä¾èµå ³ç³» |
| 3. æ¥å£å®ä¹ | IDLæ¥å£ãåè°æ¥å£ |
| 4. ç¶ææºè®¾è®¡ | ç¶ææä¸¾ã转æ¢è¡¨ã转æ¢å¾ |
| 5. æµç¨è®¾è®¡ | 主æµç¨å¾ãæ¶åºå¾ãå¼å¸¸å¤ç |
| 6. é误å¤ç | é误ç å®ä¹ãå¤ççç¥ |
æ¶æå±æ¬¡
âââââââââââââââââââââââââââââââââââââââââââ
â åºç¨å± (Application) â
â 设置åºç¨ | æä»¶ç®¡ç | ç£çå·¥å
· â
âââââââââââââââââââââââââââââââââââââââââââ
â NAPI/IPC
âââââââââââââââââââââââââââââââââââââââââââ
â æå¡å± (Service) â
â DiskManagement SA (5001) â
â DiskInfo | Format | Repair | Status â
âââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââ
â å·¥å
·å± (Tools) â
â FormatTool | FsckTool | PartedTool â
âââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââ
â ç³»ç»å± (System) â
â Storage SA | OsAccount SA | HiSysEvent â
âââââââââââââââââââââââââââââââââââââââââââ
SA ååè§å
| SA åç§° | SA ID èå´ | ç¤ºä¾ |
|---|---|---|
| åºç¡æå¡ | 1000-1999 | OsAccount (4101) |
| æ°æ®åå¨ | 4000-4999 | |
| æä»¶ç®¡ç | 5000-5999 | DiskManagement (5001), StorageManager (5003) |
ç¶ææºè®¾è®¡
ä½¿ç¨ V11.0 ç¶ææºè§èï¼
stateDiagram-v2
[*] --> UNKNOWN
UNKNOWN --> NORMAL: æ£æµæå
UNKNOWN --> ABNORMAL: æ£æµå¤±è´¥
NORMAL --> CHECKING: å¼å§æ£æµ
CHECKING --> NORMAL: æ£æµå®æ
CHECKING --> REPAIRING: éè¦ä¿®å¤
CHECKING --> ABNORMAL: æ£æµå¤±è´¥
REPAIRING --> NORMAL: ä¿®å¤æå
REPAIRING --> ABNORMAL: ä¿®å¤å¤±è´¥
ABNORMAL --> CHECKING: éæ°æ£æµ
æ¶åºå¾ç¤ºä¾
sequenceDiagram
participant App as åºç¨
participant Kit as DiskManagementKit
participant SA as DiskManagement SA
participant Tool as FormatTool
App->>Kit: formatDisk(diskId, fsType)
Kit->>SA: format(diskId, fsType)
SA->>SA: æéæ ¡éª
SA->>SA: ç¶æéªè¯
SA->>Tool: executeFormat()
Tool-->>SA: onProgress(percent)
SA-->>Kit: onFormatProgress()
Kit-->>App: progress callback
Tool-->>SA: result
SA-->>Kit: result
Kit-->>App: format result
åèææ¡£
- æ¶æè®¾è®¡æ¨¡æ¿: references/architecture_template.md
- åè½è®¾è®¡æ¨¡æ¿: references/functional_template.md
- ç¶ææºè§è: references/state_machine_spec.md
- æ¥å£è®¾è®¡æå: references/interface_guide.md
ä¸ PRD çæ å°å ³ç³»
| PRD ç« è | è®¾è®¡ææ¡£ç« è | æ å°è§å |
|---|---|---|
| 第4ç« ï¼ç«ååæ | 第2ç« ï¼ç«åæ¹æ¡åæ | PRDçç«ååææ©å±ä¸ºææ¯æ¹æ¡å¯¹æ¯ |
| 第2ç« ï¼éæ±èæ¯ | 第1ç« ï¼éæ±èæ¯ | ç´æ¥æ å° |
| 第5ç« ï¼éæ±æè¿° | 第4ç« ï¼æ¶æè®¾è®¡ | éæ±è½¬æ¢ä¸ºæ¶æè®¾è®¡ |
| KEP å®ä¹ | æ¨¡åæ¶æ + æ¥å£è®¾è®¡ | æ¯ä¸ª KEP 对åºè³å°ä¸ä¸ªæå¡æ¨¡å |
| ç¨æ·æ äº | åè½è§æ ¼ | ç¨æ·åºæ¯è½¬æ¢ä¸ºåè½æµç¨ |
| éªæ¶æ å | æ¥å£è¿åå¼å®ä¹ | éªæ¶æ¡ä»¶è½¬ä¸ºæ¥å£å¥çº¦ |
| éåè½éæ± | æ¶æéå + æ§è½ææ | ææ¯çº¦æä½ç°å¨æ¶æè®¾è®¡ä¸ |
ä¾èµæå¡æ å°
| è®¾è®¡ææ¡£ä¸çæå¡ | 对åºç OpenHarmony SA | 说æ |
|---|---|---|
| æéæ ¡éªæå¡ | OsAccount SA (4101) | å¤ç¨è´¦æ·ç³»ç»è½å |
| åå¨æå¡ | StorageManager SA (5003) | 夿¥åå¨ç®¡ç |
| å å¯æå¡ | Crypto SA | ç£çå å¯è½å |
è¾åºç®å½ç»æ
output/
âââ architecture_v1.md # æ¶æè®¾è®¡ææ¡£
âââ functiondesign_v1.md # åè½è®¾è®¡ææ¡£
âââ code_paths_v1.md # 代ç è·¯å¾ææ¡£
âââ diagrams/ # çæçå¾è¡¨æä»¶
âââ architecture.png
âââ state_machine.png
âââ sequence.png
使ç¨ç¤ºä¾
çæå®æ´è®¾è®¡ææ¡£ï¼
åºäº {PRDææ¡£} çææ¶æååè½è®¾è®¡ææ¡£
ä» çææ¶æè®¾è®¡ï¼
åªçææ¶æè®¾è®¡ææ¡£ï¼åºäº {PRDææ¡£}
æå® SA IDï¼
çæè®¾è®¡ææ¡£ï¼SA ID ä½¿ç¨ {SA_ID}ï¼åºäº {PRDææ¡£}
æå®äº§ååç§°åçæ¬ï¼
为 {产åå} {çæ¬} çæè®¾è®¡ææ¡£ï¼çæ¬ {ææ¡£çæ¬}ï¼åºäº {PRDææ¡£}
æå®è¾åºç®å½ï¼
çæè®¾è®¡ææ¡£å° ./design_docs ç®å½ï¼åºäº {PRDææ¡£}
å½åè§è
| ææ¡£ç±»å | å½åæ ¼å¼ | ç¤ºä¾ |
|---|---|---|
| æ¶æè®¾è®¡ | architecture_v{major}.md |
architecture_v1.md |
| åè½è®¾è®¡ | functiondesign_v{major}.md |
functiondesign_v1.md |
| 代ç è·¯å¾ | code_paths_v{major}.md |
code_paths_v1.md |
| PRD å¼ç¨ | prd_v{version}.md |
prd_v17.md |
çæ¬ç®¡çè§å
| çæ¬åå | æ´æ°å 容 |
|---|---|
| PRD çæ¬åæ´ | è®¾è®¡ææ¡£çæ¬åæ¥éå¢ |
| æ¶æè°æ´ | å¢å .1 åçæ¬ï¼V1.0 â V1.1ï¼ |
| æ°å¢åè½ | å¢å æ¬¡çæ¬å·ï¼V1.0 â V2.0ï¼ |
å¾è¡¨æ ¼å¼
ä½¿ç¨ Mermaid è¯æ³ç»å¶å¾è¡¨ãæ¯æçå¾è¡¨ç±»åï¼
- æµç¨å¾:
graph TDæflowchart TD - ç¶æå¾:
stateDiagram-v2 - æ¶åºå¾:
sequenceDiagram - ç±»å¾:
classDiagram - ç»ä»¶å¾:
graph LR
é误å¤ç
| é误类å | å¤çæ¹å¼ |
|---|---|
| PRD æä»¶ä¸åå¨ | æç¤ºæä»¶è·¯å¾é误 |
| PRD 缺å°ç«ååæ | æç¤ºè¡¥å PRD第4ç« ç«ååæï¼æåºäºç°æä¿¡æ¯çæ |
| æ¶æææ¡£ç¼ºå°ç¬¬2ç« ç«åæ¹æ¡åæ | è¿åé误ï¼ç¬¬2ç« å¿ é¡»ä¸ºç«åæ¹æ¡åæ |
| ç« è顺åºé误 | æç¤ºï¼ç¬¬2ç« å¿ é¡»ä¸ºç«åæ¹æ¡åæï¼ä½äºéæ±èæ¯ä¹å |
| KEP è§£æå¤±è´¥ | ååºç¼ºå¤±ç KEP å®ä¹ |
| æ ¼å¼ä¸ç¬¦åè§è | æé»è®¤æ¨¡æ¿çæ |
| è¾åºç®å½ä¸å¯å | æç¤ºæéé®é¢ |