# Task 2026-06-07-003001-12da

## Worker Contract

```yaml
worker_contract:
  task_id: "2026-06-07-003001-12da"
  origin_thread: "THR-85 | https://app.notion.com/p/378f8b3ef83d8137be70f4c386490f61"
  objective: |
    Execute the approved overnight read-only audit sweep and return concrete
    file/line findings plus fix-scope notes for morning review.
  scope: |
    In scope: shell-level inspection, grep/cat/sqlite/code-read inside the
    local workspace and related local config paths needed to answer the four
    approved audit items. Confirm the stated breaker prerequisite from current
    local state. Excluded: any file/config/database/LaunchAgent mutation, any
    changes to THR-70 browser profile/harness/watchdog, any policy verdict on
    whether the located FailoverError is a THR-28 violation.
  constraints:
    - Read-only only. Do not edit, delete, move, or create files.
    - Keep execution cheap and shell-level. No heavy reasoning loops.
    - Do not touch the live THR-70 Phase 5 run or its browser profile, harness, or watchdog.
    - If one item is blocked or ambiguous, note it and continue the remaining items.
    - Do not write to Notion or message the user directly; return findings to main only.
  permissions:
    filesystem: read
    network: none
    notion: none
    telegram: none
    shell: full
    git: read
  model_recommendation: "gpt-5.3-codex"
  rollback_required: false
  rollback_plan: "No rollback; read-only task."
  output: |
    Return a Completion Contract with concise but specific findings for items
    1-4. For each item include relevant files, line numbers, stale strings/pins
    or code locations found, and a brief recommended fix scope. If blocked,
    identify exactly what was missing.
  done: |
    All four approved items have been inspected and reported, the breaker
    prerequisite has been checked from local state, no mutations were made, and
    the result is ready for Dorian to post back into THR-85.
```

## Completion Contract

```yaml
task_id: "2026-06-07-003001-12da"
origin_thread: "THR-85 | https://app.notion.com/p/378f8b3ef83d8137be70f4c386490f61"
status: "completed"
mutations_made: "none"
read_only_confirmed: true
breaker_prerequisite:
  checked_from_local_state: true
  path: "/Users/openclaw/.openclaw/workspace/state/breaker-paused.flag"
  result: "ABSENT"
findings:
  item_1:
    title: "P2 #57 + P3 #38 retired model pins and shared/fallback defaults"
    status: "completed"
    findings:
      - file: "/Users/openclaw/.openclaw/openclaw.json"
        lines: "118-127"
        detail: "Global shared fallback chain is present under `agents.defaults.model.fallbacks`, including `openai/gpt-5.1`, `openai/gpt-5.1-codex-max`, `openai/gpt-5.1-codex-mini`, `openai/gpt-5.2`, `openai/gpt-5.2-codex`, `openai/gpt-5.3-codex`, `openai/gpt-5.4-mini`, `openai/gpt-5-mini`."
      - file: "/Users/openclaw/.openclaw/openclaw.json"
        lines: "152-167"
        detail: "Shared model registry still includes retired entries `openai/gpt-5.2`, `openai/gpt-5.2-codex`, and `openai/gpt-5.3-codex`."
      - file: "/Users/openclaw/.openclaw/openclaw.json"
        lines: "200-218"
        detail: "Main agent is explicitly pinned to `openai/gpt-5.4`, with a per-agent `models` block containing only `openai/gpt-5.4`."
      - file: "/Users/openclaw/.openclaw/openclaw.json"
        lines: "225-238"
        detail: "Worker agent is explicitly pinned to `openai/gpt-5.4-mini`, with a per-agent `models` block containing only `openai/gpt-5.4-mini`."
      - file: "/Users/openclaw/.openclaw/openclaw.json"
        lines: "245-258, 265-278, 285-298"
        detail: "`ops-maintainer`, `research-intelligence`, and `systems-architect` are explicitly pinned to `openai/gpt-5.4-mini`."
      - file: "/Users/openclaw/.openclaw/workspace/contracts/2026-03-26/2026-03-26-094101-ri02.md"
        lines: "13"
        detail: "Historical contract artifact records `Worker model used: gpt-5.3-codex`."
      - file: "/Users/openclaw/.openclaw/workspace/contracts/2026-03-26/2026-03-26-110100-ri05.md"
        lines: "8"
        detail: "Historical contract artifact records `Worker model attempted: gpt-5.3-codex-spark`."
      - file: "/Users/openclaw/.openclaw/workspace/contracts/2026-03-26/2026-03-26-110900-ri06.md"
        lines: "8"
        detail: "Historical contract artifact records `Worker model attempted: gpt-5.3-codex-spark`."
      - file: "/Users/openclaw/.openclaw/workspace/contracts/sermon-worker-contract.yaml"
        lines: "130-133"
        detail: "Live contract artifact still recommends `openai-codex/gpt-5.3-codex` and says `gpt-5.3-codex is an appropriate default`."
      - file: "/Users/openclaw/.openclaw/workspace/AGENTS.md"
        lines: "441"
        detail: "Live workspace policy text still says worker default is `openai-codex/gpt-5.3-codex`."
      - file: "/Users/openclaw/.openclaw/workspace/OPERATING-MODE.md"
        lines: "117-119"
        detail: "Routing text still references `gpt-5.3-codex-spark` and `gpt-5.3-codex`."
      - file: "/Users/openclaw/.openclaw/workspace/ROUTING-POLICY.md"
        lines: "13-15, 21, 23-25, 30, 37-40"
        detail: "Multiple live routing references still point to `gpt-5.3-codex` and `gpt-5.3-codex-spark`."
      - file: "/Users/openclaw/.openclaw/workspace/SPECIALIST-ARCHITECTURE.md"
        lines: "21, 151, 162, 193, 195-196, 200, 206-209"
        detail: "Multiple live architecture references still point to `gpt-5.3-codex` and `gpt-5.3-codex-spark`."
  item_2:
    title: "P3 #68 literal `Priority 1/2/3/4` strings in `update_feed_from_notion.py`"
    status: "completed"
    findings:
      - file: "/Users/openclaw/.openclaw/workspace/scripts/dashboard/update_feed_from_notion.py"
        lines: "full file grep"
        detail: "No literal `Priority 1`, `Priority 2`, `Priority 3`, or `Priority 4` strings found."
      - file: "/Users/openclaw/.openclaw/workspace/scripts/dashboard/update_feed_from_notion.py"
        lines: "124-131"
        detail: "`priority_bucket(name, props)` uses `Project` field bucketing, not literal priority labels: `Triune Pools` => `0`, `Process` => `1`, else `2`."
      - file: "/Users/openclaw/.openclaw/workspace/scripts/dashboard/update_feed_from_notion.py"
        lines: "168, 178, 187-195"
        detail: "The Notion `Priority` value is read into `pri`, used as a sort key in the tuple, and combined with due-date/work-hours sort logic. No numeric priority-label mapping is hardcoded here."
  item_3:
    title: "P3 #42 nested `workspace/workspace/` clone"
    status: "completed"
    findings:
      - file: "/Users/openclaw/.openclaw/workspace/workspace"
        lines: "top level"
        detail: "Top-level child count is 31."
      - file: "/Users/openclaw/.openclaw/workspace/workspace"
        lines: "top level listing"
        detail: "Top-level entries include `.git`, `.openclaw`, `AGENTS.md`, `BOOTSTRAP.md`, `HEARTBEAT.md`, `IDENTITY.md`, `MEMORY.md`, `OPERATING-MODE.md`, `ROUTING-POLICY.md`, `SOUL.md`, `TOOLS.md`, `USER.md`, `contracts`, `docs`, `knowledge`, `memory`, `plugins`, `scripts`, `skills`, `tmp`, and dashboard/eval artifacts."
      - file: "/Users/openclaw/.openclaw/workspace/workspace/.git/config"
        lines: "1-20"
        detail: "Nested clone points at the same Git remote as the parent workspace: `git@github.com:bradenmcleish/openclaw-workspace-backup.git`."
      - file: "/Users/openclaw/.openclaw/workspace/.git/config"
        lines: "1-20"
        detail: "Parent workspace uses the same remote, supporting that `workspace/workspace` is a duplicated clone/snapshot."
      - file: "/Users/openclaw/.openclaw/workspace/workspace/BOOTSTRAP.md"
        lines: "exists"
        detail: "Nested clone still contains `BOOTSTRAP.md`, which strongly suggests it is not the actively maintained primary workspace."
      - file: "/Users/openclaw/.openclaw/workspace"
        lines: "path-reference grep"
        detail: "Live references to nested paths still exist in artifacts/history, including `workspace/workspace/docs/governance-bundle.md`, `workspace/workspace/eval-bundle`, `workspace/workspace/eval-bundle.zip`, and `workspace/workspace/tmp/rfc001-lifecycle-audit.jsonl`."
  item_4:
    title: "P3 #58b location of `gpt-image-2` FailoverError raise/handling in Ralph/worker path"
    status: "partially_blocked"
    findings:
      - file: "/Users/openclaw/.openclaw/ralph/thr-70/progress-phase4-complete-20260607-055930.jsonl"
        lines: "1378, 1380, 1382, 1384, 1386, 1392, 1394, 1396, 1398, 1400, 1402, 1404, 1408, 1410, 1412"
        detail: "Progress log preserves the exact downstream failure payload, including `GatewayClientRequestError: FailoverError` with message `The model 'gpt-image-2' does not exist.`"
      - file: "/Users/openclaw/.openclaw/ralph/thr-70/ralph-iter.py"
        lines: "204-231"
        detail: "`extract_agent_payload(stdout)` parses worker JSON output and raises `ValueError(\"unable to extract JSON payload from openclaw agent --json output\")` at line 231 when the worker result is not parseable JSON."
      - file: "/Users/openclaw/.openclaw/ralph/thr-70/ralph-iter.py"
        lines: "244-283"
        detail: "`run_agent(contract_dir, run_id, row)` invokes `openclaw agent --agent worker ... --json`."
      - file: "/Users/openclaw/.openclaw/ralph/thr-70/ralph-iter.py"
        lines: "647-676"
        detail: "Main handling path calls `extract_agent_payload(proc.stdout)` and `validate_payload(...)`; generic exceptions are caught and converted into the immediate-escalation path with `last_error = exception_payload_2A`."
      - file: "/Users/openclaw/.openclaw/ralph/thr-70/ralph-iter.py"
        lines: "663-676"
        detail: "The specific Ralph-side handling for this class of failure is the `exception_payload_2A` escalation path, not a `gpt-image-2`-specific branch."
```
