Initiating Coverage
rongxinzy/RongxinAI
Create institutional-quality equity research initiation reports through a 5-task workflow.
Audits an existing Excel financial model without editing it, checking structure, formulas, integrity identities and source tie-out, and ends in a prioritized issue log.
$ npx skills add ginlix-ai/LangAlpha --skill check-model -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ginlix-ai/LangAlpha check-model --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/langalpha_research/skills/check-model .claude/skills/check-model && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "check-model" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/check-model into .claude/skills/check-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-model", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/check-modelType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ginlix-ai/LangAlpha --skill check-model -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ginlix-ai/LangAlpha check-model --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/langalpha_research/skills/check-model .agents/skills/check-model && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "check-model" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/check-model into .agents/skills/check-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-model", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ginlix-ai/LangAlpha --skill check-model -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ginlix-ai/LangAlpha check-model --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/langalpha_research/skills/check-model .cursor/skills/check-model && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "check-model" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/check-model into .cursor/skills/check-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-model", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ginlix-ai/LangAlpha.git --path plugins/langalpha_research/skills/check-model--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ginlix-ai/LangAlpha --skill check-model -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ginlix-ai/LangAlpha check-model --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/langalpha_research/skills/check-model .gemini/skills/check-model && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "check-model" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/check-model into .gemini/skills/check-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-model", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ginlix-ai/LangAlpha check-modelInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ginlix-ai/LangAlpha --skill check-model -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/langalpha_research/skills/check-model .github/skills/check-model && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "check-model" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/check-model into .github/skills/check-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-model", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ginlix-ai/LangAlpha --skill check-model -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ginlix-ai/LangAlpha check-model --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/langalpha_research/skills/check-model .opencode/skills/check-model && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "check-model" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/check-model into .opencode/skills/check-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-model", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
check-modelAudits an existing Excel financial model without editing it, checking structure, formulas, integrity identities and source tie-out, and ends in a prioritized issue log.
The skill separates two ways a model can be wrong: the arithmetic and the underwriting, where a flawless model rests on a figure that contradicts its cited filing or on an estimate nobody refreshed. It ingests an .xlsx or .xlsm file, identifies the type (DCF, LBO, merger, three-statement, comps, returns or custom), maps tabs and links, and states the scope it audited against, putting any missing workbook or source file at the top of the report.
Before reading any number it recalculates a copy with the xlsx skill's recalc script and reopens it with computed values, because cached values can pass checks on a broken model, and the report says so when recalculation is impossible. It then reads the model's Checks sheet and tests formulas, identities, source figures and reasonableness. Findings go into a routed issue log, and scope notes keep taste-level disagreements out of it. The model file itself is never edited.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e05bd91. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Financial Model Checker loads about 4.2k tokens when it runs. Until then it costs about 86 tokens; SKILL.md has 2,510 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ginlix-ai/LangAlpha at commit e05bd91, republished under its Apache-2.0 licence (© ginlix-ai). 2,510 words, ~4,205 tokens.
.claude/skills/check-model/SKILL.md (or your agent's skills folder).Two different things can be wrong with a model: the arithmetic, and the underwriting. A model whose formulas are flawless can still be built on a figure that contradicts the filing it cites, or on an estimate nobody refreshed after the last print. This skill tests both, and ends in a report a reader can act on rather than a list of cells.
Evidence labels, source tiers, staleness, the readiness posture and the intake limits: .agents/skills/research-conventions/SKILL.md, read before the first finding.
.xlsx or .xlsm) from {task}/Scope discipline. Judge the model against the job it was built for. A standalone operating model with no valuation layer is not missing a DCF, and a quick screen is not a failed initiation. Where the model's purpose is unclear, state the scope you audited against at the top of the report and let the user correct it. A finding that amounts to "this is not the model I would have built" belongs in a scope note, not in the issue log, where it dilutes the findings that matter.
Missing files are surfaced first. An absent workbook, a source document the model cites and does not include, or a tab referenced by formulas and not present goes at the top of the report, not into a source appendix at the bottom. The reader's first question is whether you audited what they think you audited.
Done when the model type, the tab map, and the scope you are auditing against are written down, and any missing file is named.
Recalculation honesty governs the whole audit. Cached values pass checks on broken models. Before reading a single number, recalculate on a copy:
python .agents/skills/xlsx/scripts/recalc.py <copy of file> 60Then reopen with data_only=True. Every statement in the report about what the model computes is a statement about recalculated values, and the report says so. Where recalculation was not possible, an external link that cannot be resolved, a macro-driven calculation, a timeout, the report says the values were read from cache and that a passing check proves nothing.
If the workbook has a Checks sheet, read it first. A model built to our conventions carries one: a row per tie-out, a live formula per row, and a roll-up cell. The roll-up tells you in one cell whether the model ties, and column D on each failing row names the two cells that disagree. Do not re-derive by hand what the sheet already tests. Then audit the checks themselves for coverage: is every linkage tested, or does the sheet only test the ones that were easy to write?
Done when recalculation succeeded and the Checks roll-up and every failing row were read from recalculated values, or the limit that stopped it is recorded, the conclusions that depend on it are marked unverified, and the posture is read from .agents/skills/research-conventions/SKILL.md against that state.
Tab and layout review
Formula consistency
=A1*1.05 where the 1.05 belongs in a cell of its own, referencedSUM or AVERAGE that starts one row late or stops one row early, so a line item is silently excluded or a header included#REF!, #VALUE!, #N/A, #DIV/0!What is mechanised: audit.py covers the first two of these plus hidden sheets and the iterative-calculation flag. Run python .agents/skills/xlsx/scripts/audit.py <file> --strict first and read the findings named formula_hardcode, formula_family, hidden_sheet and iterative_calc, then spend your own reading on what the script cannot see: off-by-one ranges, pasted-over formulas, and whether the logic is right at all.
Done when audit.py --strict has been run and read, and each manual check listed in this step is recorded for every calculation sheet as clear, a finding, or not applicable with a reason.
Balance sheet
Cash flow
Income statement
Circular references
Done when every identity above has been evaluated for every period, and each failure carries the size of the gap and the cell where it starts.
Formula correctness and source correctness are different failures, and a model can pass every identity while contradicting the document it cites. This pass is a separate register from the issue log: one row per material input, traced back to where it claims to come from.
| Input | Model cell | Value in model | Claimed source | Value in source | As-of | Tie status |
|---|
Tie status is one of a closed set:
| Status | Means |
|---|---|
ties | the model value equals the source value |
ties within tolerance | the difference is a rounding or units artefact, with the tolerance stated |
does not tie | the values differ materially; this is a source-contradiction finding |
source not provided | the model asserts a source that is not in the file or reachable |
not verifiable | the source exists and does not disclose the figure at this granularity; this is a segment split or an allocation, and it is an unsupported-assumption finding |
Material inputs are the ones the output moves with: revenue and margin drivers, share count, net debt, the discount rate and its components, the exit or terminal assumption, and every figure the model's own summary quotes.
Staleness, judged per source type. A filing figure and a consensus figure age at completely different rates, so one freshness rule for the whole model is wrong for most of it. Take the threshold for each data type from .agents/skills/research-conventions/references/evidence.md, record the as-of in the ledger row, and raise a stale-forecast finding where a figure is past its threshold and load-bearing. The common one: a model refreshed for price and not for the estimates the price is being compared against.
Done when every material input has a ledger row with a tie status and an as-of, and every status other than ties or ties within tolerance has a corresponding finding in the issue log.
Reasonableness
Edge cases
Cross-tab consistency
Auditor stress is an illustration, never corrected output. Any sensitivity you run to probe the model is your own calculation, presented and labelled as such: "at a 12 percent discount rate rather than the model's 9 percent, the implied value is X". It never appears as what the model says, and it never replaces a model number in the report. The distinction matters because the reader's next move may be to quote you.
Static inspection is never sufficient. No model is called decision-grade from reading it. The bar is all three: the recalculation in Step 2 succeeded, the tie-out ledger in Step 5 has no unresolved does not tie or source not provided row, and the identities in Step 4 hold for every period. Any one of those failing caps the report's posture, whatever the formulas look like.
Done when each reasonableness question has an answer against recalculated values, and every stress calculation in the report is labelled as the auditor's own.
DCF
LBO
Merger
3-statement
Comps
Done when the catalogue for this model's type has been walked and each item is either clear or a finding.
Save deliverables to {task}/.
The report opens with one posture for the model, from the ladder in .agents/skills/research-conventions/SKILL.md, not with a count of issues by severity. A count tells the reader how much you found; the posture tells them whether they can use the model this afternoon. Any unresolved blocker forces it down regardless of how clean the rest is: an identity that does not hold, a does not tie row in the ledger, or a recalculation that could not be run. Name the specific finding responsible.
Checks sheet: the model's own arithmetic register, which stays in the workbook and is not copied into the report.Mixing them produces a list where a stale consensus figure and a broken SUM sit side by side at the same weight.
Every finding carries five fields, plus its type and severity:
| # | Location | Type | Severity | Evidence | Decision impact | Suggested fix | Owner |
|---|
Type, which is what the problem is, from a closed set:
| Type | Marks |
|---|---|
mechanical | a formula, reference, range or control defect |
source-contradiction | the model disagrees with the source it cites |
unsupported-assumption | an input with no evidence behind it, where the output moves with it |
stale-forecast | a figure past the freshness threshold for its data type |
missing-output | the model does not produce a decision output it was built to produce |
invalid-comparison | a comparison that needs a bridge and does not have one: bases, periods, currencies, adjusted against reported |
Severity, which is how badly it breaks:
The two axes are independent: a source-contradiction can be Critical or Info depending on how far the number travels.
The audit ends in a work plan, so every finding's owner is a specific place the fix happens:
| The fix is | Owner |
|---|---|
| Rebuild or repair the operating model | .agents/skills/3-statements/SKILL.md |
| Redo or repair the valuation layer | .agents/skills/dcf-model/SKILL.md |
| Fix the peer set, the multiples or the statistics | .agents/skills/comps-analysis/SKILL.md |
| Refresh estimates, actuals or market data into the model | .agents/skills/model-update/SKILL.md |
| A judgement call about the underwriting | the model's author, phrased as a question |
Group the log by owner at the end of the report, so each owner's list is a task rather than a search.
Done when the report opens with a posture naming the finding that set it, every finding carries all five fields plus a type and a severity, and every finding has an owner.
.agents/skills/model-update/SKILL.md, which keeps the original intact and logs every writeFor Excel formatting standards, the verification scripts and their flags, see
.agents/skills/xlsx/SKILL.md.
© ginlix-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/langalpha_research/skills/check-model of ginlix-ai/LangAlpha.
Open the folder on GitHubat commit e05bd91
Financial Model Checker next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Financial Model Checker this skillginlix-ai/LangAlpha | 1.8k | — | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Initiating Coveragerongxinzy/RongxinAI | 154 | 2 repos | ~7.4k | Automated safety check: Pass | AGPL-3.0 | |
| Excel Dcf Modelerjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~593 | Automated safety check: Pass | MIT | |
| Datapack Builderw95/awesome-claude-corporate-skills | 239 | 1 repos | ~6k | Automated safety check: Pass | MIT | |
| Pitch Deckericrisco/rsc-harness | 174 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Build Modeldaloopa/investing | 489 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 |
rongxinzy/RongxinAI
Create institutional-quality equity research initiation reports through a 5-task workflow.
jeremylongshore/tons-of-skills-marketplace
Build discounted cash flow (DCF) valuation models in Excel. An agent skill from jeremylongshore/tons-of-skills-marketplace.
w95/awesome-claude-corporate-skills
Build professional financial services data packs from various sources including CIMs, offering memorandums, SEC filings, web search, or MCP servers.
ericrisco/rsc-harness
A skill your agent uses when building or fixing an investor fundraising deck — the narrative arc, the slide-by-slide story, and the few numbers that actually move an investment decision, for a…
daloopa/investing
Build a multi-tab Excel financial model
Team-Commonly/commonly
A skill your agent uses when producing a polished, Commonly-branded deliverable (.docx brief / memo, .xlsx data matrix, .pptx deck) and you do not have specific brand guidance from the user.
ginlix-ai/LangAlpha
Quality-checks an investment deck in .pptx form before it goes out: number consistency, chart and narrative alignment, source coverage, language and a circulation verdict.
ginlix-ai/LangAlpha
Produces a first-time equity research initiation report in five tasks: company research, financial model, valuation, charts and a DOCX report.
ginlix-ai/LangAlpha
Builds or repairs an integrated income statement, balance sheet and cash flow model in Excel with live formulas, supporting schedules, scenarios and a Checks sheet.
ginlix-ai/LangAlpha
Builds a live Excel DCF valuation workbook with free cash flow projections, WACC, terminal value, three scenarios, sensitivity grids and a reverse DCF.
ginlix-ai/LangAlpha
Builds Word files with python-docx, edits existing ones in place with tracked changes and comments, then renders and validates the result.
ginlix-ai/LangAlpha
Refreshes an existing financial model after earnings, guidance, filings or capital-structure changes, editing a versioned copy and recording what changed and why.
Categories
Audits an existing Excel financial model without editing it, checking structure, formulas, integrity identities and source tie-out, and ends in a prioritized issue log. The skill separates two ways a model can be wrong: the arithmetic and the underwriting, where a flawless model rests on a figure that contradicts its cited filing or on an estimate nobody refreshed.xlsm file, identifies the type (DCF, LBO, merger, three-statement, comps, returns or custom), maps tabs and links, and states the scope it audited against, putting any missing workbook or source file at the top of the report.
Financial Model Checker fits situations like: reviewing a colleague's DCF or LBO model before relying on it; finding out why a balance sheet does not balance; checking model inputs against the filings they cite; running QA on a spreadsheet's formulas without changing it.
Run `npx skills add ginlix-ai/LangAlpha --skill check-model -a claude-code`. Or copy the skill folder (plugins/langalpha_research/skills/check-model in ginlix-ai/LangAlpha) into .claude/skills/check-model in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ginlix-ai/LangAlpha --skill check-model -a codex`. Or copy the skill folder (plugins/langalpha_research/skills/check-model in ginlix-ai/LangAlpha) into .agents/skills/check-model in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ginlix-ai/LangAlpha --skill check-model -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/check-model, .gemini/skills/check-model, .github/skills/check-model and .opencode/skills/check-model in your project.
Going by SKILL.md and its folder, Financial Model Checker needs the command-line tools its instructions call (python). Our summary lists: The model as an .xlsx or .xlsm file; Python and the recalc.py script from the xlsx skill.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Financial Model Checker is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Financial Model Checker: Initiating Coverage (rongxinzy/RongxinAI, 154 stars), Excel Dcf Modeler (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Datapack Builder (w95/awesome-claude-corporate-skills, 239 stars) and Pitch Deck (ericrisco/rsc-harness, 174 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ginlix-ai (a GitHub organization) maintains it in ginlix-ai/LangAlpha, which has 1,811 GitHub stars. The repository holds 37 skills in this directory. The repository was last updated on October 9, 2026.
Source: ginlix-ai/LangAlpha on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.