spec-product-demo
npx skills add https://github.com/zixun-github/aisdlc --skill spec-product-demo
Agent 安装分布
Skill 文档
spec-product-demoï¼R4ï¼åºäºååçæå¯äº¤äº Demoï¼
æ¦è§
R4 çç®æ æ¯æ {FEATURE_DIR}/requirements/prototype.md ç页颿¸
åä¸äº¤äºè¯´æè½å°ä¸ºå¯è¿è¡ãå¯äº¤äºç Demoï¼ç¨äºèµ°æ¥/éªè¯/对é½ï¼
- å¯ä¸é¡µé¢æ¥æºï¼åªè½æ¥èª
prototype.md/页é¢/å¼¹çªæ¸ åï¼P-xxxâ¦ï¼ï¼ç¦æ¢èªå页é¢ï¼ - å
±äº«å·¥ç¨æ¨¡å¼ï¼é»è®¤è½å°
{REPO_ROOT}/demo/prototypes/{CURRENT_BRANCH}/ - å 骨æ¶åç»èï¼å è·éè·¯ç±/导èª/跳转é¾è·¯ï¼åè¡¥åæ®µ/ç¶æ/æ ¡éª/é误å¤ç
- æ°æ®å¯ Mockï¼å端æªå°±ç»ªå 许 Mockï¼ä½è¦æâç宿°æ®æ¥å ¥âå½ä½æç¡®æ¿æ¢ç¹
å¼å§æ¶å®£å¸ï¼ãææ£å¨ä½¿ç¨ spec-product-demo æè½åºäº prototype.md çæå¯äº¤äº Demoãã
R4 çæ ¸å¿ä»·å¼æ¯âæçº¿æ¡åæå¯ç¹å¯è·âï¼ä¸æ¯æ¿ä»£è®¾è®¡ç¨¿ï¼ä¹ä¸æ¯å¨ Demo éèªç±åæ¥æ°å¢éæ±ã
使¶ä½¿ç¨ / ä¸ä½¿ç¨
- ä½¿ç¨æ¶æº
- 已宿 R3ï¼ä¸åå¨
{FEATURE_DIR}/requirements/prototype.md - éè¦æ´é«ä¿çèµ°æ¥ï¼å¯ç¨æ§éªè¯/干系人对é½/ç å䏿µè¯çè§£ä¸è´æ§æ ¡éªï¼
- 已宿 R3ï¼ä¸åå¨
- ä¸è¦ç¨å¨
spec-context失败 â ç«å»åæ¢{FEATURE_DIR}/requirements/prototype.md缺失 â 忢并åå° R3- ä»åºé没æå¯è¿è¡ç Demo å·¥ç¨æ ¹ç®å½ï¼ä¸ç¨æ·æªæä¾
DEMO_PROJECT_ROOTâ åæ¢å¹¶è¦æ±æä¾è·¯å¾
è¾å ¥ / è¾åºï¼è½ç约å®ï¼
- 硬é¨ç¦è¾å
¥ï¼
FEATURE_DIRï¼å¿ é¡»ç±spec-contextè·åï¼ - 读å
{FEATURE_DIR}/requirements/prototype.mdï¼å¿ 读ï¼é¡µé¢æ¸ å/交äºè¯´æ SSOTï¼
- å¯éè¾å
¥
DEMO_PROJECT_ROOTï¼å¯è¿è¡ç Demo å·¥ç¨æ ¹ç®å½ï¼åå¨package.jsonä¸å å«å¯å¯å¨èæ¬ï¼
- åå
¥
- Demo 代ç ï¼é»è®¤
{REPO_ROOT}/demo/prototypes/{CURRENT_BRANCH}/ï¼å ±äº«å·¥ç¨æ¨¡å¼ï¼
- Demo 代ç ï¼é»è®¤
é¨ç¦ï¼å¿ é¡»å è¿ï¼å¦å忢ï¼
1) REQUIRED SUB-SKILLï¼å
æ§è¡ spec-context å¹¶åæ¾ FEATURE_DIR=...
. ".\.aisdlc-cli\scirpts\spec-common.ps1"
$context = Get-SpecContext
$FEATURE_DIR = $context.FEATURE_DIR
$CURRENT_BRANCH = $context.CURRENT_BRANCH
$REPO_ROOT = $context.REPO_ROOT
Write-Host "FEATURE_DIR=$FEATURE_DIR"
Write-Host "CURRENT_BRANCH=$CURRENT_BRANCH"
Write-Host "REPO_ROOT=$REPO_ROOT"
spec-context失败 â 忢{FEATURE_DIR}/requirements/prototype.mdä¸åå¨ â 忢ï¼ä¸å¾âå å个å ä½ Demoâï¼
è¿åé¨ç¦=è¿åç²¾ç¥ï¼æ 论âèæ¿ 10 åéåè¯å®¡/å ååºæ¥åè¡¥/å¨ main ä¸å è·ä¸çâï¼é½ç¦æ¢è·³è¿ä¸ä¸æä¸è¾å ¥æä»¶ã
2) Demo å·¥ç¨æ ¹ç®å½å®ä½ï¼å¿ é¡»éµå®ï¼æ¾ä¸å°å°±åæ¢ï¼
å¤å®âå¯è¿è¡ Demo å·¥ç¨æ ¹ç®å½âçæä½æ åï¼
- ç®å½åå¨
- åå¨
package.json package.jsonè³å°å å«å¯å¯å¨èæ¬ï¼ä¾å¦dev/start/previewå ¶ä¸ï¼
å®ä½è§åï¼ä»é«å°ä½ï¼ï¼
- ä¼å
使ç¨è¾å
¥ï¼ç¨æ·æä¾
DEMO_PROJECT_ROOTâ ä»¥å ¶ä¸ºåï¼ä»é满足å¯è¿è¡å¤å®ï¼ - æªæä¾åèªå¨æ¥æ¾ï¼
{REPO_ROOT}/demo/{REPO_ROOT}/prototype/æ{REPO_ROOT}/prototypes/{REPO_ROOT}/apps/demo/ã{REPO_ROOT}/packages/demo/
- æ¥æ¾å¤±è´¥å°±åæ¢ï¼ä»¥ä¸è·¯å¾åä¸å卿䏿»¡è¶³å¯è¿è¡å¤å® â 忢 R4ï¼å¹¶è¦æ±ç¨æ·æä¾
DEMO_PROJECT_ROOT
ç¡¬ç¦æ¢ï¼å¨âæªæ¾å°å¯è¿è¡ Demo å·¥ç¨æ ¹ç®å½âæ¶ï¼æ èªåå§åæ°çå端工ç¨ï¼Vite/Next.js/CRA çï¼æ¥âå è·èµ·æ¥âãè¿ä¼æ±¡æä»åºãç ´åæµç¨å¯è¿½æº¯æ§ã
æ ¸å¿æµç¨ï¼ä» prototype å°å¯è· Demoï¼
0) è¾åºç®å½åºå®ï¼åªåå° prototypes/{CURRENT_BRANCH}/
å¨ DEMO_PROJECT_ROOT ä¸ä¸ºå½åéæ±å建ç¬ç«å½å空é´ï¼
OUTPUT_DIR = {DEMO_PROJECT_ROOT}/prototypes/{CURRENT_BRANCH}/
è§åï¼
- éæ±å®ç°å¿
é¡»è½å¨
OUTPUT_DIRï¼é¡µé¢/ç»ä»¶/æ ·å¼/Mock/交äºé»è¾çé½åå¨OUTPUT_DIRå ï¼é¿å 污æå ¶ä»éæ± - å
许æå°ç²åæ¹å¨ï¼å¯å¨ Demo æ ¹å·¥ç¨åæå°æ¹å¨ç¨äºâæè½½å½åéæ±âï¼ä¾å¦è·¯ç±æ³¨åãå
¥å£èåãéç¨ layoutï¼ï¼ä½ç¦æ¢ä¿®æ¹å
¶ä»éæ±ç
prototypes/*ç®å½ - ç®å½åå¿
须精确çäº
CURRENT_BRANCHï¼ç¦æ¢æåæå¦èµ·å«åï¼
1) ä» prototype.md çæé¡µé¢ä»»å¡æ¸
åï¼ä¸è½çï¼
以 prototype.md/页é¢/å¼¹çªæ¸
å 为å¯ä¸é¡µé¢æ¥æºï¼SSOTï¼ï¼
- æ¯ä¸ª
P-xxxè³å° 1 ä¸ªä»»å¡æ¡ç®ï¼å¯åç»åï¼ - æ¯ä¸ªæ¡ç®å¿
é¡»å
å«ï¼
- 页é¢è·¯ç±/å ¥å£ã页é¢ç®æ
- ä¸»è¦æ§ä»¶/åæ®µä¸é»è®¤å¼
- å ³é®ç¶æï¼æ£å¸¸/å è½½/空/é误/æ æéï¼ä¸æç¤ºææ¡è¦ç¹
- ä¸ä»»å¡æµèç¹ï¼T-xxxï¼å AC çæ å°ï¼å¼ç¨
prototype.mdä½ç½®ï¼
ç¦æ¢ï¼ä¸ºâçèµ·æ¥æ´å®æ´âèæ°å¢ç»å½é¡µ/设置页/éç¨å¸å±é¡µçæªå¨ prototype.md 声æç页é¢ãéè¦æ°å¢é¡µé¢ â åæµ R3 æ´æ° prototype.md ååå R4ã
2) å æéª¨æ¶ï¼å¿ é¡»å è·éï¼
å 宿ï¼
- ææé¡µé¢/å¼¹çªçè·¯ç±æå ¥å£å ä½
- 导èªå ¥å£ä¸å ³é®è·³è½¬é¾è·¯ï¼è³å°è¦çæ ¸å¿ä»»å¡æµä¸»é¾è·¯ï¼
æ¤é¶æ®µå 许ï¼
- ä» ç¨éæ/Mock æ°æ®æ¸²æ
- ä» å®ç°å ³é®æé®ä¸è·³è½¬ï¼å段/æ ¡éªå¯åè¡¥ï¼
3) åè¡¥ç»èï¼æä¼å 级ï¼
æâæ ¸å¿ä¸»é¾è·¯ä¼å âè¡¥é½ï¼
- åæ®µä¸æ ¡éªï¼å«é误æç¤ºè¦ç¹ï¼
- ç¶æä¸å¼å¸¸åæ¯ï¼å è½½/空/失败/æ æéï¼
- 交äºç»èï¼åæ¶/è¿å/äºæ¬¡ç¡®è®¤/æ¢å¤è·¯å¾ï¼
æ°æ®ä¾èµæªå°±ç»ªæ¶ï¼
- ç¨ Mock æ°æ®/Mock API 让交äºå¯è·
- æâç宿°æ®æ¥å ¥âä½ä¸ºæç¡®æ¿æ¢ç¹ï¼é¿å æ Mock 彿ç»å®ç°ï¼
4) è¿è¡ä¸åçï¼å®ææ£æ¥ï¼
æå°å®ææ åï¼ç¼ºä¸ä¸å¯ï¼ï¼
- Demo å·¥ç¨å¯å¯å¨
- å¯å¯¼èªå°
OUTPUT_DIRç页é¢éå - å
³é®é¾è·¯å¯èµ°éï¼è³å°è¦ç
prototype.mdçæ ¸å¿ä»»å¡æµä¸»é¾è·¯ï¼
Quick referenceï¼é«é¢è§å鿥ï¼
- å¿
é¡»
- å
è·
spec-contextï¼åªç¨å ¶è¾åºçFEATURE_DIR/CURRENT_BRANCH/REPO_ROOT - å¿
é¡»åå¨
{FEATURE_DIR}/requirements/prototype.md - 页颿¸
ååªæ¥èª
prototype.mdï¼ä¸å é¡µï¼ - Demo æ ¹ç®å½æ¾ä¸å°/ä¸å¯è¿è¡ â ç«å³åæ¢å¹¶è¦æ±
DEMO_PROJECT_ROOT - éæ±å®ç°åå¨
{DEMO_PROJECT_ROOT}/prototypes/{CURRENT_BRANCH}/ï¼Demo æ ¹å·¥ç¨åªåæå°ç²åæ¹å¨ï¼è·¯ç±/å ¥å£ï¼
- å
è·
- ç¦æ¢
- å¨ mainï¼æé
{num}-{short-name}忝ï¼ä¸ç¡¬å R4 - ç¨âå
åå ä½ Demoâæ¿ä»£ç¼ºå¤±ç
prototype.md - æªæ¾å° Demo å·¥ç¨æ ¹ç®å½æ¶æ
èª
npm create vite@latest/npx create-next-appåå§åæ°å·¥ç¨ - èªå页é¢/è·¯ç±å¹¶å£°ç§°âdemo 常è§â
- å¨ mainï¼æé
çº¢ææ¸ åï¼åºç°ä»»ä¸æ¡ï¼åæ¢å¹¶çº æ£ï¼
- 没è·
spec-contextå°±å¼å§æ¾/årequirements/*.mdæ demo ç®å½ {FEATURE_DIR}/requirements/prototype.mdä¸åå¨ï¼å´ä»è¦ç»§ç»- Demo æ ¹ç®å½ä¸åå¨/ä¸å¯è¿è¡ï¼å´ä»è¦âå åå§åä¸ä¸ª Vite å·¥ç¨â
- å¨ Demo éæ°å¢
prototype.mdæªå®ä¹ç页é¢ï¼ç»å½/设置/é便å é¡µï¼ - è¾åºç®å½ä¸æ¯
prototypes/{CURRENT_BRANCH}ï¼åå°æ ¹ç®å½ãåé忝åãæåå°å«çéæ±ç®å½ï¼
常è§åå£ä¸åå¶ï¼åºçº¿æµè¯ä¸çé«é¢ç¹ï¼
| åå£ï¼å忥æºï¼ | 常è§è¿è§è¡ä¸º | å¿ é¡»çåå¶å¨ä½ |
|---|---|---|
| âèæ¿ 10 åéåè¦çï¼å å¨ main ä¸åä¸çâ | è·³è¿ spec-contextï¼å¨ main ä¸å demo |
é¨ç¦ä¸è¿å°±åæ¢ï¼å
åå°åæ³ spec åæ¯å¹¶è· spec-contextï¼å¦ååªè½äº¤ä»â黿åå + éè¦çè¾å
¥/ä¸ä¸æ¥â |
| âprototype è¿æ²¡å/æ¾ä¸å°ï¼å°±å å个å ä½ Demoâ | èªå页é¢ä¸æµç¨ï¼å¯¼è´ä¸å¯è¿½æº¯ | prototype.md 缺失 â åå° R3ï¼R4 ç¦æ¢æ¿ä»£ R3 ç交äºå³ç |
| âä»åºé没æ demo/ï¼æå åå§åä¸ä¸ª Vite/Next.js å·¥ç¨â | 卿ªç¥ä½ç½®å建æ°å·¥ç¨æ±¡æä»åº | åæ¢å¹¶è¦æ± DEMO_PROJECT_ROOTï¼åªæå¨å·²åå¨å¯è¿è¡ demo å·¥ç¨æ¶æå
è®¸ç»§ç» |
| â顺便å ç»å½é¡µ/设置页ï¼demo 常è§â | èªå页é¢ï¼å离 SSOT | æç»å 页并念 R3ï¼å
æé¡µé¢åè¿ prototype.md ç页颿¸
åï¼å«ç¼å·ã说æãAC æ å°ï¼ |
ä¸ä¸ªå¥½ä¾åï¼æ¾ä¸å° Demo æ ¹ç®å½æ¶å¦ä½æ£ç¡®åæ¢ï¼
彿ªæä¾ DEMO_PROJECT_ROOT ä¸èªå¨æ¥æ¾å¤±è´¥æ¶ï¼åºå½è¾åºç±»ä¼¼ç»è®ºï¼
- 黿åå ï¼å½åä»åºæªåç°å¯è¿è¡ç Demo å·¥ç¨æ ¹ç®å½ï¼ç¼º
demo/æç¼ºpackage.json/å¯å¨èæ¬ï¼ - éè¦ç¨æ·æä¾ï¼
DEMO_PROJECT_ROOTï¼ä¾å¦E:\\path\\to\\demoï¼ï¼å¹¶è¯´æå ¶å¿ é¡»å¯å¯å¨ - ä¸ä¸æ¥ï¼æ¿å°
DEMO_PROJECT_ROOTåï¼å¨{DEMO_PROJECT_ROOT}/prototypes/{CURRENT_BRANCH}/çæ Demo