本文へ移動
cccskills
無料GitHub で公開

earnings-sweep

Earnings-season triage across ALL active theses (not just Live Portfolio holdings) — every earnings call reported inside the window gets a Quartr event summary, a Conviction-Trigger/Outstanding-Questions cross-reference, and a coverage check against existing Research notes, producing a ranked deep-read queue for /transcript. Use when user says "earnings sweep", "who reported", "triage earnings", "catch up on earnings season", or after any earnings-heavy stretch. Default window 14 days; `/earnings-sweep 90` covers a full season.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md7.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

The breadth layer /transcript lacks: one pass over every active-thesis earnings call in the window, cheap summaries first, so the expensive deep reads land only where a thesis is actually touched. Universe = all status: active theses via the /event-sweep-maintained "Vault Active" watchlist (which mirrors exactly that set, self-healing on /status transitions) — NOT the Live Portfolio holdings table, which is a subset. Output is a scanning surface in Daily Intel/ (pruned by /clean daily-intel), never a Research note: the paper trail starts when a recommended /transcript runs.

Division of labour vs /event-sweep (keep these from drifting into each other): /event-sweep is the scheduled weekly surveillance of ALL event types at fixed cadence; /earnings-sweep is on-demand, earnings-only, takes an arbitrary window (a fortnight or a whole season), adds the coverage dedupe (which reporters already have vault research) and the ranked deep-read queue. During earnings season the weekly sweep says "these reported"; this skill says "here is the order in which to actually read them, and which ones you already covered".

Arguments

  • /earnings-sweep — window = last 14 days
  • /earnings-sweep [N] — window = last N days (clamp 1-120; a season is ~90)

Step 0: Pre-flight

  1. Lock: vault-wide per _shared/preflight.md Procedure 1, timeout 10 min.
  2. Rename-marker: glob .rename_incomplete.* — warn-only (no thesis edits in this skill).
  3. Quartr probe (hard): per _shared/quartr.md §1 load list_events,get_event_summary,read_transcript. Unavailable → abort (no fallback source for summaries).
  4. Universe: read .data/quartr_watchlist.json → watchlistId + members. Missing → recompute active set from thesis frontmatter (grep -l '^status: active' Theses/*.md), resolve via .data/quartr_ids.json, and emit ℹ️ watchlist state missing — run /event-sweep --setup to persist; proceeding from thesis frontmatter (per-company list_events fan-out in that degraded case, capped at the active count).
  5. Mental models (light tier): [[Generalist - Overview]] only — triage flags follow the READING PROTOCOL (touches are hypotheses; "confirms"/"fires" language banned in the digest).

Step 1: Find the reporters

mcp__quartr__list_events {watchlistId, startDate: TODAY-N, endDate: TOMORROW, expand: ["transcript"], limit: 200, order: "desc"}

Filter to parentEventType: "earnings_call" (covers q_1…q_4, h_1/h_2). Partition: transcript-bearing (summary queue) vs reported-no-transcript-yet (list with transcript pending — re-run in a few days tag). limit hit → page by date and warn on truncation, never silently drop reporters.

Step 2: Coverage dedupe (before spending a single summary call)

Per reporter, check whether the vault already ingested this print: glob Research/*[TICKER]* for notes dated on/after the event date with source_type: earnings or transcript_quarter matching the event's quarter, and grep the thesis ## Log for a Transcript ingested: [QN-YYYY] entry. Already covered → the reporter appears in the digest under Already ingested with its note wikilink and drops out of the queue. This is the anti-duplicate-work layer: a season-length window re-run must not recommend re-reading what /transcript already processed.

Step 3: Summaries + cross-reference (uncovered reporters only)

Per uncovered reporter:

  1. get_event_summary {eventId} — render at full detail into the digest (every substantive bullet; only legal boilerplate cut — same contract as /event-sweep Step 3). Null summary + transcript available → read_transcript {section: "qna"} fallback capped at 3 per run; beyond the cap, tag summary pending — deep-read directly.
  2. Targeted section reads of the thesis: ## Conviction Triggers + ## Outstanding Questions (+ ## Key Metrics table row for the guidance comparison). Flag every summary bullet that bears on a trigger variable, an open question, or moves a guided figure the thesis quotes. Record direction it appears to point + the deep link.

Step 4: Rank the deep-read queue

Score per reporter (transparent, mechanical): +3 per trigger-variable touch · +2 per Outstanding-Question touch · +1 for a guidance change vs what the thesis carries · +1 if conviction: high · −1 if the summary is pure in-line-quarter with no framing change. Sort descending; ties break by conviction then market-cap-agnostic recency. The queue is a recommendation list of /transcript TICKER commands in order — the user (or a later session) executes; this skill never runs them.

Step 5: Write the digest

Daily Intel/YYYY-MM-DD - Earnings Sweep.md — frontmatter date, tags: [meta, daily-intel, earnings-sweep], window: <start>..<end>; no publish:. Structure:

# Earnings Sweep — [window]

[stats: M active names · R reported in window · C already ingested · U triaged · Q queued for deep reads]

## Deep-read queue (ranked)
[1. /transcript TICKER — score N — one-line why (the strongest touch) · event link]

## Trigger/question touches
[table: TICKER · summary bullet · trigger/question touched · apparent direction · deep link]

## By reporter (full summaries)
### TICKER — QN FYYY (date) — [event URL]
[full summary per Step 3 · guidance-vs-thesis note · → queue position or "no thesis touch — skim only"]

## Already ingested
[TICKER · quarter · [[existing research note]]]

## Pending transcripts
[TICKER · reported date · re-run hint]

No thesis writes, no Log entries, no _hot.md. Summaries are pointers (contract §6): figures reach theses only through /transcript or filings.

Step 6: Release lock + report

Stats line, top 3 of the queue with their one-line whys, digest wikilink.

Design constraints (xxx DO NOT VIOLATE xxx)

  1. Universe is active theses, not holdings. The Live Portfolio table is a subset of the book's attention; a thesis being researched deserves earnings triage before it is owned.
  2. Dedupe before spend. Step 2 runs before any summary call — a 90-day re-run over a covered season should cost near zero and recommend nothing already done.
  3. Flag, never conclude; summaries are pointers. Same discipline as /event-sweep; the ranked queue is the only opinion this skill emits, and it is an attention ranking, not a verdict.
  4. Bounded cost. One events query + one summary per uncovered reporter + ≤3 qna fallbacks. Season-length windows are bounded by reality (~44 names × ≤2 prints an actual quarter-window contains).

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Sweep addressed callouts older than a threshold (default 180 days) into the target note's

日本語の概要は準備中です。原文の説明を表示しています。

jameswong2011/InvestmentVault32026年9月9日 更新

Extract a thesis's load-bearing assumptions and scan for internal contradictions — the falsifiable claims the bull case requires, what would falsify each, and where the thesis's own Risks / Bear Case / research already argue against it. Use when user says "assumptions", "what must be true", "load-bearing assumptions", or "does [TICKER] contradict itself".

日本語の概要は準備中です。原文の説明を表示しています。

jameswong2011/InvestmentVault32026年9月9日 更新

brief

無料

Generate a concise 1-page investment brief from a thesis — the elevator pitch version. Use when user says "brief", "summarise thesis", "pitch me [TICKER]", "one-pager", or "investment memo".

日本語の概要は準備中です。原文の説明を表示しています。

jameswong2011/InvestmentVault32026年9月9日 更新

catalyst

無料

Extract and maintain a cross-portfolio catalyst calendar from all thesis notes. Use when user says "catalyst", "calendar", "what's coming up", "upcoming events", or "what could move the portfolio".

日本語の概要は準備中です。原文の説明を表示しています。

jameswong2011/InvestmentVault32026年9月9日 更新

clean

無料

Delete old snapshots from _Archive/Snapshots/. Accepts a day threshold (default 180). Also `daily-intel [days]` mode — prune auto-generated n8n scanning surfaces (news briefs, X dashboards) from Daily Intel/ older than 90 days. Use when user says "clean", "clean snapshots", "delete old snapshots", "clean daily intel", or when /lint flags stale snapshots.

日本語の概要は準備中です。原文の説明を表示しています。

jameswong2011/InvestmentVault32026年9月9日 更新

clean

無料

Delete old snapshots from _Archive/Snapshots/. Accepts a day threshold (default 180). Also `daily-intel [days]` mode — prune auto-generated n8n scanning surfaces (news briefs, X dashboards) from Daily Intel/ older than 90 days. Use when user says "clean", "clean snapshots", "delete old snapshots", "clean daily intel", or when $lint flags stale snapshots.

日本語の概要は準備中です。原文の説明を表示しています。

jameswong2011/InvestmentVault32026年9月9日 更新

jameswong2011 のスキルをすべて見る

このスキルの問題を報告する