openspec-archiving-cn
npx skills add https://github.com/forztf/open-skilled-sdd --skill openspec-archiving-cn
Agent 安装分布
Skill 文档
è§è彿¡£
彿¡£å·²å®æçåæ´ææ¡ï¼å¹¶å°å ¶è§èå·®å¼åå¹¶å°å¸¸é©»è§èææ¡£ä¸ã
å¿«éå¼å§
彿¡£å å«ä¸¤é¡¹ä¸»è¦æä½ï¼
- ç§»å¨åæ´ç®å½è³å¸¦æ¶é´æ³ç彿¡£ä½ç½®
- åå¹¶è§èå·®å¼å°å¸¸é©»è§èï¼ADDED/MODIFIED/REMOVEDï¼
å ³é®è§åï¼å¨å½æ¡£åéªè¯ææä»»å¡å·²å®æã彿¡£æå³çå·²é¨ç½²ä¸å®æã
工使µ
å¤å¶æ¤æ¸ åå¹¶è·è¸ªè¿åº¦ï¼
彿¡£è¿åº¦:
- [ ] 第 1 æ¥ï¼éªè¯å®æ½å®æ
- [ ] 第 2 æ¥ï¼å®¡é
å¾
åå¹¶çè§èå·®å¼
- [ ] 第 3 æ¥ï¼å建带æ¶é´æ³ç彿¡£ç®å½
- [ ] 第 4 æ¥ï¼åå¹¶ ADDED éæ±å°å¸¸é©»è§è
- [ ] 第 5 æ¥ï¼åå¹¶ MODIFIED éæ±å°å¸¸é©»è§è
- [ ] 第 6 æ¥ï¼åå¹¶ REMOVED éæ±å°å¸¸é©»è§è
- [ ] 第 7 æ¥ï¼ç§»å¨åæ´ç®å½å°å½æ¡£
- [ ] 第 8 æ¥ï¼éªè¯å¸¸é©»è§èç»æ
第 1 æ¥ï¼éªè¯å®æ½å®æ
å¨å½æ¡£å确认ææå·¥ä½å·²å®æï¼
# æ£æ¥ IMPLEMENTED æ è®°
test -f spec/changes/{change-id}/IMPLEMENTED && echo "â 已宿½" || echo "â æªå®æ½"
# æ¥çä»»å¡
cat spec/changes/{change-id}/tasks.json
# ä½¿ç¨ git æ£æ¥æªæäº¤å·¥ä½
git status
询é®ç¨æ·ï¼
ææä»»å¡æ¯å¦å·²å®æå¹¶éè¿æµè¯ï¼
è¯¥åæ´æ¯å¦å·²é¨ç½²å°ç产ï¼
æ¯å¦ç»§ç»å½æ¡£ï¼
第 2 æ¥ï¼å®¡é å¾ åå¹¶çè§èå·®å¼
äºè§£éè¦åå¹¶çå 容ï¼
# ååºææè§è差弿件
find spec/changes/{change-id}/specs -name "*.md" -type f
# è¯»åæ¯ä¸ªå·®å¼æä»¶
for file in spec/changes/{change-id}/specs/**/*.md; do
echo "=== $file ==="
cat "$file"
done
è¯å«ï¼
- åªäºè½ååå°å½±å
- ADDED/MODIFIED/REMOVED åæå¤å°éæ±
- è¿äºåæ´å¨å¸¸é©»è§èä¸çå½å±ä½ç½®
第 3 æ¥ï¼å建带æ¶é´æ³ç彿¡£ç®å½
# 以å½å¤©æ¥æåå»ºå½æ¡£ç®å½
TIMESTAMP=$(date +%Y-%m-%d)
mkdir -p spec/archive/${TIMESTAMP}-{change-id}
示ä¾ï¼
# 对 2025-10-26 彿¡£ç "add-user-auth" åæ´
mkdir -p spec/archive/2025-10-26-add-user-auth
第 4 æ¥ï¼åå¹¶ ADDED éæ±å°å¸¸é©»è§è
对æ¯ä¸ª ## ADDED Requirements é¨åï¼
æµç¨ï¼
- å®ä½ç®æ 常驻è§èæä»¶
- å°æ°å¢éæ±è¿½å å°æä»¶æ«å°¾
- ä¿ææ£ç¡®ç Markdown æ ¼å¼
示ä¾ï¼
æ¥æºï¼spec/changes/add-user-auth/specs/authentication/spec-delta.mdï¼ï¼
## ADDED Requirements
### Requirement: ç¨æ·ç»å½
WHEN ç¨æ·æäº¤ææåæ®,
ç³»ç» SHALL 认è¯ç¨æ·å¹¶å建ä¼è¯ã
#### Scenario: ç»å½æå
GIVEN ææçåæ®
WHEN ç¨æ·æäº¤ç»å½è¡¨å
THEN ç³»ç»å建ä¼è¯
ç®æ ï¼spec/specs/authentication/spec.mdï¼ï¼
# 追å å°å¸¸é©»è§è
cat >> spec/specs/authentication/spec.md << 'EOF'
### Requirement: ç¨æ·ç»å½
WHEN ç¨æ·æäº¤ææåæ®,
ç³»ç» SHALL 认è¯ç¨æ·å¹¶å建ä¼è¯ã
#### Scenario: ç»å½æå
GIVEN ææçåæ®
WHEN ç¨æ·æäº¤ç»å½è¡¨å
THEN ç³»ç»å建ä¼è¯
EOF
第 5 æ¥ï¼åå¹¶ MODIFIED éæ±å°å¸¸é©»è§è
对æ¯ä¸ª ## MODIFIED Requirements é¨åï¼
æµç¨ï¼
- å¨å¸¸é©»è§èä¸å®ä½ç°æéæ±
- æ¿æ¢æ´ä¸ªéæ±åï¼å æ¬å ¨é¨åºæ¯ï¼
- 使ç¨å·®å¼æä»¶ä¸ç宿´æ´æ°ææ¬
示ä¾ï¼ä½¿ç¨ sedï¼ï¼
# æ¥æ¾å¹¶æ¿æ¢éæ±å
# è¿æ¯æ¦å¿µç¤ºä¾ââå®é
å®ç°åå³äºç»æ
# é¦å
ï¼ç¡®å®æ§éæ±çèµ·å§è¡
START_LINE=$(grep -n "### Requirement: ç¨æ·ç»å½" spec/specs/authentication/spec.md | cut -d: -f1)
# æ¥æ¾ç»æä½ç½®ï¼ä¸ä¸ä¸ªéæ±ææä»¶æ«å°¾ï¼
END_LINE=$(tail -n +$((START_LINE + 1)) spec/specs/authentication/spec.md | \
grep -n "^### Requirement:" | head -1 | cut -d: -f1)
# å 餿§éæ±
sed -i "${START_LINE},${END_LINE}d" spec/specs/authentication/spec.md
# å¨ç¸åä½ç½®æå
¥æ°éæ±
#ï¼ä»å·®å¼æä»¶æåå¹¶æå
¥ï¼
æå¨æ¹å¼ï¼åºäºå®å ¨å»ºè®®ï¼ï¼
1. å¨ç¼è¾å¨ä¸æå¼å¸¸é©»è§è
2. éè¿åç§°æ¥æ¾ç®æ éæ±
3. å 餿´ä¸ªåï¼éæ± + ææåºæ¯ï¼
4. å°å·®å¼æä»¶ä¸çæ´æ°éæ±ç²è´´å°è¯¥å¤
5. ä¿å
第 6 æ¥ï¼åå¹¶ REMOVED éæ±å°å¸¸é©»è§è
对æ¯ä¸ª ## REMOVED Requirements é¨åï¼
æµç¨ï¼
- å¨å¸¸é©»è§èä¸å®ä½è¯¥éæ±
- å 餿´ä¸ªéæ±å
- æ·»å 䏿¡æ³¨éè®°å½ç§»é¤
示ä¾ï¼
# æ¹æ¡ 1ï¼å¸¦æ³¨éå é¤
# æå¨ç¼è¾ spec/specs/authentication/spec.md
# æ·»å å¼ç¨æ³¨é
echo "<!-- Requirement 'Legacy Password Reset' removed $(date +%Y-%m-%d) -->" >> spec/specs/authentication/spec.md
# éè¿æå¨æ sed å é¤è¯¥éæ±å
模å¼ï¼
<!-- Removed 2025-10-26: ç¨æ·é使ç¨åºäºé®ä»¶çå¯ç éç½® -->
~~### Requirement: SMS Password Reset~~
第 7 æ¥ï¼å°åæ´ç®å½ç§»å¨å°å½æ¡£
卿æå·®å¼åå¹¶åï¼
# å°å®æ´çåæ´ç®å½ç§»å¨å°å½æ¡£
mv spec/changes/{change-id} spec/archive/${TIMESTAMP}-{change-id}
éªè¯ç§»å¨æåï¼
# æ£æ¥å½æ¡£æ¯å¦åå¨
ls -la spec/archive/${TIMESTAMP}-{change-id}
# æ£æ¥ changes ç®å½æ¯å¦å¹²å
ls spec/changes/ | grep "{change-id}" # åºæ ç»æ
第 8 æ¥ï¼éªè¯å¸¸é©»è§èç»æ
å¨åå¹¶åï¼éªè¯å¸¸é©»è§èç宿´æ§ï¼
# æ£æ¥éæ±æ ¼å¼
grep -n "### Requirement:" spec/specs/**/*.md
# æ£æ¥åºæ¯æ ¼å¼
grep -n "#### Scenario:" spec/specs/**/*.md
# ç»è®¡æ¯ä¸ªè§èä¸çéæ±æ°é
for spec in spec/specs/**/spec.md; do
count=$(grep -c "### Requirement:" "$spec")
echo "$spec: $count æ¡éæ±"
done
æå¨å®¡é ï¼
- æå¼æ¯ä¸ªè¢«ä¿®æ¹çè§èæä»¶
- éªè¯ Markdown æ ¼å¼æ£ç¡®
- æ£æ¥éæ±é»è¾æ¯å¦è¿è´¯
- ç¡®ä¿ä¸åå¨éå¤éæ±
åå¹¶é»è¾åè
ADDED æä½
å¨ä½ï¼è¿½å å°å¸¸é©»è§è
ä½ç½®ï¼æä»¶æ«å°¾ï¼ä»»ä½é¡µè/éå½ä¹åï¼
æ ¼å¼ï¼æåæå¤å¶éæ±ä¸å
¨é¨åºæ¯
MODIFIED æä½
å¨ä½ï¼æ¿æ¢ç°æéæ±
ä½ç½®ï¼éè¿éæ±åç§°å®ä½ï¼æ¿æ¢æ´ä¸ªå
æ ¼å¼ï¼ä½¿ç¨å·®å¼æä»¶ç宿´æ´æ°ææ¬ï¼ä¸æ¼æ¥ï¼ç´æ¥æ¿æ¢ï¼
说æï¼æ§çæ¬ä¿çå¨å½æ¡£ä¸
REMOVED æä½
å¨ä½ï¼å é¤éæ±ï¼å¹¶æ·»å å¼ç¨æ³¨é
ä½ç½®ï¼éè¿éæ±åç§°å®ä½
æ ¼å¼ï¼å 餿´ä¸ªåï¼å¯éæ·»å <!-- Removed YYYY-MM-DD: reason -->
RENAMED æä½ï¼ä¸å¸¸è§ï¼
å¨ä½ï¼æ´æ°éæ±åç§°ï¼ä¿çå
容
ä½ç½®ï¼éè¿æ§åç§°å®ä½ï¼æ´æ°ä¸ºæ°åç§°
æ ¼å¼ï¼ä»
ä¿®æ¹æ é¢ï¼### Requirement: æ°åç§°
说æï¼éå¸¸ä½¿ç¨ MODIFIED æ´ä¸ºå¸¸è§
æä½³å®è·µ
æ¨¡å¼ 1ï¼ç§»å¨åå éªè¯
å¡å¿ å¨ç§»å¨å°å½æ¡£åéªè¯å·®å¼åå¹¶ï¼
# å并忥çå·®å¼
git diff spec/specs/
# 审é
åæ´
git diff spec/specs/authentication/spec.md
# è¥æ£ç¡®åæäº¤
git add spec/specs/
git commit -m "Merge spec deltas from add-user-auth"
# ç¶åå彿¡£
mv spec/changes/add-user-auth spec/archive/2025-10-26-add-user-auth
æ¨¡å¼ 2ï¼ååå彿¡£
彿¡£æ´ä¸ªåæ´ï¼èéå个æä»¶ï¼
好ï¼
# ç§»å¨å®æ´åæ´ç®å½
mv spec/changes/add-user-auth spec/archive/2025-10-26-add-user-auth
åï¼
# ä¸è¦ææ£æä»¶
mv spec/changes/add-user-auth/proposal.md spec/archive/
#ï¼ä¼çä¸å¤å¿æä»¶ï¼
æ¨¡å¼ 3ï¼å½æ¡£ä¿å ¨
彿¡£æ¯åå²è®°å½ãåå¿ä¿®æ¹å½æ¡£æä»¶ï¼
â ä¸è¦ï¼ç¼è¾ spec/archive/
â è¦ï¼å°å½æ¡£è§ä¸ºåªè¯»åå²
æ¨¡å¼ 4ï¼Git æäº¤çç¥
æ¨èæäº¤æµç¨ï¼
# æäº¤ 1ï¼åå¹¶å·®å¼
git add spec/specs/
git commit -m "Merge spec deltas from add-user-auth
- Added User Login requirement
- Modified Password Policy requirement
- Removed Legacy Auth requirement"
# æäº¤ 2ï¼å½æ¡£åæ´
git add spec/archive/ spec/changes/
git commit -m "Archive add-user-auth change"
è¿é¶ä¸»é¢
夿差å¼ï¼è§ reference/MERGE_LOGIC.md
å²çªè§£å³ï¼è¥å¤ä¸ªåæ´ä¿®æ¹åä¸éæ±ï¼éæå¨åå¹¶ã
åæ»çç¥ï¼è¥é忻彿¡£ï¼ååæ§è¡æµç¨ï¼ä»å½æ¡£ç§»å changesï¼å¹¶ä»å¸¸é©»è§èç§»é¤å·²åå¹¶å 容ï¼ã
å¸¸è§æ¨¡å¼
æ¨¡å¼ 1ï¼ç®åæ°å¢
åæ´æ°å¢ 1 æ¡éæ± â 追å å°è§è â 彿¡£
æ¨¡å¼ 2ï¼è¡ä¸ºåæ´
åæ´ä¿®æ¹ 1 æ¡éæ± â å¨è§è䏿¿æ¢ â 彿¡£
æ¨¡å¼ 3ï¼å¼ç¨
åæ´ç§»é¤ 1 æ¡éæ± â å é¤å¹¶æ·»å 注é â 彿¡£
æ¨¡å¼ 4ï¼å¤éæ±çåè½
åæ´å¨ 2 个è§è䏿°å¢ 5 æ¡éæ±
â åå«è¿½å å°ç¸åºè§è
â éªè¯å
¨é¨å·²åå¹¶
â 彿¡£
忍¡å¼é¿å
ä¸è¦ï¼
- 彿¡£æªå®æç宿½
- å¨é¨ç½²ååå¹¶å·®å¼
- ä¿®æ¹å½æ¡£æä»¶
- è·³è¿åå¹¶åçéªè¯
- å¿è®°å¨åå¹¶è§èåè¿è¡ git æäº¤
è¦ï¼
- å¨å½æ¡£åéªè¯ææä»»å¡å®æ
- å°å¿ä¸å®æ´å°åå¹¶å·®å¼
- å°å½æ¡£è§ä¸ºä¸å¯ååå²
- éªè¯åå¹¶åè§èç»æ
- å¨å½æ¡£ç§»å¨åæäº¤åå¹¶åçè§è
æ éææ¥
é®é¢ï¼åå¹¶å²çªï¼å¸¸é©»è§èå·²æè¯¥éæ±ï¼
è§£å³æ¹æ¡ï¼
1. è¥åç§°ç¸åä½å
容ä¸å â ä½¿ç¨ MODIFIED 模å¼
2. è¥ç¡®å®æ¯ä¸åéæ± â éå½åå
¶ä¸ä¹ä¸
3. è¥å±éå¤é误 â éæ©æ£ç¡®çæ¬
é®é¢ï¼æ¾ä¸å°éè¦ä¿®æ¹/ç§»é¤çéæ±
è§£å³æ¹æ¡ï¼
1. æé¨ååç§°æç´¢ï¼grep -i "login" spec/specs/**/*.md
2. æ£æ¥æ¯å¦å·²è¢«ç§»é¤
3. æ£æ¥æ¯å¦ä½äºå
¶ä»è½åæä»¶
é®é¢ï¼åå¹¶å常驻è§èæ ¼å¼é误
è§£å³æ¹æ¡ï¼
1. æå¨ä¿®å¤æ ¼å¼
2. éæ°è¿è¡éªè¯ï¼grep -n "###" spec/specs/**/*.md
3. ç¡®ä¿æ é¢å±çº§ä¸è´
åèèµæ
- MERGE_LOGIC.md – 详ç»çåå¹¶æä½è§å
Token é¢ç®ï¼æ¤ SKILL.md 约 430 è¡ï¼ä½äºå»ºè®®ç 500 è¡ä¸éã