Token导航 LogoToken导航

Agent Skill · 开发

fp-dcf(FP DCF 安全)

fp-dcf 用于辅助安全审计、权限检查和凭据风险排查,适合在 OpenClaw 中需要复核安全边界、认证流程或敏感配置时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

fp-dcf 是开发类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为执行命令;许可证为 MIT-0,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 5,844。

总安装 5,557周安装 227GitHub Stars 1下载 1,780核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
0.5.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:fp-dcf(FP DCF 安全)
来源仓库:https://github.com/tiejiang8/fp-dcf
安装命令:
openclaw skills install fp-dcf
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install fp-dcf

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

fp-dcf 基于第一性原理进行 DCF 估值建模,返回 FCFF、WACC 等核心参数。适用于股票内在价值估算和财务分析辅助决策场景。fp-dcf 属于开发类 Skill,可作为该场景下的辅助能力补充。输入需包含结构化 JSON 或权威机构发布的财务数据。输出结果应结合人工判断,不可单独作为投资依据。

建议校验输入数据的真实性与时效性后再启动计算流程。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install fp-dcf;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要执行命令,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

fp-dcf 怎么安装?

在终端执行 openclaw skills install fp-dcf。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

fp-dcf 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

fp-dcf 需要什么权限?

权限级别是执行命令。安装流程涉及命令执行,可能通过 openclaw skills install fp-dcf 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

fp-dcf 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

fp-dcf 用的人多吗?

公开数据是累计安装 5,557 次,近一周安装 227 次,下载 1,780 次,GitHub 1 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

fp-dcf 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要执行命令,装到常用环境前要先评估影响面。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 不能接受 Skill 在你机器上执行命令的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
fp-dcf

FP DCF 安全 · 本页

5,5571执行命令MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
fp-dcf
description
Estimate intrinsic value with a first-principles DCF from structured JSON or provider-backed ticker input, and return auditable FCFF, WACC, and per-share value output.
metadata
{"openclaw":{"emoji":"📉","homepage":"https://github.com/tiejiang8/FP-DCF","requires":{"anyBins":["python3","python"]}}}
user-invocable
true

FP-DCF

Version: v0.4.0

Repository Workflow Notice

  • For this repository, GitHub submissions do not use a separate branch workflow.
  • Do not create a feature branch for routine updates; commit and publish on the designated branch directly unless the user explicitly asks for a different flow.
  • If a default workflow suggests opening a branch or PR, treat that as incorrect for this repository.

Use this skill when the task is to estimate intrinsic value from structured fundamentals and assumption inputs using a disciplined, auditable DCF workflow.

Runtime Contract

This repository is executable when installed as a skill because it includes a concrete CLI entrypoint:

  • Primary runner: {baseDir}/scripts/run_dcf.py
  • Python module entrypoint: python3 -m fp_dcf.cli
  • Sample input: {baseDir}/examples/sample_input.json
  • Base Python dependencies for the default one-click path: akshare, baostock, numpy, pandas, yfinance, matplotlib

Preferred execution pattern:

  1. Build a JSON payload that matches {baseDir}/examples/sample_input.json.
  2. Write that payload to a temporary JSON file in the workspace.
  3. Run one of:

- python3 {baseDir}/scripts/run_dcf.py --input /path/to/input.json --pretty - python {baseDir}/scripts/run_dcf.py --input /path/to/input.json --pretty

  1. Read the JSON output and present the result to the user.

If the runtime supports stdin piping, this also works:

python3 {baseDir}/scripts/run_dcf.py --pretty < /path/to/input.json

Provider-backed normalization uses a local provider cache by default. To force a fresh pull for the current request, run:

python3 {baseDir}/scripts/run_dcf.py --input /path/to/input.json --pretty --refresh-provider

If the runtime needs an isolated cache location, pass:

python3 {baseDir}/scripts/run_dcf.py --input /path/to/input.json --pretty --cache-dir /path/to/cache

The main runner already returns a compact sensitivity summary and auto-renders both SVG and PNG chart artifacts by default. If the user explicitly asks for a WACC x Terminal Growth chart or sensitivity table, keep using the same main runner so the valuation JSON and artifact paths come back in a single output:

python3 {baseDir}/scripts/run_dcf.py \
  --input /path/to/input.json \
  --output /path/to/output.json \
  --pretty

That one command will default the chart artifact paths to /path/to/output.sensitivity.svg and /path/to/output.sensitivity.png.

Input Shape

The expected JSON object contains:

  • ticker
  • market
  • valuation_model
  • assumptions
  • fundamentals

Minimum required values for a useful result:

  • assumptions.effective_tax_rate
  • assumptions.marginal_tax_rate
  • assumptions.risk_free_rate
  • assumptions.equity_risk_premium
  • assumptions.beta
  • assumptions.pre_tax_cost_of_debt
  • fundamentals.fcff_anchor or fundamentals.ebit

Supported valuation_model values in v0.4.0:

  • steady_state_single_stage
  • two_stage
  • three_stage

For two_stage, the engine continues to support the legacy assumptions.high_growth_rate / high_growth_years fields and also accepts assumptions.stage1_growth_rate / stage1_years as compatible aliases.

For three_stage, the valuation path requires these assumption fields:

  • assumptions.terminal_growth_rate
  • assumptions.stage1_growth_rate
  • assumptions.stage1_years
  • assumptions.stage2_end_growth_rate
  • assumptions.stage2_years

For three_stage, this optional field is also supported:

  • assumptions.stage2_decay_mode with default linear

three_stage applies to the main valuation path and to the separate payload.market_implied_stage1_growth backsolve. payload.implied_growth.model still supports only one_stage and two_stage.

If fundamentals.fcff_anchor is not supplied, the runner computes it from:

  • ebit
  • da
  • capex
  • delta_nwc or a fallback working-capital field

If those structured fields are mostly missing, the runner can auto-normalize them from a live provider when:

  • provider is set to yahoo, or
  • provider is set to akshare_baostock for market=CN, or
  • the payload has a ticker but is missing core DCF inputs

The minimal provider-backed input shape is:

{
  "ticker": "AAPL",
  "market": "US",
  "provider": "yahoo",
  "statement_frequency": "A",
  "valuation_model": "steady_state_single_stage",
  "assumptions": {
    "terminal_growth_rate": 0.03
  }
}

For China A-shares, this explicit provider shape is also supported:

{
  "ticker": "600519.SH",
  "market": "CN",
  "provider": "akshare_baostock",
  "statement_frequency": "A",
  "valuation_model": "steady_state_single_stage",
  "assumptions": {
    "terminal_growth_rate": 0.025
  }
}

When market="CN" and Yahoo normalization fails, FP-DCF automatically falls back to akshare_baostock. In that path, AkShare provides statement data and BaoStock provides price history and the latest close.

The payload can also drive normalization behavior through an optional normalization object:

  • normalization.provider
  • normalization.use_cache
  • normalization.refresh
  • normalization.cache_dir

The payload can also request sensitivity analysis through an optional sensitivity object:

  • sensitivity.enabled
  • sensitivity.metric
  • sensitivity.detail
  • sensitivity.chart_path
  • sensitivity.wacc_range_bps
  • sensitivity.wacc_step_bps
  • sensitivity.growth_range_bps
  • sensitivity.growth_step_bps

The payload can also request market-implied stage-1 backsolves through an optional market_implied_stage1_growth object:

  • market_implied_stage1_growth.enabled
  • market_implied_stage1_growth.lower_bound
  • market_implied_stage1_growth.upper_bound
  • market_implied_stage1_growth.tolerance
  • market_implied_stage1_growth.max_iterations

market_implied_stage1_growth supports only valuation_model=two_stage and valuation_model=three_stage. It solves for the stage1_growth_rate required to match the market price or market EV while keeping the other assumptions fixed. It is not a replacement for the existing implied_growth block.

Sensitivity output is enabled by default. To disable it for a specific run:

  • pass --no-sensitivity, or
  • set sensitivity.enabled=false

Live provider-backed runs are inherently date-sensitive. Do not hard-code expected valuation numbers when validating this path; validate the presence and plausibility of the returned fields instead.

Core Rules

Tax Policy

  • Keep the operating tax estimate for FCFF separate from the marginal tax assumption used in WACC.
  • If the statement-level tax rate is available, prefer it for EBIAT/NOPAT.
  • If the marginal tax rate is manual or market-defaulted, expose that source in the output.
  • Do not silently reuse one tax rate for both paths when the intended sources differ. If a fallback reuse happens, surface it in warnings.

Working-Capital Policy

Use this fallback order and report which path was used:

  1. delta_nwc
  2. op_nwc_delta
  3. nwc_delta
  4. cash-flow working-capital change fields such as change_in_working_capital

If all paths fail, flag the result as degraded rather than pretending the estimate is fully reliable.

FCFF Policy

  • Prefer a normalized steady-state FCFF anchor for single-stage valuation.
  • Prefer NOPAT + ROIC + reinvestment when the driver data is usable.
  • Fall back to normalized historical FCFF only when the operating-driver path is incomplete.
  • Do not discount historical realized FCFF as if it were a forward forecast.

WACC Policy

  • Use explicit sources for risk-free rate, ERP, beta, pre-tax debt cost, and capital weights.
  • Prefer explicit capital weights from the input payload when available.
  • Apply the marginal tax assumption only to the debt tax shield.
  • Attach a warning when key inputs are manual, defaulted, stale, or missing.

Sector Policy

  • Financial institutions often produce unreliable FCFF under industrial-company DCF logic.
  • When the company is bank-like, insurer-like, broker-like, or otherwise balance-sheet-driven, downgrade or exclude the result unless the workflow explicitly supports that sector.

Output Requirements

Always return:

  • valuation model used
  • requested_valuation_model
  • effective_valuation_model
  • degraded
  • major assumptions with source labels
  • FCFF anchor and anchor method
  • working-capital source used
  • WACC inputs and capital weights
  • enterprise value, equity value, and per-share value when available
  • valuation.present_value_stage1
  • valuation.present_value_stage2
  • valuation.present_value_terminal
  • valuation.terminal_value
  • valuation.terminal_value_share
  • valuation.explicit_forecast_years
  • market_implied_stage1_growth when that block is enabled and valid
  • provider cache status diagnostics when provider-backed normalization is used
  • diagnostics, warnings, and degradation flags
  • by default, return a compact sensitivity summary plus both chart file paths

Execution Notes

  • Use {baseDir} instead of guessing the install path.
  • Prefer writing a JSON file and passing --input over hand-building one-line shell JSON.
  • If the payload only contains ticker/market plus light assumptions, rely on provider-backed normalization instead of fabricating fundamentals.
  • Use the default provider cache for repeated runs on the same ticker unless the user explicitly asks for fresh data.
  • If the user asks for the latest market or statement snapshot, add --refresh-provider or set normalization.refresh=true.
  • If the user asks for a valuation sensitivity table or heatmap, prefer the main runner with its default sensitivity output and auto-generated chart path over a separate second command.
  • If the caller needs the full numeric heatmap grid in JSON, set sensitivity.detail=true instead of bloating the default output for every run.
  • Only use --sensitivity-chart-output or sensitivity.chart_path when the caller explicitly wants to override the default artifact location.
  • The default one-click path assumes matplotlib is installed, because PNG/SVG chart artifacts are rendered automatically.
  • If the environment intentionally excludes matplotlib, disable sensitivity first with --no-sensitivity or sensitivity.enabled=false before running the main CLI.
  • If per_share_value sensitivity is unavailable because shares_out is missing, try --refresh-provider first or switch the sensitivity metric to equity_value.
  • If the user only gives high-level valuation preferences, ask for or derive the missing structured inputs before running the script.
  • If valuation_model=three_stage is missing stage1_growth_rate, stage1_years, stage2_end_growth_rate, stage2_years, or terminal_growth_rate, fail with a clear error instead of falling back.
  • If valuation_model is unknown, fail with an error containing unsupported valuation_model; do not silently remap it to another model.
  • Do not silently degrade a requested three_stage valuation into two_stage or steady_state_single_stage.
  • Keep implied-growth scope unchanged in v0.4.0: only one_stage and two_stage are valid there.
  • Keep market_implied_stage1_growth separate from implied_growth. It is a one-variable stage1_growth_rate backsolve, not a multi-parameter calibration pass.
  • Reject market_implied_stage1_growth on steady_state_single_stage with an error containing market_implied_stage1_growth requires valuation_model in {two_stage, three_stage}.
  • If the user wants single-stage market-implied growth, route that request through payload.implied_growth.model=one_stage instead.
  • Read references/methodology.md only when you need policy detail beyond this file.

Reference Map

Read only what you need:

Quality Bar

  • Prefer explicit assumptions over hidden heuristics.
  • Prefer auditable fallbacks over brittle elegance.
  • Label degraded results clearly.
  • Be conservative when provider data is incomplete or inconsistent.
  • If a result depends heavily on terminal value, include that in the diagnostics.

平台分布

OpenClaw

72.85%
按下载量换算1,297

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 openclaw skills install fp-dcf 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills