Communitygithub.com

austin-starks/Public-Portfolio-Challenge

Build alternative-data custom indicators on NexusTrade (Reddit/WSB mentions, congressional disclosures, insider filings, news-flow) and wire them into a certified book as a rank/tilt/filter signal. Use when adding alt-data to a strategy, building a CustomIndicator via compute sessions, auditing lookahead safety or per-ticker coverage, or deciding whether a data series is dense enough to drive a rank. Covers the compute-session workflow, the sparse-series rule, and source recipes (see references/). Invoke with the NexusTrade MCP connected.

What is Public-Portfolio-Challenge?

Public-Portfolio-Challenge is a Claude Code agent skill that build alternative-data custom indicators on NexusTrade (Reddit/WSB mentions, congressional disclosures, insider filings, news-flow) and wire them into a certified book as a rank/tilt/filter signal. Use when adding alt-data to a strategy, building a CustomIndicator via compute sessions, auditing lookahead safety or per-ticker coverage, or deciding whether a data series is dense enough to drive a rank. Covers the compute-session workflow, the sparse-series rule, and source recipes (see references/). Invoke with the NexusTrade MCP connected.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/austin-starks/Public-Portfolio-Challenge/tree/HEAD/skills/alt-data-indicators

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Alt-Data Custom Indicators

Alt-data is a SIGNAL experiment, not a structure experiment — it may touch the rank / weighting / filtering signal only, never the options structure (see options-structure-rules). The incumbent is the bar: alt-data must EARN its way in by beating (or materially de-risking) the certified book held to the same OOS gates. "The indicator is cool" is not a result.

Build with steerable compute sessions (preferred)

Prefer compute_session_start / compute_session_exec → compute_session_promote_indicator / compute_session_end for any multi-step data build: /work persists, you observe every step, and the whole history lands in ONE promoted indicator. List and end stale sessions first (compute_session_list); send periodic execs while long work runs. Oneshot run_compute is for small, single-query jobs only. Other stack tools: dataset_to_indicator, build_signal_indicator, create_indicator, list_custom_indicators, collect_web_data, discover_sources, enrich_source, ingest_content, probe_url, sec_edgar, get_compute_status, cancel_compute_job.

Every source gets: build → point-count + coverage check → lookahead audit → value spot-check vs the primary source → log. Platform failures get the bug-protocol; after two distinct failures on a source, park it and move on — don't let one broken pipeline stall the campaign.

Never wire an unverified indicator (lessons #10/#11)

Before referencing any CustomIndicator in a strategy, confirm all four with list_custom_indicators + a source spot-check:

  1. Point count — cull 0-point corpses.
  2. Per-ticker coverage of the whole universe (all 21 names, not a sample).
  3. Freshness — the max date; a signal whose data has gone stale must NOT drive a live book.
  4. Lookahead safety — see below.

The sparse-series rule

A rank/weight expression only works with a series that is DENSE across the whole universe. A sparse / partial-coverage series (e.g. one politician's buys covering ~1 of 21 names) can only be a tilt or overlay, never a rank input — and a rank built on it will trade ZERO (degenerate wiring). Say so and deprioritize; don't force it.

Lookahead safety is non-negotiable (lesson #11)

Every alt-data point is stamped at the date the information was PUBLIC (filing / disclosure / post date), NOT the trade/event date. Congressional trades carry a STOCK Act lag of up to ~45 days — the signal must embed that lag. Audit explicitly per indicator before any backtest uses it. Cross-validate values with a second, independently-generated build when possible (a WSB-count series was verified this way — two independent builds matched exactly). A retro scrape of historical posts is fine; a sentiment model applied retroactively is fine (note it as a caveat); using deletion-survivors is a caveat to note.

Data coverage bounds the certification window

Check the source lake's max month first and treat the signal's coverage end as a hard constraint on certification windows and deployability. The walk-forward engine clips the fold calendar to the indicator's coverage, so certification comparisons must be calendar-aligned — run a base control on the variant's clipped calendar (see walk-forward-oos).

Integration shapes (choose per coverage)

#IntegrationWhereCoverage needed
S1Blend into rank — alt-signal combined with momentum ROC as the weightIndicator / SelectTop metricrankbroad (most of 21)
S2Tilt — momentum ranks; alt-data over/under-weights names with recent signalweightpartial OK
S3Entry filter — only open a name if alt-signal fired within N days / above Xconditionpartial OK (re-check cold-start breadth-audit!)
S4Confirmation overlay — alt-signal relaxes/tightens an existing gate (e.g. VIX)conditionany

Momentum stays primary, buzz is a tilt: an attention-only rank has lost badly; a log-damped attention tilt on top of momentum has won. Proven S1 anchor shape: weightIndicator = Multiply(ROC63, Plus(1, Log(base 10, Plus(1, IndicatorSimpleMovingAverage(21d, CustomIndicator))))). Grid axes worth varying: SMA window (10/21/42), tilt strength (log vs linear-capped).

Integration is hand-built, not swept (CustomIndicator isn't a sweepable type) — build a variant grid via create_portfolio_variant (deep-copy base + JSON-Pointer patch, dry_run first), label hand-set (amber), and smoke-test each with one 12-mo $25k backtest before spending on folds (zero/near-zero trades ⇒ the rank/filter isn't resolving → fix or drop). See sweep-reoptimization.

Source recipes

  • references/reddit-wsb-recipe.md — the proven Reddit Arctic lake mention-count pipeline.
  • references/congressional-disclosures.md — House Clerk PTR pipeline (all-Congress aggregate).
  • references/other-sources.md — insider Form 4, news-flow, attention; and sec_edgar scope.

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

austin-starks/Public-Portfolio-Challenge

Measure a NexusTrade options book's TRUE participation at a fixed cold-start capital base, defeating the compounded-NAV breadth illusion. Use whenever a book's headline \"holds N/21 names\" needs validating, when a live book collapses to a single name (the OSCR trap), when checking whether a SelectTop / per-name-allocation / total-budget change degraded simultaneous participation, or when a certification needs a breadth gate. Uses audit_backtest_breadth at held-fixed $25k.

austin-starks/Public-Portfolio-Challenge

The \"loudly declare\" protocol for platform, engine, or data bugs during a NexusTrade certification campaign — bugs are a first-class deliverable, not something to route around. Use whenever a NexusTrade tool errors, hangs, or returns numbers that contradict the config; whenever you're tempted to write \"probably an engine quirk\"; or when a discovered bug invalidates prior backtests and results must be quarantined. Includes the bug hand-off doc template (see references/BUG_TEMPLATE.md).

austin-starks/Public-Portfolio-Challenge

The GATED deploy + cleanup flow for a NexusTrade live book — clone the finalist, preview a delta reconcile, stage UNAPPROVED orders, verify fills. Use ONLY after the human explicitly says \"deploy + clean up\" and names a finalist. Covers the clone-before-reconcile ordering, the single-tick reconcile expectation, stale-pending-order hygiene, the signal-freshness gate, and why you can never approve orders yourself. Nothing here runs during certification.

austin-starks/Public-Portfolio-Challenge

The mandatory pre-flight contract checks (Stage S0) that must pass before trusting NexusTrade's certification engine for any strategy work. Use at the start of a bakeoff or certification campaign to prove the walk-forward engine runs end-to-end, windows don't leak, fold winners persist, and the engine doesn't fabricate values for dead/not-yet-listed names. Each check has a STOP-and-report failure mode; these runs do NOT count toward any certification minimum.

austin-starks/Public-Portfolio-Challenge

The single-touch lockbox — a final anti-overfitting holdout run once, after design freeze, on a window held out from every fold, sweep, and search. Use when finalizing a bakeoff winner before deploy, setting up the A/B/C baselines as OOS bars, or running the S1.5 gate-coherence auto-relax. Covers why looking at the lockbox twice burns it, the lockbox pass conditions, and the three baselines. The lockbox is distinct from the walk-forward OOS folds.

austin-starks/Public-Portfolio-Challenge

The hard structural constraints for the Public Portfolio Challenge momentum-LEAP options book — the spread-shape rule, the take-profit convexity-cap footgun, the affordability ladder, and the known losers not to re-test. Use whenever building or auditing an options strategy structure, checking spread-shape compliance before a certification, choosing DTE/strike rungs, or deciding whether a proposed structure change is even allowed. A violation is an automatic certification FAIL.

austin-starks/Public-Portfolio-Challenge

Orchestrate an out-of-sample certification of a NexusTrade trading strategy or live book — the master discipline behind the Public Portfolio Challenge. Use whenever you must decide PASS/FAIL on whether a portfolio holds up out of sample before deploying real money, replaying the Episode 10 runbooks, or running a \"certify my book\" / \"prove it out of sample\" / \"re-certify the fix\" task with the NexusTrade MCP connected. Pulls in walk-forward-oos, breadth-audit, sweep-reoptimization, options-structure-rules, bug-protocol, and deploy-gate.

austin-starks/Public-Portfolio-Challenge

The single entry point that executes a Public Portfolio Challenge episode or addendum runbook end-to-end, delegating each stage to the functional skills. Use when asked to run/execute/replay Episode 10, its bakeoff, or its addendum with the NexusTrade MCP connected. Reads the target runbook, pins its real artifacts (IDs, the incumbent bar), sequences the stages, and stops at the gated deploy. It orchestrates; the functional skills do the work.

austin-starks/Public-Portfolio-Challenge

Run a multi-family strategy bakeoff — the SEARCH→CERTIFY funnel that screens many candidate mechanisms down to a certified deploy winner without letting the cheap search layer issue a verdict. Use when replaying the Episode 10 bakeoff, when exploring several distinct strategy families before certifying, when deciding whether \"no deployable winner\" is even a legal conclusion, or when building the per-family certification ledger. Enforces verdict-integrity: only certification can end a campaign.

austin-starks/Public-Portfolio-Challenge

Re-optimize a NexusTrade strategy with a walk-forward SWEEP and label parameter provenance — the discipline that prevents deploying inherited knobs. Use whenever a structural change (sizing, rung depth, universe membership, DTE family, adding a rank signal) forces a re-sweep, when authoring gene_intents from get_sweep_surface, when choosing sweep over GA for a deploy cert, or when selecting the cross-fold-robust winner instead of the per-fold argmax. Invoke with the NexusTrade MCP connected.

austin-starks/Public-Portfolio-Challenge

Run and read a NexusTrade walk-forward out-of-sample study — the certification engine behind the Public Portfolio Challenge. Use when certifying a fixed portfolio (backtest_only) or re-optimizing one (sweep), when setting fold_count / anchored / validation / embargo params, when monitoring a run_walk_forward_study to completion, when reading per-fold OOS returns/Sortino/drawdown, or when a variant's fold calendar needs calendar-alignment against a base control. Invoke with the NexusTrade MCP connected.

Related Skills