Continue Task
Use this when the current session needs to resume work that already has a tracked task folder, especially after a provider failure, a dead session, or a clean human handoff.
Prefer this over start-new-task when a matching tracked task already exists.
Prefer this over save-task-status when the current session first needs to
adopt a task that was last owned by another session.
Invocation
$continue-task <task slug|tracker ref|session name>
/continue-task <task slug|tracker ref|session name>
Lower-level overrides:
$continue-task --task-dir <task-dir>
$continue-task --status-file <status-file>
$continue-task --zellij-session <session-name>
Commands
Resolve and inspect the task home first:
get-cross-session-context --project-root "<project-root>" <target> --include-transcript-tail 6
Explicit overrides when needed:
get-cross-session-context --project-root "<project-root>" --task-dir "<task-dir>" --include-transcript-tail 6
get-cross-session-context --project-root "<project-root>" --status-file "<status-file>" --include-transcript-tail 6
get-cross-session-context --project-root "<project-root>" --zellij-session "<session-name>" --include-transcript-tail 6
Adopt the resolved task into the current session:
python ~/pro/botfiles/codex/skills/_shared/task_status/scripts/sync_task_metadata.py \
--status-file "<resolved-status-file>" \
--tracker-url "<resolved-tracker-url-if-any>" \
--github-issue-url "<resolved-github-issue-if-any>"
If the workflow expects the remote live-session block to move to this session,
repeat with --sync-github-issue.
Process
- Resolve the existing task home first. Target by tracker ref or task slug before using low-level overrides.
- If resolution is ambiguous, stop and surface the candidates. Do not guess.
- Read the resolved
status.mdfirst. Treat task metadata and the local status recap as the source of truth. - Use only a short transcript tail as fallback for the final pre-interruption context or when the status file is stale. Do not read the full transcript by default.
- Adopt the task into the current session by running
sync_task_metadata.pyagainst the resolved status file. This should make laterget-task-detailsandsave-task-statuscalls point at the resumed task. - When running inside Codex Desktop and
codex_app.set_thread_titleis available, rename the calling thread after adoption; omitthreadId. Use<Tracker Human ID>: <Tracker Title>, or[no ticker]: <clear natural-language title>when no tracker exists. Do not edit Codex SQLite/JSONL state or ask for a UI refresh. Outside Codex Desktop, or when the native tool is unavailable, skip the rename instead of emulating it. - If the resolved task home lives in another repo, treat that workspace path as canonical before making code changes. Do not create a duplicate task folder unless the user explicitly wants a forked task history.
- After adoption, update the status file with a brief takeover note, refreshed current state, and the next planned step.
- If no tracked task home exists, fall back to
start-new-taskinstead of fabricating resume context.
Output Expectations
- Confirm the adopted task folder, status file, tracker URL, transcript path, and canonical workspace.
- Summarize the current state, the last meaningful progress, and the next unblock or decision.
- If the user only asked to get up to speed, stop after the brief. Otherwise continue the task normally from the adopted status file.
Notes
cross-session-contextremains the read-only inspection tool.continue-taskis for actual takeover.save-task-statusremains the checkpoint tool once the current session owns the task.- If the resolved task still points at a live foreign zellij session, treat that as diagnostic context unless the user explicitly asks for cross-session messaging.