# Paper evidence supervisor hardening

Use when continuing a paper-only Hyperliquid/v76 learning run after strategy architecture is already in place and the question is evidence quality rather than new live features.

## Pattern

1. Treat `pid` existence as insufficient. A supervisor/status command should verify:
   - `/proc/<pid>` exists.
   - Command line contains the expected runtime module, e.g. `src.tools.v76_paper_runtime`.
   - Command line contains the exact `--strategy-id <expected>`.
   - Environment contains `CTB_STRATEGY_ID=<expected>`, `CTB_PAPER_TRADING=true`, and `CTB_DRY_RUN=false`.
   - Environment does **not** contain live/signed flags such as `CTB_LIVE_TRADING_ALLOWED=true`, `CTB_LIVE_ORDER_ALLOWED=true`, or `HL_MAINNET_SIGNED_ACTION=true`.

2. Status output should surface evidence freshness, not only aggregate PnL:
   - trade/signal/runtime-health journal existence, size, mtime/age, and `fresh` boolean.
   - entries, exits, open position count, open notional, open coins.
   - closed net PnL, win rate, profit factor.
   - exit reasons and recent signal blockers.
   - live-flag count from journals and `paper_only` result.

3. `ensure-running` should restart only missing/unsafe paper processes and should still fail closed on reconcile-critical or `block_new_entries` conditions. A Mainnet read-only reconcile warning without critical/block-new-entries may be reported but should not grant any live authority.

4. Report concise trading interpretation separately from implementation logs:
   - If profit factor < 1 and PnL is negative, answer `no live`.
   - Compare strategies by true lifecycle evidence and open exposure.
   - Prefer building a new paper-only challenger (e.g. swing/retest) over weakening live gates.

## Verification checklist

- Targeted tests for supervisor lifecycle metrics and live-flag detection.
- Runtime status smoke shows all expected strategies `running/env_ok/cmd_ok/paper_only=true`.
- Ensure-running smoke starts nothing when processes are already healthy.
- Full test suite.
- `py_compile` changed modules.
- Unsafe scan for `verify=False`, `ssl.CERT_NONE`, `except Exception: pass`, token-bearing remotes.
- Commit and token-safe push.
