{
  "schemaVersion": 1,
  "recordedAt": "2026-09-15T03:00:21Z",
  "kind": "captured-cli-dry-run",
  "label": "Recorded local dry-run · September 14, 2026, 10:59 pm ET · public Yahoo bars · simulated fills; no broker orders",
  "artifact": {
    "version": "0.7.1",
    "url": "https://stocks.aitradingcompetition.com/.netlify/functions/playbook-runner-free",
    "bytes": 156918,
    "sha256": "ca542b6ba76e9c2d5f1677965120d4b5fc9a58d9b9c4bfd01432b33631a1696d",
    "programSha256": "297ca0f2e095cf8ca90831596a9ff66dec673becbce6867b8b6568c1b9dcd8ac",
    "starterSha256": "c2bc057625436125537a6e8a62de58111af585569b3af554434ca142909f55c4",
    "releaseEvidence": "research/runner-071-release-evidence-2026-09-14.json",
    "verification": "Fresh public ZIP download and unpacked program/starter hashes match the recorded 0.7.1 release. The unchanged executable verified the starter's k1 signature. This walkthrough did not rerun the ZIP signature verifier or certify brokerage execution."
  },
  "environment": {
    "platform": "Windows",
    "node": "v24.19.0",
    "freshFolder": true,
    "configPresent": false,
    "mode": "dryrun",
    "brokerKeysUsed": false,
    "brokerOrdersSubmitted": 0,
    "paidAiCalls": 0,
    "marketData": "Public Yahoo chart bars, fetched by the downloaded executable without injected or synthetic prices."
  },
  "starter": {
    "name": "Confluence — full rulebook (3 books)",
    "frozenDemo": true,
    "signatureVerified": true,
    "signingKey": "k1",
    "exportedAt": "2026-09-14",
    "books": [
      {
        "timeframe": "15m",
        "side": "short"
      },
      {
        "timeframe": "1h",
        "side": "long"
      },
      {
        "timeframe": "4h",
        "side": "long"
      }
    ],
    "universeSymbols": 55,
    "scanSymbols": 998,
    "scanWithoutKeys": "55-symbol ladder"
  },
  "steps": [
    {
      "title": "Download and unzip",
      "instruction": "Install Node.js 20 or newer, download the free ZIP, and extract it into a fresh folder. Open a terminal there. This capture used Node v24.19.0; it did not reinstall Node.",
      "windows": "node --version",
      "macLinux": "node --version",
      "observed": "v24.19.0"
    },
    {
      "title": "Verify the bundled starter",
      "windows": ".\\start.cmd verify",
      "macLinux": "./start.sh verify",
      "excerpt": "  authentic Skill Mill export (key k1) · lab-tactical-openai · v10.20260911 · exported 2026-09-14 · live record: https://stocks.aitradingcompetition.com/#lab\n  your caps: max 8 positions · 10% of equity per position · 2% day-loss halt"
    },
    {
      "title": "Read the rulebooks",
      "windows": ".\\start.cmd describe",
      "macLinux": "./start.sh describe",
      "instruction": "describe lists the three books; verify prints each book's entry, exit and risk rules.",
      "excerpt": "    15m book: short side · v5.20260910 · last rewrite 2026-09-10\n    1h book: long side · v5.20260911 · last rewrite 2026-09-11\n    4h book: long side · v0.20260807 · last rewrite 2026-08-07\n  Not included: The scan runs on your machine with your own Alpaca keys (free IEX feed); without keys the Runner falls back to its universe ladder."
    },
    {
      "title": "Run one dry-run cycle",
      "windows": ".\\start.cmd run --once",
      "macLinux": "./start.sh run --once",
      "instruction": "In this fresh folder, with no config, the default is dryrun. This recorded cycle evaluated public bars after hours and simulated three entries. It submitted no broker orders.",
      "excerpt": "  SKIP UBER: the signal bar closed 419 min ago — too old to chase\n  ENTER ADBE @ 265.40 · $10000 · stop 257.44 target 332.66 [4h book]\n      why: rule 2/4 — rsi_recovery\n  NOTE (dry-run): fills are booked at the exact bar price with no spread, slippage or commission — a real broker fills a little worse."
    }
  ],
  "capture": {
    "command": ".\\start.cmd run --once",
    "exitCode": 0,
    "stdout": "note: using the bundled starter playbook (a frozen demo). Your purchased .playbook.json goes in this folder — the app will pick it up.\nConfluence — full rulebook (3 books)\n  full-bot bundle: 15m short, 1h long, 4h long — one position pool\n  not included: The scan runs on your machine with your own Alpaca keys (free IEX feed); without keys the Runner falls back to its universe ladder.\n  authentic Skill Mill export (key k1) · lab-tactical-openai · v10.20260911 · exported 2026-09-14 · live record: https://stocks.aitradingcompetition.com/#lab\n  mode: dryrun · Trading involves risk of loss. Nothing here is investment advice; past results do not predict future results.\n\n— 10:59 pm ET · checking 55 symbols —\n  NOTE: this bot's own limits — max 8 positions across its books, up to 3 per book, short exposure ≤ 80% of equity. Your config allows 8 positions; the pool cap is 8. Caps are only ever tightened here, never loosened.\n  scan: no Alpaca keys — using the universe ladder\n  SKIP UBER: the signal bar closed 419 min ago — too old to chase\n  ENTER ADBE @ 265.40 · $10000 · stop 257.44 target 332.66 [4h book]\n      why: rule 2/4 — rsi_recovery\n  NOTE (dry-run): fills are booked at the exact bar price with no spread, slippage or commission — a real broker fills a little worse.\n  ENTER BBWI @ 17.91 · $10000 · stop 17.37 target 24.05 [4h book]\n      why: rule 2/4 — rsi_recovery\n  ENTER QLYS @ 172.91 · $10000 · stop 167.72 target 240.45 [4h book]\n      why: rule 2/4 — rsi_recovery\n  10:59 pm ET — market closed (opens Tue 9:30 am ET) — checked 165 book-symbol pairs, 4 new signals, 3 entries, 3 open · equity $100,000 (simulated)\n",
    "statusCommand": ".\\start.cmd status",
    "statusExitCode": 0,
    "statusStdout": "equity: $100000.00 (simulated) · open 3 · closed 0 · today realized +$0.00\n  OPEN ADBE @ 265.40 stop 257.44 target 332.66 held 0 bars\n       rule 2/4 fired: rsi_recovery\n  OPEN BBWI @ 17.91 stop 17.37 target 24.05 held 0 bars\n       rule 2/4 fired: rsi_recovery\n  OPEN QLYS @ 172.91 stop 167.72 target 240.45 held 0 bars\n       rule 2/4 fired: rsi_recovery"
  },
  "decision": {
    "example": "ADBE",
    "book": "4h",
    "side": "long",
    "type": "simulated entry",
    "rule": "rsi_recovery",
    "plainEnglish": "The 4h book's RSI recovery rule fired: 14-bar RSI between 38 and 54, price up over the last 5 bars, and at least 1.2% above the prior 20-bar low.",
    "simulatedNotionalUsd": 10000,
    "entryPricePrinted": 265.4,
    "stopPricePrinted": 257.44,
    "targetPricePrinted": 332.66,
    "source": "Entry reason and prices are copied from this run; the plain-English rule is copied from the same artifact's verify output."
  },
  "limits": [
    "A one-minute tour of the workflow, not a promise that installation or a scan finishes in one minute.",
    "Actual executable output on public bars; not a synthetic replay, Alpaca paper-account trial, live broker fill, or performance proof.",
    "The market was closed during capture. Dry-run still evaluated completed bars and simulated entries; do not describe this run as waiting solely because the market was closed.",
    "Dry-run books exact bar-price fills without spread, slippage or commission. Stops and targets here are model values, not broker orders.",
    "The recorded run has three simulated open positions and zero closed trades. No return or profitability conclusion follows.",
    "No keys were supplied. The 998-stock scan was unavailable and the executable used the bundled 55-symbol ladder.",
    "Yahoo responses were not archived, so later runs can produce different signals and prices. Mac/Linux launch commands are documented by the ZIP but were not executed in this Windows capture.",
    "This is the downloaded 0.7.1 release; it is not evidence for the unshipped 0.7.2 candidate."
  ],
  "fullTranscript": "research/runner-walkthrough-2026-09-15.md"
}

