CtrlK
BlogDocsLog inGet started
Tessl Logo

dcf-model

Build discounted cash flow valuation workbooks in Excel.

50

Quality

58%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./optional-skills/finance/dcf-model/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

62%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body delivers genuinely actionable, well-sequenced DCF modeling guidance with strong validation checkpoints, but it is roughly 2-3x longer than it needs to be: requirements are repeated across five sections and finance fundamentals are re-taught. Structure is monolithic — reference material is inlined, one link is dead, and one bundled script is orphaned — which wastes context and creates drift risk between the repeated copies of the same rules.

Suggestions

Deduplicate the sensitivity-table requirements (stated in Critical Constraints, Step 10, correct_patterns, the Sensitivity Analysis section, and the Final Output Checklist) into a single authoritative section and cross-reference it, which would cut hundreds of lines and eliminate drift risk between the copies.

Remove or move the finance-fundamentals re-teaching (CAPM formula derivation, "Net Debt = Total Debt - Cash", "Market Cap = Price × Shares") to a reference file — keep only the skill-specific ranges and layout rules Claude cannot infer.

Fix the bundle structure: create the referenced TROUBLESHOOTING.md (or remove its two dead links), link scripts/validate_dcf.py from the body's validation steps, and move the <correct_patterns>/<common_mistakes> blocks into reference files one level deep.

DimensionReasoningScore

Conciseness

The 1270-line body restates the sensitivity-table requirements in at least five places ("Populate ALL cells... 75 cells" at the constraints, Step 10, correct_patterns, the Excel-structure section, and the final checklist), repeats the cell-comment format three times, and re-explains finance fundamentals Claude already knows (CAPM, "Market Cap = Price × Shares", "Net Debt = Total Debt - Cash"). This matches anchor 2 (noticeably verbose, several padded sections) — much of the body is genuine skill-specific machinery, so it does not fall to anchor 1.

2 / 5

Actionability

Concrete, executable guidance dominates: exact openpyxl assignments (ws["D20"] = "=D19*(1+$B$8)"), a runnable recalc command (python recalc.py AAPL_DCF_Model_2025-10-12.xlsx 30), hex color codes, and full CSV row maps. The gaps keep it from 5: the hardest deliverable — the sensitivity-cell formula — is only pseudocode (formula = f"=<DCF recalc using {wacc_value} and {term_growth_value}>") and one example formula is syntactically invalid (=IF([Selector]=1"Bear"IF([Selector]=2"Base""Bull")) is missing commas).

4 / 5

Workflow Clarity

Steps 1-10 are explicitly sequenced with stage-gate user confirmations after each phase ("After FCF build → show the full FCF schedule, confirm before computing WACC"), a mandatory recalc-until-success validation loop, and built-in sanity checks (terminal value 50-70% of EV, center cell must equal the implied share price, terminal growth < WACC). This matches the anchor 5 example of clear sequencing with explicit validation and error-recovery feedback loops.

5 / 5

Progressive Disclosure

Section headers are clear, but ~400 lines of <correct_patterns>/<common_mistakes> reference material that clearly belongs in separate files is inlined in SKILL.md; the referenced [TROUBLESHOOTING.md](./TROUBLESHOOTING.md) does not exist in the bundle; and the bundled scripts/validate_dcf.py is never mentioned from the body. This matches anchor 3 (some structure, content that should be separate is inline, references not clearly signaled) rather than anchor 2's minimal structure.

3 / 5

Total

14

/

20

Passed

Description

53%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is a clean, concise, third-person statement of what the skill does, but it is a "what"-only description. It lacks any explicit trigger guidance and misses the most natural abbreviation ("DCF") users would say. Adding a "Use when..." clause with DCF-specific trigger phrases would lift both completeness and trigger-term quality to the top anchors.

Suggestions

Add a 'Use when...' clause, e.g., "Use when the user asks to value a company, build a DCF model, or estimate intrinsic/implied share price."

Include the abbreviation "DCF" and common phrasings like "DCF model", "intrinsic value", and "implied share price" in the description to cover the natural terms users actually say.

Briefly enumerate the concrete outputs (three-scenario Bear/Base/Bull model, WACC sheet, sensitivity tables) to raise specificity from domain-plus-one-action to a comprehensive action list.

DimensionReasoningScore

Specificity

"Build discounted cash flow valuation workbooks" names the domain plus one concrete action, matching anchor 3 (domain + 1-2 concrete actions) — it does not list the several specific actions of anchor 4, but is more concrete than the single generic verb of anchor 2.

3 / 5

Completeness

The "what" is clear (build DCF valuation workbooks in Excel) but there is no "Use when..." clause or equivalent trigger guidance, which caps completeness at 3 per the judging guidelines.

3 / 5

Trigger Term Quality

Natural terms like "discounted cash flow", "valuation", and "Excel" are present, but common variations users would actually say — "DCF", "DCF model", "value this company", "implied share price" — are missing, matching anchor 3 rather than anchor 4's good keyword coverage.

3 / 5

Distinctiveness Conflict Risk

DCF valuation workbooks in Excel is a clear niche with mostly distinct triggers, but closely related valuation skills (lbo-model, comps-analysis, 3-statement-model) could overlap on generic requests like "value this company", matching anchor 4 rather than anchor 5's minimal conflict risk.

4 / 5

Total

13

/

20

Passed

Validation

68%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 11 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (1271 lines); consider splitting into references/ and linking

Warning

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 2 missing

Warning

Total

11

/

16

Passed

Repository
NousResearch/hermes-agent
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.