CLAUDE.md · dgunning/edgartools
CLAUDE.md from dgunning/edgartools: 137 lines covering Philosophy, Quick Navigation, Entry Points, Data Flow and more.
Template by dgunning
Chalk Labs
Need help deploying CLAUDE.md · dgunning/edgartools?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/dgunning/edgartools/main/CLAUDE.md -o CLAUDE.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: prompt-engineering
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
A CLAUDE.md file: project memory Claude Code loads at the start of every session.
- For
- Claude Code
- Length
- 137 lines
- File
CLAUDE.md
Sections
- Philosophy
- Quick Navigation
- Entry Points
- Data Flow
- Large Files (>30KB)
- Issue Tracking (Beads)
- Development
- Verification
- Changelog
- Version
- Shared agent instructions
First lines (shown under the repo's MIT license)
# EdgarTools
Python library for SEC Edgar filings analysis.
## Philosophy
- **Simple API, complex data**: Hide SEC complexity behind intuitive Python objects
- **Progressive disclosure**: Basic usage is easy; advanced features available when needed
- **Read before write**: Understand existing patterns before modifying code
## Quick Navigation
| Need | Location | Key Classes |
|------|----------|-------------|
| Filing access | `edgar/_filings.py` | `Filing`, `Filings` |
| Company data | `edgar/entity/core.py` | `Company`, `Entity` |
| XBRL parsing | `edgar/xbrl/xbrl.py` | `XBRL` |
| Statements | `edgar/xbrl/statements.py` | `Statement`, `StatementLineItem` |
| Notes & disclosures | `edgar/xbrl/notes.py` | `Note`, `Notes` |
| Documents | `edgar/documents/` | `Document`, `HTMLParser` |
| Reports (10-K/Q/8-K) | `edgar/company_reports/` | `TenK`, `TenQ`, `EightK`, `AuditorInfo`, `SubsidiaryList` |
| Reference data | `edgar/reference/` | Tickers, forms |
## Entry Points
```python
from edgar import Filing, Filings, Company, find, obj
```
- `Company("AAPL")` - Get company by ticker or CIK
- `company.get_financials()` - Financial statements from latest 10-K (recommended)
- `company.get_quarterly_financials()` - Financial statements from latest 10-Q
- `find(form="10-K", ticker="AAPL")` - Search filings
- `filing.xbrl()` - Parse XBRL financials
- `filing.obj()` - Get typed report object (TenK, TenQ, etc.)
## Data Flow
```
Company → company.get_financials() → Financials → income/balance/cashflow
Filing → filing.obj() → TenK/TenQ → .notes → Notes → Note → .tables/.text/.expands
Filing → filing.obj() → TenK/TenQ/EightK → .reports → Reports
Filing → filing.xbrl() → XBRL → statements
Statement → stmt['line item'] → StatementLineItem → .note → Note (drill-down)
Company → company.get_facts() → EntityFacts → Statement
Filing → filing.document() → Document → extractors
```
## Large Files (>30KB)
When modifying these, read in chunks:
- `_filings.py` (72KB), `xbrl/rendering.py` (72KB), `xbrl/xbrl.py` (66KB)
- `entity/entity_facts.py` (63KB), `xbrl/facts.py` (55KB), `xbrl/statements.py` (46KB)
## Issue Tracking (Beads)
We use `bd` (beads) for issue tracking. Full docs: `docs/beads-workflow.md`
```bash
bd list --status open # Ready/open issues
bd list --status in_progress # Currently active
bd list --status open -p 0 # Critical priority (0=critical, 4=backlog)
bd list -t bug # Filter by type (bug/feature/task)
bd show ISSUE_ID # View details
bd update ISSUE_ID --status in_progress # Change status
bd create --title "..." --type bug --priority P1 # Create issue
```
**Statuses**: `open`, `in_progress`, `blocked`, `closed`
## Development
| Task | Reference |
|------|-----------|
| Verification | `docs/verification-guide.md` |
| Constitution | `docs/verification-constitution.md` |
| Roadmap | `docs/verification-roadmap.md` |
| API examples | `edgar/ai/skills/core/quickstart-by-task.md` |
| Data objects | `edgar/ai/skills/core/data-objects.md` |
| Workflows | `edgar/ai/skills/core/workflows.md` |
## Verification
We use "verification" not "testing". Verification is outward-facing — does this library deliver what we promised?
**Governing principle**: The [Verification Constitution](docs/verification-constitution.md) defines 11 principles. The three most important for daily work:
1. **Documentation is the specification** — every documented example must be verifiable
2. **Data correctness is existential** — assert specific values, not just `is not None`
3. **The API must be solvable** — users and agents can navigate to answers
### Definition of Done for New Features
Every new user-facing feature must include:
- **One ground-truth assertion** — a specific value from a real SEC filing, verified by hand
- **One verified documented example** — a code example that is itself a runnable test
- **One silence check** — verify that bad/missing input produces a useful error, not `None`
- **Solvability** — update skill YAML files so agents can discover and use the feature
### Verification Commands
```bash
hatch run test-fast # Fast tests (no network) — run often
hatch run test-network # Network tests (sequential, rate-limited)
hatch run test-regression # Regression tests
hatch run cov # With coverage
```
Only parallelize fast tests to avoid SEC rate limits.
### Writing Verification
- **Assert values, not existence**: `assert revenue == 394328000000` not `assert revenue is not None`
- **Use VCR cassettes** for network tests to enable speed and determinism
- **Diversify companies**: Don't default to AAPL — use companies from different industries
- **Test error paths**: Verify that failures produce useful messages, not silent `None`
- **Place regression tests** in `tests/issues/regression/test_issue_NNN.py`
## Changelog
**Never edit `CHANGELOG.md` in a PR** — concurrent PRs conflict on it. Add a fragment
`changelog.d/<bead-or-issue-id>.<section>.md` (section: added/changed/fixed/...) with the
bullet text; see `changelog.d/README.md`. A bullet is a bold headline plus one or two sentences
with one measured value, **at most 500 characters** — the root cause goes in the commit and PR.
Fragments are folded into `[Unreleased]` at release by `scripts/release/assemble_changelog.py`.
Write `Fixes #N` in the PR body so the merge closes the GitHub issue.
## Version
Check `edgar/__about__.py`
## Shared agent instructions
The commands, hazards, definition of done and pull-request rules for every AI tool live in AGENTS.md. Keep them there, not here.
@AGENTS.mdSignals
- Stars
- 2,814
- Forks
- 515
- Open issues
- 89
- Contributors
- 80
- Last commit (this folder)
- Oct 16, 2026 (15 days ago)
- Last release
- Oct 23, 2026 (8 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/dgunning/edgartools
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from dgunning
- 0.810score
EdgarTools
dgunning
Open-source SEC EDGAR toolkit — 13 tools, 7 prompts, every filing type.
ConnectorAFreshness: ALocal★ 2.8K↓ 274.9K/wkClaude Code +5 - 0.618score
codebase-locator
dgunning
Subagent "codebase-locator" from dgunning/edgartools: Use this agent to find WHERE files and components live in the EdgarTools codebase.
TemplateAFreshness: A★ 2.8KClaude Code - 0.618score
codebase-pattern-finder
dgunning
Subagent "codebase-pattern-finder" from dgunning/edgartools: Use this agent to find examples of existing patterns in the EdgarTools codebase.
TemplateAFreshness: A★ 2.8KClaude Code - 0.618score
AGENTS.md · dgunning/edgartools
dgunning
AGENTS.md from dgunning/edgartools: 83 lines covering Setup and commands, Where things are, Things you cannot infer from the code, Definition of done and more.
TemplateAFreshness: A★ 2.8KCodex +5 - 0.618score
codebase-analyzer
dgunning
Subagent "codebase-analyzer" from dgunning/edgartools: Use this agent to understand HOW specific code works in the EdgarTools codebase.
TemplateAFreshness: A★ 2.8KClaude Code
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get CLAUDE.md · dgunning/edgartools running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
CLAUDE.md · dgunning/edgartools. Agent Mart. https://agentmart.dev/templates/dgunning-edgartools-claude-md (last updated 2026-10-24)