Deep Feed handoff consumer
Purpose
Make one exact existing non-scheduled task the owner only after the dedicated
$deep-feed-work task records the owner's destination choice and sends the
compact invocation once.
Invocation contract
Require exactly:
accept <handoff-id> <revision> <route-generation> <destination-thread-id>
Reject missing or malformed values.
Verify before acknowledging
Read
CODEX_THREAD_ID; it must equal the invocation destination exactly.Fetch the canonical handoff:
deep-feed-handoff get <handoff-id> --role consumerRequire protocol version 2, the exact revision and route generation,
destinationKind: existing,routingStatus: dispatch_accepted(or an idempotent existing acknowledgment), and the exact destination task ID.Source
~/pro/botfiles/.botenvif needed, create a private temporary directory, and run:deep-feed-thread-policies --output '<temp-dir>/policies.json'Reject this task if its ID appears in the protected set, if native metadata shows an automation or heartbeat, or if non-scheduled status cannot be positively verified. Do not preempt a scheduled scan. The server enforces the same deny independently.
On hosts without a local automation directory, the helper reads the non-empty server registry. Missing local files never count as positive non-scheduled proof; verify this exact task through native metadata before acknowledging.
Only then acknowledge:
deep-feed-handoff status <handoff-id> acknowledged --role consumer \
--revision <revision> --route-generation <route-generation> \
--task-thread-id "$CODEX_THREAD_ID"
There is no hourly fallback, left_queued takeover, or Chief-of-Staff
exception.
Work and report truthfully
- Read the canonical request, constraints, evidence, and links. Do not ask the user to repaste the card.
- Mark
workingonly when investigation actually begins. - For a needed choice, record
waiting_userwith the exact question and two or three concrete options, then userequest_user_inputin the same turn. - For a concrete result, record
outcome_ready. Recordcompletedonly when the requested work and verification are complete. - Use
--result-filefor long results. - Consequential or external effects require a fresh exact preview and owner approval.
- Never resolve or hide the source card.
Examples:
deep-feed-handoff status <handoff-id> working --role consumer \
--revision <revision> --route-generation <route-generation> \
--task-thread-id "$CODEX_THREAD_ID"
deep-feed-handoff status <handoff-id> waiting_user --role consumer \
--revision <revision> --route-generation <route-generation> \
--task-thread-id "$CODEX_THREAD_ID" --result-file '<result-file>'
deep-feed-handoff status <handoff-id> outcome_ready --role consumer \
--revision <revision> --route-generation <route-generation> \
--task-thread-id "$CODEX_THREAD_ID" --result-file '<result-file>'
On conflict, refetch once and reconcile canonical state. Never retry an ambiguous cross-task send or overwrite a newer destination, generation, or outcome.