Save Status
Update the current task status file and keep task metadata aligned with the active machine/session.
Invocation
/save-status [task-slug]
Shared Helper
python ~/pro/botfiles/codex/skills/_shared/task_status/scripts/sync_task_metadata.py \
--status-file "<status-file>" \
--tracker-url "<tracker-url-if-any>" \
--github-issue-url "<github-issue-url-if-any>" \
--sync-github-issue
Process
Step 1: Resolve task folder
- Check
AGENTS.md task-status-root override.
- Fall back to
CLAUDE.md override.
- Default to
context/daily/YYYY-MM-DD/<task-slug>/.
- If the task is tracker-linked and a canonical task root is already known, update that canonical task folder instead of creating a same-session duplicate.
- Update the existing task folder when possible; do not create duplicates for resumed work.
Step 2: Update core status content
- Refresh
Last Updated in PST format.
- Update
User Inputs, Input Artifacts, Current State, Progress, Artifacts, and Next Steps as needed.
- Keep the
Input Artifacts section focused on user_inputs/input_artifacts/ paths and provenance notes.
- Keep the
Artifacts section focused on curated top-level outputs first; reference task-progress-artifacts/scratchpad/ items only when deeper evidence is useful.
- Preserve existing accepted-plan history.
- Keep
user_inputs/ append-only; add new notes or captured artifacts instead of overwriting prior inputs.
Step 3: Reconcile metadata block
Run:
python ~/pro/botfiles/codex/skills/_shared/task_status/scripts/sync_task_metadata.py \
--status-file "<abs-status-file-path>" \
--tracker-url "<tracker-url-if-any>" \
--github-issue-url "<github-issue-url-if-any>" \
--sync-github-issue
What this does:
- Upserts the managed tracker-aware
TASK-METADATA block in the status file.
- Updates the machine-local current-task pointer for this
{project, coding-agent, agent-session} so later get-task-details resolves this task as current.
- Recomputes primary tracker metadata, machine, coding agent/session, task paths, workspace path, zellij session/link, and compatibility fields.
- If tracker sync is enabled and dependencies exist, refreshes the live-session compatibility block on the primary tracker.
Step 4: Degraded-mode handling
If dependencies are missing:
- Missing
gh or auth failure: skip tracker sync and continue.
- Missing zellij context: use
none values.
- Missing
SYSTEM_NAME: use hostname fallback.
Step 5: Artifact hygiene
- Save generated outputs continuously under
task-progress-artifacts/ and reference them in status.
- Put raw logs, command outputs, polling snapshots, JSON dumps, intermediate screenshots, and adhoc scripts in
task-progress-artifacts/scratchpad/.
- Keep top-level
task-progress-artifacts/ reserved for curated deliverables and important evidence that should be easy to review later.
- Keep Markdown input notes under
user_inputs/.
- Capture user-provided or user-referenced files, images, and downloaded reference copies in
user_inputs/input_artifacts/.
- Maintain
user_inputs/input_artifacts/index.md when an input artifact is captured or when an external input artifact cannot be copied locally.
- In status summaries, prefer local
user_inputs/input_artifacts/... references for input context and top-level task-progress-artifacts/... references for generated outputs.
Current-task semantics
save-status is also a task switch for the current session.
- If one agent session touches multiple tasks over time, the most recently synced task becomes the session's current task.
Notes
- The full tracker-aware contract lives in
~/pro/botfiles/docs/task-status-tracker-contract.md.
- This is the checkpoint tool once the current session already owns the task.
1---2name: save-status3description: Save current task status, plan, or investigation notes to the project's task-tracking folder. Reconciles machine/zellij/tracker metadata and refreshes the current-task pointer for the active session.4---56# Save Status78Update the current task status file and keep task metadata aligned with the active machine/session.910## Invocation1112```text13/save-status [task-slug]14```1516## Shared Helper1718```bash19python ~/pro/botfiles/codex/skills/_shared/task_status/scripts/sync_task_metadata.py \20 --status-file "<status-file>" \21 --tracker-url "<tracker-url-if-any>" \22 --github-issue-url "<github-issue-url-if-any>" \23 --sync-github-issue24```2526## Process2728### Step 1: Resolve task folder291. Check `AGENTS.md` `task-status-root` override.302. Fall back to `CLAUDE.md` override.313. Default to `context/daily/YYYY-MM-DD/<task-slug>/`.324. If the task is tracker-linked and a canonical task root is already known, update that canonical task folder instead of creating a same-session duplicate.335. Update the existing task folder when possible; do not create duplicates for resumed work.3435### Step 2: Update core status content36- Refresh `Last Updated` in PST format.37- Update `User Inputs`, `Input Artifacts`, `Current State`, `Progress`, `Artifacts`, and `Next Steps` as needed.38- Keep the `Input Artifacts` section focused on `user_inputs/input_artifacts/` paths and provenance notes.39- Keep the `Artifacts` section focused on curated top-level outputs first; reference `task-progress-artifacts/scratchpad/` items only when deeper evidence is useful.40- Preserve existing accepted-plan history.41- Keep `user_inputs/` append-only; add new notes or captured artifacts instead of overwriting prior inputs.4243### Step 3: Reconcile metadata block44Run:4546```bash47python ~/pro/botfiles/codex/skills/_shared/task_status/scripts/sync_task_metadata.py \48 --status-file "<abs-status-file-path>" \49 --tracker-url "<tracker-url-if-any>" \50 --github-issue-url "<github-issue-url-if-any>" \51 --sync-github-issue52```5354What this does:55- Upserts the managed tracker-aware `TASK-METADATA` block in the status file.56- Updates the machine-local current-task pointer for this `{project, coding-agent, agent-session}` so later `get-task-details` resolves this task as current.57- Recomputes primary tracker metadata, machine, coding agent/session, task paths, workspace path, zellij session/link, and compatibility fields.58- If tracker sync is enabled and dependencies exist, refreshes the live-session compatibility block on the primary tracker.5960### Step 4: Degraded-mode handling61If dependencies are missing:62- Missing `gh` or auth failure: skip tracker sync and continue.63- Missing zellij context: use `none` values.64- Missing `SYSTEM_NAME`: use hostname fallback.6566### Step 5: Artifact hygiene67- Save generated outputs continuously under `task-progress-artifacts/` and reference them in status.68- Put raw logs, command outputs, polling snapshots, JSON dumps, intermediate screenshots, and adhoc scripts in `task-progress-artifacts/scratchpad/`.69- Keep top-level `task-progress-artifacts/` reserved for curated deliverables and important evidence that should be easy to review later.70- Keep Markdown input notes under `user_inputs/`.71- Capture user-provided or user-referenced files, images, and downloaded reference copies in `user_inputs/input_artifacts/`.72- Maintain `user_inputs/input_artifacts/index.md` when an input artifact is captured or when an external input artifact cannot be copied locally.73- In status summaries, prefer local `user_inputs/input_artifacts/...` references for input context and top-level `task-progress-artifacts/...` references for generated outputs.7475## Current-task semantics76- `save-status` is also a task switch for the current session.77- If one agent session touches multiple tasks over time, the most recently synced task becomes the session's current task.7879## Notes80- The full tracker-aware contract lives in `~/pro/botfiles/docs/task-status-tracker-contract.md`.81- This is the checkpoint tool once the current session already owns the task.