Skip to content

vt-su-hc-content-create

Generate multilingual Markdown articles with Zendesk front matter from content proposals. Creates files in content/02-drafts/ for human review, then moves approved drafts to content/{section}/{locale}/ for sync. Supports DE, EN, NL, RO with AI-assisted drafting.

Plugin: support
Category: Other
Command: /vt-su-hc-content-create


Help Center Content Create

Generate complete Markdown articles with Zendesk front matter from structured proposals. Creates drafts in all configured locales, ready for human review before publishing.

Invocation

/vt-su-hc-content-create                              # Interactive — pick from proposals
/vt-su-hc-content-create customer-feedback.md         # From specific proposal
/vt-su-hc-content-create --all                        # Process all proposed items
/vt-su-hc-content-create --approve registrierung      # Move approved drafts to content/

Commands

Default: Create Drafts

Step 1: Load Proposal

  1. Read proposal file from content/01-proposals/
  2. Verify status: proposed in frontmatter
  3. Extract article definitions: slug, section, titles, outline, key_points
  4. If no file specified: list all proposed items, let user pick

Step 2: Resolve Section IDs

  1. Read sync/mapping.yaml to get Zendesk section IDs
  2. For each article, look up section_id from section slug
  3. If section not found: warn and ask user for the ID or skip

Step 3: Generate Articles

For each article defined in the proposal:

  1. Generate source locale (DE) first:
  2. Create content/02-drafts/{section-slug}/de/{slug}.md
  3. Write YAML front matter:
    ---
    zendesk_article_id: null
    section: {category}
    section_slug: "{section-slug}"
    section_id: {zendesk_section_id}
    locale: de
    title: "{German title}"
    position: {auto-increment within section}
    labels:
      - {category}
      - {section-slug}
    promoted: false
    draft: true
    ---
    
  4. Generate article body from outline and key_points
  5. Use clear, professional German prose
  6. Include all key_points from the proposal
  7. Format with proper Markdown (headers, lists, bold for emphasis)
  8. Keep articles focused: one topic, 200-500 words

  9. Generate translations (EN, NL, RO):

  10. For each additional locale with a title in the proposal:
    • Create content/02-drafts/{section-slug}/{locale}/{slug}.md
    • Same front matter (with locale-specific title and locale code)
    • Translate the DE content naturally (not machine-translated)
    • Adapt examples and terminology for the locale
    • EN locale code: en-us (Zendesk convention)
  11. For locales without titles (null): generate title and content from DE source

  12. Display progress:

    Creating: "Wie registriere ich mich bei VisiMatch?"
      ✓ content/02-drafts/registrierung/de/wie-registriere-ich-mich.md
      ✓ content/02-drafts/registrierung/en/wie-registriere-ich-mich.md
      ✓ content/02-drafts/registrierung/nl/wie-registriere-ich-mich.md
      ✓ content/02-drafts/registrierung/ro/wie-registriere-ich-mich.md
    

Step 4: Update Proposal Status

  1. Set status: drafted and drafted_at in proposal frontmatter
  2. Add draft_location: content/02-drafts/{section-slug}/ to frontmatter

Step 5: Summary

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Content Created
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Articles: N
Locales: DE, EN, NL, RO
Location: content/02-drafts/

Next steps:
  1. Review drafts in content/02-drafts/
  2. Edit as needed (content is in Markdown)
  3. Approve: /vt-su-hc-content-create --approve {section}
  4. Sync: npm run sync
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

--approve <section-slug> or --approve --all

Move reviewed drafts from content/02-drafts/ to content/{section}/{locale}/ for syncing.

/vt-su-hc-content-create --approve registrierung
/vt-su-hc-content-create --approve --all

Process: 1. List all files in content/02-drafts/{section-slug}/ (or all sections if --all) 2. For each file, validate front matter before moving: - section_id must be a number (not null) — required by sync.js - locale must match Zendesk format (de, en-us, nl, ro) - title must be non-empty - If validation fails: warn, skip file, report which field is missing 3. For each validated file: - Move to content/{section-slug}/{locale}/ - If file already exists in target: warn and ask (overwrite / skip / rename) 4. If proposal file exists: update status: approved, approved_at 5. Display: "Approved N articles (M skipped due to validation). Run npm run sync to push to Zendesk."

Article Quality Guidelines

Generated articles must: - Be clear and actionable — user should know what to do after reading - Use "Sie" (formal) in German, "you" in English - Include step-by-step instructions where applicable - Bold key terms and UI element names - Keep paragraphs short (3-4 sentences max) - End with a "Need help?" section pointing to support contact - NOT include placeholder text, TODOs, or filler content

Front Matter Validation

Before writing any file, validate: - section_id is a number (not null) — required for sync - locale matches Zendesk format (de, en-us, nl, ro) - title is non-empty and properly quoted - slug is ASCII-safe kebab-case

Integration

  • Input: Structured proposals from /vt-su-hc-content-propose
  • Output: Draft Markdown files in content/02-drafts/
  • Approval: --approve moves to content/{section}/{locale}/
  • Sync: npm run sync pushes approved content to Zendesk
  • Learning: After sync, use /vt-c-continuous-learning to capture domain knowledge from review changes