status · diff

git:20260524.f256a9a to git:20260526.76f1b28

4 added, 0 removed. Audit A to A.

---
name: status
description: "Show a unified status snapshot of the active brand: profile, active engagements with current part, recent insights, recent compliance violations, Python dependency mode."
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 `${CLAUDE_PLUGIN_DATA}/<brand>/` before opening files. On re-invocation mid-session, skip files already in context.
+
In v3.0 and earlier, the SessionStart hook ran `setup.py` automatically at every Claude Code session start to print a 15-line brand summary banner. v3.1 removed that hook because it fired globally across every project regardless of whether the user was doing marketing work. v3.2 introduces `/digital-marketing-pro:status` as the explicit replacement — a richer view, on demand.
## 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
1. **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.
2. **Execute the script.**
```
python ${CLAUDE_PLUGIN_ROOT}/scripts/dm-status.py [--brand <slug>] [--json] [--quiet] [--section <name>]
```
3. **Pass through the formatted output to the user.** The script does the heavy lifting; the skill is a thin orchestration layer.
4. **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 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
1. **Never modify state.** Read-only operation. Never write to brand profile, engagement state, or any persistent file.
2. **Never error silently.** If a brand profile is missing or corrupt, the script reports the specific error in the output.
3. **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.
4. **Respect CLAUDE_PLUGIN_DATA.** When the env var is set, the script reads from `$CLAUDE_PLUGIN_DATA/digital-marketing-pro/...` instead of `~/.claude-marketing/...`.
5. **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 in v3.1 and why /digital-marketing-pro:status was added in v3.2