YUCLAW ingests SEC filings (Form 4, 8-K, 10-Q, 10-K, 6-K, 40-F), extracts typed evidence events with a locally hosted LLM, checks every extraction against the source text with a deterministic verifier, and combines the evidence with market context into a nine-component composite research signal. Every day’s signal set is content-hashed and committed to a public git repository (yuclaw-trust) before pages publish — so the record is tamper-evident and independently checkable.
Three design commitments define the project:
yuclaw replay-lab rebuilds the cohorts and recomputes every statistic and ledger hash from published derived data, and exits non-zero on any mismatch.What YUCLAW is not: it is not a trading system, does not connect to any broker, does not manage money, and does not produce buy/sell recommendations. The ingestion and extraction pipeline runs on the project’s own hardware (a single NVIDIA DGX-class node); as a user you consume the published, hash-anchored outputs through the CLI, SDK, REST API, MCP server, and dashboards.
Requirements: Python 3.10 or newer, pip, and an internet connection. No GPU is needed to use published signals or reproduce the Validation Lab.
Live signals for all tickers need the local backend (docs/v4/backend_setup.md); the published-data commands — replay-lab, verify, validation — work anywhere with no backend. With the backend running, yuclaw why NVDA produces output shaped like this (backend-mode output, abbreviated):
Three things to notice: the label (NEUTRAL) is a research classification of the composite score; each component’s contribution is shown with its weight; and every contributing event carries a link to the SEC document it was extracted from. If you take one habit from this guide, take this one: follow the source links. The engine is built to show its work — make it.
events, lens, export, and memo subcommands — they ship in v5.1. To use them today, run from a checkout of main: git clone https://github.com/YuClawLab/yuclaw-brain and invoke python3 -m v3.cli .... Everything else in this guide works from the pip install.The composite is a confidence-weighted sum of nine components. C6 (event impact) carries the highest single weight by design: evidence is meant to correct price-only signals, not echo them.
| # | COMPONENT | WEIGHT | # | COMPONENT | WEIGHT |
|---|---|---|---|---|---|
| C1 | Momentum | 0.12 | C6 | Event impact (evidence) | 0.18 |
| C2 | Volume * | 0.08 * | C7 | Peer correlation | 0.10 |
| C3 | Sector velocity | 0.12 | C8 | Supply-chain cascade | 0.12 |
| C4 | Macro regime | 0.15 | C9 | Model trust | 0.08 |
| C5 | Oil / rates / FX | 0.05 |
* C2 (volume confirm) currently contributes no signal — confidence-gated to zero since v3.0 pending volume-feed wiring; live composite weights effectively renormalize across the remaining eight components. Repair-vs-deprecation decision scheduled for v5.2.
The public vocabulary is fixed: STRONG_BULLISH · BULLISH · NEUTRAL · WATCH · WEAKENING · NEGATIVE_EVENT · BEARISH_WATCH · RISK_ALERT. These bucket the composite score and risk state; exact thresholds are documented in docs/methodology/backfill.md. Two facts worth knowing: extreme labels (STRONG_BULLISH, BEARISH_WATCH) are rare by construction — they require broad component agreement plus at least one material non-insider event — and there is deliberately no SELL or SHORT label: these are research classifications, not trade directions.
Signals cover a 79-name scoring universe (equities, sector ETFs, broad ETFs, macro instruments). Separately, a 49-filer Canada Resources evidence tier (XEG / ZEO / GDX / URNM constituents) is ingested and dashboarded but never scored — the boundary is machine-enforced and regression-tested. See Section 6.
| COMMAND | WHAT IT DOES |
|---|---|
| yuclaw why TICKER | Composite signal + ranked evidence with SEC source URLs. |
| yuclaw replay TICKER --date DATE | Point-in-time signal as of the end of DATE (leak-audited; uses only data available then). |
| yuclaw replay-lab | Reproduce the entire Validation Lab from the public bundle; exit 0 = exact match. |
| yuclaw validation | In-Sample Event Validation panels + forward tracking ledger. |
| yuclaw verify TICKER --date DATE | Verified Research Ledger integrity check: confirms a signal hasn’t been edited since publication. Checks record integrity and timing — not investment merit. |
| yuclaw events --ticker SU --since DATE | Accepted-events export (derived data only).* |
| yuclaw lens canada --lens XEG | Canada lens summary-card data as JSON — the same numbers the page renders.* |
| yuclaw export --lens GDX --format csv | Lens events export; --page builds the evidence packet.* |
| yuclaw memo --ticker SU --days 30 | Evidence memo — grounded, citation-checked, linted. Requires a full local deployment (Section 7).* |
| yuclaw brief | Personalized digest (uses ~/.yuclaw/profile.json). |
| yuclaw watch add TICKER | Manage your local watchlist. |
| yuclaw profile show | Show local preferences. |
* Ships in v5.1; run from a main checkout meanwhile (see the version note in Section 2). Worked examples with real output: docs/usage.md.
YUCLAW’s central claim is not that its signals are good — that is for the data to prove or disprove in public. The claim is that nothing is unverifiable. Three tools back it:
This runs from a brand-new environment with nothing but the pip install. At the v5.0.0 release it reproduced every published daily ledger root and statistic exactly from a fresh venv. A standalone stdlib script (tools/replay_lab.py) does the same with no dependencies at all.
Recomputes the signal’s hash and checks it against the git-anchored ledger in yuclaw-trust — independent confirmation that the record hasn’t been edited since publication. For any other ticker/date, clone github.com/YuClawLab/yuclaw-trust next to your working directory (the full public ledger) or connect the local backend.
Point-in-time filtering (available_as_of ≤ as_of) guarantees the replay uses only information that existed on that date. The same capability is exposed over REST (/replay) and MCP (yuclaw_replay).
If you run a reproduction, the project wants your result — pass or fail. Open a GitHub issue using the replication template (it asks for OS, Python version, command, output hash, and result). Accepted reports appear on the public Independent Replication Log. A failed reproduction is a bug report of the highest value: the verifier exiting non-zero is exactly the alarm it exists to raise.
| SURFACE | URL / HANDLE | WHAT’S ON IT |
|---|---|---|
| Live Dashboard | yuclawlab.github.io/yuclaw-brain | Current signal set, regenerated daily after U.S. close. |
| Validation Lab | .../validation_lab.html | Decile-cohort event study; bootstrap CIs, Newey–West ICs, power meter; maturity gates printed on-page. |
| Canada Resources Evidence | .../canada_resources.html | Evidence dashboards for XEG / ZEO / GDX / URNM filers; 6-K/40-F prose path. |
| Open Index Evidence | .../etf_evidence.html | Index/ETF-level evidence views. |
| Today’s Evidence Digest | .../todays_evidence.html | Daily change log: new filings, accepted events, posture changes, ledger root, replay status. |
| Independent Replication Log | .../replication.html | External reproductions of the record (honestly empty until someone submits one). |
| Telegram digest | @yuclaw_signals | Daily signal digest, 07:35 MT. |
Every page carries a freshness stamp. If the pipeline has an outage, the gap is disclosed on the page and never backfilled — a visible gap is the honest state of the record.
yuclaw memo --ticker SU --days 30 produces a short research memo in which every sentence cites an event ID that resolves to a filing excerpt. Generation uses the local LLM; verification does not: a deterministic verifier checks each citation against source text, and a linter enforces a restricted conclusion vocabulary plus the research-only footer. Memos require a full local deployment (events database + local models) — pip-only users can read the approved demo at docs/examples/evidence_memo_su.md to see the exact output shape.
yuclaw export --lens GDX --page builds an evidence packet: a zip of typed events, verified excerpts, and replay data, each carrying citation metadata (data_through, build_date, source_commit, ledger_root, methodology_version, scope_note, known_limitations) so anything you quote downstream stays traceable.
pip install yuclaw; the same signal, replay, and verify surfaces as the CLI, importable.All inference in the pipeline is local to the project’s node (Llama 3.1 70B + Gemma via one Ollama daemon) — there are no cloud LLM calls anywhere, and SEC EDGAR is the evidence layer’s only external data source.
These are stated up front on the site and repeated here because a user guide that hides them would defeat the project’s point. Full detail: docs/methodology/backfill.md.
| SYMPTOM | CAUSE & FIX |
|---|---|
| events / lens / export / memo not recognized | Pip 5.0.x predates these subcommands. Run from a main checkout: python3 -m v3.cli ... (Section 2). They ship in v5.1. |
| why TICKER says it needs a backend | Expected from a bare pip install. Run yuclaw demo or yuclaw why AMD --as-of 2026-05-20 (bundled offline signal); the published-record commands (replay-lab, verify, validation) work anywhere. Live signals for all tickers: docs/v4/backend_setup.md. |
| replay-lab exits non-zero | That is the alarm working. Re-run once (transient network), then open a GitHub issue with the replication template — a reproducible mismatch is a high-value report. |
| Dashboard looks stale | Check the freshness stamp on the page. Pages regenerate daily after U.S. market close; outages are disclosed on the Lab page, never backfilled. |
| memo fails without a database | Memos need the full local deployment (Section 7). Read the demo memo instead, or run the rest of the CLI, which works off published data. |
| Questions, bugs, ideas | GitHub issues on YuClawLab/yuclaw-brain · X: @Vincenzhang2026. |
YUCLAW User Guide · written for the v5.0 series · the repository README and docs/ are authoritative where this guide and newer releases differ.
Print this page and keep it near the terminal.