Install any skill in seconds. Free to start, no credit card required.
Get Started Free →A股企业护城河/竞争优势分析/竞争壁垒评估。当用户说"护城河"、"竞争优势"、"moat"、"壁垒"、"XX的护城河是什么"、"竞争力分析"、"可持续竞争优势"、"品牌溢价"、"转换成本"、"网络效应"、"护城河分析"、"竞争壁垒"时触发。MUST USE when user asks about competitive moat, sustainable competitive advantage, barriers to entry, or moat analysis for a company. 基于Morningstar护城河框架,系统评估企业的可持续竞争优势(品牌/成本/网络效应/转换成本/规模效应),判断护城河宽窄和趋势。支持研报风格(formal)和快速评估风格(brief)。
.claude/skills/aifinlab-a-share-competitive-moat/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✓→✗ | ▼ Worse | -69% | 0% |
| case-05 | ✓→✗ | ▼ Worse | -47% | 0% |
| case-06 | ✓→✗ | ▼ Worse | -47% | 0% |
| case-01 | ✗→✗ | = Same ✗ | -40% | 0% |
| case-02 | ✗→✗ | = Same ✗ | -61% | 0% |
bashSCRIPTS="$SKILLS_ROOT/cn-stock-data/scripts" # 财务指标(多期,用于ROE/毛利率/ROIC趋势) python "$SCRIPTS/cn_stock_data.py" finance --code [CODE] # 实时行情(市值/PE/PB等) python "$SCRIPTS/cn_stock_data.py" quote --code [CODE] # 同行业可比公司财务(用于市占率/盈利能力对比) python "$SCRIPTS/cn_stock_data.py" finance --code [COMP1],[COMP2],[COMP3] # 同行业可比公司行情 python "$SCRIPTS/cn_stock_data.py" quote --code [COMP1],[COMP2],[COMP3]
补充 web 搜索:行业竞争格局、市占率数据、品牌排名、产业链地位、专利/牌照信息、管理层战略。
逐一评估以下 5 个护城河来源(参照 references/competitive-moat-guide.md):
每个来源给出:存在/不存在/部分存在 + 简要论据。
用财务数据验证护城河的真实性和可持续性:
| 指标 | 护城河证据 | 计算方式 | |------|-----------|---------| | ROE | 持续 >15%(近 5 年) | 净利润/净资产 | | 毛利率 | 稳定或上升趋势 | 毛利/营收 | | ROIC | 持续 >WACC | (NOPAT)/(投入资本) | | 市占率 | 稳定或提升 | Web 搜索行业数据 | | 自由现金流 | 持续为正 | 经营现金流-资本开支 | | 净利率 | 高于行业平均 | 净利润/营收 |
与可比公司对比,判断是否显著优于同行。
综合 Phase 2-3 结果,判断护城河趋势:
关注可能破坏护城河的因素:技术变革、政策变化、消费者偏好转移、行业颠覆。
根据用户指定的风格(formal 或 brief)生成报告。默认为 brief。
护城河评级:
| 维度 | formal(研报风格) | brief(快速评估) | |------|-------------------|------------------| | 篇幅 | 5-10 页 | 1-2 页 | | 商业模式 | 完整拆解(收入结构+产业链) | 1 段概述 | | 5大护城河 | 逐一详细分析+案例对比 | 汇总表+关键结论 | | 量化验证 | 完整数据表+趋势分析+同行对比 | 核心指标表 | | 趋势判断 | 多维度论证+情景分析 | 1 段结论 | | 最终评级 | 评级+详细理由+风险提示 | 评级+一句话理由 | | 免责声明 | 需要 | 不需要 |
python# 调用 skill result = run_skill({ "param1": "value1", "param2": "value2" })
bashpython scripts/run_skill.py --input data.json
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 23,914 | 9,908 | -59% | 1 | 1 | 0% | 3,266 | 1,960 | -40% | 0 | 0 | — |
case-02 | fail→fail | 45,073 | 17,990 | -60% | 1 | 1 | 0% | 6,006 | 2,353 | -61% | 0 | 0 | — |
case-03 | fail→fail | 30,524 | 11,285 | -63% | 1 | 1 | 0% | 4,079 | 1,925 | -53% | 0 | 0 | — |
case-04 | pass→fail | 35,392 | 8,271 | -77% | 1 | 1 | 0% | 5,558 | 1,715 | -69% | 0 | 0 | — |
case-05 | pass→fail | 24,215 | 14,139 | -42% | 1 | 1 | 0% | 3,196 | 1,705 | -47% | 0 | 0 | — |
case-06 | pass→fail | 23,492 | 7,674 | -67% | 1 | 1 | 0% | 3,428 | 1,823 | -47% | 0 | 0 | — |
case-07 | fail→fail | 33,201 | 12,931 | -61% | 1 | 1 | 0% | 4,036 | 2,530 | -37% | 0 | 0 | — |
case-08 | fail→fail | 28,200 | 62,921 | +123% | 1 | 1 | 0% | 3,770 | 9,354 | +148% | 0 | 0 | — |
case-09 | fail→fail | 33,160 | 9,952 | -70% | 1 | 1 | 0% | 3,910 | 1,973 | -50% | 0 | 0 | — |
case-10 | fail→fail | 28,656 | 11,440 | -60% | 1 | 1 | 0% | 3,548 | 1,915 | -46% | 0 | 0 | — |
case-11 | fail→fail | 17,011 | 12,603 | -26% | 1 | 1 | 0% | 2,254 | 2,198 | -2% | 0 | 0 | — |
case-12 | fail→fail | 51,319 | 9,311 | -82% | 1 | 1 | 0% | 6,399 | 1,924 | -70% | 0 | 0 | — |
case-13 | fail→fail | 31,993 | 46,111 | +44% | 1 | 1 | 0% | 3,952 | 1,816 | -54% | 0 | 0 | — |
case-14 | fail→fail | 26,201 | 10,434 | -60% | 1 | 1 | 0% | 3,610 | 1,919 | -47% | 0 | 0 | — |
case-15 | fail→fail | 19,995 | 37,063 | +85% | 1 | 1 | 0% | 2,846 | 5,469 | +92% | 0 | 0 | — |
case-16 | fail→fail | 35,988 | 69,557 | +93% | 1 | 1 | 0% | 3,522 | 1,877 | -47% | 0 | 0 | — |
case-17 | fail→fail | 25,253 | 11,559 | -54% | 1 | 1 | 0% | 3,613 | 1,909 | -47% | 0 | 0 | — |
case-18 | fail→fail | 25,234 | 62,892 | +149% | 1 | 1 | 0% | 3,688 | 2,123 | -42% | 0 | 0 | — |
case-19 | fail→fail | 26,445 | 30,696 | +16% | 1 | 1 | 0% | 3,475 | 5,213 | +50% | 0 | 0 | — |
case-20 | fail→fail | 40,512 | 29,430 | -27% | 1 | 1 | 0% | 3,693 | 2,032 | -45% | 0 | 0 | — |
case-21 | fail→fail | 26,285 | 12,440 | -53% | 1 | 1 | 0% | 3,138 | 2,044 | -35% | 0 | 0 | — |
case-22 | fail→fail | 13,820 | 10,310 | -25% | 1 | 1 | 0% | 1,762 | 1,881 | +7% | 0 | 0 | — |
case-23 | fail→fail | 40,689 | 46,599 | +15% | 1 | 1 | 0% | 4,336 | 8,475 | +95% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 1 counted toward the lift figure. The other 22 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of -13 percentage points is the difference between those two pass rates over the 1 comparable cases. 14 cases got worse with the skill loaded, and they are included in that figure.
Other measured skills in the registry, with their headline benchmark lift.