Session tag — triage gate
Resolve this skill directory as SKILL_DIR. Read CLIENT.md beside this file for the installed client_id. Read GUIDE.md in the shared Session Save home for the complete behavioral contract.
- Run
python3 "$SKILL_DIR/scripts/session_save.py" doctor --client <client_id>and use the returned home. Stop unlessokis true andmigration_requiredis zero. - Run
project-list. Select one exact approved project only when the user’s intent is clear. Similar tags, filenames, repositories, and topic words are not identity proof. On ambiguity, ask from approved choices. For a genuinely new project, wait for explicit confirmation, then runproject-register --project <project> --description <description>. Name the session<Project> Topic, purpose before work-done. - Determine FINISHED, LIVE, or STALE using the guide. Default to one arc; split only when the work target changed and new assets or a day boundary exists.
- Run
begin --client <client_id> --project <project> --name <name> --slug <slug> --status open --require-registered-project [--session-id <id>] [--model <model>]. A stable host session ID is optional; never invent one. Reuse the returned record path. - Write or refresh
<record>/tag.mdusing the guide template. Preserverecord.json. Updates are in place; never create another folder manually. - Run
sync --client <client_id> --record <record> --status open --gist <concise-gist> --operation tag-writtento atomically refresh metadata and the global index. - Route FINISHED → session-summary; LIVE → session-save; STALE → archive guidance. Rename/archive only if the current client exposes that capability and the user confirms.
- Print the compact tag receipt with the client label and real record path.
For a sweep, produce _SWEEP-REVIEW.md first and wait for approval. Only sweep chat history the active client actually exposes. Never delete and never imply a cross-client chat sweep.