# Crypto Agent Strategy Sleeves v1

Use this pattern when continuing the user's 260629 Crypto_Agent roadmap into Phase 6 (three strategy sleeves).

## Goal

Separate strategy evidence by sleeve so one sleeve's paper performance cannot be accidentally used as live-readiness evidence for another.

## Sleeve taxonomy

- `intraday_v76_strict` — current v76 strict candidate, `paper_only`, uses true lifecycle scorecard only.
- `swing_trend_retest` — swing trend/retest sleeve, initially `research_only` until its own paper journal and scorecard exist.
- `portfolio_holding_advisor` — holding/rebalance sleeve, `advisor_only`; recommendations only, no exchange execution authority.

## Implementation pattern

1. Create a pure/read-only sleeve registry and formatter (e.g. `src/strategies/strategy_sleeves.py`).
2. Give every sleeve a stable `sleeve_id`, `strategy_id`, `horizon`, `mode`, and explicit `live_order_allowed=false` / `mainnet_signed_action=false` fields.
3. Build a `strategy_sleeves.v1` scorecard that:
   - Uses the existing lifecycle scorecard only for the intraday sleeve.
   - Marks swing as `Research` with blockers like `swing_strategy_not_implemented` until it has its own journal.
   - Marks portfolio as `Advisor` with blockers like `advisor_only_no_execution` and missing portfolio context.
   - Always returns `live_allowed=false`.
4. Add the sleeve scorecard to the daily report so operators see separated status each day.
5. Update roadmap docs/README to close Phase 6 only as a v1 separation milestone, not as a live-readiness claim.

## Verification

- Unit tests assert the three sleeves are present, horizons are distinct, and live flags are false.
- Unit tests assert intraday status is blocked when lifecycle blockers exist, while swing remains Research and portfolio remains Advisor.
- Daily-report smoke must include `Strategy Sleeves v1:` and `live=nein`.
- Full test suite and token-safe remote check before commit/push.

## Pitfall

Do not reuse v76 intraday lifecycle evidence for swing or portfolio readiness. Missing sleeve-specific evidence must be an explicit blocker, not an implicit pass.
