---
proposal_id: PR-2026-05-10-003
title: state.json schema bump — rocky_defaults persistence (operating_mode + comparator-detection)
target_files:
  - C:/Users/mclou/lfcs-handoff/state.json (live state)
  - C:/Users/mclou/rateright-growth-deploy/HQ-Vault/11_OpsMan_LFCS/Codebase/lfcs-orchestrator/skills/lfo-handoff-watcher/SKILL.md (schema doc)
  - C:/Users/mclou/rateright-growth-deploy/HQ-Vault/11_OpsMan_LFCS/Codebase/lfcs-orchestrator/daemon/lfo_handoff_daemon.py (validation)
authored_by: claude-code-orchestrator
created: 2026-05-10
status: proposed-pending-Rocky-review
priority: HIGHEST (top-3 leverage — eliminates Phase-1-entry batched gate)
risk_if_wrong_aud: low (procedural)
---

# Proposed change — state.json rocky_defaults persistence

## Add this block to state.json schema

```json
{
  "schema_version": 2,
  "active_bid_id": null,
  "current_phase": null,
  "rocky_gate_active": false,
  "rocky_defaults": {
    "operating_mode": "autonomous-daemon",
    "comparator_detection_policy": "auto-detect-by-filename",
    "default_lfo_terminal_paste_mode": "false",
    "preferred_format_default": "both"
  }
}
```

## Logic

`rocky_defaults` block persists across bids. On bid kickoff:

- If `state.json.rocky_defaults.operating_mode` is set → auto-apply at confidence 95% without asking
- Same for `comparator_detection_policy` — if `auto-detect-by-filename`, scan inbound for `*quote*.pdf` / `*estimate*.pdf` from sender ≠ HC and propose BCS at 75%; flag-for-Rocky on ambiguous
- If Rocky overrides per-bid, store override in session log + flag if override count ≥3 (suggests default needs change)

## Evidence

- `_Internal/orchestrator-sessions/session-d58cec3f-9794-4dbf-8976-47b8c893eaab-2627.md:23-26` — 3 questions to Rocky on bid kickoff (operating mode, comparator role, HC + programme); first two could auto-decide via persisted defaults
- All three 2627 sessions ran in `operating_mode: autonomous-daemon` — never overridden
- Workflow auditor sub-agent flagged this as gap #5 highest leverage

## Apply

1. Update `lfo-handoff-watcher/SKILL.md` schema docs to include `rocky_defaults` block
2. Update `lfo_handoff_daemon.py` to validate the new field on read; default to schema-v1 fallback if absent
3. Live state.json gets the field on next daemon-write; first-time defaults = current Rocky-confirmed values

Touchpoint reduction: −2 touchpoints per bid kickoff (2 of the 3 day-1 questions auto-decided).
