بنقرة واحدة
resume
Reload checkpoint, verify worktrees, brief user. Triggered by /gse:resume.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Reload checkpoint, verify worktrees, brief user. Triggered by /gse:resume.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Deploy the current project to a Hetzner server via Coolify. Adapts to the user's situation: from zero infrastructure (solo) to a pre-configured shared server (training). Triggered by /gse:deploy.
Reload checkpoint, verify worktrees, brief user. Triggered by /gse:resume.
Deploy the current project to a Hetzner server via Coolify. Adapts to the user's situation: from zero infrastructure (solo) to a pre-configured shared server (training). Triggered by /gse:deploy.
Route capitalized solutions to their targets. Triggered by /gse:integrate after compound.
Full GSE-One orchestrator methodology — load when you need the complete invariant text, failure modes, and edge cases beyond the condensed AGENTS.md summary.
Route capitalized solutions to their targets. Triggered by /gse:integrate after compound.
| name | resume |
| description | Reload checkpoint, verify worktrees, brief user. Triggered by /gse:resume. |
Arguments: $ARGUMENTS
| Flag / Sub-command | Description |
|---|---|
| (no args) | Resume from the latest checkpoint |
--checkpoint FILE | Resume from a specific checkpoint file |
--list | List all available checkpoints |
--help | Show this command's usage summary |
Before executing, read (in priority order — load essential state first, defer the rest):
.gse/status.yaml — current state (highest priority).gse/plan.yaml — living sprint plan (if it exists) — source of workflow trajectory.gse/profile.yaml — user profile and preferences.gse/config.yaml — project configuration.gse/backlog.yaml — sprint tasks only (current sprint filter)Read status.yaml → session_paused and status.yaml → pause_checkpoint to confirm the project is in a coherent paused state before searching for a checkpoint to load. This step closes the read-side gap of the pause.md ↔ resume.md state symmetry: pause Step 3 writes session_paused: true + pause_checkpoint: checkpoint-{...}.yaml and resume Step 6 clears them, but until v0.62.2 these two fields were write-only — never consulted to drive resume behavior.
Skip conditions:
--list is specified, skip this step entirely (read-only listing has no state to validate).--checkpoint FILE is specified, this step still runs but only emits an informational note on inconsistency — it does not block the explicit override.Three coherence cases:
Coherent paused state — session_paused: true AND pause_checkpoint is non-empty AND the file .gse/checkpoints/{pause_checkpoint} exists on disk.
pause_checkpoint as the default checkpoint for Step 1 (overrides the "latest by filename" search).Inconsistent paused state — session_paused: true BUT pause_checkpoint is empty OR the named file is missing on disk.
Status marked as paused, but the named checkpoint cannot be located.
pause_checkpoint: "{value or '(empty)'}"
.gse/checkpoints/ contains: {N} file(s)
session_paused: false and pause_checkpoint: "" in status.yaml, then suggest /gse:go.Not paused — session_paused: false (or absent for pre-v0.47.8 projects).
No active pause detected (status.yaml.session_paused = false).
Last activity: {last_activity} at {last_activity_timestamp}
Available checkpoints: {N}
If --list is specified:
.gse/checkpoints/ sorted by date (newest first)If --checkpoint FILE is specified:
Otherwise:
pause_checkpoint confirmed by Step 0 case 1 if a coherent paused state was detected..gse/checkpoints/ (sorted by filename, newest first)./gse:go to start." and exit.Read the checkpoint YAML and extract: git_state.worktrees, status_snapshot, backlog_sprint_snapshot, last_task, note
Run git worktree list to get the current worktree state on disk.
For each worktree recorded in the checkpoint:
Check for external changes since the checkpoint:
git log {saved_last_commit}..HEAD --oneline
(executed within the worktree directory)
If new commits exist: mark as [CHANGED] — someone (or another session) modified this branch
If no new commits: mark as [OK] — unchanged since pause
Check for uncommitted changes: mark as [DIRTY] if any
[MISSING]git branch --list {branch_name}git worktree add {original_path} {branch_name}
git tag -l "gse-backup/sprint-{NN}-{type}-{name}-deleted"
git merge-base --is-ancestor <tag> main): report as [DELIVERED] — the work was merged and the branch cleaned up; the checkpoint is simply stale. Informational, no action needed.[LOST] with recovery available — the Step 3 Gate offers Recover from backup tag.[LOST] — manual intervention needed (spec §10.6 — Safety and Recovery).If git_state.worktrees[] is empty, verify the current branch instead, with the same grid:
git branch --show-current with git_state.current_branch — if different, note the branch switch in the report.git log {git_state.head}..HEAD --oneline → any output → [CHANGED], else [OK]. (If git_state.head is absent — checkpoint predating this field — skip this comparison with an Inform note.)git status --porcelain → any output → additionally [DIRTY] (this catches changes left uncommitted by the Pause Commit Gate option 3 or --no-commit, as well as edits made outside GSE between sessions).Display worktree verification results with symbols:
WORKTREES
[OK] .worktrees/sprint-02-feat-api — TASK-003 (unchanged)
[CHANGED] .worktrees/sprint-02-feat-auth — TASK-004 (2 new commits since pause)
[DIRTY] .worktrees/sprint-02-doc-readme — TASK-005 (uncommitted changes)
[MISSING] .worktrees/sprint-02-test-unit — TASK-006 (branch exists, propose recreate)
[DELIVERED] .worktrees/sprint-01-feat-done — TASK-001 (merged to main, cleaned up — stale checkpoint)
[LOST] .worktrees/sprint-01-feat-old — TASK-002 (branch deleted, backup tag found)
If any worktrees are [MISSING] or [LOST], present Gate:
[LOST] entries with a backup tag (spec §10.6 — Safety and Recovery): git branch {branch_name} gse-backup/sprint-{NN}-{type}-{name}-deleted, then recreate the worktree[DELIVERED] entries need no Gate — mention them in the Step 4 briefing as already merged (stale checkpoint, nothing to recover).
Present a summary of where the user left off:
SESSION RESUMED
Paused: {checkpoint_timestamp} ({relative time, e.g., "2 days ago"})
Sprint: S{NN} ({current_phase})
Last activity: {last_activity}
Last task: TASK-{ID} ({task_title})
Open the briefing with the session context: "You paused while working on {last_task}." (skip if last_task is empty).
If a note was attached to the checkpoint:
Note: "{note text}"
Sprint progress:
Tasks: {done}/{total} complete
Budget: {used}/{total} complexity points
Health: {health.score}/10
If .gse/plan.yaml exists with status: active, append a workflow trajectory block:
Next in plan: {workflow.active}
Pending: {workflow.pending}
Completed: {count} of {expected_count}
{if coherence.alerts is non-empty}:
⚠ Alerts: {list of active alerts}
This is more precise than status.yaml.last_activity alone (which says "where we were" but not "where we're going"). For beginners, translate the activity names per P9 Adaptive Communication (e.g., reqs → "writing down what the app should do", produce → "building").
Determine the next action using, in priority order:
.gse/plan.yaml.workflow.active if plan.yaml exists with status: active. The workflow's active field is the declarative source of truth for "what comes next" (see orchestrator Decision Tree). This is more reliable than inferring from last_activity.status_snapshot.last_activity if plan.yaml is absent (Micro mode or pre-v0.20 projects). Use the table below.| Checkpoint State | Proposed Action |
|---|---|
last_activity: /gse:produce, task in-progress | "Continue producing TASK-{ID}: {title}" → /gse:produce --task {ID} |
last_activity: /gse:produce, task done | "All production done. Ready for review." → /gse:review |
last_activity: /gse:review, fixes pending | "Review complete, fixes needed." → /gse:fix |
last_activity: /gse:fix | "Fixes applied. Ready for delivery." → /gse:deliver |
last_activity: /gse:deliver | "Sprint delivered. Time to capitalize." → /gse:compound |
last_activity: /gse:compound | "Capitalization done. Ready to integrate." → /gse:integrate |
last_activity: /gse:pause (nested) | Unwrap to the activity before the pause |
Present the proposal and wait for user confirmation.
status.yaml session state only:
session_paused: falsepause_checkpoint: "" (empty string — preserves schema stability vs dropping the field; readers get a well-defined absence representation)sessions_without_progress — compare current backlog.yaml TASK statuses against status.yaml → task_status_snapshot (map TASK-id → status written at the end of this step; treat an absent or empty snapshot as "first session" → reset to 0). If no TASK status has changed since the last session → increment sessions_without_progress by 1; if at least one has changed → reset to 0. Then refresh the snapshot: write the current map of {TASK-id: status} to status.yaml → task_status_snapshot. This drives the stale-sprint Gate (see /gse:go Step 4 — Stale Sprint Detection) and the coach mid_sprint_stall event trigger (feeds axes 3-4 — sprint velocity, workflow health; activates at >= 2).python3 "$([ -s .gse/registry ] && cat .gse/registry || cat ~/.gse-one)/tools/counters.py" health; if "stale": true, emit the same Inform note as /gse:go Step 4 — Stale Sprint Detection (P16 integrity counters unmoved across ≥ 5 transitions — re-check spec §P16 counting obligations).last_activity, last_activity_timestamp are maintained centrally by the orchestrator after the activity closes — see plugin/agents/gse-orchestrator.md — section "Sprint Plan Maintenance", and gse-one-implementation-design.md §10.1 — Sprint Plan Lifecycle (v0.53.0). RESUME writes no cursor fields directly.)