Skopaq Content Creation
Create blog posts and changelog entries for the Skopaq public website. All content lives as MDX files in the Next.js dashboard, version-controlled in git, deployed via Vercel.
Content Locations
dashboard/content/blog/{YYYY-MM-DD}-{slug}.mdx # Blog posts
dashboard/content/changelog/{YYYY-MM-DD}-{slug}.mdx # Changelog entries
Workflow
1. Determine Content Type
| Type |
Category |
When |
| Technical deep dive |
engineering |
Architecture decisions, methodology, how-we-built-it |
| Reliability report |
benchmarks |
Agent performance data, CLEAR scorecards, comparisons |
| Product update |
changelog |
New features, improvements, fixes |
| Customer story |
case-study |
Real-world outcomes, success metrics |
2. Create MDX File
Every file requires complete frontmatter. Refer to references/frontmatter-template.md for the full template and field descriptions.
Critical rules:
slug must match the filename (minus date prefix and .mdx)
date must be ISO 8601 format (YYYY-MM-DD)
category must be one of: engineering, benchmarks, changelog, case-study
readingTime is estimated at ~250 words per minute
coverImage path starts with /blog/ and the image must exist in dashboard/public/blog/
author.avatar defaults to /icons/skopaq-logo.svg
3. Write Content Body
Voice and tone:
- Write in first-person plural ("we") for Skopaq Engineering posts
- Technical but accessible — assume the reader is a software engineer, not an AI specialist
- Lead with the outcome/result, then explain how
- Include real data — never use placeholder metrics
Structure for blog posts:
- Opening hook (1-2 sentences with the key finding or announcement)
- Context (why this matters)
- Technical content (methodology, implementation, results)
- Conclusion with forward-looking statement
Structure for changelog entries:
- Version/date heading
- Grouped by: Added, Changed, Fixed, Removed
- Each item: one-line summary + optional detail paragraph
4. Use Custom MDX Components
Available components (defined in dashboard/components/blog/mdx-components.tsx):
| Component |
Usage |
<Callout type="info|warning|tip"> |
Highlighted callout boxes |
<BenchmarkTable data={[...]} /> |
Agent performance data tables |
Standard markdown elements (h1-h3, links, code blocks, tables, images) are styled automatically via the prose typography plugin.
5. Quality Checklist
Before committing any content:
6. Verify Build
After creating content, always run:
cd dashboard && npm run build
This catches MDX parsing errors, missing imports, and broken frontmatter.
Additional Resources
Reference Files
references/frontmatter-template.md — Complete frontmatter template with field descriptions and examples for both blog posts and changelog entries
Naming Conventions
| Item |
Pattern |
Example |
| Blog filename |
{YYYY-MM-DD}-{slug}.mdx |
2026-02-19-agent-reliability-benchmarks.mdx |
| Changelog filename |
{YYYY-MM-DD}-{slug}.mdx |
2026-02-19-v1.mdx |
| Cover image |
/blog/{slug}-cover.png |
/blog/agent-reliability-benchmarks-cover.png |
| Tags |
lowercase, hyphenated |
self-healing, clear-framework |
1---2name: content-creation3description: This skill should be used when the user asks to "write a blog post", "create a changelog entry", "add content to the blog", "publish an update", "write about benchmarks", "create a case study", or mentions creating MDX content for the Skopaq blog or changelog. Provides the full workflow, frontmatter template, quality checklist, and writing standards.4---56# Skopaq Content Creation78Create blog posts and changelog entries for the Skopaq public website. All content lives as MDX files in the Next.js dashboard, version-controlled in git, deployed via Vercel.910## Content Locations1112```13dashboard/content/blog/{YYYY-MM-DD}-{slug}.mdx # Blog posts14dashboard/content/changelog/{YYYY-MM-DD}-{slug}.mdx # Changelog entries15```1617## Workflow1819### 1. Determine Content Type2021| Type | Category | When |22|------|----------|------|23| Technical deep dive | `engineering` | Architecture decisions, methodology, how-we-built-it |24| Reliability report | `benchmarks` | Agent performance data, CLEAR scorecards, comparisons |25| Product update | `changelog` | New features, improvements, fixes |26| Customer story | `case-study` | Real-world outcomes, success metrics |2728### 2. Create MDX File2930Every file requires complete frontmatter. Refer to `references/frontmatter-template.md` for the full template and field descriptions.3132**Critical rules:**33- `slug` must match the filename (minus date prefix and `.mdx`)34- `date` must be ISO 8601 format (`YYYY-MM-DD`)35- `category` must be one of: `engineering`, `benchmarks`, `changelog`, `case-study`36- `readingTime` is estimated at ~250 words per minute37- `coverImage` path starts with `/blog/` and the image must exist in `dashboard/public/blog/`38- `author.avatar` defaults to `/icons/skopaq-logo.svg`3940### 3. Write Content Body4142**Voice and tone:**43- Write in first-person plural ("we") for Skopaq Engineering posts44- Technical but accessible — assume the reader is a software engineer, not an AI specialist45- Lead with the outcome/result, then explain how46- Include real data — never use placeholder metrics4748**Structure for blog posts:**491. Opening hook (1-2 sentences with the key finding or announcement)502. Context (why this matters)513. Technical content (methodology, implementation, results)524. Conclusion with forward-looking statement5354**Structure for changelog entries:**551. Version/date heading562. Grouped by: Added, Changed, Fixed, Removed573. Each item: one-line summary + optional detail paragraph5859### 4. Use Custom MDX Components6061Available components (defined in `dashboard/components/blog/mdx-components.tsx`):6263| Component | Usage |64|-----------|-------|65| `<Callout type="info\|warning\|tip">` | Highlighted callout boxes |66| `<BenchmarkTable data={[...]} />` | Agent performance data tables |6768Standard markdown elements (h1-h3, links, code blocks, tables, images) are styled automatically via the prose typography plugin.6970### 5. Quality Checklist7172Before committing any content:7374- [ ] Frontmatter is complete (all required fields present)75- [ ] `slug` matches filename76- [ ] `category` is one of the 4 valid values77- [ ] `excerpt` is under 160 characters (SEO meta description length)78- [ ] `readingTime` is calculated (word count / 250, rounded up)79- [ ] No placeholder data — all metrics, dates, and claims are real80- [ ] Cover image exists at the specified path (or `coverImage` is omitted)81- [ ] Code blocks have language annotations (```python, ```bash, etc.)82- [ ] Links use relative paths for internal pages (`/blog/other-post`)83- [ ] No "Argus" references — use "Skopaq" everywhere (per branding rules)84- [ ] Content renders correctly (`cd dashboard && npm run build`)8586### 6. Verify Build8788After creating content, always run:8990```bash91cd dashboard && npm run build92```9394This catches MDX parsing errors, missing imports, and broken frontmatter.9596## Additional Resources9798### Reference Files99100- **`references/frontmatter-template.md`** — Complete frontmatter template with field descriptions and examples for both blog posts and changelog entries101102## Naming Conventions103104| Item | Pattern | Example |105|------|---------|---------|106| Blog filename | `{YYYY-MM-DD}-{slug}.mdx` | `2026-02-19-agent-reliability-benchmarks.mdx` |107| Changelog filename | `{YYYY-MM-DD}-{slug}.mdx` | `2026-02-19-v1.mdx` |108| Cover image | `/blog/{slug}-cover.png` | `/blog/agent-reliability-benchmarks-cover.png` |109| Tags | lowercase, hyphenated | `self-healing`, `clear-framework` |