# Suspend

> Use this skill when the user runs /suspend or asks to pause, disable, or temporarily turn off the SDLC workflow. Disables enforcement by snapshotting governance artifacts and switching the active marker to .suspended. Requires a stated reason. Hard-blocks if workflow is not currently enabled.

- Skill: `lantisprime/suspend` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lantisprime/suspend`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lantisprime/suspend/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: lantisprime (https://skillmd.com/u/lantisprime)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/lantisprime/suspend

---


# Suspend — Pause SDLC Enforcement

Snapshot governance state, log the suspension, switch `.enabled` → `.suspended`. Six steps in order. No step may be skipped.

## Step 1 — Guard: workflow must be enabled

Check for `.claude/sdlc/.enabled`.

If absent:
```
[SDLC] Workflow is not enabled — nothing to suspend.
Run /start to enable the workflow first.
```
Stop. Do not proceed.

## Step 2 — Require a suspension reason

Prompt:
```
Reason for suspension (required): _
```

Hard-block if the response is empty, whitespace-only, or a single character. Re-prompt once:
```
A reason is required to log the suspension. Please enter a brief description: _
```

If the second response is also empty: print `[SDLC] Suspend aborted — reason is required for audit log.` and stop. Do not proceed without a reason.

## Step 3 — Show active plans and unsigned gates

Read every `.md` file in `.claude/sdlc/plans/` (exclude versioned files matching `*.v[0-9]*.md`). For each, check its corresponding gate file in `.claude/sdlc/gates/` for unsigned status (gate file absent or missing `**Signed at:**` line).

Display:
```
Active plans:
  REQ-001  add-login-page  [build gate unsigned]
  REQ-000  scope-setup     [signed — all phases complete]

Warning: REQ-001 has an unsigned build gate.
Suspending will pause enforcement. The gate remains open until you re-enable and complete it.
Proceed? [Y/n]
```

If no active plans exist, omit the plan list and just show:
```
No active plans found.
Proceed with suspension? [Y/n]
```

If the user enters `n` or `N`: print `[SDLC] Suspend aborted.` and stop.

## Step 4 — Run suspend-snapshot.sh

Call `hooks/suspend-snapshot.sh suspend` (relative to the plugin root, or absolute if `$CLAUDE_PLUGIN_ROOT` is set).

The script handles openssl availability, the gitignore check for `config/tools.local.json`, and manifest encryption. If the script exits non-zero or outputs an ERROR line, surface the error to the user and stop — do not rename the marker.

If the script prints `Suspend aborted. Workflow remains enabled.` (the openssl absent + user declined path), echo that message and stop.

## Step 5 — Log suspension window entry

Append one JSON line to `.claude/sdlc/.suspension-log.jsonl` (create the file if absent):

```json
{"event":"suspend","at":"<ISO-8601>","reason":"<reason from Step 2>","active_plans":["REQ-001","REQ-000"]}
```

Use UTC for the timestamp. `active_plans` is the list of REQ-IDs from Step 3 (all plans, not just unsigned ones).

## Step 6 — Switch marker and confirm

```bash
mv .claude/sdlc/.enabled .claude/sdlc/.suspended
```

Print:
```
[SDLC] Workflow suspended. Snapshot saved. Enforcement paused.
Suspension logged. Run /start to re-enable.
```

## What this skill must NOT do

- Do not suspend if `.enabled` is absent — never create `.suspended` without a prior `.enabled`.
- Do not skip the reason prompt, even if the user gives a task description that implies a reason.
- Do not rename the marker before the snapshot succeeds (Step 4 before Step 6).
- Do not interpret "I want to take a break" or similar as an implied reason — ask explicitly.

## Graceful degradation

- `.claude/sdlc/plans/` does not exist → treat as no active plans. Proceed with empty list in Step 5.
- `hooks/suspend-snapshot.sh` not found → surface the error; do not proceed with the marker rename. The snapshot is a required step, not optional.
- `config/tools.local.json` write fails (e.g. read-only filesystem) → surface the error; stop.

## References

- `hooks/suspend-snapshot.sh` — snapshot and verify substrate
- `docs/rfcs/opt-in-activation-suspend-resume.md` §6 — full suspend flow spec
- `skills/start/SKILL.md` — re-enable reconciliation (invoked after /start on a suspended repo)

