validate-output
/dm:validate-output
Purpose
Validate marketing content against expected structural schemas to ensure completeness, formatting consistency, and production-readiness. Checks required sections, word count ranges, markdown formatting compliance, placeholder text detection (unfilled template variables, lorem ipsum, TBD markers), and content-CTA consistency. Supports eight built-in schemas for common marketing content types plus custom schemas for brand-specific templates.
This command catches the structural and formatting issues that quality evaluation misses — the missing H2 that breaks SEO, the placeholder "[INSERT COMPANY NAME]" that slipped through, the blog post that is 300 words short of the brief requirement, or the email that has a CTA promising a demo but the body talks about a whitepaper. It is designed to be run as a final pre-publication check after content quality has been evaluated via /dm:eval-content.
Input Required
The user must provide (or will be prompted for):
- Content to validate: The text to check — provided inline, as a pasted block, or as a file path. Supports any marketing content format
- Schema name or file (optional): One of the eight built-in schemas —
blog_post,email,ad_copy,social_post,landing_page,press_release,content_brief,campaign_plan— or a file path to a custom JSON schema. If omitted, the validator auto-detects the most likely schema based on content structure, length, and formatting patterns. Custom schemas follow the format defined inskills/context-engine/eval-framework-guide.md
Process
- Load brand context: Read
~/.claude-marketing/brands/_active-brand.jsonfor the active slug, then load~/.claude-marketing/brands/{slug}/profile.json. Apply brand formatting standards and content requirements. Also check for guidelines at~/.claude-marketing/brands/{slug}/guidelines/_manifest.json— if present, load template definitions fromtemplates/that may define brand-specific required sections, word count ranges, and formatting rules. Check for custom schemas at~/.claude-marketing/brands/{slug}/schemas/. Check for agency SOPs at~/.claude-marketing/sops/. If no brand exists, ask: "Set up a brand first (/dm:brand-setup)?" — or proceed with defaults. - Determine schema: If a schema name or file was provided, use it directly. If not, execute
scripts/output-validator.py --action list-schemasto get all available schemas, then select the most appropriate one based on content characteristics (length, structure, formatting patterns). Report which schema was selected and why, so the user can override if the selection was wrong.
More from indranilbanerjee/digital-marketing-pro
video-script
Write video scripts. Use when: creating YouTube, TikTok, Reels, LinkedIn, demo, or explainer video content.
136paid-advertising
Plan paid advertising campaigns. Use when: managing Google Ads, Meta Ads, LinkedIn Ads, bid strategy, or budget optimization.
58pdf-report
Generate branded PDF reports. Use when: creating executive summaries, campaign reports, or client deliverables.
50reputation-management
Manage brand reputation. Use when: handling reviews, crisis comms, negative press, sentiment, or recovery plans.
42landing-page-audit
Audit landing pages. Use when: scoring above-fold clarity, trust signals, form friction, message match, or mobile UX.
39media-plan
Create a paid media plan. Use when: building media buy schedules, cross-channel budget allocation, or creative rotation calendars.
39