Command Center

Grant Bishop operations interface. Enter admin key to continue.

URL auto-normalizes. All actions logged.

Dashboard

Real-time operations
Loading KPIs…
Data Health
Loading…
Feed Status
Loading…
Recent Activity
Loading…
Scoreboard Snapshot
Loading…

Pending Review (v16.1b)

Articles where Arbiter passes_floor=false, or operator-seeded entries — held for operator approval before public visibility.
Loading…

Review Queue (v15 legacy)

Old v15 review path. Kept for archival; new v16.1b articles land in Pending Review above.
Loading queue…

Alerts & Notifications

Loading…

Published Articles

PIECE TYPE LEGEND (v16.1b)
mei_lin_asia_desk — Mei Lin Chen, daily 11 PM ET, ~250 words, free. Field dispatch — Asia session + patient-capital flow + sovereign-wealth positioning.
charlotte_morning_desk — Charlotte Cross, daily 10:30 AM ET, ~250 words, free. Field dispatch — morning data + the chain (data → flow → positioning) + technical tactics.
grant_position — Grant Bishop, daily 5:30 PM ET, 300-500 paid / 150-250 lite, Lite free / full Edge $99/yr. Synthesis — what today did to the standing Frame, multi-horizon read.
long_diagonal_initiation — Grant Bishop, event-driven, variable length, Edge $99/yr. Formal Scoreboard claim on a beat-and-raise compounder candidate.
sunday_house_view — Grant Bishop, weekly Sunday, 1500-3000 words, Edge $99/yr. Foundational weekly — Frame state, variables, watchpoint distance, positioning implications. (Reserved as piece_type but no spec yet.)
operator_seed (entry_point only, not a piece_type) — Operator-seeded entry into any piece_type via admin /seed endpoint. Always lands in pending_review regardless of arbiter floor.
data_notice (subtype only) — auto-published when Scout flags data_quality.no_content=true. Per-character templated string; no Writer/Arbiter call.
Loading…

Scoreboard Management

Loading…

SG Candidates

SIGINT Geometry · 6-dimension scoring · from latest Scout brief
Scored Candidates · Q · V · M · I · N · R
Loading SG candidates…
Shape Legend & Dimension Rules
NOISE (0-1) · FAINT (2) · DETECT (3) · DIAMOND (4) · LOCK (5) · CONFIRM (6)
Quality — Piotroski F ≥ 7 AND Altman Z > 2.99
Value — FCF Yield ≥ 8% OR Earnings Yield > 5% OR PEG < 1.0
Momentum — Weinstein Stage 2 (price > 200d SMA AND 50d > 200d) + positive 3M/6M return
Insider — net buys > 1.5× sells OR congressional trade < 90 days
Narrative — ≥ 60% bullish analyst consensus (min 5 ratings) AND bulls > bears
Regime — ≥ 2 of {VIX < 25, yield curve > -0.5%, F&G 30-75}

Brief Inspector

Formatted view of scout:market-brief
Loading brief…

Manual Publish (Seed)

Generate an article on demand. Uses Opus 4.6 Extended Thinking (16K budget). Arbiter runs if ticker provided.

Pipeline Log

Loading…

Cost Ledger

Last 14 days
Loading…

Public Pages

Click Re-check All to probe each route…

Each route is probed via HTTPS HEAD against grantbishop.com. Status 200 = page exists. 404 = route not deployed yet (Pages routing miss or page not yet built). Network errors mean Cloudflare or DNS is unhappy. Last-modified header shown when present.

API Health

21 probes across 8 providers. Green = last run passed. Red = failed — click the row and the error detail shows inline. Auto-refreshes every 60s when this tab is visible. "Verify Now" forces a fresh probe run before re-reading.
Loading provider health…

SG Backtest Results

Horizon 2+ / 3+ / 4+ / 5+ agreement cohorts
Pick a horizon to load cohort comparison.

Inspector

D1 · KV · R2
SQL Query (D1)
KV Browser
R2 Browser
Schema Migrate

Runs non-destructive schema additions (creates tables if missing, adds columns if missing). Uses /api/migrate.

Manual Trigger

Fire a Bot Now

Bypasses cron and KV dedup. Routes: /api/trigger/:bot

Worker Deploy

v11: The /admin/deploy endpoint now returns 410 Gone. Deploy via Cloudflare dashboard editor → Workers → grant-bishop-api. Use the validator below to check code before pasting.

Pre-Deploy Validator

Paste index.js. Validator checks critical fixes: Opus 4.6 model string, extended thinking with budget_tokens, Charlotte voice-ID typo (S vs R at position 16), KV dedup, required bot functions.

Worker Versions

Loading version history…

Settings

Emergency Controls
Pauses editorial pipeline.
HealthBot keeps running.
Halts ALL crons including
HealthBot, relay, Scout.
Public pages → 503.
Admin still works.
Loading control status…
LLM Provider Toggles
Master switch
GPT-5.4
3.1 Pro
4.1 Fast
Content Model
Proven · effort: high
16K max tokens
Latest · effort: max
64K max tokens
A/B comparison
2× batch cost
Loading model…
Arbiter Model (OpenAI)
Rollback target
proven stable
Current · GA 2026-04-23
better tool-calling
Loading arbiter model…

Flips config.openai_model. Ensemble verification stays pinned to gpt-5.4 by design — generational diversity for Final Call cross-checks.

Pipeline Mode
$10/1K searches.
Data verification.
4-model gate.
Final Calls only.
Flash alerts.
Every 15min market hrs.
Loading pipeline mode…
Configuration Values
Loading configuration…

Reset the Board

🛑 DESTRUCTIVE. Deletes all articles, scoreboard entries, notifications, pipeline log, costs, KV briefs, and R2 audio. Requires confirmation phrase AND SUPER_ADMIN_OTP secret match. Cannot be undone.

Tuning

Editable thresholds · changes take effect immediately
Doctrine
Every threshold below is read from D1 by the Worker on each cron pass. Edit a value, click Save — no Worker redeploy needed. Changes are logged to pipeline_log with the editor's identifier.

Categories: screen (SG criteria) · cadence (publish rhythm) · longshot (Gambit screen) · gate (sanity gate) · words (article length ceilings) · cron (slot times in ET).
All thresholds
Loading tuning config…

Audit Trail

Internal scoreboard · every Scout evaluation captured
Doctrine
Every overnight Scout evaluation lands here. Captures the candidate ranking, screen results, sanity-gate validation, publication status, and (for picks that publish) T+1 entry marks (VWAP + open/close average).

Defensibility-grade. At any point in the future, you can reconstruct exactly why the system said what it said about a name. No quiet deletions.
7-Day Funnel
Loading funnel…
Evaluations
Loading audit trail…

ElevenLabs Forensics

Pull /v1/history to identify what consumed audio credits · read-only · no credit cost
Action
Doctrine
Aggregations help identify the credit consumer. Look for:
By voice — voice IDs you don't recognize signal a key compromise (rotate the key immediately).
By day — concentration on dates when nothing was published signals silent retries or admin manual triggers.
Recent items — long character counts on individual calls signal chunked retries that succeeded but failed delivery.

Quota panel shows current tier, chars used / limit, and next reset window. Endpoint pulls up to 5 pages × 100 items = 500 items max with pagination ceiling.

System Snapshot

Comprehensive read-only debug dump · paste JSON to Claude for analysis
Doctrine
Single endpoint that returns everything Claude needs to evaluate system state in one shot. Replaces ad-hoc console probes and screenshots. Includes: config flags, all 31 tuning rows, articles (recent 5 with full content + arbiter scores), internal_scoreboard funnel, KV brief sample (futures, indices, sentiment), 24h costs by provider, recent pipeline errors, last 10 LLM calls, unread alerts, all API health probes, and synthesized data-quality flags.

Workflow: click Fetch & Copy JSON → paste in next Claude session → diff against tonight to see what changed.
Action
Raw JSON (expand to view)

        

Help · Route Reference

Route Convention (critical)
Public reads = /public/* — no auth. Admin-gated = /api/* — requires X-Admin-Key. Only a few deploy/inspector ops live under /admin/*.
PathMethodPurpose
/public/articlesGETPublished articles feed
/public/scoreboardGETScoreboard positions
/public/newsGETEnriched news (cached)
/public/tickerGETTicker scroll data (60s KV cache)
/public/audio/:idGETMP3 from R2
/public/alignment/:idGETWord-sync JSON
/public/subscribePOSTEmail capture
/api/queueGETPending review
/api/articles/:id/approvePOSTPublish
/api/articles/:id/rejectPOSTReject
/api/scoreboardGET/POSTScoreboard
/api/scoreboard/:idPUTUpdate result
/api/notificationsGETAlerts
/api/configGET/PUTConfig values
/api/costsGETCost ledger
/api/trigger/:botPOSTFire bot
/api/generatePOSTSeed article
/api/migratePOSTSchema add-only
/api/resetPOSTBoard reset (OTP)
/api/logGETPipeline log
/admin/db-queryPOSTInspector SQL
/admin/kv-inspectPOSTKV value
/admin/kv-listGETKV keys
/admin/r2-listGETR2 objects
/admin/deployPOSTRemoved v11 — returns 410 (use CF dashboard)
/admin/versionsGETDeploy history
/admin/rollbackPOSTRevert to version
Voice IDs (ElevenLabs eleven_v3)
CharacterVoice IDStabSim
Grant BishopOmpnmugWtOuude52M0Zb0.620.78
Charlotte CrossFluZbOk3sMJyf5S5UyPF0.700.80
Sal Russo2J6TQRRydBqUweLCzmqA0.480.75
Mei Lin ChenJTSlHBBDbMH7ER5WD0yC0.720.80

⚠ Charlotte voice ID: position 16 is S, not R. A prior typo (FluZbOk3sMJyf5R5UyPF) caused Charlotte to fail silently.

Phase 2 Metrics — No-Hallucination Health

Rolling 24h / 7d · traceability of published claims
Loading metrics…
No-Content Events (24h)
Loading…
Arbiter v3 Distribution (7d)
Loading…
Thresholds (alert when exceeded)
MetricAlert ThresholdMeaning
no_content rate per bot> 30%Writer refusing too often — data feed or prompt regression
data_notice rate> 10%Scout or upstream API degraded — feeds need attention
arbiter pending rate> 5%Articles flagged for review — prompt discipline slipping
arbiter rejects 24hlow but non-zero is healthyZero = Arbiter too permissive; many = writer hallucinating

Arbiter v3 Runs

Per-article token extraction + verification audit
Loading runs…

No-Content Events

When bots chose pass over hallucination
A non-zero no-content rate is healthy — it means writers are refusing to fabricate when data is missing. A rate above 30% for any bot means investigate Scout or the freshness policy.
Loading events…

Ensemble Verification

4-model agreement gate · every Final Call must pass
Before any Final Call reaches the Scoreboard, 4 independent LLMs (Claude Opus, GPT-5.4, Gemini 3.1 Pro, Grok 4.1 Fast) each verify the call using their own web search. 3+ must agree for the call to publish. Each model's full reasoning is logged for auditability.
Loading ensemble runs…

Brief Snapshots

Every article traces to a hashed brief · audit trail
Loading snapshots…

Arbiter v3 Test Fixtures

Three known-bad articles the verifier must catch · run before every deploy
Gate: all fixtures must pass before opening publish traffic. If any fail, revert via Settings → arbiter_version = v2.
Fixtures
  • invented_price_critical_fail — "SPY closed yesterday at $571.40" vs brief SPY=568.21. Expected: CRITICAL fail, score 0, rejected.
  • clean_article_passes — Every price matches brief within 0.5%. Expected: score ≥ 90, approved.
  • fabricated_pct_critical_fail — "Revenue growth of 27%" vs brief 19%. Expected: CRITICAL fail, rejected.