# Signal Quest Technical Masterclass Notebook — Validation Record

## Release decision

**GO for synthetic doctoral teaching use.** The notebook is fully executed, preserves all outputs, and contains no cell errors. Its results are Simulated or Illustrative; this gate does not establish measured BTC/Polymarket performance, live tradability, or order authority.

## Execution evidence

| Check | Result |
|---|---|
| Notebook | `signal-quest-technical-masterclass.ipynb` |
| Kernel | Python 3.11.15 in a clean environment installed from the checked-in requirements file |
| Cells | 39 total: 24 Markdown, 15 code |
| Executed code cells | 15 of 15 |
| Preserved outputs | 38 |
| PNG teaching figures | 10 |
| Cell errors | 0 |
| Standard-error outputs | 0 |
| Gradient-boosting path | scikit-learn 1.9.0 `GradientBoostingClassifier`; teaching fallback, not CatBoost |
| Optional Ollama/Kimi path | Disabled by default; no generated code is executed automatically |
| Authority boundary | No credentials, market-data client, order API, or autonomous execution capability |
| Environment contracts | Direct requirements plus the full `signal-quest-technical-masterclass-requirements.lock.txt` execution freeze; all 64 installed distributions are asserted exactly in the executed notebook |
| Notebook SHA-256 | `0161eb427dbcfd7d28e396a24277e70dd84ce8dea2f30a48a73a61228ff6f4b6` |
| Full lock SHA-256 | `b90299e2231cacd7fe3cf96e526d7c6e9b56f9cd27f2a1ef3afeb38853fb5f4d` |

The repository `.venv` could not run its installed SciPy/scikit-learn binaries because NumPy 2.4.6 is incompatible with binaries compiled for NumPy 1.x. That environment was not mutated. A new clean environment was installed from the checked-in full lock and used for the final execution. The notebook validates Python major/minor plus the exact name and version of every one of the 64 locked distributions, retains no interpreter path, and uses the platform temporary directory for its Matplotlib cache.

## Commands

```bash
uv venv tmp/signal-quest-masterclass-clean-venv --python 3.11
uv pip install --python tmp/signal-quest-masterclass-clean-venv/bin/python \
  -r docs/textbook/btc-polymarket-ml/labs/signal-quest-technical-masterclass-requirements.lock.txt

PATH="$PWD/tmp/signal-quest-masterclass-clean-venv/bin:$PATH" \
JUPYTER_RUNTIME_DIR="$PWD/tmp/signal-quest-clean-jupyter-runtime" \
IPYTHONDIR="$PWD/tmp/signal-quest-clean-ipython" \
tmp/signal-quest-masterclass-clean-venv/bin/python -m jupyter nbconvert \
  --to notebook --execute --inplace \
  --ExecutePreprocessor.timeout=600 \
  --ExecutePreprocessor.kernel_name=python3 \
  docs/textbook/btc-polymarket-ml/labs/signal-quest-technical-masterclass.ipynb

tmp/signal-quest-masterclass-clean-venv/bin/python -m jupyter nbconvert \
  --template classic --to html --stdout \
  docs/textbook/btc-polymarket-ml/labs/signal-quest-technical-masterclass.ipynb \
  >/dev/null
```

## Coverage and assertions

The executed audit table reports PASS for the portable 64-package locked runtime, chronological non-overlap, contract-derived purge and embargo, raw feature/label/availability support disjointness across both evaluation boundaries, complete confusion counts, finite probabilities, causal future-perturbation invariance, all four replay states, fail-closed guardian behavior, the explicit healthy, verified-containment, and failed-containment transition paths, structural absence of order capability, disabled LLM execution, and the scikit-learn gradient-boosting path.

The ten retained figures teach: the synthetic evidence stream; temporal split/purge/embargo; confusion matrix; ROC and precision-recall sweeps; calibration and probability distributions; expected-value abstention; masked-sequence learning; causal attention; cost-aware replay; and the guardian state machine. Each image output has a specific accessibility description, and the classic HTML export emits no missing-alt warning.

## Red-team findings and fixes

- **HIGH — environment mismatch and author-machine coupling:** Fixed with direct and full-lock requirement files, an executed assertion over all 64 locked distributions, a platform-neutral cache, and no retained interpreter path; the original environment remains unchanged.
- **HIGH — guardian state gap:** Fixed with an executable transition contract and audit ledger proving the complete healthy path, full verified-containment path, and failed-verification escalation path.
- **MEDIUM — temporal audit was only a split-layout check:** Fixed by constructing feature, label, and availability support intervals and asserting boundary disjointness for train-to-validation and validation-to-test.
- **MEDIUM — accessibility:** Ten generated plot outputs initially lacked alternative text in HTML export. Fixed by attaching figure-specific descriptions and validating with the classic nbconvert template.
- **MEDIUM — transport warning:** Jupyter reported unencrypted local TCP kernel transport. The run was local-only with no secrets or market connectivity; the warning does not affect numerical results but should be addressed before remote or multi-user execution.

## Residual limits

CatBoost is explained but not installed or executed. The notebook's gradient-boosting result is a scikit-learn teaching fallback and must not be relabeled CatBoost. All data are deterministic synthetic fixtures. No result supports a live market, performance, profitability, latency, fill-quality, or production-readiness claim.
