# SOLO / Combat LAB index

Last updated: 2026-09-13 UTC

Purpose: one canonical map of research labs so experiments, production logic, and conclusions are not mixed together.

## Safety boundary

All entries below are research/LAB unless explicitly marked otherwise. Research must not mutate Combat LIVE, DEMO Champion, generator formulas, or Bybit execution state.

## 1. History Fingerprint / Rolling Profile LAB

Location: `tredersolo.online/modules/history_fingerprint_lab/`

Role: causal replay, rolling-profile research, forward evidence, robustness and profile lifetime/regime experiments.

Canonical human-facing document: `docs/LAB_HISTORY_FINGERPRINT.md`. Older planning/install notes were consolidated into it and removed when superseded.

Important tools include LONG/SHORT causal replay, forward collectors, challenger builders, selectors and robustness research under `tools/`.

### LONG 24H predictive decay experiment

Tool: `modules/history_fingerprint_lab/tools/long_24h_predictive_decay_v1.php`
Report: `modules/history_fingerprint_lab/storage/rolling_profile_v1/long_24h_predictive_decay_v1.json`

Question: does a frozen LONG HSCAN 24H profile lose predictive power after creation, and at what forward horizon?

Method: each historical LONG HSCAN 24H profile is frozen at `created_ts` and evaluated causally forward over cumulative horizons 1/2/3/4/6/12/24h. Production writes are disabled.

First run: 22 LONG 24H profiles. Aggregate results:

| Horizon | Resolved | Avg traffic | Avg WR | Total PnL | Avg expectancy |
|---:|---:|---:|---:|---:|---:|
| 1h | 386 | 59.1% | 75.6% | +1405.9 | +3.64 |
| 2h | 724 | 58.3% | 76.6% | +2700.2 | +3.73 |
| 3h | 978 | 59.6% | 76.5% | +3588.7 | +3.67 |
| 4h | 1312 | 60.7% | 75.4% | +4973.6 | +3.79 |
| 6h | 1990 | 61.1% | 76.6% | +7688.0 | +3.86 |
| 12h | 3483 | 61.2% | 76.5% | +13253.0 | +3.81 |
| 24h | 4167 | 62.3% | 75.3% | +14491.1 | +3.48 |

Current conclusion: pooled 24H profiles did not show a general early collapse. Best pooled expectancy was around 6h; 24h weakened but remained positive. Therefore do not remove 24H solely from this result.

Important caveat: cumulative horizon profitability is not sufficient for a small account. A profile can suffer damaging early losses and recover later; recovery after capital damage may be operationally useless.

### Survival / Damage experiment — current direction

Primary axis: `RESOLVED_EVENTS_AND_PNL`.
Time axis: `OBSERVATION_ONLY`.

Reason: wall-clock time is highly regime/traffic dependent. One hour with almost no signals is not equivalent to one hour during a high-activity market.

Research target: determine the minimum evidence/damage needed to recognize that the current profile is temporarily mismatched to the market, without switching on every random loss.

Measure sequentially after profile creation by resolved event number:
- cumulative PnL and expectancy;
- WR / wins / losses;
- traffic and resolved evidence;
- drawdown / capital damage;
- earliest defensible degradation point;
- at that exact market state compare 12/6/4/3/2/1H alternatives.

Desired output: `damage before detection -> best contemporaneous alternative -> avoided damage -> false-switch cost`.

This is intended to support a capital-survival selector, not a wall-clock TTL selector.

### 180D confidence / LONG transition research

Frozen base: `modules/history_fingerprint_lab/storage/confidence_180d_dataset_v1/`: 475 eligible symbols, 48,836,426 causal LONG+SHORT rows over a frozen 180-day window. It is OHLCV-derived rough history, not full historical Coin Passport. Unconditional LONG +10-before--3 prior is 19.952%; +10-before--10 is 50.423%.

Traffic audit: `tools/long_180d_entry_universe_v1.php`. Legacy F4 has 30,722 states versus 101,852 for DROP3_GREEN and 301,871 for DROP3_ANY. This supports researching a broader candidate universe, but does not authorize weakening production entry by itself.

Transition audit: `tools/long_180d_transition_24h_v1.php`; report `storage/confidence_180d_dataset_v1/long_transition_24h_report.json`. Zoom discovery favored roughly 1-3h, but chronological 60/20/20 holdout (`tools/long_180d_transition_holdout_chunked_v1.php`) did not verify exact 2h as a unique winner. Grouped SKIP was then re-audited for leakage: the original `long_180d_skip_group_folds_v1.php` used folds 4-6 during rule filtering/ranking, so its claimed forward validation is exploratory only. Strict replacement `tools/long_180d_skip_frozen_holdout_v1.php` selects on folds 1-3 only and evaluates frozen rules on untouched folds 4-6. Result is mixed: top-10 fails direction in fold 4 for both -3 and -10; top-3 at -10 stays below baseline in all three holdout folds but removes only ~0.56-1.81% traffic. Status: exact 2h NOT VERIFIED; grouped SKIP PARTIALLY SUPPORTED / RESEARCH-ONLY; no production change. Next step is symbol-concentration + avoided-damage/ROI analysis and an additional later untouched/walk-forward replay.

### 180D missing-variable evidence

Tool: `modules/history_fingerprint_lab/tools/missing_variable_180d_discovery_v1.php`. Full report: `modules/history_fingerprint_lab/storage/confidence_180d_dataset_v1/missing_variable_180d_v1/report.json`. Human-readable evidence: `docs/VARIABLE_EVIDENCE_180D.md`.

The complete two-pass run scanned all 475 symbols / 24,418,213 paired market rows and evaluated 38 causal candidate encodings with TRAIN 60%, CAL 20%, and three chronological folds inside the final 20%. Market context is leave-one-coin-out; incremental effect is conditioned on all seven frozen seed features. Result: 6 ACTIVE_180D encodings, 30 PASSIVE_180D, 2 explicit DATA_MISSING. The six active encodings reduce to two non-duplicative blocks: `market_context_1h` and `price_volume_confirmation_15m`. This is research-only; no Passport, DEMO or LIVE write occurred. A later globally untouched/walk-forward replay is required before SHADOW integration.

## 2. SHADOW / Champion ranking LAB

Current historical location/reference: `lab.combatsolo.info` isolated SHADOW LAB.

Role: isolated profile ranking/Champion research using DATASET inputs while keeping active Jeffrey control separate.

Historical engine ID: `live_7ab4c9e21f6d3a8051c2e947`.
Historical source engine for Library/evidence inputs: `live_10deb15c9b45ead2ad99c7c9`.

Safety configuration: no Bybit keys, no LIVE execution, no orders, no production DATASET writes.

Ranking policy: `ROI_TRAFFIC_WR_V1`. LAB evidence is local and does not import active Jeffrey SHADOW cumulative history unless an experiment explicitly defines a read-only evidence import.

Promotion watch is research-only: it can mark WAIT_EVIDENCE / PROVISIONAL / READY_FOR_REVIEW, but production action remains NONE.

### Jeffrey 2.1.0 / new-host target

Do not preserve the old scattered-domain layout as architecture.

All research LABs should be systematized under one `SOLO Research Plane`, primarily hosted/organized through `tredersolo.online` and its research modules. `lab.combatsolo.info` is treated as a historical location/reference, not a requirement for the new topology.

Target organization:

- `SOLO / History Fingerprint LAB`
- `SOLO / SHADOW-Champion LAB`
- `SOLO / Profile/Entry research`
- `SOLO / Capital-gate research`
- future LABs as named modules under the same research plane

Each module keeps its own storage/results, but shares common conventions for datasets, manifests, experiment ids, read-only DATASET access, guarded tasks, and promotion boundaries.

A dedicated LAB subdomain may still be used for UI/inspection if convenient, but it should route to the SOLO research plane rather than represent an independently drifting architecture.

## 3. Active Jeffrey experiments are NOT LAB

Current Jeffrey selector, DEMO AUTO, operator rotation, LIVE executor and Bybit transport are operational code, not research labs. Do not use this document as authorization to mutate them.

## Migration / cleanup invariant

New-host cleanup means reorganizing the research plane, NOT deleting research history.

During migration/systematization preserve, inventory and checksum at minimum:

- research tools/code needed to reproduce an experiment;
- experiment manifests/ids and timestamps;
- source dataset/replay references;
- frozen datasets that are not practically reproducible or whose exact snapshot matters;
- reports/results and human-readable conclusions;
- caveats, failed experiments and negative results when they affect later interpretation;
- provenance linking old path/domain/engine id to the new SOLO module/archive location.

Separate `ACTIVE_RESEARCH` from `RESEARCH_ARCHIVE`, but do not silently discard old evidence because its directory/domain layout is obsolete. If duplicate artifacts are deduplicated, retain a manifest that records what was removed as a duplicate and which canonical copy/hash replaced it.

The goal is: cleaner architecture, same or better research evidence.

## Documentation rule going forward

Every new LAB experiment should be recorded here when created, with: location/tool, research question, dataset/replay basis, safety boundary, metrics, result/report path, conclusion, caveats and next experiment. Detailed experiment-specific notes may live beside the module, but this index remains the canonical map.
