@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.
- package/README.md +341 -374
- package/claude-plugin/.claude-plugin/plugin.json +1 -1
- package/claude-plugin/agents/invinite-data.md +59 -28
- package/claude-plugin/commands/analyze-earnings-call.md +15 -14
- package/claude-plugin/commands/analyze-filing.md +8 -7
- package/claude-plugin/commands/compare-companies.md +5 -5
- package/claude-plugin/commands/financial-research.md +9 -9
- package/claude-plugin/commands/ownership-review.md +6 -6
- package/claude-plugin/skills/invinite-data-cli/SKILL.md +466 -570
- package/dist/bin/invd.js +11 -2
- package/dist/bin/invd.js.map +1 -1
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +48 -29
- package/dist/src/cli.js.map +1 -1
- package/dist/src/client/api-client.d.ts +24 -24
- package/dist/src/client/api-client.js +52 -70
- package/dist/src/client/api-client.js.map +1 -1
- package/dist/src/client/pagination.d.ts +12 -11
- package/dist/src/client/pagination.js +47 -56
- package/dist/src/client/pagination.js.map +1 -1
- package/dist/src/commands/agent-setup.d.ts +21 -0
- package/dist/src/commands/agent-setup.js +112 -0
- package/dist/src/commands/agent-setup.js.map +1 -0
- package/dist/src/commands/api.d.ts +27 -0
- package/dist/src/commands/api.js +180 -0
- package/dist/src/commands/api.js.map +1 -0
- package/dist/src/commands/auth.d.ts +37 -0
- package/dist/src/commands/auth.js +336 -0
- package/dist/src/commands/auth.js.map +1 -0
- package/dist/src/commands/completion.d.ts +7 -0
- package/dist/src/commands/completion.js +115 -0
- package/dist/src/commands/completion.js.map +1 -0
- package/dist/src/commands/config.d.ts +4 -0
- package/dist/src/commands/config.js +85 -48
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/plugin.d.ts +8 -0
- package/dist/src/commands/plugin.js +8 -10
- package/dist/src/commands/plugin.js.map +1 -1
- package/dist/src/config/auth.d.ts +17 -1
- package/dist/src/config/auth.js +50 -36
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config-manager.d.ts +56 -4
- package/dist/src/config/config-manager.js +173 -29
- package/dist/src/config/config-manager.js.map +1 -1
- package/dist/src/config/toml.d.ts +7 -0
- package/dist/src/config/toml.js +79 -0
- package/dist/src/config/toml.js.map +1 -0
- package/dist/src/examples.d.ts +22 -0
- package/dist/src/examples.js +56 -0
- package/dist/src/examples.js.map +1 -0
- package/dist/src/generated/cli-manifest.json +5583 -4916
- package/dist/src/hand-written-commands.d.ts +11 -41
- package/dist/src/hand-written-commands.js +7 -17
- package/dist/src/hand-written-commands.js.map +1 -1
- package/dist/src/output/jq.d.ts +15 -0
- package/dist/src/output/jq.js +234 -0
- package/dist/src/output/jq.js.map +1 -0
- package/dist/src/output/options.d.ts +29 -0
- package/dist/src/output/options.js +72 -0
- package/dist/src/output/options.js.map +1 -0
- package/dist/src/output/render.d.ts +54 -0
- package/dist/src/output/render.js +160 -0
- package/dist/src/output/render.js.map +1 -0
- package/dist/src/shared/errors.d.ts +59 -15
- package/dist/src/shared/errors.js +126 -38
- package/dist/src/shared/errors.js.map +1 -1
- package/dist/src/shared/prompt.d.ts +10 -0
- package/dist/src/shared/prompt.js +24 -0
- package/dist/src/shared/prompt.js.map +1 -0
- package/dist/src/shared/spinner.js +2 -1
- package/dist/src/shared/spinner.js.map +1 -1
- package/dist/src/spec-commands.d.ts +14 -6
- package/dist/src/spec-commands.js +454 -174
- package/dist/src/spec-commands.js.map +1 -1
- package/dist/src/spec-flags.d.ts +11 -6
- package/dist/src/spec-flags.js +14 -7
- package/dist/src/spec-flags.js.map +1 -1
- package/dist/src/spec-manifest.d.ts +416 -116
- package/dist/src/spec-manifest.js +44 -13
- package/dist/src/spec-manifest.js.map +1 -1
- package/dist/src/update-notifier.d.ts +9 -0
- package/dist/src/update-notifier.js +63 -0
- package/dist/src/update-notifier.js.map +1 -0
- package/package.json +2 -3
- package/dist/src/client/earnings-live.d.ts +0 -194
- package/dist/src/client/earnings-live.js +0 -300
- package/dist/src/client/earnings-live.js.map +0 -1
- package/dist/src/client/news-live.d.ts +0 -72
- package/dist/src/client/news-live.js +0 -120
- package/dist/src/client/news-live.js.map +0 -1
- package/dist/src/client/pdf.d.ts +0 -15
- package/dist/src/client/pdf.js +0 -15
- package/dist/src/client/pdf.js.map +0 -1
- package/dist/src/client/websocket-client.d.ts +0 -19
- package/dist/src/client/websocket-client.js +0 -174
- package/dist/src/client/websocket-client.js.map +0 -1
- package/dist/src/commands/earnings.d.ts +0 -16
- package/dist/src/commands/earnings.js +0 -464
- package/dist/src/commands/earnings.js.map +0 -1
- package/dist/src/commands/login.d.ts +0 -15
- package/dist/src/commands/login.js +0 -249
- package/dist/src/commands/login.js.map +0 -1
- package/dist/src/commands/news.d.ts +0 -2
- package/dist/src/commands/news.js +0 -69
- package/dist/src/commands/news.js.map +0 -1
- package/dist/src/commands/sec.d.ts +0 -47
- package/dist/src/commands/sec.js +0 -191
- package/dist/src/commands/sec.js.map +0 -1
- package/dist/src/commands/ws.d.ts +0 -33
- package/dist/src/commands/ws.js +0 -116
- package/dist/src/commands/ws.js.map +0 -1
- package/dist/src/formatters/json-formatter.d.ts +0 -1
- package/dist/src/formatters/json-formatter.js +0 -4
- package/dist/src/formatters/json-formatter.js.map +0 -1
- package/dist/src/formatters/table-formatter.d.ts +0 -4
- package/dist/src/formatters/table-formatter.js +0 -73
- package/dist/src/formatters/table-formatter.js.map +0 -1
- package/dist/src/formatters/time.d.ts +0 -2
- package/dist/src/formatters/time.js +0 -14
- package/dist/src/formatters/time.js.map +0 -1
- package/dist/src/shared/output.d.ts +0 -3
- package/dist/src/shared/output.js +0 -13
- package/dist/src/shared/output.js.map +0 -1
- package/dist/src/shared/readiness.d.ts +0 -4
- package/dist/src/shared/readiness.js +0 -60
- package/dist/src/shared/readiness.js.map +0 -1
- package/dist/src/shared/types.d.ts +0 -11
- package/dist/src/shared/types.js +0 -2
- 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
|
+
"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,
|
|
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
|
|
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
|
|
17
|
-
2. **Plan the queries
|
|
18
|
-
|
|
19
|
-
|
|
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
|
|
24
|
-
- **Before
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
62
|
+
Run independent commands in parallel rather than one after another.
|
|
38
63
|
|
|
39
|
-
|
|
40
|
-
- **
|
|
41
|
-
- **
|
|
42
|
-
|
|
43
|
-
- **Filing deep-dive**:
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- **
|
|
47
|
-
|
|
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
|
|
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 (`
|
|
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
|
|
12
|
-
2. **Fetch in parallel** (all with `--
|
|
13
|
-
- press release: `invd
|
|
14
|
-
- guidance: `invd
|
|
15
|
-
- Q&A: `invd
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
- when
|
|
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
|
|
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
|
|
25
|
-
- **Price moves during the call** (only when fetched) — the largest minutes
|
|
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
|
|
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
|
|
11
|
-
2.
|
|
12
|
-
3.
|
|
13
|
-
4.
|
|
14
|
-
5.
|
|
15
|
-
6.
|
|
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 `
|
|
11
|
-
2. Fetch
|
|
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
|
|
16
|
-
- **Metrics & ratios**: profitability, valuation, liquidity,
|
|
17
|
-
- **Statements**: income statements, balance sheets, cash flows (for trend analysis)
|
|
18
|
-
- **Ownership**:
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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).
|