Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

equity-research-update-skill

License: MIT Built with Claude Code Skills format

Test an existing single-stock pitch against new information and update the original memo in place. Companion to equity-research-skill — does NOT build new pitches from scratch. Handles quarterly earnings, investor days, catalyst events, and periodic reviews through one 4-step workflow that preserves the thesis-first / killing-conditions discipline of the parent skill.

Why this exists

The parent equity-research-skill is a zero-to-pitch workflow — it crafts a defensible 10–18 page memo from raw filings to publication. Its own description explicitly says "NOT for earnings updates." That left a methodology gap for the entire post-publication life of a name: every earnings print, every investor day, every catalyst event needs a structured way to test the existing thesis without rebuilding it from scratch.

Most "earnings update" workflows are sell-side templates: produce an 8-12pp note for client distribution. That's the wrong fit for a personal archive — you don't want a delta note alongside the original memo; you want one always-current document per name with a built-in audit trail of how the view evolved.

This skill is built around that constraint:

  • Updates the original memo PDF in place for refinements. One canonical document, always current.
  • Archives-and-replaces only on direction reversals (LONG → PASS / SHORT). Old PDF preserved at archive/[TICKER]_pitch_v[N]_[date].pdf for audit.
  • Carries an Appendix C "Update history" table at the back of every memo — human-readable audit trail visible inside the PDF itself.
  • No upfront effort tier. The three-test (pillars / killing conditions / load-bearing magnitude) result is the magnitude assessment; the recommended action follows mechanically.
  • Never invents a new pillar via update. Pillars come from the parent skill's Phase 6→8 — updates test them, never extend them. If new evidence points to a missing pillar, that's a signal to rebuild via the parent skill, not back-fill here.
  • Killing conditions are sacred. A fired KC must be reflected in the action class; no quiet downgrade.

What you get

Per update event:

~/Claude Projects/Equity Research/[TICKER]/updates/
└── 2026-05-25_investor-day/
    ├── materials/              # raw artefacts pulled in step 1
    ├── structured_read.md      # step 2 — NEW vs RESTATED disclosures
    └── three_test.md           # step 3 — pillar / KC / magnitude verdicts

Plus in-place edits to:

~/Claude Projects/Equity Research/[TICKER]/deliverables/
├── [TICKER]_pitch.md           # Changelog row appended; thesis edits if Class 2+
├── [TICKER]_pitch.pdf          # rebuilt
└── [TICKER]_model.xlsx         # only if model flexed

On direction reversal only:

~/Claude Projects/Equity Research/[TICKER]/deliverables/archive/
├── [TICKER]_pitch_v[N]_[date].pdf
└── [TICKER]_pitch_v[N]_[date].md

How it works

flowchart TD
    A[Trigger:<br/>'review TICKER after IR day'<br/>'post-earnings on TICKER'<br/>'is TICKER still my view'] --> B[Step 1<br/>Materials gather<br/>10-30 min]
    B --> C[Step 2<br/>Structured read<br/>NEW vs RESTATED · 30-60 min]
    C --> D[Step 3<br/>Three-test<br/>Pillars · KCs · Magnitude]
    D --> E{Action class<br/>determined<br/>by three-test}
    E -->|All SILENT/CONFIRMED, 0 KCs fired| F1[Log-only update<br/>~30 min]
    E -->|1+ CONFIRMED, modest shift| F2[In-place refinement<br/>~1 day]
    E -->|1 INVALIDATED or 1 KC fired| F3[Heavy refinement<br/>~2 days]
    E -->|2+ INVALIDATED or 2+ KCs fired<br/>or load-bearing INVALIDATED| F4[Direction reversal<br/>Re-run parent Phase 7<br/>~2-3 days]
    style E fill:#ffe4b5,stroke:#333,color:#000
    style F4 fill:#ffcdd2,stroke:#333,color:#000
Loading

The amber box is the load-bearing judgement moment — the three-test result mechanically points at an action class, but the user confirms or overrides. The skill never auto-commits to an action.

When to use it

Event type Trigger phrase
Quarterly earnings "update TICKER after Q2 print" / "post-earnings on TICKER"
Investor day / capital markets day "review TICKER after investor day" / "TICKER capital markets day update"
Catalyst event "TICKER update on [ruling/M&A/contract]" / "catalyst note on TICKER"
Periodic review (no event) "periodic review of TICKER" / "is TICKER still my view" / "refresh TICKER"

When NOT to use it

  • Initial coverage of a new name → use equity-research-skill
  • Pre-event scenario notes (will they beat?) → out of scope; consider Anthropic's earnings-preview if needed
  • Multi-name fan-out across a coverage list → not designed for this; run once per ticker

What this skill does vs what you do

Skill does You do
Pulls new artefacts Decides if more material is needed
Reads end-to-end, structures NEW vs RESTATED Validates the reading
Runs the three-test mechanically Confirms pillar verdicts
Recommends an action class Picks the action
Drafts the in-place memo edits Approves / edits the diffs
Rebuilds PDF, copies to archive Confirms the final

Skill never picks the action; surfaces the recommended one with explicit reasoning. Same drafting-vs-deciding split as the parent skill.

Install

git clone https://github.com/GeniusTrader-Harry/equity-research-update-skill.git \
  ~/.claude/skills/equity-research-update

In Claude Code, the skill auto-loads when it detects relevant phrasing. Trigger phrases are listed in the table above.

Prerequisites

  • Claude Code 2.x
  • The parent equity-research-skill installed and used to produce the original pitch — this skill reads its working files
  • For PDF rebuilds: pandoc + weasyprint + pango (same toolchain as the parent skill — see its README)

One-time setup for existing pitches

If you have memos that were produced BEFORE the parent skill's Phase 10 KC-format patch and Phase 13 Appendix C scaffold (both required by this skill), you need a one-time backfill:

  1. working/killing_conditions.md — reformat KCs to the structured format (KC1, KC2, … with Trigger / What-it-kills / Cadence / Source / Why fields). See parent skill's references/phase10-pillar-audit.md for the schema.
  2. deliverables/[TICKER]_pitch.md — append an empty "Appendix C — Update history" scaffold with just the initiation row. See parent skill's references/phase13-pitch-template.md for the format.

After backfill, this skill can read both files programmatically and the in-place memo updates can append Changelog rows correctly.

The four action classes

Result of three-test Class Work Memo state after
All pillars SILENT or CONFIRMED · 0 KCs fired · magnitude unchanged Log-only ~30 min Single Changelog row appended; body untouched; PDF rebuilt and pushed
1+ pillar CONFIRMED with new data · 0 KCs fired · magnitude shifted <5% PT Refined ~1 day Thesis text edited where new evidence lands; model lightly flexed; PT may move; Changelog row appended
1 pillar INVALIDATED · OR 1 KC fired · OR magnitude shifted >5% PT but direction retained Heavy refinement ~2 days Affected pillar's narrative rewritten; KC restated if fired; model rebuilt; PT re-derived; Changelog row appended
2+ pillars INVALIDATED · OR load-bearing pillar INVALIDATED · OR 2+ KCs fired · OR direction-flipped magnitude Direction reversal ~2-3 days Re-run parent skill's Phase 7 (direction commit) against new evidence. Old PDF archived to archive/; new primary published with fresh Appendix C

Anti-patterns the skill catches

These are encoded into the spec because they're the most common failure modes for update workflows:

  • NEVER introduce a new pillar via an update. Pillars come from the parent skill's Phase 6→8 — updates test, they don't extend.
  • NEVER quietly downgrade a fired killing condition. Fired KCs trigger at least Class 3; if two fire, Class 4. No "well it kind of fired but…"
  • NEVER call a refinement 'no change' if PT moved. If you flexed the model and PT moved even 1%, it's at minimum Refined.
  • NEVER skip the Q&A pauses. Three explicit pauses (after steps 1, 2, 3) and a final one after step 4. User cadence, never auto-advance.
  • NEVER read sell-side before forming your own three-test verdict. Their take anchors you. Read primary sources, do the three-test, then cross-check with sell-side.
  • NEVER let the archive site drift from the project memo. After every rebuild, the archive PDF must be byte-identical to the project PDF.

Full list in references/anti-patterns.md.

A note on what this is NOT

  • NOT a replacement for the parent skill. This skill reads the parent's outputs (pillars_audited.md, killing_conditions.md, valuation_outputs.yaml). Without those, this skill has nothing to test against.
  • NOT an automated monitoring tool. Trigger is manual — user invokes when there's a specific event. No cron, no webhook.
  • NOT a delta-note format. Updates edit the original memo in place; they don't produce a separate "earnings note" alongside.
  • NOT a multi-name workflow. One ticker per invocation.

Acknowledgements

Built as a companion to equity-research-skill after the first real post-publication event (an investor day on a covered name) exposed the methodology gap. Anti-patterns came out of designing the skill against that specific event — particularly the "never invent a new pillar" and "fired KCs are sacred" rules, which the original workflow's discipline would have caught at initiation but which a sloppy update workflow could easily violate.

Mistakes are mine. Patches welcome.

License

MIT.

About

Companion skill: test an existing single-stock pitch against new information (earnings, IR day, catalyst, periodic review) and update the original memo in place. Pairs with equity-research-skill.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors