/resume
Resume a long-running DMP workflow (engagement / campaign-plan / content-engine / seo-audit / competitor-analysis / campaign-audit / launch-campaign) that was interrupted partway through
$ npx -y skills add indranilbanerjee/digital-marketing-pro --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/resume
Context preview
What this command does when you run it.
Resume a long-running DMP workflow (engagement / campaign-plan / content-engine / seo-audit / competitor-analysis / campaign-audit / launch-campaign) that was interrupted partway through
Command definition
resume.mddescription: Resume a long-running DMP workflow (engagement / campaign-plan / content-engine / seo-audit / competitor-analysis / campaign-audit / launch-campaign) that was interrupted partway through
argument-hint: "[workflow] [run-id] (both optional — omit to auto-pick latest in-progress)"
disable-model-invocation: false
Resume Interrupted Workflow
Pick up a long-running DMP workflow that stopped before the final step — instead of restarting from scratch, load the saved part outputs and continue from the next part.
Trigger
User runs `/digital-marketing-pro:resume` (with optional `workflow` and/or `run-id` arguments). Also surface this command in any error message when a workflow terminates abnormally.
What this fixes
DMP's headline workflow `/digital-marketing-pro:engagement` runs the 12-Part Strategy Flow, producing 50-60 canonical files (actual time varies by engagement depth and model). If the session terminated partway through (context-window exhaustion, network blip, the user cancels, machine sleeps), the in-memory part outputs used to be lost and the user had to restart from Part 1. The same applied to `/digital-marketing-pro:campaign-plan`, `/digital-marketing-pro:content-engine`, `/digital-marketing-pro:seo-audit`, `/digital-marketing-pro:competitor-analysis`, `/digital-marketing-pro:campaign-audit`, `/digital-marketing-pro:launch-campaign`.
Now every part of every long workflow writes its output via `checkpoint-manager.py`, so a fresh session can reload those artifacts and skip the parts that already completed. This is the direct fix for the user-team feedback that "dm pro also taking too long to process" — the workflow itself is not made faster, but a single interruption no longer means losing completed work.
Process
Step 1: Pick the run to resume
If the user supplied a `run-id`, use it directly. If they supplied only a `workflow` (e.g. `engagement` / `campaign-plan`), filter to in-progress runs of that workflow and pick the most recent. Otherwise list every in-progress run and ask the user to choose if there's ambiguity.
# Auto-pick the most recent in-progress run for the active brand
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" resume --brand "{active_brand}"
# Filter to a specific workflow
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" resume --brand "{active_brand}" --workflow engagement
# Resume a specific run id
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" resume --brand "{active_brand}" --run-id "{run_id}"
# List everything (use when there are several)
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" list --brand "{active_brand}"The `resume` action returns the status of the selected run, including `completed_steps`, `remaining_steps`, `next_step`, `next_step_label`, and the absolute path of every saved artifact.
If there are no in-progress runs, say so and offer to start a fresh workflow. Do NOT silently start a new run.
Step 2: Reload the saved artifacts
For each completed step, load the saved file via `checkpoint-manager.py load` and put its contents back into context:
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" load \
--brand "{active_brand}" --run-id "{run_id}" --step 1
# ... repeat for every step in completed_stepsUse the loaded content as the **input** to the next step that has NOT been checkpointed — do not re-execute earlier steps.
Step 3: Continue from `next_step`
For the `engagement` workflow, hand control to the agent or sub-flow that owns the next part (see the 12-Part Strategy Flow in [`README.md`](../README.md)). After that part finishes, save its output:
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" save \
--brand "{active_brand}" --run-id "{run_id}" \
--step {step_id} --content-file {tmp_output_path} --extension {md|json}Continue until every step is checkpointed, then:
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" finalize \
--brand "{active_brand}" --run-id "{run_id}" --status completedOptionally bulk-publish every artifact to the user-visible output folder:
python "${CLAUDE_PLUGIN_ROOT}/scripts/output-publisher.py" publish-run \
--brand "{active_brand}" --run-id "{run_id}"Step 4: Surface the resumption summary
Before continuing, tell the user what's being skipped vs re-run:
🔁 Resuming {workflow} run {run_id}
Topic: {topic}
Brand: {brand}
✅ Already completed (skipping): Part 1, Part 2, Part 3 (Four Core Documents)
➡️ Resuming from: Part 4 (Competitive / customer / market analysis)
📋 Remaining: 4 → 5 → 6 → 7 → 8 → 9 → 10 → 11 → 12
Remaining work: Parts 4–12 (actual time varies by engagement depth and model)Edge cases
- **Resume mid-loop.** If a part failed its quality gate and triggered a loop back to an earlier part, the checkpoint reflects whatever was last saved. The user should re-run that part's quality gate after resuming.
- **Ancient run.** If `last_updated` is more than 7 days old, warn before resuming — market data has drifted, sources may have moved. Offer to start fresh instead.
- **Multiple in-progress runs.** If there are several, list them with `list` and ask which to resume rather than guessing.
- **No saved checkpoints.** A session that never checkpointed has nothing to resume. `list` returns an empty `runs` array — tell the user no resumable runs exist and offer to start a new workflow.
Related
- [`commands/engagement.md`](engagement.md) — the headline 12-Part workflow this command resumes
- [`commands/campaign-plan.md`](campaign-plan.md), [`commands/content-engine.md`](content-engine.md), [`commands/seo-audit.md`](seo-audit.md), [`commands/competitor-analysis.md`](competitor-analysis.md) — other long workflows that benefit from checkpointing
- [`commands/output-folder.md`](output-folder.md) — reveal the user-visible `~/Documents/DigitalMarketing
Read more
description: Resume a long-running DMP workflow (engagement / campaign-plan / content-engine / seo-audit / competitor-analysis / campaign-audit / launch-campaign) that was interrupted partway through argument-hint: "[workflow] [run-id] (both optional — omit to auto-pick latest in-progress)" disable-model-invocation: false
Resume Interrupted Workflow
Pick up a long-running DMP workflow that stopped before the final step — instead of restarting from scratch, load the saved part outputs and continue from the next part.
Trigger
User runs `/digital-marketing-pro:resume` (with optional `workflow` and/or `run-id` arguments). Also surface this command in any error message when a workflow terminates abnormally.
What this fixes
DMP's headline workflow `/digital-marketing-pro:engagement` runs the 12-Part Strategy Flow, producing 50-60 canonical files (actual time varies by engagement depth and model). If the session terminated partway through (context-window exhaustion, network blip, the user cancels, machine sleeps), the in-memory part outputs used to be lost and the user had to restart from Part 1. The same applied to `/digital-marketing-pro:campaign-plan`, `/digital-marketing-pro:content-engine`, `/digital-marketing-pro:seo-audit`, `/digital-marketing-pro:competitor-analysis`, `/digital-marketing-pro:campaign-audit`, `/digital-marketing-pro:launch-campaign`.
Now every part of every long workflow writes its output via `checkpoint-manager.py`, so a fresh session can reload those artifacts and skip the parts that already completed. This is the direct fix for the user-team feedback that "dm pro also taking too long to process" — the workflow itself is not made faster, but a single interruption no longer means losing completed work.
Process
Step 1: Pick the run to resume
If the user supplied a `run-id`, use it directly. If they supplied only a `workflow` (e.g. `engagement` / `campaign-plan`), filter to in-progress runs of that workflow and pick the most recent. Otherwise list every in-progress run and ask the user to choose if there's ambiguity.
# Auto-pick the most recent in-progress run for the active brand
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" resume --brand "{active_brand}"
# Filter to a specific workflow
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" resume --brand "{active_brand}" --workflow engagement
# Resume a specific run id
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" resume --brand "{active_brand}" --run-id "{run_id}"
# List everything (use when there are several)
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" list --brand "{active_brand}"The `resume` action returns the status of the selected run, including `completed_steps`, `remaining_steps`, `next_step`, `next_step_label`, and the absolute path of every saved artifact.
If there are no in-progress runs, say so and offer to start a fresh workflow. Do NOT silently start a new run.
Step 2: Reload the saved artifacts
For each completed step, load the saved file via `checkpoint-manager.py load` and put its contents back into context:
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" load \
--brand "{active_brand}" --run-id "{run_id}" --step 1
# ... repeat for every step in completed_stepsUse the loaded content as the **input** to the next step that has NOT been checkpointed — do not re-execute earlier steps.
Step 3: Continue from `next_step`
For the `engagement` workflow, hand control to the agent or sub-flow that owns the next part (see the 12-Part Strategy Flow in [`README.md`](../README.md)). After that part finishes, save its output:
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" save \
--brand "{active_brand}" --run-id "{run_id}" \
--step {step_id} --content-file {tmp_output_path} --extension {md|json}Continue until every step is checkpointed, then:
python "${CLAUDE_PLUGIN_ROOT}/scripts/checkpoint-manager.py" finalize \
--brand "{active_brand}" --run-id "{run_id}" --status completedOptionally bulk-publish every artifact to the user-visible output folder:
python "${CLAUDE_PLUGIN_ROOT}/scripts/output-publisher.py" publish-run \
--brand "{active_brand}" --run-id "{run_id}"Step 4: Surface the resumption summary
Before continuing, tell the user what's being skipped vs re-run:
🔁 Resuming {workflow} run {run_id}
Topic: {topic}
Brand: {brand}
✅ Already completed (skipping): Part 1, Part 2, Part 3 (Four Core Documents)
➡️ Resuming from: Part 4 (Competitive / customer / market analysis)
📋 Remaining: 4 → 5 → 6 → 7 → 8 → 9 → 10 → 11 → 12
Remaining work: Parts 4–12 (actual time varies by engagement depth and model)Edge cases
- **Resume mid-loop.** If a part failed its quality gate and triggered a loop back to an earlier part, the checkpoint reflects whatever was last saved. The user should re-run that part's quality gate after resuming.
- **Ancient run.** If `last_updated` is more than 7 days old, warn before resuming — market data has drifted, sources may have moved. Offer to start fresh instead.
- **Multiple in-progress runs.** If there are several, list them with `list` and ask which to resume rather than guessing.
- **No saved checkpoints.** A session that never checkpointed has nothing to resume. `list` returns an empty `runs` array — tell the user no resumable runs exist and offer to start a new workflow.
Related
- [`commands/engagement.md`](engagement.md) — the headline 12-Part workflow this command resumes
- [`commands/campaign-plan.md`](campaign-plan.md), [`commands/content-engine.md`](content-engine.md), [`commands/seo-audit.md`](seo-audit.md), [`commands/competitor-analysis.md`](competitor-analysis.md) — other long workflows that benefit from checkpointing
- [`commands/output-folder.md`](output-folder.md) — reveal the user-visible `~/Documents/DigitalMarketing
Your agency just signed a 50-brand client. The previous agency left no playbook. Three brands are bleeding budget, two have stale positioning, one is launching in a regulated jurisdiction next month. Where do you start?
Other commands on digital-marketing-pro.
- /backlink-gap
Find domains linking to your competitors but not to you, ranked by priority score (DR + link-overlap + traffic + topical relevance) with a four-gate quality scorecard
Open command - /brand-setup
Set up a new brand profile with voice, audience, competitors, guidelines, and compliance rules
Open command - /campaign-plan
Generate a full multi-channel campaign plan with objectives, audience, channel mix, budget, timeline, and KPIs
Open command - /check
Run the unified pre-publish quality gate on marketing content (hallucination + brand voice + structure + claims). Use before publishing any marketing copy.
Open command - /competitor-analysis
Multi-dimensional competitive analysis — content, SEO, paid ads, social, AI visibility, pricing, and positioning
Open command - /content-engine
Draft blog posts, ad copy, emails, social media, landing pages, and video scripts with brand voice and SEO
Open command

