code-style
npx skills add https://github.com/mmorit00/fund-portfolio-bot --skill code-style
Agent 安装分布
Skill 文档
Python code style for fund-portfolio-bot
æ¬ Skill 强è°ç¼ç è§èä¸æå ³é®ãæå®¹æè¢«å¿½ç¥çè§åã
宿´ç¼ç è§èè§
CLAUDE.md第 3 èï¼æ ¸å¿çº¦æï¼ã å屿¶æçº¦æè§.claude/skills/architecture/SKILL.mdã
When to use
å¨ä»¥ä¸åºæ¯ä½¿ç¨æ¬ Skillï¼è§¦åè¯ï¼ä»£ç 飿 ¼ãç±»åæ³¨è§£ãDocstringã精度ãcode styleãtype hintsãdocstringï¼ï¼
- çææ°ç Python 模åï¼å°¤å
¶æ¯
src/ä¸ï¼ - ä¿®æ¹ç°æå½æ°æç±»
- å代ç 鿿代ç è¯å®¡
- ç¨æ·æå°”ç±»åæ³¨è§£”ã”Decimal”ã”ææ¡£”ã”代ç è§è”æ¶
ç±»å䏿°å¼æ£ç¡®æ§
- ææå½æ°åæ°ä¸è¿åå¼é½åºæ·»å ç±»åæ³¨è§£ã
- ä¼å
使ç¨ç°ä»£ç±»åè¯æ³ï¼
list[str],dict[str, Decimal],X | None- é¿å
使ç¨
List/Optionalçèå¼åæ³ï¼é¤é项ç®å·²æç»ä¸çº¦å®ã
- éé¢ãåå¼ã份é¢çéèç¸å
³å段ä¸å¾ä½¿ç¨
Decimalã - ä¸è¦ä½¿ç¨
floatåä»»ä½éè计ç®ã
Docstring 䏿³¨é
- å
¬å¼çç±»ä¸å½æ°åºè¯¥æç®æ´ç䏿 docstringï¼è¯´æï¼
- 主è¦èè´£
- å ³é®ä¸å¡çº¦æææ³¨æç¹
- Docstring ä¸éè¦éå¤ç±»åä¿¡æ¯ï¼ç±»å以注解为åï¼ã
- æ°åæ ç¾æ³¨éï¼CLI å±è§èï¼ï¼
- 彿°å
é¨ç¨
# 1.# 2.# 3.æ è®°é»è¾æ¥éª¤ - 示ä¾ï¼
# 1. è§£æåæ°â# 2. è°ç¨ Flowâ# 3. æ ¼å¼åè¾åº
- 彿°å
é¨ç¨
- 注éåªå¨ä¸å¡è§åä¸ç´è§æ¶è¡¥å è§£éï¼é¿å åªé³æ³¨éã
模åä¸ç±»å é¨ç»æ
ååï¼å ¥å£å¨ä¸ï¼å·¥å ·å¨ä¸ï¼å ¬å¼å¨ä¸ï¼ç§æå¨ä¸ã
ç±»å é¨é¡ºåºï¼
__init__- å ¬å ±æ¹æ³
- 以
_å¼å¤´çç§æè¾ å©æ¹æ³
模åå é¨é¡ºåºï¼
- importï¼ææ ååº / ç¬¬ä¸æ¹ / æ¬å°åç»ï¼
- å ¬å ±ç±»ä¸å ¬å ±å½æ°
- ä»
模åå
é¨ä½¿ç¨çç§æå·¥å
·å½æ°ï¼ä¾å¦
_helper_*ï¼
å½åæ¯ä¾
- ç¶æç±»åæ®µææä¸¾å¼ç¨å°åå符串ï¼ä¾å¦ï¼
"normal","delayed","pending"
- æä»¶åã彿°åãåéåï¼
snake_case - ç±»åï¼
PascalCase - CLI å±å½æ°å½åï¼v0.4.2+ ç»ä¸è§èï¼ï¼
_parse_args()ï¼åæ°è§£æå½æ°_format_*()ï¼æ ¼å¼åè¾åºè¾ å©å½æ°ï¼å¦_format_result(),_format_fees()ï¼_do_*()ï¼å½ä»¤æ§è¡å½æ°ï¼å¦_do_buy(),_do_list(),_do_confirm()ï¼main()ï¼CLI ä¸»å ¥å£ï¼åªåè·¯ç±
åå±ä¸é ç½®ç¸å ³çº¦æ
coreå±ä»£ç ä¸è¦ä»adaptersæappå¯¼å ¥ã- ä¸å¡é»è¾ä¸é¿å
ç´æ¥ä½¿ç¨
os.getenvï¼- ä¼å éè¿å·²æçé 置模åæéé å±è·åé ç½®ã
DCA & AI åå·¥å½åè§è
æ¬é¡¹ç®æ¯ AI é©±å¨ çæèµå·¥å ·ãå¨ DCAãå岿«æãAI åæç¸å ³ä»£ç ä¸ï¼ä¸¥æ ¼éµå¾ª “è§åç®äºå®ï¼AI åè§£é” çåå·¥ååï¼éè¿å½åæ¥å¼ºåè¿ä¸ªè¾¹çã
è§å屿°æ®æ¨¡å
è§åå±åªè¾åºå¯éç®çç»æåäºå®ï¼ä¸¥ç¦ç´æ¥çæä¸»è§ç»è®ºã
| åç¼ | å®ä¹ | 模åå ç¤ºä¾ | 跨模åç¤ºä¾ |
|---|---|---|---|
*Facts |
ç»æåäºå®å¿«ç §ï¼æ¥æãéé¢ãé´éçï¼ | Facts |
DcaFacts |
*Check |
è§åéªè¯ç»æï¼å½ä¸+åå·®+说æï¼ | Check |
DayCheck |
*Flag |
å¼å¸¸æ è®°ï¼ä¸ä¸ç»è®ºï¼ä» æ è®°ï¼ | Flag |
Flag |
*Draft |
å»ºè®®æ¹æ¡ï¼ä¸å ¥åºï¼å åç»æï¼ | Draft |
PlanDraft |
*Result |
å é¨ä¸é´èåï¼å¦åå¡«ç»æï¼ | Result |
BackfillResult |
*Report |
CLI/AI å±ç¤ºç¨æ¥å | Report |
ScanReport |
ç®åååï¼æ¨¡åè·¯å¾å·²å å«é¢åä¿¡æ¯æ¶ï¼å¯çç¥åç¼ï¼è·¨æ¨¡åå¯¼åºæ¶ä¿çä¸ä¸æã
Flow 彿°å¨è¯
| å¨è¯ | 约æ | 模åå ç¤ºä¾ | 跨模åç¤ºä¾ |
|---|---|---|---|
build_*() |
åªè¯»è®¡ç®ï¼è¿å *Facts |
build_facts() |
build_dca_facts() (æ¹æ¬¡ä¸ºåæ°) |
scan_*() |
åªè¯»æ å¯ä½ç¨ï¼å¹çï¼ | scan() |
scan_trading_history() |
draft_*() |
è¿å *Draftï¼ä¸å
¥åº |
draft() |
draft_dca_plan() |
backfill_*() |
åæä½ï¼ä¿®æ¹æ°æ®åº | backfill() |
backfill_dca() (ä¸éè¦ for_batch) |
å ³é®ååï¼
- çå°
scan_/build_/draft_å°±ç¥éå®å ¨å¯è°ï¼åªè¯»ï¼ - çå°
backfill_å°±è¦è¦æä¼ä¿®æ¹æ°æ®åº - åæ°èé彿°åæ¥è¡¨è¾¾”对ä»ä¹”ï¼batch_id, fund_code çæ¯åæ°ï¼
AI å±ï¼é¢çï¼
AI åºäºè§åå±ç *Facts çæè¯ä¹è§£éï¼ä»
åå
¥è§£éæ§å段ï¼ä¸ä¿®æ¹æ ¸å¿æ°æ®ã
*Insightï¼æ´å¯ï¼å¦”è¿ç¬äº¤æå¯è½æ¯é颔ï¼*Explanationï¼èªç¶è¯è¨è§£é*Labelï¼åç±»æ ç¾
æäº¤åæ£æ¥
å¨å¯è½çæ åµä¸ï¼
- è¿è¡éææ£æ¥ï¼ä¾å¦é¡¹ç®ä¸é
ç½®ç
ruff check --fix .ï¼ã - å¿«éæµè§æ¬æ¬¡ diffï¼ç¡®è®¤ï¼
- 飿 ¼æ¸ çæ²¡ææ¹åä¸å¡è¡ä¸º
- 没æéçè°è¯ä»£ç ï¼ä¾å¦
printãbreakpoint()ï¼ã