feat: add Claude Code releases tracking

Add condensed release history for Claude Code product (v2.0.24 → v2.1.12)

New files:
- machine-readable/claude-code-releases.yaml: Source of truth (YAML)
- guide/claude-code-releases.md: Human-readable changelog
- scripts/update-cc-releases.sh: Check for new releases from GitHub

Modified:
- reference.yaml: Add deep_dive entries for releases
- check-landing-sync.sh: Add CC version check (#5)
- README.md, guide/README.md: Add navigation links
- CLAUDE.md: Document update workflow

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Florian BRUNIAUX 2026-01-18 11:33:21 +01:00
parent 741acd0fa3
commit 0348f08288
8 changed files with 801 additions and 3 deletions

View file

@ -130,6 +130,26 @@ else
fi
echo ""
# ===================
# 5. CLAUDE CODE VERSION
# ===================
CC_VERSION=$(grep "^latest:" "$GUIDE_DIR/machine-readable/claude-code-releases.yaml" | cut -d'"' -f2)
# Landing may show this in a badge or section - check if exists
LANDING_CC_VERSION=$(grep -oE 'Claude Code v[0-9]+\.[0-9]+\.[0-9]+' "$LANDING_DIR/index.html" 2>/dev/null | head -1 | sed 's/Claude Code v//' || echo "N/A")
echo -e "${BLUE}5. Claude Code Version${NC}"
echo " Releases YAML: $CC_VERSION"
echo " Landing: ${LANDING_CC_VERSION:-Not displayed}"
if [ "$LANDING_CC_VERSION" = "N/A" ] || [ -z "$LANDING_CC_VERSION" ]; then
echo -e " ${YELLOW}INFO${NC}: Landing doesn't display CC version (optional)"
elif [ "$CC_VERSION" != "$LANDING_CC_VERSION" ]; then
echo -e " ${YELLOW}MISMATCH${NC} → Update index.html CC version badge"
# Not counting as hard error since it's optional
else
echo -e " ${GREEN}OK${NC}"
fi
echo ""
# ===================
# SUMMARY
# ===================

84
scripts/update-cc-releases.sh Executable file
View file

@ -0,0 +1,84 @@
#!/bin/bash
# Fetch latest Claude Code releases and show diff
# Usage: ./scripts/update-cc-releases.sh
#
# This script fetches the official CHANGELOG and shows new versions
# You then manually add the condensed entries to claude-code-releases.yaml
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_DIR="$(dirname "$SCRIPT_DIR")"
RELEASES_FILE="$REPO_DIR/machine-readable/claude-code-releases.yaml"
CHANGELOG_URL="https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md"
TMP_FILE="/tmp/claude-code-changelog.md"
# Colors
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
echo "=== Claude Code Releases Update ==="
echo ""
# Get current version from our YAML
CURRENT_VERSION=$(grep "^latest:" "$RELEASES_FILE" | cut -d'"' -f2)
echo -e "${BLUE}Current tracked version:${NC} $CURRENT_VERSION"
# Fetch latest CHANGELOG
echo -e "${BLUE}Fetching official CHANGELOG...${NC}"
curl -sL "$CHANGELOG_URL" -o "$TMP_FILE"
if [ ! -s "$TMP_FILE" ]; then
echo "ERROR: Failed to fetch CHANGELOG"
exit 1
fi
# Extract latest version from CHANGELOG (format: "## X.Y.Z")
LATEST_VERSION=$(grep -oE "^## [0-9]+\.[0-9]+\.[0-9]+" "$TMP_FILE" | head -1 | sed 's/## //')
echo -e "${BLUE}Latest official version:${NC} $LATEST_VERSION"
echo ""
# Compare versions
if [ "$CURRENT_VERSION" = "$LATEST_VERSION" ]; then
echo -e "${GREEN}✓ Already up to date!${NC}"
rm -f "$TMP_FILE"
exit 0
fi
echo -e "${YELLOW}⚠ New versions available!${NC}"
echo ""
# Show new versions (between current and latest)
echo -e "${BLUE}New releases since $CURRENT_VERSION:${NC}"
echo "────────────────────────────────────────"
# Extract versions newer than current
awk -v current="$CURRENT_VERSION" '
/^## [0-9]+\.[0-9]+\.[0-9]+/ {
match($0, /[0-9]+\.[0-9]+\.[0-9]+/)
ver = substr($0, RSTART, RLENGTH)
if (ver == current) exit
in_version = 1
print ""
print $0
next
}
in_version { print }
' "$TMP_FILE" | head -100
echo ""
echo "────────────────────────────────────────"
echo ""
echo -e "${BLUE}Next steps:${NC}"
echo "1. Review the changes above"
echo "2. Add condensed entries to: machine-readable/claude-code-releases.yaml"
echo "3. Update guide/claude-code-releases.md"
echo "4. Update 'latest' and 'updated' fields"
echo "5. Run: ./scripts/check-landing-sync.sh"
echo ""
echo -e "${BLUE}Full CHANGELOG saved to:${NC} $TMP_FILE"
echo ""
echo "Tip: Use Claude to help condense the entries:"
echo " claude -p \"Condense these release notes for claude-code-releases.yaml: \$(cat $TMP_FILE | head -200)\""