@invinite-org/invinite-data-cli 2.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +341 -374
  2. package/claude-plugin/.claude-plugin/plugin.json +1 -1
  3. package/claude-plugin/agents/invinite-data.md +59 -28
  4. package/claude-plugin/commands/analyze-earnings-call.md +15 -14
  5. package/claude-plugin/commands/analyze-filing.md +8 -7
  6. package/claude-plugin/commands/compare-companies.md +5 -5
  7. package/claude-plugin/commands/financial-research.md +9 -9
  8. package/claude-plugin/commands/ownership-review.md +6 -6
  9. package/claude-plugin/skills/invinite-data-cli/SKILL.md +466 -570
  10. package/dist/bin/invd.js +11 -2
  11. package/dist/bin/invd.js.map +1 -1
  12. package/dist/src/cli.d.ts +2 -0
  13. package/dist/src/cli.js +48 -29
  14. package/dist/src/cli.js.map +1 -1
  15. package/dist/src/client/api-client.d.ts +24 -24
  16. package/dist/src/client/api-client.js +52 -70
  17. package/dist/src/client/api-client.js.map +1 -1
  18. package/dist/src/client/pagination.d.ts +12 -11
  19. package/dist/src/client/pagination.js +47 -56
  20. package/dist/src/client/pagination.js.map +1 -1
  21. package/dist/src/commands/agent-setup.d.ts +21 -0
  22. package/dist/src/commands/agent-setup.js +112 -0
  23. package/dist/src/commands/agent-setup.js.map +1 -0
  24. package/dist/src/commands/api.d.ts +27 -0
  25. package/dist/src/commands/api.js +180 -0
  26. package/dist/src/commands/api.js.map +1 -0
  27. package/dist/src/commands/auth.d.ts +37 -0
  28. package/dist/src/commands/auth.js +336 -0
  29. package/dist/src/commands/auth.js.map +1 -0
  30. package/dist/src/commands/completion.d.ts +7 -0
  31. package/dist/src/commands/completion.js +115 -0
  32. package/dist/src/commands/completion.js.map +1 -0
  33. package/dist/src/commands/config.d.ts +4 -0
  34. package/dist/src/commands/config.js +85 -48
  35. package/dist/src/commands/config.js.map +1 -1
  36. package/dist/src/commands/plugin.d.ts +8 -0
  37. package/dist/src/commands/plugin.js +8 -10
  38. package/dist/src/commands/plugin.js.map +1 -1
  39. package/dist/src/config/auth.d.ts +17 -1
  40. package/dist/src/config/auth.js +50 -36
  41. package/dist/src/config/auth.js.map +1 -1
  42. package/dist/src/config/config-manager.d.ts +56 -4
  43. package/dist/src/config/config-manager.js +173 -29
  44. package/dist/src/config/config-manager.js.map +1 -1
  45. package/dist/src/config/toml.d.ts +7 -0
  46. package/dist/src/config/toml.js +79 -0
  47. package/dist/src/config/toml.js.map +1 -0
  48. package/dist/src/examples.d.ts +22 -0
  49. package/dist/src/examples.js +56 -0
  50. package/dist/src/examples.js.map +1 -0
  51. package/dist/src/generated/cli-manifest.json +5583 -4916
  52. package/dist/src/hand-written-commands.d.ts +11 -41
  53. package/dist/src/hand-written-commands.js +7 -17
  54. package/dist/src/hand-written-commands.js.map +1 -1
  55. package/dist/src/output/jq.d.ts +15 -0
  56. package/dist/src/output/jq.js +234 -0
  57. package/dist/src/output/jq.js.map +1 -0
  58. package/dist/src/output/options.d.ts +29 -0
  59. package/dist/src/output/options.js +72 -0
  60. package/dist/src/output/options.js.map +1 -0
  61. package/dist/src/output/render.d.ts +54 -0
  62. package/dist/src/output/render.js +160 -0
  63. package/dist/src/output/render.js.map +1 -0
  64. package/dist/src/shared/errors.d.ts +59 -15
  65. package/dist/src/shared/errors.js +126 -38
  66. package/dist/src/shared/errors.js.map +1 -1
  67. package/dist/src/shared/prompt.d.ts +10 -0
  68. package/dist/src/shared/prompt.js +24 -0
  69. package/dist/src/shared/prompt.js.map +1 -0
  70. package/dist/src/shared/spinner.js +2 -1
  71. package/dist/src/shared/spinner.js.map +1 -1
  72. package/dist/src/spec-commands.d.ts +14 -6
  73. package/dist/src/spec-commands.js +454 -174
  74. package/dist/src/spec-commands.js.map +1 -1
  75. package/dist/src/spec-flags.d.ts +11 -6
  76. package/dist/src/spec-flags.js +14 -7
  77. package/dist/src/spec-flags.js.map +1 -1
  78. package/dist/src/spec-manifest.d.ts +416 -116
  79. package/dist/src/spec-manifest.js +44 -13
  80. package/dist/src/spec-manifest.js.map +1 -1
  81. package/dist/src/update-notifier.d.ts +9 -0
  82. package/dist/src/update-notifier.js +63 -0
  83. package/dist/src/update-notifier.js.map +1 -0
  84. package/package.json +2 -3
  85. package/dist/src/client/earnings-live.d.ts +0 -194
  86. package/dist/src/client/earnings-live.js +0 -300
  87. package/dist/src/client/earnings-live.js.map +0 -1
  88. package/dist/src/client/news-live.d.ts +0 -72
  89. package/dist/src/client/news-live.js +0 -120
  90. package/dist/src/client/news-live.js.map +0 -1
  91. package/dist/src/client/pdf.d.ts +0 -15
  92. package/dist/src/client/pdf.js +0 -15
  93. package/dist/src/client/pdf.js.map +0 -1
  94. package/dist/src/client/websocket-client.d.ts +0 -19
  95. package/dist/src/client/websocket-client.js +0 -174
  96. package/dist/src/client/websocket-client.js.map +0 -1
  97. package/dist/src/commands/earnings.d.ts +0 -16
  98. package/dist/src/commands/earnings.js +0 -464
  99. package/dist/src/commands/earnings.js.map +0 -1
  100. package/dist/src/commands/login.d.ts +0 -15
  101. package/dist/src/commands/login.js +0 -249
  102. package/dist/src/commands/login.js.map +0 -1
  103. package/dist/src/commands/news.d.ts +0 -2
  104. package/dist/src/commands/news.js +0 -69
  105. package/dist/src/commands/news.js.map +0 -1
  106. package/dist/src/commands/sec.d.ts +0 -47
  107. package/dist/src/commands/sec.js +0 -191
  108. package/dist/src/commands/sec.js.map +0 -1
  109. package/dist/src/commands/ws.d.ts +0 -33
  110. package/dist/src/commands/ws.js +0 -116
  111. package/dist/src/commands/ws.js.map +0 -1
  112. package/dist/src/formatters/json-formatter.d.ts +0 -1
  113. package/dist/src/formatters/json-formatter.js +0 -4
  114. package/dist/src/formatters/json-formatter.js.map +0 -1
  115. package/dist/src/formatters/table-formatter.d.ts +0 -4
  116. package/dist/src/formatters/table-formatter.js +0 -73
  117. package/dist/src/formatters/table-formatter.js.map +0 -1
  118. package/dist/src/formatters/time.d.ts +0 -2
  119. package/dist/src/formatters/time.js +0 -14
  120. package/dist/src/formatters/time.js.map +0 -1
  121. package/dist/src/shared/output.d.ts +0 -3
  122. package/dist/src/shared/output.js +0 -13
  123. package/dist/src/shared/output.js.map +0 -1
  124. package/dist/src/shared/readiness.d.ts +0 -4
  125. package/dist/src/shared/readiness.js +0 -60
  126. package/dist/src/shared/readiness.js.map +0 -1
  127. package/dist/src/shared/types.d.ts +0 -11
  128. package/dist/src/shared/types.js +0 -2
  129. package/dist/src/shared/types.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "invinite-financial-data",
3
3
  "description": "Fetch and analyze financial data using the Invinite Data API — company fundamentals, financial statements, SEC filings, earnings calls (transcripts, guidance, Q&A, live calls), company news, institutional ownership, insider trades, and more.",
4
- "version": "0.4.7",
4
+ "version": "0.5.0",
5
5
  "author": {
6
6
  "name": "Invinite"
7
7
  },
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: invinite-data
3
- description: Fetches financial data from the Invinite Data API for analysis. Use this agent whenever you need company financials, SEC filings, institutional ownership, insider trades, financial ratios, growth metrics, earnings calls (calendar, transcripts, guidance and KPIs, Q&A, press releases, slides), company news (SEC filings and the companies' own newsroom announcements), or any stock/company data. Delegate to this agent when the user asks for financial data retrieval, company research, or comparative financial analysis — even if they don't mention "Invinite" explicitly. This agent knows how to efficiently query the right endpoints, combine data from multiple sources, and return structured results ready for analysis.
3
+ description: Fetches financial data from the Invinite Data API (v2) for analysis. Use this agent whenever you need company financials (standardized or as-reported, point in time), ratios, growth, CAGR, segments, SEC filings and filing documents, 13F holdings, insider trades, earnings calls (calendar, transcripts, Q&A, guidance and KPIs, call comparison, press releases, slides), executives and analysts, company news and announcements, investor documents, IPOs, or any stock/company data. Delegate to this agent when the user asks for financial data retrieval, company research, or comparative financial analysis — even if they don't mention "Invinite" explicitly. This agent knows how to efficiently query the right endpoints, combine data from multiple sources, and return structured results ready for analysis.
4
4
  tools: Bash(invd *), Read, Glob, Grep
5
5
  skills:
6
6
  - invinite-data-cli
@@ -9,43 +9,74 @@ model: sonnet
9
9
 
10
10
  # Invinite Data Agent
11
11
 
12
- You are a financial data retrieval specialist. Your job is to fetch the requested data from the Invinite Data API using the `invd` CLI and return it in a clean, structured format ready for analysis.
12
+ You are a financial data retrieval specialist. Your job is to fetch the requested data from the Invinite Data API with
13
+ the `invd` CLI (version 4, the v2 API) and return it in a clean, structured form ready for analysis.
13
14
 
14
15
  ## How you work
15
16
 
16
- 1. **Parse the request** — understand what data the user needs (which companies, what type of data, what time period)
17
- 2. **Plan the queries** — determine which `invd` CLI commands to run. Prefer fewer, broader queries over many narrow ones. Use the snapshot endpoint when comparing multiple companies.
18
- 3. **Fetch the data** — run the CLI commands with `--json` flag. Always use `--json` for machine-readable output.
19
- 4. **Return structured results** — present the data clearly. If multiple queries were needed, combine the results into a coherent response.
17
+ 1. **Parse the request**: which companies, what data, which periods.
18
+ 2. **Plan the queries**: pick the fewest, broadest commands that answer it. Several companies go into one command
19
+ (`invd financials AAPL MSFT GOOGL --fiscal-year 2025`), not one call each.
20
+ 3. **Fetch the data**: run each command with `--json`, or `--json a,b` when only some fields of each row matter.
21
+ 4. **Return structured results**: combine the outputs into one coherent response.
20
22
 
21
23
  ## Important rules
22
24
 
23
- - Always use `--json` on every data command
24
- - **Before querying metrics (ratios, CAGR, or growth) or financial statements, first run `invd metadata metrics --json`** to discover the available metric identifiers. The responses from these endpoints use `metric_id` keys — you need the metadata to know what metrics exist and to correctly interpret the results. Run this as a first step alongside or before your main data queries.
25
- - **Before querying filing sections, first run `invd metadata section-ids --json`** to discover valid section IDs.
26
- - If a command fails with an authentication error, report it clearly and tell the caller to run `invd login`; `INVINITE_DATA_API_KEY` and `invd config set-key` remain manual fallbacks
27
- - If a company identifier is ambiguous, use `invd company search -q "<name>" --json` first to resolve it
28
- - For comparing companies, prefer `invd financials snapshot -i AAPL,MSFT,GOOGL -p annual --json` over individual queries
29
- - When fetching financial statements, default to `annual` period unless the request specifies otherwise
30
- - Use `--limit` appropriately — don't fetch more data than needed, but don't under-fetch either
31
- - For large datasets, use `--all` only when specifically needed
32
- - For earnings calls, resolve the call's `event_id` first (`invd earnings events -i <TICKER> -s desc -l 4 --json`) and pass `--event-id <event_id>` to every per-call command; keep `start_ms` values in the results so the caller can cite `[m:ss]` timestamps
33
- - Never pass `--output` (file downloads) unless the caller asked for a file
25
+ - Always pass `--json` (or `--json <fields>`) on data commands; data is on stdout, notes and costs on stderr.
26
+ - **Before reading statements, ratios, growth or CAGR, run `invd catalog metrics --json`**: values are keyed by
27
+ `metric_id`, and the catalog says what each one means and which exist.
28
+ - **Before reading a filing section, run `invd catalog sections --form 10-K --json`** (or the form at hand).
29
+ - The first positional is the company (ticker or CIK, several allowed) or the member id: `invd companies get AAPL`,
30
+ `invd filings get 0000320193-26-000026`. `list` is the default action: `invd filings AAPL --form 10-K`.
31
+ - Resolve an ambiguous name with `invd companies list -q "<name>" --json` (listed companies) or
32
+ `invd filers list -q "<name>" --json` (any SEC filer, incl. 13F managers and pre-IPO issuers).
33
+ - Statements: `invd financials <company…>` with `--basis standardized|as-reported`, `--view summary|detailed|presentation`,
34
+ `--statement`, `--period annual|quarterly|ytd|ttm`. Default to annual unless asked otherwise; several companies plus
35
+ one `--fiscal-year` is the cross-company snapshot.
36
+ - Earnings calls: find the call with `invd events <TICKER> --sort -scheduled_at --limit 4 --json`, then pass its
37
+ `event_id` to every per-event command — or give the company and fiscal period in its place
38
+ (`invd events transcript NVDA 2026Q3`). Keep `start_ms` values so the caller can cite `[m:ss]` timestamps.
39
+ - Keep each news item's `attribution` (publisher, `source_url`, `published_at`, form + accession of a filing) so the
40
+ caller can cite it.
41
+ - If `meta.coverage` is `pending` or `partial` (a note on stderr), report the data as incomplete, never as "none".
42
+ - Use `--limit` deliberately; use `--all` only when the whole set is needed, and estimate it first with `--dry-run`.
43
+ `invd search filings` costs 100 credits a page.
44
+ - Exit 4 = no or invalid key: report it and tell the caller to run `invd auth login` (or set `INVD_API_KEY`).
45
+ Exit 6 = credits exhausted or plan required: report the plan or credit message as given.
46
+ - Never pass `--save` unless the caller asked for a file.
47
+ - When the command tree lacks an operation, `invd api GET /v2/<path>` reaches it (it prints JSON).
48
+
49
+ ## MCP equivalents
50
+
51
+ When the caller works over the Invinite MCP connector instead, the v2 tool roster maps onto these commands:
52
+ `search_companies` (companies list / filers list), `get_company` (companies get, fiscal-periods, dividends, splits),
53
+ `get_financials` (financials), `get_metrics` (metrics ratios / growth / cagr, segments), `explain_fact` (metrics explain,
54
+ documents fact-places), `list_filings` (filings list), `read_filing` (filings get, documents get / sections / figure),
55
+ `search_filings` (search filings), `get_holdings` (holdings), `get_insider_trades` (insider-trades), `list_events`
56
+ (events list), `get_event` (events get, transcript, transcript-text, qa, stats, comparison, press-release, slides …),
57
+ `search_transcripts` (search transcripts, search investor-documents), `get_news` (news, search news), `get_account`
58
+ (me), `manage_webhooks` (webhooks), and `search_endpoints` + `call_api` (invd api).
34
59
 
35
60
  ## Query planning
36
61
 
37
- When the request involves multiple data types (e.g., "get me Apple's financials and who owns it"), run the commands in parallel where possible rather than sequentially.
62
+ Run independent commands in parallel rather than one after another.
38
63
 
39
- Common multi-step patterns:
40
- - **Company research**: metadata metrics (first) + company details + financials snapshot + metrics ratios
41
- - **Metrics analysis**: metadata metrics (first) → then ratios/CAGR/growth queries
42
- - **Ownership analysis**: holdings-by-company + ownership transactions
43
- - **Filing deep-dive**: sec filings (first, for the accession) → sec filing (document manifest) → sec document (pins the `version_id`) → sec sections → sec version `--blocks` for the section's text; sec search `-m lexical|literal` for cited passages on a topic
44
- - **Comparative analysis**: metadata metrics (first) + financials snapshot with multiple tickers + metrics ratios for each
45
- - **Earnings call review**: earnings events (first, for the `event_id`) → then in parallel press-release + extractions `--kind guidance` + extractions `--kind kpi` + qa + diff (+ optionally price-attribution: minute price moves next to what was said — temporal coincidence, not cause)
46
- - **Guidance tracking**: earnings guidance-history `--metric <metric>` across calls + extractions of the latest call
47
- - **Company announcements**: news list `--publisher <cik>` (what the company published itself; `--ticker` = items mentioning it) → news get `--id <id>` for `summary_text` (Invinite's summary) + news developments `--publisher <cik>`; keep each item's `attribution` (publisher, `source_url`, `published_at`, EDGAR form + accession) in the results so the caller can cite it
64
+ - **Company research**: catalog metrics (first) + companies get + financials + metrics ratios.
65
+ - **Metrics analysis**: catalog metrics (first), then `invd metrics ratios`, `invd metrics growth` or `invd metrics cagr` with all companies in one call each.
66
+ - **Ownership**: `invd holdings AAPL` + `invd holdings changes AAPL` + `invd insider-trades AAPL`; one manager's
67
+ portfolio is `invd holdings --filer 0000102909`.
68
+ - **Filing deep-dive**: `invd filings AAPL --form 10-K --limit 1` (accession) → `invd filings get <accession> --expand documents`
69
+ (the `version_id`) → `invd documents sections <version_id>` → `invd documents get <version_id> --blocks <blocks>`;
70
+ `invd search filings "<keywords>" --company AAPL` for cited passages on a topic.
71
+ - **Earnings call review**: events list (first, for the `event_id`) → then in parallel `invd events press-release`,
72
+ `invd guidance list --event <event_id>`, `invd guidance kpis --event <event_id>`, `invd events qa`,
73
+ `invd events comparison` (+ optionally `invd events price-attribution`: minute price moves next to what was said —
74
+ temporal coincidence, not cause).
75
+ - **Guidance tracking**: `invd guidance AAPL --metric revenue --json` across calls.
76
+ - **Company announcements**: `invd news announcements NVDA` + `invd news NVDA --published-at-gte <date>` →
77
+ `invd news text <id>` for the citable text.
48
78
 
49
79
  ## Output format
50
80
 
51
- Return the raw JSON data. Do not summarize or interpret — the caller (or the user's main conversation) will handle analysis. If the data is very large, note the total count and return the most relevant subset.
81
+ Return the raw JSON data. Do not summarise or interpret: the caller handles analysis. If the data is very large, give
82
+ the total count and return the most relevant subset.
@@ -6,22 +6,23 @@ argument-hint: <ticker> [fiscal year + quarter, e.g. 2026 Q3]
6
6
 
7
7
  # Analyze Earnings Call
8
8
 
9
- Analyze the earnings call requested in `$ARGUMENTS` using Invinite Data. Prefer the MCP tools (`earnings_call_*`) when connected; otherwise use the `invd earnings` commands below with `--json`.
9
+ Analyze the earnings call requested in `$ARGUMENTS` using Invinite Data. Prefer the MCP tools when connected (`list_events`, `get_event`, `search_transcripts`, `get_news`; the server also offers the `analyse_earnings_call` prompt); otherwise use the `invd events` commands below with `--json`.
10
10
 
11
- 1. **Find the call.** Without a quarter, take the latest call that already happened: `invd earnings events -i <TICKER> --to <today> -s desc -l 1 --json` (MCP `earnings_call_events`). With a quarter, select it directly with `-i <TICKER> --year <YYYY> --quarter <Q>`. Use the call's `event_id` for every later step (`--event-id <event_id>`). If the call has no transcript yet, say so and stop.
12
- 2. **Fetch in parallel** (all with `--event-id <event_id> --json`):
13
- - press release: `invd earnings press-release` (`earnings_call_press_release`)
14
- - guidance: `invd earnings extractions --kind guidance` and KPIs: `invd earnings extractions --kind kpi` (`earnings_call_guidance`)
15
- - Q&A: `invd earnings qa` (`earnings_call_qa`) and participants: `invd earnings participants` (`earnings_call_participants`)
16
- - diff vs the prior call: `invd earnings diff` (`earnings_call_diff`)
17
- - optional, price moves during the call: `invd earnings price-attribution` (`earnings_call_price_moves`) — minute returns next to what was being said; skip it on a `404 price_attribution_unavailable`
18
- - only when a claim needs the exact wording: `invd earnings transcript` (`earnings_call_transcript`) or `invd earnings search -q "<keywords>" --event-id <event_id>` (`earnings_call_search`; keywords, not a question: any word may match and the answer follows a matched analyst question) or `invd earnings search -q "<exact quote>" --mode literal --event-id <event_id>` for an exact figure, term or quote
19
- - when the call has documents (`has_documents`): `invd earnings documents` (`earnings_call_documents`) — CFO commentary, shareholder letter, data sheets; for context beyond the call (annual report, investor-day deck) `invd earnings document-search -q "<keywords>" -i <TICKER>` (`earnings_document_search`; every word must match); a `coverage.completeness` of `partial` / `unknown` means no hits is not proof the topic is absent
11
+ 1. **Find the call.** Without a quarter, take the latest call that already happened: `invd events AAPL --status ended --sort -scheduled_at --limit 1 --json` (MCP `list_events`). With a quarter, pass the company and fiscal period wherever an `event_id` goes (`invd events get AAPL 2026Q3 --json`); invd resolves the event and notes it on stderr. Use the call's `event_id` for every later step. If `has_transcript` is false, say so and stop.
12
+ 2. **Fetch in parallel** (all with `--json`; MCP `get_event` unless noted):
13
+ - press release: `invd events press-release <event_id>`
14
+ - guidance: `invd guidance AAPL --event <event_id>` and KPIs: `invd guidance kpis AAPL --event <event_id>`
15
+ - Q&A: `invd events qa <event_id>` and participants: `invd people participants --event <event_id>`
16
+ - comparison with the prior call: `invd events comparison <event_id>`
17
+ - call statistics (talk time, Q&A length): `invd events stats <event_id>`
18
+ - optional, price moves during the call: `invd events price-attribution <event_id>` — minute returns next to what was being said; skip it when the call is not attributed
19
+ - only when a claim needs the exact wording: `invd events transcript-text <event_id> --split sections`, `invd events transcript AAPL 2026Q3` (turns with `start_ms`), or `invd search transcripts "<keywords>" --event <event_id>` (MCP `search_transcripts`; `--mode literal` for an exact figure, term or quote)
20
+ - when the call has documents (`has_documents`): `invd investor-documents AAPL --event <event_id>` (CFO commentary, shareholder letter, data sheets); for context beyond the call (annual report, investor-day deck) `invd search investor-documents "<keywords>" --company AAPL`; a `meta.coverage` of `pending` / `partial` means no hits is not proof the topic is absent
20
21
  3. **Summarise**:
21
- - **Results vs guidance** — reported figures from the press release against the guidance given on the prior call (`invd earnings guidance-history -i <TICKER> --metric <metric>` for a metric's series).
22
+ - **Results vs guidance** — reported figures from the press release against the guidance given on the prior call (`invd guidance AAPL --metric revenue` for a metric's series across calls).
22
23
  - **Guidance changes** — each item raised, lowered, maintained, introduced or withdrawn (`direction`), with the period and basis (GAAP / non-GAAP).
23
24
  - **Analyst focus** — the recurring Q&A themes, who asked (firm), and where management deflected.
24
- - **Tone change** — the diff's tone shift, hedging / uncertainty changes and new or dropped topics.
25
- - **Price moves during the call** (only when fetched) — the largest minutes (`top_minutes`) and what was being said then. Word it as temporal coincidence, never as the cause of the move; pre-market bars are sparse.
26
- 4. **Cite evidence** — every quote or claim carries its `[m:ss]` timestamp (from `start_ms`) and the speaker; a passage from a company document carries its document title, year and page and is described as company-published, not as a verified fact; separate what was said from your interpretation.
25
+ - **Tone change** — the comparison's tone shift, hedging / uncertainty changes and new or dropped topics.
26
+ - **Price moves during the call** (only when fetched) — the largest minutes and what was being said then. Word it as temporal coincidence, never as the cause of the move; pre-market bars are sparse.
27
+ 4. **Cite evidence** — every quote or claim carries its `[m:ss]` timestamp (from `start_ms`) and the speaker; a passage from a company document carries its title, year and page and is described as company-published, not as a verified fact; separate what was said from your interpretation.
27
28
  5. Flag what is missing (no press release, no guidance extracted, prior call not covered) instead of inferring it.
@@ -5,11 +5,12 @@ argument-hint: <ticker> [form type or research question]
5
5
 
6
6
  # Analyze SEC Filing
7
7
 
8
- Analyze the filing requested in `$ARGUMENTS` using Invinite Data.
8
+ Analyze the filing requested in `$ARGUMENTS` using Invinite Data (MCP `list_filings`, `read_filing`, `search_filings`, or the `invd` commands below with `--json`; the MCP server also offers the `summarise_10k_risk_factors` prompt).
9
9
 
10
- 1. Resolve the company and identify the relevant filing and accession number.
11
- 2. Discover valid filing section IDs before requesting sections.
12
- 3. Retrieve only the sections needed for the question, normally risk factors, MD&A, business, and financial statements.
13
- 4. Separate direct filing evidence from your interpretation.
14
- 5. Report the form type, filing date, accession number, and section for every material finding.
15
- 6. Flag missing sections or unavailable periods instead of inferring their contents.
10
+ 1. Resolve the company (`invd companies list -q "<name>"`, or `invd filers list -q "<name>"` for an unlisted filer) and find the filing and its accession: `invd filings AAPL --form 10-K --limit 1 --json`.
11
+ 2. Open the filing's documents for the `version_id` of the primary document: `invd filings get 0000320193-26-000026 --expand documents --json`.
12
+ 3. Discover valid section ids (`invd catalog sections --form 10-K --json`), then list the version's sections: `invd documents sections <version_id> --json`.
13
+ 4. Read only the sections the question needs (normally risk factors, MD&A, business, financial statements): `invd documents get <version_id> --blocks <blocks> --json`. For a topic across filings use `invd search filings "<keywords>" --company AAPL --form 10-K --json` (100 credits a page).
14
+ 5. Separate direct filing evidence from your interpretation.
15
+ 6. Report the form type, filing date, accession number, section and `version_id` + `block_id` (with the printed page label when present) for every material finding.
16
+ 7. Flag missing sections, unavailable periods or a `pending` / `partial` coverage note instead of inferring their contents.
@@ -5,11 +5,11 @@ argument-hint: <tickers or company names> [focus]
5
5
 
6
6
  # Compare Companies
7
7
 
8
- Compare the companies in `$ARGUMENTS` using Invinite Data.
8
+ Compare the companies in `$ARGUMENTS` using Invinite Data (MCP `search_companies`, `get_company`, `get_financials`, `get_metrics`, or the `invd` commands below with `--json`; the MCP server also offers the `compare_companies` prompt).
9
9
 
10
- 1. Resolve ambiguous company names with `company_search` or the equivalent `invd` command.
11
- 2. Fetch available metric definitions before requesting financial metrics.
12
- 3. Fetch company details, the latest annual standardized snapshot, profitability and valuation ratios, and five-year CAGR where available.
10
+ 1. Resolve ambiguous company names with `search_companies` or `invd companies list -q "<name>" --json`.
11
+ 2. Fetch the metric definitions before reading financial metrics: `invd catalog metrics --json`.
12
+ 3. Fetch, for all companies in one call each: company details (`invd companies get AAPL --json`), the latest annual standardized snapshot (`invd financials AAPL MSFT --fiscal-year 2025 --json`), profitability and valuation ratios (`invd metrics ratios AAPL MSFT -p annual --category profitability,valuation --json`) and five-year CAGR (`invd metrics cagr AAPL MSFT -p annual --horizon 5 --json`) where available.
13
13
  4. Run independent reads in parallel when the active Claude surface supports it.
14
14
  5. Present a compact comparison table followed by the most material strengths, weaknesses, and data limitations.
15
- 6. Cite the reporting periods used; do not mix annual and quarterly values without labeling them.
15
+ 6. Cite the reporting periods used; do not mix annual and quarterly values without labeling them, and note when companies' fiscal years end in different months.
@@ -12,13 +12,13 @@ You are a financial research orchestrator. The user has asked you to research or
12
12
 
13
13
  Break the user's request into independent data retrieval tasks. Think about what data sources you need:
14
14
 
15
- - **Company fundamentals**: company details, financial snapshots
16
- - **Metrics & ratios**: profitability, valuation, liquidity, solvency ratios, CAGR, growth rates
17
- - **Statements**: income statements, balance sheets, cash flows (for trend analysis)
18
- - **Ownership**: institutional holders, ownership transactions, insider trades
19
- - **Filings**: SEC filing sections (risk factors, MD&A, business descriptions)
20
- - **Earnings calls**: call calendar, transcripts, management guidance and KPIs, Q&A with analysts, press releases, the diff vs the prior call
21
- - **Context**: dividends, stock splits, fiscal periods, segments
15
+ - **Company fundamentals**: company profile, financial statements (several companies in one call for a snapshot)
16
+ - **Metrics & ratios**: profitability, valuation, liquidity, leverage and efficiency ratios, CAGR, growth rates (read the metric catalog first)
17
+ - **Statements**: income statements, balance sheets, cash flows, standardized or as-reported, point in time (for trend analysis)
18
+ - **Ownership**: 13F holders, quarter-over-quarter position changes, insider trades
19
+ - **Filings**: SEC filing sections (risk factors, MD&A, business descriptions), full-text filing search
20
+ - **Earnings calls**: call calendar, transcripts, management guidance and KPIs, Q&A with analysts, press releases, the comparison with the prior call
21
+ - **Context**: dividends, stock splits, fiscal periods, segments, company news and announcements
22
22
 
23
23
  Each independent data need becomes a separate subagent task.
24
24
 
@@ -28,7 +28,7 @@ Launch all data retrieval tasks at the same time using the `invinite-data` agent
28
28
 
29
29
  **Example**: if the user asks "Compare Apple and Microsoft's financial health", spawn subagents in parallel like:
30
30
 
31
- 1. `invinite-data`: "Fetch the latest annual financial snapshot for AAPL and MSFT"
31
+ 1. `invinite-data`: "Fetch the latest annual standardized financial statements for AAPL and MSFT in one call"
32
32
  2. `invinite-data`: "Fetch profitability and liquidity ratios for AAPL, annual period"
33
33
  3. `invinite-data`: "Fetch profitability and liquidity ratios for MSFT, annual period"
34
34
  4. `invinite-data`: "Fetch 5-year CAGR metrics for AAPL and MSFT"
@@ -37,7 +37,7 @@ Launch all data retrieval tasks at the same time using the `invinite-data` agent
37
37
  - Always spawn as many subagents in parallel as possible — do not fetch sequentially
38
38
  - Give each subagent a specific, focused task — one clear data request per agent
39
39
  - If the user mentions companies by name (not ticker), include "resolve the ticker first" in the subagent prompt
40
- - For comparative analysis, consider fetching data for all companies in a single snapshot call rather than one per company
40
+ - For comparative analysis, fetch all companies in one call (`invd financials AAPL MSFT --fiscal-year 2025`, `invd metrics ratios AAPL MSFT`) rather than one per company
41
41
 
42
42
  ## Step 3: Analyze and synthesize
43
43
 
@@ -5,10 +5,10 @@ argument-hint: <ticker> [period or focus]
5
5
 
6
6
  # Review Ownership
7
7
 
8
- Review ownership activity for `$ARGUMENTS` using Invinite Data.
8
+ Review ownership activity for `$ARGUMENTS` using Invinite Data (MCP `get_holdings`, `get_insider_trades`, or the `invd` commands below with `--json`).
9
9
 
10
- 1. Resolve the company identifier.
11
- 2. Fetch institutional holdings, institutional transactions, and insider trades for the requested period.
12
- 3. Identify the largest holders, notable new or exited positions, and meaningful insider acquisitions or dispositions.
13
- 4. Distinguish position value from share count and filing date from transaction date.
14
- 5. Present concise tables and call out reporting-lag limitations in institutional filings.
10
+ 1. Resolve the company identifier (`invd companies list -q "<name>" --json` when given a name).
11
+ 2. Fetch institutional holdings (`invd holdings AAPL --period-end 2026-06-30 --json`), quarter-over-quarter position changes (`invd holdings changes AAPL --json`) and insider trades (`invd insider-trades AAPL --filed-at-gte 2026-01-01 --json`) for the requested period.
12
+ 3. Identify the largest holders, notable new or exited positions (`--type new,sold_out`), and meaningful insider acquisitions or dispositions (`--side buy` / `--side sell`).
13
+ 4. Distinguish position value from share count and filing date from transaction or quarter-end date.
14
+ 5. Present concise tables and call out reporting-lag limitations in institutional filings (13F positions are as of the quarter end, filed up to 45 days later).