Pull a 10-K, 10-Q, 8-K, 20-F or equivalent from Quartr, extract thesis-delta signal, and write a research note. Use when user says "pull the 10-K", "ingest the 8-K", "filing TICKER", or points at a Quartr report URL. Not for earnings calls (those are $transcript) or slide decks (those are $slides).
Installs into .claude/skills of the current project.
Are you the author of Filing?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/jameswong2011-filing)
---
name: filing
description: Pull a 10-K, 10-Q, 8-K, 20-F or equivalent from Quartr, extract thesis-delta signal, and write a research note. Use when user says "pull the 10-K", "ingest the 8-K", "filing TICKER", or points at a Quartr report URL. Not for earnings calls (those are $transcript) or slide decks (those are $slides).
---
**Codex execution:** Read `.agents/skills/_shared/codex-compat.md` first. Treat `SKILL_ARGS` as the arguments supplied with `$filing`, or infer them from the user's request when this skill is invoked implicitly.
**Follow AGENTS.md Writing Standards strictly.** Lead with what the filing changes for the thesis.
Per `.agents/skills/_shared/quartr.md`. Different document, different note shape, different length floor from `$transcript` — do not grow `$transcript` to read 10-Ks.
## Arguments
- `TICKER` — latest 10-K (or 20-F / annual_report if non-US)
- `TICKER 10-Q` / `TICKER 10-K` / `TICKER 8-K` / `TICKER 20-F`
- `TICKER --document ID` — specific Quartr documentId
- URL starting `https://web.quartr.com/` containing a report document — parse ids, then this skill
Ambiguous → ask. No thesis → abort (`$filing` requires an existing case; orphan filings are `$ingest`).
## Step 0: Pre-flight
`ticker:TICKER` lock, 10 minutes. Rename-marker hard-block. Thesis-existence probe (same glob as `$transcript` 0.3). Resolve `quartr_id:` per `.agents/skills/_shared/quartr.md`.
## Step 1: Locate the document
`list_documents` with `companyId` and `documentTypes` matching the request (`annual_report_10k`, `quarterly_report_10q`, `earnings_release_8k`, `annual_report_20f`, `annual_report_40f`, `earnings_release_6k`, `interim_report`, `annual_financial_statement`). Pick the newest unless `--document` is set.
Cache: `.data/quartr/doc_{documentId}_p{startPage}.json`.
## Step 2: Read
`read_document` paged (`startPage` / `maxPages`). Follow `nextPage` until the document is complete or 80 pages, whichever first. `get_document_summary` is a pointer, not the source — still read the pages that feed Thesis Delta.
Also `get_financials` for the matching period (`periodType: quarterly` or `yearly`) with `includeReferenceUrls: true` only for the line items the thesis Key Metrics / Bull Case actually cite (do not dump the whole statement).
## Step 3: Thesis cross-reference
Read the thesis: Bull, Bear, Conviction Triggers, Outstanding Questions, last 5 Log. Mental Models gate (Generalist + matching Industry/Lens). Apply READING PROTOCOL.
Extract:
- Risk-factor language that is **new vs the prior 10-K** if a prior filing is in Related Research or cache; else flag "no prior comparator"
- MD&A / segment notes that touch a named trigger or OQ
- Filing figures that move a numeric trigger (`$numbers` still owns the Key Metrics table — this skill reports the filing print, it does not edit the table)
## Step 4: Research note
`Research/YYYY-MM-DD - [TICKER] [FORM] [period] - deep-dive.md`
```yaml
date: YYYY-MM-DD
tags: [research, filing, TICKER]
status: active
sector: [from thesis]
ticker: TICKER
source: '[Quartr document URL]'
source_type: deep-dive
quartr_document_id: N
---
```
8-K earnings releases may use `source_type: earnings` if they carry the quarterly signature (verify_note #8). Body: Thesis Delta, Summary, Evidence (tables, `[Quartr]` + page URL on every figure), Contradiction Check, Source Excerpts (short quotes with page links). `## Key Segments` when source_words > 15,000 (Risk Factors, MD&A, segment note, subsequent events).
Post-write: `verify_note.py` as `$ingest` URL/PDF (block on failure → delete the note, keep cache).
## Step 5: Log + `_hot.md`
```
- Filing ingested: [FORM] [period] — [one-sentence thesis delta]. See [[Research/...]].
```
Prefix `Filing ingested:` is NON-skill-origin (registry "intentionally not listed"). `_hot.md` same-ticker continuation. Graph primer Mode C advisory.
## Step 6: Report + lock release
Same shape as `$transcript` Step 12, with document id and form type. Suggest `$sync TICKER` then `$graph last`. If a numeric trigger is touched, suggest `$numbers TICKER` (this skill does not edit Key Metrics).
## Design constraints
1. **Not a call.** Speaker-delta analysis is `$transcript`. Page-delta analysis is this skill.
2. **Not a deck.** Slides are `$slides`.
3. **Does not edit Key Metrics.** Filing prints land in the research note; `$numbers` Step 4c may later adopt them.
4. **Cite page URLs.** Untagged filing figures are the failure mode `.agents/skills/_shared/provenance-tags.md` exists to catch.