by joaquimmj
Your AI deal team inside Claude: built, tied out to the filings, reviewed. Free data, US + Europe.
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
# Add to your Claude Code skills
git clone https://github.com/joaquimmj/deskstackGuides for using ai agents skills like deskstack.
See how deskstack compares with popular alternatives.
Claude builds your DCFs and comps from SEC and European filings, and a second agent checks every number against the filing. In the benchmark, 0 of 3,230 reported figures were wrong with deskstack, against 36 of 1,018 (3.5%) with web search only.

If it saves you a tie-out, a star helps others find it.
Website · Examples · Tutorial · Tutoriel (FR)
Public beta. The hosted connector is online at
https://deskstack.deskstack-server.workers.dev/mcp. Feedback and issues are welcome.
With web search only, Claude fills gaps with numbers that aren't in the filing. In the benchmark (50 companies, a DCF and a comps table each):
deskstack gives Claude the filed figures, each with its filing, and reviewers that check every typed number. In
examples/apple-dcf-typo, Apple's FY2025 revenue is typed as 416,116: /associate says
the 10-K reports 416,161 and that two digits look swapped. /md-redteam shows what a price implies: at $230 a share,
the Apple example model implies a WACC of 7.74%, against the 10.6% it uses.
How many reported figures in an AI-built model are wrong, with and without deskstack. 50 companies (35 US, 15 European), three setups, Claude Sonnet 5.5. Every figure the scorer called wrong was read by hand against the filing.
| Task | Web search only | deskstack data | deskstack + reviewers |
|---|---|---|---|
| DCF | 20 of 573 wrong (3.5%)$0.23 · 58 s | 0 of 593$0.07 · 18 s | 0 of 606$0.10 · 32 s |
| Comps | 16 of 445 wrong (3.6%), and 7 left as 0$0.56 · 171 s | 0 of 1,021$0.17 · 36 s | 0 of 1,010$0.22 · 51 s |
Cost and time are averages per model. "Wrong" means the figure differs from the filing for the period asked. Not every run finished: 49 of 50 DCFs with deskstack data, 45 of 50 comps tables with web search only. Analyses: DCF, comps.
Read the 0 with care. It is partly by construction: the deskstack setups read the same data the scorer checks against, so the 0 says the models copied deskstack's figures faithfully. Whether those figures are right is checked separately, by the golden set and a nightly re-read with other XBRL parsers (Accuracy). Each analysis also lists what the run found wrong in deskstack itself, and what was fixed. With 30 searches per request and high effort instead of 12 and medium, web search still wrote a wrong figure (1 of 117), and left none as 0 (robustness check). The runner, the frozen company set and the method are in bench/; the chart version is bench/benchmark.svg.
deskstack has two parts. The data connector gives Claude filed figures, each with its source; you add it once,
by pasting a URL. The plugin adds the roles: commands you type in a chat, such as /analyst or /associate.
The connector works on any Claude account; a free account can add one custom connector. The plugin needs a paid plan, and code execution turned on in Settings → Capabilities. No terminal is needed.
https://deskstack.deskstack-server.workers.dev/mcp, with no sign-in. Check it: ask "Using deskstack, what was
Apple's revenue in FY2025? Cite the filing." The answer should be $416,161 million, citing an Apple 10-K and its
accession number. You can also run your own copy (self-hosting).https://github.com/joaquimmj/deskstack, then
install deskstack./deal-team Apple quick-dcf. If something fails, /deskstack-doctor checks the connector, the plugin
version, Python and the bundled scripts, and says how to fix what doesn't work.The tutorial walks through a first reviewed DCF in about 10 minutes: English ·
français. In Claude Code: /plugin install deskstack --marketplace joaquimmj/deskstack (2.1.275+).
A workbook with blue inputs, formulas, and a Sources sheet that cites the filing behind every typed number:

Review reports from each role, and one sign-off page. Nothing is exported until you approve it in your own words:

Both images are rendered from the files in examples/apple-dcf by docs/media/make_media.py. Open the workbook and every report there, or the four other examples, including a model with errors typed in on purpose.
The roles need a paid plan, but the connector's verify_value works on a free account. Paste this, with your
own figures:
Using deskstack, check these figures against the filings with verify_value, then list each as match or
mismatch with the filed value, the filing, and the hint if there is one. Do not correct anything yourself.
Company: Apple (AAPL), figures in USD millions.
- Revenue FY2025: 416,116
- Operating income FY2025: 133,050
- Net income FY2024: 93,736
The first line is the typo from the demo: verify_value answers that the 10-K reports 416,161 and that two digits
look swapped.
Real errors from the benchmark, each read by hand against the filing.
| Error | Real example | What catches it |
|---|---|---|
| Last twelve months a quarter late | FedEx, Fortinet, Motorola Solutions: an aggregator's "TTM" to June, after the September 10-Qs were filed (15 figures) | /associate: verify_value says Stale and gives the latest twelve months |
| A quarter written as the year | Boeing net income: the fourth quarter (8,220) as the full year (2,235) | /associate: mismatch against the filed annual figure |
| Share count derived or from the wrong period | Boeing, Pfizer, GE diluted shares: net income ÷ EPS, a six-month count, a Q1 count | /associate: mismatch, and a flag when diluted shares are more than 10% from the cover page |
| Non-GAAP or segment figure for the group | GE "adjusted revenue"; Stellantis D&A for industrial activities only | /associate: mismatch against the group's filed line |
| Figure from an aggregator or Wikipedia | Cisco and Verizon operating income; Schneider operating income, rounded | /associate: mismatch, with the filed value and its source |
| Estimate typed as a filed figure | Netflix capex as operating cash flow minus free cash flow | /associate: mismatch; /vp-review rule DS016 also flags a figure labelled as an estimate with no filing cited |
| Placeholder left at 0 | Cigna, CVS and Humana in UnitedHealth's comps, labelled "NOT FOUND" (7 figures) | /vp-review rule DS016: a typed 0 labelled as not found |
To see these caught, open examples/errors-caught: a Microsoft DCF with four of these errors typed in on purpose, and the reports that find all four.
verify_value also names the usual causes of a mismatch: wrong scale, opposite sign, another period, another line
item, another currency, two digits swapped, or another common definition (net debt with leases, equity without
minorities). The 21 model rules are listed in checker/README.md.
For teams with a terminal or a repository; the Claude app doesn't need it.
deskstack-check checks any .xlsx model, whether Claude, ChatGPT, Copilot, another tool or a person built it.
--verify: every typed figure is also tied to the SEC or ESEF filing through the deskstack connector.
Only those figures are sent, each with its line item, period and cell reference (e.g. Inputs!C5).pipx run deskstack-check model.xlsx # soon: the package isn't on PyPI yet
pipx run --spec ./checker deskstack-check model.xlsx # today, from a clone
$ deskstack-check examples/apple-dcf-typo/model.xlsx --
deskstack is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by joaquimmj. Your AI deal team inside Claude: built, tied out to the filings, reviewed. Free data, US + Europe. It has 50 GitHub stars.
deskstack's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/joaquimmj/deskstack" and add it to your Claude Code skills directory (see the Installation section above).
deskstack is primarily written in TypeScript. It is open-source under joaquimmj on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh deskstack against similar tools.
No comments yet. Be the first to share your thoughts!