naming
npx skills add https://github.com/mmorit00/fund-portfolio-bot --skill naming
Agent 安装分布
Skill 文档
Naming conventions for fund-portfolio-bot
æ¬ Skill å®ä¹é¡¹ç®çå½åè§èï¼æ ¸å¿å²å¦æ¯ ä¸ä¸ææ¶æ§ä¹ï¼Context-Aware Minimal Namingï¼ã
When to use
å¨ä»¥ä¸åºæ¯ä½¿ç¨æ¬ Skillï¼è§¦åè¯ï¼å½åãååãéå½åãåå太é¿ãnamingãrenameï¼ï¼
- å建æ°çç±»ã彿°ãåéæ¶
- éå½åç°æä»£ç æ¶
- 代ç è¯å®¡æ¶æ£æ¥å½åæ¯å¦ç®æ´
- è®¾è®¡æ°æ¨¡åæ¶ç¡®å®å½å飿 ¼
- ç¨æ·æå°”åå太鿔ã”å½å太å°å¦”ã”ç®åå½å”æ¶
æ ¸å¿å²å¦
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â åååªéå¨å
¶åºç°çä¸ä¸æä¸å¯ä¸æ¶æ§ä¹ â
â â
â æ¨¡åè·¯å¾ + ç±»åæç¤º + ç®çåå = 宿´è¯ä¹ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
èæ¯ï¼æ¬é¡¹ç®æ¯ AI 驱å¨å¼åçç¬ç«é¡¹ç®ï¼ä»£ç ç±å¼åè èªå·±ç»´æ¤ãç±»åæç¤ºãIDE 导èªãAI è¾ å©å·²ç»æä¾äºè¶³å¤çä¸ä¸æï¼å��ä¸éè¦è¿åº¦èªè§£éã
äºæ¡è§å
è§å 1ï¼é¢ååè¯ä¿æå®æ´
è¿äºæ¯é¢åå»ºæ¨¡ç”æ ¹”ï¼ä¸è½ç®åï¼
Trade / Fund / Nav / Dca / Action / Restriction / Policy / Config / Batch
Repo / Service / Client
è§å 2ï¼ä¸ä¸æä¸éå¤
模åè·¯å¾å·²æçä¿¡æ¯ï¼ç±»åä¸åéå¤ã
# BAD - 模ååå·²ç»æ¯ fund_restriction
from src.core.models.fund_restriction import FundRestrictionFact
# GOOD
from src.core.models.fund_restriction import Restriction
from src.core.models.fund_restriction import Fact
# BAD - 模ååå·²ç»æ¯ dca_backfill
class DcaDayCheck: ...
class FundDcaFacts: ...
# GOOD
class DayCheck: ...
class Facts: ... # æ DcaFactsï¼ä¿çä¸çº§åç¼ï¼
è§å 3ï¼åç¼æé使ç¨
åç¼ä» å¨éè¦åºåæ¶ä½¿ç¨ï¼
| åç¼ | å«ä¹ | 使¶ä½¿ç¨ |
|---|---|---|
Result |
彿°è¿åçèåç»æ | éè¦åºåå¨è¯ååè¯æ¶ |
Facts |
è§åå±åªè¯»å¿«ç § | AI åæåºæ¯ |
Draft |
å¾ ç¡®è®¤çå»ºè®®æ¹æ¡ | ä¸å ¥åºçä¸é´ç»æ |
Check |
æ£æ¥/éªè¯ç»æ | è§åå±è¾åº |
Flag |
æ è®°/è¦å | å¼å¸¸æ è¯ |
ç®å示ä¾ï¼
# BAD
class BackfillDaysResult: ...
# GOOD
class BackfillResult: ...
è§å 4ï¼åæ°åæç®
ç±»åæç¤ºå·²è¯´æç±»åï¼åéååªé说æè§è²ã
# BAD
def foo(trade_repo: TradeRepo, fund_code: str, trade_date: date): ...
# GOOD
def foo(repo: TradeRepo, code: str, day: date): ...
常ç¨ç®åæ å°ï¼
| åä½åæ³ | ç®ååæ³ | 说æ |
|---|---|---|
fund_code |
code |
åºéä¸ä¸æå·²ç¥ |
trade_date |
day / on |
ç±»åå·²ç¥æ¯ date |
trade_repo |
repo |
ç±»åå·²ç¥æ¯ TradeRepo |
dca_plan_key |
dca_key / key |
ä¸ä¸æå·²ç¥ |
confirmation_status |
state |
ç®åè¯ä¼å |
delayed_reason |
delay_reason |
廿 ed |
è§å 5ï¼å½æ°åå¨è¯ä¼å
å¨è¯ï¼å¿
éï¼ + 对象ï¼ä»
å½ä¸ä¸æä¸æç¡®æ¶ï¼
# BAD - è¿åº¦æè¿°
def build_dca_facts_for_batch(): ...
def get_dca_day_checks(): ...
def update_dca_plan_key_bulk(): ...
# GOOD - å¨è¯ + æå°éå®
def build_facts(): ... # batch_id æ¯åæ°ï¼ä¸éè¦å¨å½æ°åé
def day_checks(): ... # æ checks()
def tag_dca(): ... # æ set_keys()
å ·ä½ç¤ºä¾
模å级éå½å示ä¾
dca_backfill 模åï¼å ¸åå使¡ä¾ï¼ï¼
# ç°æ
class DcaDayCheck: ...
class BackfillDaysResult: ...
class FundDcaFacts: ...
class SkippedTrade: ...
def build_dca_facts_for_batch(): ...
def get_dca_day_checks(): ...
# 建议
class DayCheck: ... # 模åå·²ç¥æ¯ dca
class BackfillResult: ... # ç®å
class Facts: ... # æ DcaFacts
class Skipped: ... # ä¸ä¸æå·²ç¥æ¯ trade
def build_facts(): ... # batch_id æ¯åæ°
def checks(): ... # æ day_checks()
åæ®µå½å示ä¾
# ç°æ
@dataclass
class Trade:
confirmation_status: str
delayed_reason: str | None
delayed_since: date | None
dca_plan_key: str | None
import_batch_id: int | None
# 建议
@dataclass
class Trade:
state: str # æ confirm_state
delay_reason: str | None
delay_since: date | None
dca_key: str | None
batch_id: int | None # import ä¸ä¸æå·²ç¥
è¾¹çæ åµ
使¶ä¿ç宿´åå
-
跨模å导åºï¼å¦æç±»ä¼è¢«å¤ä¸ªæ¨¡å importï¼ä¿çåç¼é¿å æ§ä¹
# å¨ __init__.py å¯¼åºæ¶ä¿ç宿´å from .dca_backfill import DcaFacts # 䏿¯ Facts -
é¢åæ ¸å¿æ¨¡åï¼Trade, Fund, Nav çä¸ç®å
-
å®¹ææ··æ·çåºæ¯ï¼å¦æç®ååææ§ä¹ï¼ä¿ç
æ¸è¿å¼åºç¨
- æ°ä»£ç éµå¾ªæ°è§è
- éææ¶é¡ºä¾¿æ¹æ§ä»£ç
- ä¸è¦æ±ä¸æ¬¡æ§éå½åææä»£ç
ä¸å ¶ä» Skill çå ³ç³»
- code-styleï¼å®ä¹ç±»å注解ãdocstring çéç¨è§è
- namingï¼æ¬ Skillï¼ï¼ä¸æ³¨å½åç®æ´æ§
- architectureï¼å®ä¹åå±åä¾èµæ¹å
å½åè§èæ¯ code-style çåéï¼ä½æ´ä¸æ³¨ãæ´æ¿è¿ã