Stage E-PF. Stage E-P (the US edge hunt with a searcher and a blind four-model judging panel) run exactly as stage E-P runs it, except that the searcher is Fable 5.1 instead of Opus 5.5; the sweep, the four judges and every scoring rule are stage E-P's. Writes to its own edge-panel-fable/ directory, never writes stage E-P's panel history, and places no orders. Use when asked to run stage E-PF, the Fable searcher panel, or the Fable-searcher comparison of stage E-P.
Instal·la
npx skillscat add robertsben333-cmyk/claude-research/earnings-edge-panel-fable Instal·la des del registre de SkillsCat.
Stage E-PF — stage E-P with a Fable 5.1 searcher
Built 2026-10-14 on the operator's instruction: "a routine that is an exact copy from
US-panel, runs at approximately the same time, but uses Fable 5.1 as a searcher instead
of Opus". It asks one question: does the searcher model change what the panel
selects? Everything else is held fixed, so the searcher is the only variable.
This file is an overlay on an overlay: follow .claude/skills/earnings-edge-panel/SKILL.md
step by step (which itself follows .claude/skills/earnings-edge-hunt/SKILL.md), and do
differently only what the table below says. Read CLAUDE.md, then the stage E skill,
then the stage E-P skill, then come back here.
The overrides on stage E-P
| Stage E-P does | Stage E-PF does instead | Why |
|---|---|---|
writes to <RUN>/edge-panel/ |
writes to <RUN>/edge-panel-fable/, every file, E-P's layout |
Stage E-P fires two minutes earlier into <RUN>/edge-panel/. |
launches unpriced-searcher (Opus 5.5) |
launches unpriced-searcher-fable (claude-fable-5-1) |
The same definition, byte for byte below the frontmatter, generated by scripts/sync_hunter_core.py. Only the model differs. |
searcher fallback: general-purpose, model: opus |
fallback: general-purpose with .claude/agents/unpriced-searcher-fable.md's body pasted in, model: fable |
A fallback on any other model would no longer be this stage. If fable is refused too, stop: log it, publish, end. Never fall back to an Opus searcher. |
panel_score.py --run <RUN>/edge-panel |
panel_score.py --run <RUN>/edge-panel-fable --dry-run --stage E-PF |
--dry-run keeps researcher_us/analysis/panel-history.json untouched. Each judge's percentile is still read against stage E-P's live range from runs dated before today, so both stages' percentiles sit on one scale and a difference between them is the searcher's. |
stamps provenance.py stamp --market US-P |
stamps --market US-PF on <RUN>/edge-panel-fable |
Its own stage label and prompt version, us-panel-fable.vN. Never pooled with stage E-P. |
runs edge_grounded_score.py and edge_context.py on <RUN>/edge-panel |
runs both on <RUN>/edge-panel-fable |
Same steps, own directory. |
run-log headings Edge hunt (panel) — …, publish edge hunt panel: … |
Edge hunt (panel, Fable) — … and edge hunt panel fable: … |
Stages E, E-P and E-PF all append to one _run-log.md. |
| note line 1: "Opus 5.5 searchers" | "this is stage E-PF: Fable 5.1 searchers, the same blind four-model panel as stage E-P, no orders" | |
comparison line against stage E's edge-scores.json |
that line, plus one against stage E-P's <RUN>/edge-panel/edge-scores-panel.json if it exists by then: names both ranked, overlap of the selected sets, Spearman ρ between the two panel_pct_signed columns |
The second line is the one this stage exists for. If E-P has not finished, say so; do not wait. |
Everything else is stage E-P's: the same edge-sweep (its own run of it, into this
directory, so the hunted universe is chosen the same way), the sealed-baseline rules,
step 5p's packs, the same four judges (panel-judge-opus5/-opus55/-sonnet55/-fable51)
in ONE message with only the packs file and their output path, the coverage check, the
provenance panel block. Note that the fable51 judge now reads evidence its own model
family collected: record that in the note's caveats, never correct for it.
YOU PLACE NO ORDERS. No alpaca_trade.py call of any kind, not mode, not plan, notstatus. No V2 shadow ledger. Never write into <RUN>/edge/ or <RUN>/edge-panel/, and
never read their files except, at the very end, the two score files for the comparison
lines. Every --run <RUN>/edge-panel in the E-P skill becomes--run <RUN>/edge-panel-fable.
The closing chat reply starts with the verbatim output ofpython3 scripts/score_report.py --run <RUN>/edge-panel-fable --label "Stage E-PF (Fable searcher)",
then the same command on <RUN>/edge-panel with --label "Stage E-P (Opus searcher)" if
those files exist, then the panel table from panel_score.py's output. Finish withpython3 scripts/update_index.py andscripts/publish.sh "edge hunt panel fable: <what> for <YYYY-MM-DD>". It pushes to main.
Resolve
edge_resolve.py --run <RUN>/edge-panel-fable ranks the searcher's key andspearman_panel exactly as for stage E-P. Judge the stage only pooled and only against
stage E-P on the same days: one day is an anecdote, and the question is whether the
selected names differ and which set paid.
This is research, not investment advice.