| name | status |
| description | Print a read-only status snapshot of the active brand via scripts/dm-status.py: profile summary, engagements with current part and update age, last five insights, recent compliance violations, and Python dependency mode — with --quiet, --json, --section, and --brand variants. Triggers on "/digital-marketing-pro:status", "what's my DMP status", "what brand am I on", "show engagement status", "status snapshot". Never modifies state: switching brands is /digital-marketing-pro:switch-brand, advancing engagements is /digital-marketing-pro:engagement, connector status is /digital-marketing-pro:integrations, and content checks are /digital-marketing-pro:check. |
| user-invocable | true |
| triggers | ["what's my dmp status","show plugin status","active brand status","dm status","what brand am i on","show engagement status","status snapshot","check brand context"] |
| allowed-tools | Read Bash Glob Grep |
/digital-marketing-pro:status — Unified Status Snapshot
This skill prints a complete status snapshot for the active Digital Marketing Pro brand: profile summary, all engagements with their current part and update age, recent insights, recent compliance violations, and Python dependency mode.
Context efficiency
Heavy skill. Grep before Read any referenced file, then Read only matched ranges with offset + limit. List the brand's workspace at ~/.claude-marketing/brands/{slug}/ (or $CLAUDE_PLUGIN_DATA/digital-marketing-pro/brands/{slug}/ when that env var is set) before opening files. On re-invocation mid-session, skip files already in context.
An earlier version ran a SessionStart hook that executed setup.py at every Claude Code session start to print a 15-line brand summary banner. That hook was removed because it fired globally across every project regardless of whether the user was doing marketing work. /digital-marketing-pro:status is the explicit on-demand replacement — a richer view, when you ask for it.
What it shows
The status snapshot has 5 sections:
| Section | Contents |
|---|
| Brand | Name, slug, industry (with regulated flag), business model, voice dimensions, traits, channels, languages, markets, competitors, primary goal, auto-save-insights flag |
| Engagements | All engagements for the brand with: current part, completed/in-progress/blocked counts, days since last update, pending re-run decisions, versioned doc count |
| Recent Insights | Last 5 captured insights with type, summary, days since last save |
| Recent Compliance Violations | Last 5 violations with rule, category, severity; total count in last 30 days |
| Python Dependencies | Python version, mode (knowledge-only / lite / full), available + missing packages |
Subcommands and modes
Default
/digital-marketing-pro:status
Full snapshot for the active brand. Reads from ~/.claude-marketing/brands/_active-brand.json to find the active slug.
Specific brand
/digital-marketing-pro:status --brand acme-corp
Snapshot for a named brand (does not change the active brand pointer).
Compact one-liner
/digital-marketing-pro:status --quiet
Output:
DMP STATUS | Acme Corp | engagements: 2 active / 3 total | deps: lite
JSON output
/digital-marketing-pro:status --json
Machine-readable JSON for downstream skill consumption or scripting.
Single section
/digital-marketing-pro:status --section brand
/digital-marketing-pro:status --section engagements
/digital-marketing-pro:status --section insights
/digital-marketing-pro:status --section compliance
/digital-marketing-pro:status --section deps
Print only the requested section. Useful when you only need one piece of state.
How the skill operates
-
Resolve target brand. If --brand provided, use it. Otherwise read ~/.claude-marketing/brands/_active-brand.json for the active slug. If no active brand, instruct the user to run /digital-marketing-pro:brand-setup first.
-
Execute the script.
python ${CLAUDE_PLUGIN_ROOT}/scripts/dm-status.py [--brand <slug>] [--json] [--quiet] [--section <name>]
-
Pass through the formatted output to the user. The script does the heavy lifting; the skill is a thin orchestration layer.
-
For JSON output, parse and surface key health indicators in the response (e.g., highlight engagements that have not been updated in 14+ days, or that have pending re-run decisions awaiting action).
Examples
Example 1: Default snapshot
User: /digital-marketing-pro:status
Skill runs: python "${CLAUDE_PLUGIN_ROOT}/scripts/dm-status.py"
Output:
============================================================
DIGITAL MARKETING PRO — STATUS SNAPSHOT
Generated: 2026-05-03T08:30:00Z
============================================================
BRAND
------------------------------------------------------------
Name: Acme Corp (acme-corp)
Tagline: Build better, ship faster
Industry: B2B SaaS (regulated: no)
Model: B2B_SaaS | Revenue: subscription
Voice: Formality 6/10 | Energy 7/10 | Humor 4/10 | Authority 8/10
Traits: confident, precise, technical
Channels: linkedin, google_search, email
Primary: linkedin
Languages: en (+ es, fr)
Markets: 3 configured
Competitors: CompetitorX, CompetitorY, CompetitorZ
Primary goal: Grow MRR by 40% in Q2
Auto-save: insights = enabled
ENGAGEMENTS
------------------------------------------------------------
2026-q2
Part 9: Channel Strategy Fan-out
Completed: 8 / 12 | In progress: 9
Updated 2d ago | 2 doc(s) versioned
2026-rebrand
Part 5: Client Validation Document
Completed: 4 / 12 | Awaiting input: 5
Updated 14d ago | 1 pending re-run decision(s)
RECENT INSIGHTS
------------------------------------------------------------
Total: 23 insights
Last saved: 1d ago
· [session_learning] LinkedIn Document Ads outperform Sponsored Content...
· [campaign_outcome] Q1 retargeting CPL dropped 30% after creative refresh
· [audience_finding] Tier-2 city audience converts 2x at lower CPL
· [competitive] CompetitorX launched freemium tier on 2026-04-15
· [voice_drift] Recent blog posts trending more formal than profile target
RECENT COMPLIANCE VIOLATIONS
------------------------------------------------------------
Total: 4 | Last 30 days: 1
· [warning] missing_unsubscribe (email)
· [info] superlative_unsubstantiated (ad_copy)
...
PYTHON DEPENDENCIES
------------------------------------------------------------
Python: 3.11.9
Mode: full
Available: nltk, textstat, requests, beautifulsoup4, qrcode, Pillow
============================================================
Tip: /digital-marketing-pro:status --json for machine-readable output
Tip: /digital-marketing-pro:status --quiet for one-line summary
============================================================
Skill highlights:
- 2026-rebrand has a pending re-run decision awaiting action
- 2026-rebrand has not been updated in 14d — recommend a status check
Example 2: Quick check during a session
User: /digital-marketing-pro:status --quiet
Output: DMP STATUS | Acme Corp | engagements: 2 active / 2 total | deps: full
Example 3: JSON for scripting
User: /digital-marketing-pro:status --json
Output: {valid JSON snapshot — pipeable to jq, parseable by other skills}
Example 4: When no brand is set up
User: /digital-marketing-pro:status
Output:
No active brand found.
Pass --brand <slug> explicitly, or run /digital-marketing-pro:brand-setup to create one.
Workspace: ~/.claude-marketing # or $CLAUDE_PLUGIN_DATA/digital-marketing-pro if set
Behaviour rules
- Never modify state. Read-only operation. Never write to brand profile, engagement state, or any persistent file.
- Never error silently. If a brand profile is missing or corrupt, the script reports the specific error in the output.
- Surface health indicators after the snapshot. If JSON output is requested or if the skill is parsing for downstream use, highlight: engagements with no update in 14+ days, pending re-run decisions, recent compliance violations, missing Python deps.
- Respect CLAUDE_PLUGIN_DATA. When the env var is set, the script reads from
$CLAUDE_PLUGIN_DATA/digital-marketing-pro/... instead of ~/.claude-marketing/....
- Fast. The script reads only state files; never invokes other scripts; never makes network calls.
What this skill does NOT do
- Does not modify brand profile, engagement state, or any persistent file
- Does not save insights, compliance violations, or any data
- Does not trigger eval scripts (use
/digital-marketing-pro:check for that)
- Does not advance engagement parts (use
/digital-marketing-pro:engagement next for that)
- Does not switch active brand (use
/digital-marketing-pro:switch-brand for that)
Related skills + commands
/digital-marketing-pro:brand-setup — create or update a brand profile
/digital-marketing-pro:switch-brand — change the active brand
/digital-marketing-pro:engagement status — engagement-specific deep status
/digital-marketing-pro:check — pre-publish quality gate on content
/digital-marketing-pro:integrations — connector status (separate from /digital-marketing-pro:status)
Related references
scripts/dm-status.py — the underlying script
docs/getting-started.md — context on what was lost when the SessionStart hook was removed and why /digital-marketing-pro:status replaced it