SignalQuarryGitHub

What gets published

SignalQuarry can publish a versioned PublicPerformanceSnapshotV1 for one dedicated paper deployment. The allowlist includes supported balances, sampled equity history, explicit P&L definitions, sanitized positions and fills, and freshness status. It excludes account IDs, order IDs, API keys, raw broker responses, private filesystem paths, and arbitrary metadata. Review the exact snapshot before enabling a public page; a public repository makes the configured balances and activity visible to everyone.

Paper and live feeds are separate contracts and page labels. Repo A publishes paper data only. Repo B owns its own T08 live dashboard and its publication configuration; a Repo A fork does not receive live-account functionality.

Historical study publication rights

The owner has approved publication of aggregate historical strategy analysis for four studies in site/publication-rights.json. This scope covers the published result summaries and derived research charts, but not provider price bars, input manifests, or complete run bundles. New studies require a recorded approval and evidence reference before their results appear publicly.

CI and Pages reject unapproved study and result routes, study downloads, and input manifests marked nonredistributable. Keep raw provider data and private research evidence outside the public site.

GitHub Pages

  1. Fork SignalQuarry. Main-branch changes skip automatic publication until you set ENABLE_PUBLIC_PERFORMANCE_REFRESH=true; use the explicit demo mode to bootstrap an empty site without an account feed.
  2. Enable GitHub Pages for the fork and confirm the generated site is built under the repository path, for example /your-fork/.
  3. Configure your GET-only exporter, durable snapshot storage, and restricted SSH retrieval command. Keep broker credentials on the exporter host.
  4. Add the repository Actions secrets documented in .github/workflows/pages.yml: PUBLIC_FEED_SSH_HOST, PUBLIC_FEED_SSH_USER, PUBLIC_FEED_SSH_KEY, and PUBLIC_FEED_KNOWN_HOSTS. Use a dedicated key restricted to the single validated snapshot command; do not reuse a deployment or trading key.
  5. Run the workflow in site-only mode first, then refresh after the host exporter and capture-slot store are configured. Retrieval or schema failure must leave the last published site intact.
  6. Set ENABLE_PUBLIC_PERFORMANCE_REFRESH=true only after the first fresh publication succeeds. It enables automatic main-branch site-only rebuilds; Cloudflare continues to dispatch the scheduled refresh workflow separately.

The static site build itself does not contact Alpaca. Demo builds are explicitly labeled and contain no owner account settings.

Optional Cloudflare scheduler

Cloudflare is optional. The Worker in cloudflare/signalquarry-paper-refresh/ dispatches only the repository’s serialized Pages workflow; it does not call Alpaca. Give the Worker a repository-scoped GitHub token with Actions write permission, then configure its own Durable Object and explicitly start the scheduler. Do not reuse another repository’s Worker, token, or namespace. A fork must configure its own target and credentials.

Metric limits

Broker-reported values retain broker attribution. Net dollar P&L subtracts net external contributions from the equity change when all inputs exist. Daily Modified Dietz returns are labeled as such and are not described as exact time-weighted returns. Missing inputs or invalid denominators remain unavailable; they are never replaced with zero.

Strategy showcase updates

New strategy descriptions and backtests use the repository’s content records. See Add a strategy or backtest on the showcase for the templates, source-hash checks, local preview, and publication workflow.