Claude-code-ultimate-guide guide-recap

Transform CHANGELOG entries into social content (LinkedIn, Twitter/X, Newsletter, Slack) in FR + EN. Use after releases or weekly to generate release notes, announcements, social media posts, or recap summaries from guide updates.

install
source · Clone the upstream repo
git clone https://github.com/FlorianBruniaux/claude-code-ultimate-guide
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/FlorianBruniaux/claude-code-ultimate-guide "$T" && mkdir -p ~/.claude/skills && cp -r "$T/examples/skills/guide-recap" ~/.claude/skills/florianbruniaux-claude-code-ultimate-guide-guide-recap && rm -rf "$T"
manifest: examples/skills/guide-recap/SKILL.md
source content

Guide Recap

Generate social media content from CHANGELOG.md entries. Produces 8 outputs by default (4 formats x 2 languages).

When to Use

  • After running
    /release
    to create social announcements
  • Weekly to summarize multiple releases
  • Before posting on LinkedIn, Twitter/X, newsletter, or Slack

Usage

/guide-recap latest              # Latest released version
/guide-recap v3.20.5             # Specific version
/guide-recap week                # Current week (Monday to today)
/guide-recap week 2026-01-27     # Specific week (Monday to Sunday)

Flags

FlagEffectDefault
--interactive
Guide mode: choose angle, audience, highlightOff (auto-draft)
--format=X
Single format:
linkedin
,
twitter
,
newsletter
,
slack
All 4 formats
--lang=X
Single language:
fr
,
en
Both FR + EN
--save
Save output to
[project-docs]/social-posts/
Display only
--force
Generate even if only maintenance entriesSkip low-score

Workflow (7 Steps)

Step 1: Parse Input

Parse

$ARGUMENTS
to determine mode:

InputModeTarget
latest
Single versionFirst
## [X.Y.Z]
after
[Unreleased]
vX.Y.Z
or
X.Y.Z
Single versionExact version match
week
Week rangeMonday of current week -> today
week YYYY-MM-DD
Week rangeThat Monday -> following Sunday

If no argument or invalid argument, display usage and exit.

Step 2: Extract CHANGELOG Entries

Read

CHANGELOG.md
from the project root.

Single version:

  1. Find line matching
    ## [{version}]
  2. Extract all content until next
    ## [
    line
  3. Parse
    ### Added
    ,
    ### Changed
    ,
    ### Fixed
    sections

Week range:

  1. Collect all
    ## [X.Y.Z] - YYYY-MM-DD
    entries where date falls in range
  2. Parse all sections from all matching versions

Error: version not found -> List last 5 versions, suggest

latest
. Error: week has no entries -> Show date of last release, suggest that version.

Step 3: Categorize Entries

For each top-level entry (first-level bullet under

###
), assign a category:

CategoryWeightDetection
NEW_CONTENT
3New files, new sections, new diagrams, new quiz questions
GROWTH_METRIC
2Line count growth, item count changes
RESEARCH
1Resource evaluations, external source integrations
FIX
1Under
### Fixed
, corrections
MAINTENANCE
0README updates, badge syncs, landing syncs, count updates

See

references/changelog-parsing-rules.md
for detailed classification rules.

Step 4: Transform to User Value

Apply mappings from

references/content-transformation.md
:

  • Technical language -> user benefit
  • Extract concrete numbers
  • Credit named sources
  • Cluster related entries

Validate against

references/tone-guidelines.md
DO/DON'T checklist.

Step 4b: Interactive Mode (--interactive only)

If

--interactive
flag is set, insert between steps 4 and 5:

  1. Display candidate highlights with scores:

    Highlights (by score):
    [14] 4 new ASCII diagrams (16 -> 20)     [NEW_CONTENT]
    [ 9] 30 new quiz questions (227 -> 257)   [NEW_CONTENT]
    [ 6] Docker sandbox isolation guide        [NEW_CONTENT]
    [ 1] README updated                        [MAINTENANCE]
    
  2. Ask angle:

    • Auto (highest scored = hook)
    • User picks specific entry as hook
    • Custom angle (user provides theme)
  3. Ask target audience:

    • devs
      (technical depth)
    • tech-leads
      (impact focus)
    • general
      (accessible language)
    • all
      (default, balanced)
  4. Ask primary highlight:

    • Auto (top score)
    • User selects from list
  5. Confirm selection and proceed to step 5.

Step 5: Score and Select

Compute score for each entry:

score = (category_weight * 3)
      + (has_number * 2)
      + (named_source * 1)
      + (new_file * 1)
      + (min(impact_files, 3))
      + (breaking * 2)

Select top 3-4 entries by score. Highest score = hook line.

If all scores < 3: Output "No social content recommended for this version. Use

--force
to generate anyway." and exit (unless
--force
).

Step 6: Generate Content

For each requested format (default: all 4) and language (default: both):

  1. Read the corresponding template from
    assets/
  2. Fill template fields using scored and transformed entries
  3. Apply tone-guidelines.md quality checklist

Links:

FormatLink Target
LinkedInLanding site URL
TwitterGitHub repo URL
NewsletterBoth (landing + GitHub)
SlackGitHub repo URL

URLs:

  • Landing:
    https://{DOMAIN}/
  • GitHub:
    https://github.com/{OWNER}/{REPO}

Step 7: Output

Display each generated post in a fenced code block, labeled by format and language:

## LinkedIn (FR)

```text
[content]
`` `

## LinkedIn (EN)

```text
[content]
`` `

## Twitter/X (FR)

```text
[content]
`` `

...

If

--save
flag: write all outputs to
[project-docs]/social-posts/YYYY-MM-DD-vX.Y.Z.md
(for version) or
[project-docs]/social-posts/YYYY-MM-DD-week.md
(for week). Create
[project-docs]/social-posts/
directory if it doesn't exist.

Error Handling

ErrorResponse
No argumentDisplay usage block
Invalid argumentDisplay usage block with examples
Version not foundList 5 most recent versions, suggest
latest
Week has no entriesShow date of last release, suggest version
All entries MAINTENANCE (score 0)"No social content recommended. Use
--force
to override."
CHANGELOG.md not found"CHANGELOG.md not found in project root."

Reference Files

  • references/tone-guidelines.md
    - DO/DON'T rules, emoji budget, language register
  • references/changelog-parsing-rules.md
    - CHANGELOG format, extraction, scoring algorithm
  • references/content-transformation.md
    - Technical -> user value mappings (30+)
  • assets/linkedin-template.md
    - ~1300 chars, hook + bullets + CTA + hashtags
  • assets/twitter-template.md
    - 280 chars single or 2-3 tweet thread
  • assets/newsletter-template.md
    - ~500 words, structured sections
  • assets/slack-template.md
    - Compact, emoji-rich, Slack formatting
  • examples/version-output.md
    - Full example output for v3.20.5
  • examples/week-output.md
    - Full example output for week 2026-01-27

Tips

  • Run
    /guide-recap latest
    right after
    /release
    to prepare social posts
  • Use
    --interactive
    the first few times to understand the scoring
  • Use
    --format=linkedin --lang=fr
    when you only need one specific output
  • --save
    outputs are gitignored via
    [project-docs]/
    convention
  • Review and personalize before posting (these are drafts, not final copy)