ssot-check
0
总安装量
1
周安装量
安装命令
npx skills add https://github.com/yusuketsunoda/ppt-trans --skill ssot-check
Agent 安装分布
amp
1
cline
1
opencode
1
cursor
1
continue
1
kimi-cli
1
Skill 文档
/ssot-check â SSOT æ´åæ§ãã§ãã¯
SSOTï¼Single Source of Truthï¼ã¨åæ¶è²»è ã®å¤ãä¸è´ãããæ¤è¨¼ããéçãã§ãã¯ã
Available Subcommands
| ãµãã³ãã³ã | SSOT ã½ã¼ã¹ | æ¶è²»è | ç¶æ |
|---|---|---|---|
pricing |
src/lib/stripe/config.ts |
messages/ja.json, messages/en.json |
å®è£ æ¸ã¿ |
rate-limit |
src/lib/security/rate-limiter/presets.tsï¼èªè¨¼ã»æ©è½ã»ç¿»è¨³ç³»ï¼+ src/constants/limits.tsï¼Admin APIã»Preview APIï¼ |
src/**/*.ts, .claude/**/*.md, CLAUDE.md |
å®è£ æ¸ã¿ |
env |
.env.example |
src/**/*.ts ã® process.env.* |
Phase 2 |
routes |
src/app/api/**/route.ts |
vercel.json functions |
Phase 2 |
Usage
# npm script çµç±
npm run audit:ssot
# ç´æ¥å®è¡
node scripts/audit/ssot-pricing.mjs
node scripts/audit/ssot-pricing.mjs --fix # ä¿®æ£ãã³ãä»ã
# Claude Code ã¹ãã«
/ssot-check pricing
/ssot-check pricing --fix
What It Checks (pricing)
- ä¾¡æ ¼ä¸è´:
PLAN_CONFIGS.price(number) â messages ã®plans.*.price(formatted string) - 表示åä¸è´:
PLAN_CONFIGS.displayNameâmessages/ja.jsonã®plans.*.name - ãã©ã³åå¨: SSOT ã«å®ç¾©ããããã©ã³ãå ¨ messages ã«åå¨ããã
- ä½å°ãã©ã³: messages ã« SSOT ã«ãªããã©ã³ãå®ç¾©ããã¦ããªãã
SSOT ã®å®ç¾©
src/lib/stripe/config.ts â PLAN_CONFIGS (Record<PlanName, PlanConfig>)
âââ free: { price: 0, displayName: "ããªã¼ãã©ã³" }
âââ standard: { price: 980, displayName: "ã¹ã¿ã³ãã¼ããã©ã³" }
âââ pro: { price: 2980, displayName: "ãããã©ã³" }
æ¶è²»è ããã®å¤ã¨çç¾ããå ´åãæ¶è²»è å´ãä¿®æ£ãããSSOT èªä½ã夿´ããå ´å㯠config.ts ãå ã«å¤æ´ãããã§ãã¯ãåå®è¡ã
What It Checks (rate-limit)
- ã³ã¼ãå
ãã¼ãã³ã¼ã:
src/**/*.tsã§ã¬ã¼ãå¶éã®æ°å¤ãpresets.tsãçµç±ããç´æ¥å®ç¾©ããã¦ããªãã - ããã¥ã¡ã³ã転è¨:
.claude/**/*.md,CLAUDE.mdã«ã¬ã¼ãå¶éã®å ·ä½çæ°å¤ã転è¨ããã¦ããªãã - SSOTåç
§: æ¶è²»è
ã
RATE_LIMIT_PRESETS/ADMIN_RATE_LIMITSã import ãã¦ä½¿ç¨ãã¦ããã
æåãã§ãã¯æé
# 1. SSOT ã®ç¾å¨å¤ã確èª
grep -n "max:" src/lib/security/rate-limiter/presets.ts
grep -n "maxRequests:" src/constants/limits.ts
# 2. ã³ã¼ãå
ã§ SSOT ãçµç±ãããã¼ãã³ã¼ããããæ°å¤ãæ¤ç´¢
# ï¼presets.ts / limits.ts 以å¤ã§ windowMs / max ãç´æ¥å®ç¾©ãã¦ããç®æï¼
rg -n "windowMs:\s*[0-9]|max:\s*[0-9]" src/ --type ts -g '!presets.ts' -g '!limits.ts'
rg -n "maxRequests:\s*[0-9]" src/ --type ts -g '!limits.ts' -g '!presets.ts'
# 3. ããã¥ã¡ã³ãå
ã®è»¢è¨ãæ¤ç´¢ï¼ã¬ã¼ãå¶éã«é¢ããå
·ä½çæ°å¤ï¼
rg -n "requests?\s+(per|/)\s*\d+\s*(min|hour|second)" .claude/ CLAUDE.md
åå: ã¬ã¼ãå¶éã®å ·ä½çæ°å¤ã¯ããã¥ã¡ã³ãã»ãã§ãã¯ã¹ã¯ãªããã«è»¢è¨ããªãã
presets.ts/limits.tsã SSOT ã¨ãã¦ç´æ¥åç §ããæç¤ºã®ã¿è¨è¼ããã§ãã¯ã¯æ§é çãã¿ã¼ã³ï¼ãã£ã¼ã«ãåã®åå¨ï¼ã§æ¤åºããã
CI Integration
# GitHub Actions example
- name: SSOT Check
run: npm run audit:ssot
AI Assistant Instructions
ãã®ã¹ãã«ãæå¹åãããæ:
npm run audit:ssotãå®è¡ãã¦ç¾ç¶ãææ¡- ã¨ã©ã¼ãããã° SSOT (config.ts) ã®å¤ã確èª
- æ¶è²»è ãã¡ã¤ã«ï¼messages/*.jsonï¼ã SSOT ã«åããã¦ä¿®æ£
- å度
npm run audit:ssotã§ä¿®æ£ãæ¤è¨¼
Never:
- SSOT å´ï¼config.tsï¼ã messages ã«åããã¦å¤æ´ããªãï¼éæ¹åï¼
- æåã§ä¾¡æ ¼ãã©ã¼ããããæ¨æ¸¬ããªãï¼ã¹ã¯ãªããã®å¤æãã¸ãã¯ã«å¾ãï¼