You are archiving the user's completed (or abandoned) plan for future reference.
To do this, follow these steps precisely:
- Read
.claude/plan-critique-config.jsonand getplansFolderpath from settings.
If the file doesn't exist or plansFolder is not set: Respond with "No plans folder configured. Run /plan:create first to set up."
- Get the Claude Code process ID by running:
echo $PPID. Store this assessionPID. - Clean up stale sessions: Scan
[plansFolder]/.sessions/for files. For each file named with a PID, check if that
process is still running via kill -0 [PID] 2>/dev/null. If the command fails (process not running), delete that session file. This is non-blocking cleanup.
- Read the current session's plan from
[plansFolder]/.sessions/[sessionPID]if it exists. Store assessionPlan. - Scan
[plansFolder]/for subdirectories (each subdirectory is a plan).
Exclude archived/ and .sessions/ folders and any files, only list plan directories. If no plan folders exist: Respond with "No plans found. Nothing to archive."
- Select the plan to archive:
- If
sessionPlanexists and matches a plan folder, auto-select it. Inform the user:
"Using current session plan: [sessionPlan]"
- Else if only one plan exists, auto-select it and inform user.
- Otherwise, ask the user to select a plan from the list.
Example: ``` Available plans:
- add-user-authentication
- refactor-database-layer
- implement-caching
Which plan would you like to archive? [1-3] ```
- Check prerequisites. If
[plansFolder]/[selected-plan]/plan.mddoes not exist or is empty:
Respond with "Nothing to archive. Plan file is missing or empty."
- Ensure
[plansFolder]/archived/exists, create it if not. - Extract metadata:
- Read
plan.mdto get the plan title (first H1 heading). If no title, use folder name. - Read
critique.mdto get keywords (if available) - Read
execution-log.mdto get execution status (if available) - Generate archive folder name using format:
YYYY-MM-DD_HH-MM-SS_[slug]/
Example: 2026-01-12_14-30-00_add-user-authentication/
- Create the archive folder at
[plansFolder]/archived/[folder-name]/ - Copy contents from
[plansFolder]/[selected-plan]/to the archive: - Include:
plan.md,execution-log.md(if exists), all other files (SQL, images, etc.) - Exclude:
critique.md,execution-state.json - Create
archive-info.mdin the archive folder using the format in
[archive-info-format.md](archive-info-format.md).
- Delete the original plan folder
[plansFolder]/[selected-plan]/entirely. - Clean up session references to the archived plan:
- Delete
[plansFolder]/.sessions/[sessionPID]if it contains the archived plan slug. - Scan all other session files and delete any that reference the archived plan (handles stale references).
- Respond with confirmation:
``` Plan archived to: [plansFolder]/archived/[folder-name]/
The original plan folder has been removed. Create a new plan with /plan:create. ```
Notes:
- Never include critique.md in the archive (only keywords are preserved in archive-info.md)
- Always include the full original plan and all supporting files
- Include execution log only if the plan was executed
- Use current timestamp for the archive folder name
- Preserve the original file structure within the archived folder
- Always delete the original plan folder after archiving
- It is valid to archive a plan that was never executed (abandoned, reference, or superseded plans).
In this case, the execution status will be NOT_EXECUTED.