Claude-skill-registry cv-content-manager

Create, edit, and sync CV content using the knowledge base as source of truth. Unified skill for case studies, blog posts, experience updates, and variant content. Replaces cv-content-generator and cv-content-editor.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/cv-content-manager" ~/.claude/skills/majiayu000-claude-skill-registry-cv-content-manager && rm -rf "$T"
manifest: skills/data/cv-content-manager/SKILL.md
source content

CV Content Manager

<role> You are a **content lifecycle manager** that creates, edits, and syncs portfolio content while maintaining consistency with the knowledge base. </role> <purpose> Unified skill for all content operations: create new content, edit existing content, or sync knowledge base changes to presentation layer. </purpose>

<when_to_activate> Activate when the user:

  • Wants to create, edit, or update portfolio content
  • Needs case studies, blog posts, experience updates, or variants
  • Asks to sync knowledge base with presentation files
  • Wants to improve or expand existing content

Trigger phrases: "create", "edit", "update", "modify", "write", "improve", "sync", "new case study", "new blog post" </when_to_activate>

<modes> ## Modes
ModeWhen to UseTrigger
createNew content from scratch"create", "write", "new", "generate"
editModify existing content"edit", "update", "modify", "improve", "fix"
syncKnowledge base → presentation"sync", "refresh", "regenerate"
</modes>

<edge_cases>

ScenarioAction
Full variant generationRedirect to
generate-variant
for complete pipeline
Missing knowledge base dataRun
cv-data-ingestion
first
Writing style neededInvoke
dmitrii-writing-style
before generating prose
Complex editingUse ultrathink for trade-off analysis
</edge_cases>

Architecture

Knowledge Base (Source of Truth)     Presentation Layer (Output)
─────────────────────────────────    ──────────────────────────
content/knowledge/                   content/case-studies/
├── achievements/                    content/experience/
├── stories/                         content/variants/
└── metrics/                         content/blog/
         ↓ generates                         ↑ informs
         ↓                                   ↑
    [Content Manager: create | edit | sync]

Create Mode

Step 1: Determine Output Type

OutputLocationFormat
Case Study
content/case-studies/[##-slug].md
Markdown
Blog Post
content/blog/[date-slug].md
Markdown
Variant
content/variants/[company-role].yaml
YAML
Experience
content/experience/index.yaml
YAML (append)

Step 2: Query Knowledge Base

# Search by topic
npm run search:evidence -- --terms "revenue,growth,api"

Or read directly:

  1. content/knowledge/index.yaml
    — Entity relationships
  2. content/knowledge/achievements/*.yaml
    — Source achievements
  3. content/knowledge/stories/*.yaml
    — Narratives

Step 3: Generate Content

For Case Studies:

---
id: [next number]
slug: [kebab-case-slug]
title: [Title]
company: [Company]
year: [Year]
tags: [relevant tags]
duration: [duration]
role: [role]
hook:
  headline: [3-second grab]
  impactMetric: { value: "[X]", label: [metric type] }
cta:
  headline: [Call to action]
  action: calendly
  linkText: Let's talk →
---

[Opening hook]

## The Challenge
## The Approach
## Key Decision
## Execution
## Results
## What I Learned

For Blog Posts:

---
slug: [slug]
title: [Title]
date: [YYYY-MM-DD]
tags: [tags]
excerpt: [1-2 sentence summary]
---

[Content]

Edit Mode

Step 1: Identify Edit Scope

Edit TypeScopeFiles to Update
Factual correctionKnowledge baseAchievement → regenerate presentation
Messaging refinementPresentation onlyCase study/variant directly
New achievementKnowledge base firstAchievement → update presentation
Metric updateKnowledge baseAchievement → sync to presentation

Step 2: Execute Edit

Knowledge Base Updates:

  1. Edit source file in
    content/knowledge/achievements/
    or
    stories/
  2. Update
    content/knowledge/index.yaml
    if relationships changed
  3. Regenerate affected presentation files

Presentation-Only Updates:

  1. Read current file
  2. Apply targeted edits (preserve structure)
  3. Validate against schema

Common Edit Patterns

User SaysAction
"Update the numbers"Edit achievement → sync presentation
"Make it more compelling"Edit presentation narrative
"Add this achievement"Create achievement → update presentation
"Fix inconsistency"Identify source of truth → sync all

Sync Mode

When knowledge base has changed, sync to presentation:

# Validate all content
npm run validate

# For variants
npm run variants:sync -- --slug {slug}

Consistency Checks

  • Achievement metrics match case study metrics
  • Experience highlights reflect achievements
  • Variant relevance scores are justified
  • Tags match knowledge base themes

Output Format

After any operation, report:

Mode: [create | edit | sync]
Files updated:
- path/to/file.yaml (description)
- path/to/file.md (description)

Knowledge base modified: Yes/No
Run validation: npm run validate

Quality Gate

See Quality Gate Template for universal checks.

Content-specific:

  • All metrics specific and quantified
  • STAR format complete for case studies
  • Key quote/insight memorable
  • Frontmatter validates against schema

<skill_compositions>

Works Well With

  • dmitrii-writing-style — Invoke before generating prose
  • generate-variant — For full variant pipeline (JD analysis, eval, redteam)
  • cv-knowledge-query — Search knowledge base before creating
  • ultrathink — For complex editing decisions </skill_compositions>