changelog
npx machina-cli add skill simonstrumse/vibelabs-skills/changelog --openclawChangelog Management Skill
You have been invoked to manage the project changelog. This is a strategic memory system, not a tool log.
Your Tasks
If Reading (gathering context):
-
Identify the relevant changelog:
- Project root →
./CHANGELOG.md - Monorepo apps →
apps/<app-name>/CHANGELOG.md - Sub-packages →
packages/<pkg-name>/CHANGELOG.md
- Project root →
-
Read the Current State section (top of file) for quick orientation
-
Search recent History entries for:
- The specific area/files being modified
- Related decisions or patterns
- Known gotchas or technical notes
-
Report back with relevant context that should inform the current work
If Writing (documenting changes):
-
Determine what happened this session:
- Code changes made
- Decisions reached
- Direction shifts discussed
- Insights generated
- Technical gotchas discovered
-
Update the Current State section if capabilities changed:
- Update progress indicators
- Add/check items in "What's Working"
- Update "What's Next" priorities
-
Add a History entry with:
## [DATE] - [BRIEF SESSION SUMMARY] ### Direction & Vision - [Strategic shifts, even without code] ### Changes - **[Description]** — `[files]` ([context]) ### Insights - [★ Insight blocks or learnings] ### Technical Notes - [Platform quirks, decisions] ### Pending - [ ] [Incomplete items] -
Be specific, not vague:
- ❌ "Fixed auth bug"
- ✅ "Fixed middleware setting response headers instead of request headers — server components read request headers"
Bootstrap Mode (First-Time Setup)
If no CHANGELOG.md exists, bootstrap from session history:
Step 1: Find the sessions index
The project path determines the sessions folder. Convert the project path to the folder name:
/path/to/your/project- becomes:
~/.claude/projects/-path-to-your-project/
Read the sessions-index.json file in that folder.
Step 2: Extract session summaries
The index contains entries like:
{
"sessionId": "abc123",
"summary": "Human-readable session summary",
"firstPrompt": "What user first asked",
"created": "2026-01-14T20:59:20.530Z",
"gitBranch": "feat/some-feature",
"messageCount": 10
}
CRITICAL: Only use the summary field - these are factual, already generated. DO NOT invent, deduce, or hallucinate additional details.
Step 3: Create changelog from summaries
Group sessions by date and create entries:
## Historical Sessions (from Claude Code session logs)
> Note: These entries are auto-generated from session summaries.
> Context may be incomplete. Add details if you remember more.
### 2026-01-14
- **Vibelabs Bento Grid Hero & Site Revert** (branch: `feat/homepage-redesign-2026`, 7 messages)
- **Human-Centric Vibelabs One-Pager** (branch: `main`, 10 messages)
### 2026-01-05
- **Per-app volume mixer macOS app research** (branch: `main`, 7 messages)
Step 4: Add Current State section
After historical entries, add a Current State section based on:
- Git status (
git log --oneline -10) - README content
- Visible project structure
Mark inferred information clearly:
## Current State
> **Last Updated:** [DATE]
> **Status:** *Inferred from codebase - please verify*
### What's Working (inferred from code)
- [x] Item visible in codebase
Bootstrap Rules
- ONLY use factual sources: session summaries, git log, existing docs
- NEVER invent context: If you don't know WHY something was done, say "Context unknown"
- NEVER hallucinate details: Session summary says "Fixed auth bug" → write exactly that, don't elaborate
- Mark uncertainty: Use "inferred", "from session log", "context unknown" labels
- Invite corrections: Add note asking user to fill in missing context
Context Triggers
Automatically consider reading the changelog when:
- About to modify ANY code you haven't touched recently in this session
- Wondering "what was the approach here?" or "why is this done this way?"
- User asks about previous work ("what did we do with X?", "where were we?")
- Starting a new session or after context compaction
- Before making changes that might conflict with recent decisions
- Unsure if something was already implemented or fixed
Automatically consider writing when:
- ANY code changes were made (features, fixes, refactoring)
- Decisions were reached about how to do something
- User expressed preferences, changed direction, or clarified vision
★ Insightblocks were generated- Something non-obvious was discovered (gotchas, patterns, behaviors)
- Leaving work incomplete (document what's pending)
- A conversation led to strategic clarity (even without code changes)
Source
git clone https://github.com/simonstrumse/vibelabs-skills/blob/main/skills/changelog/SKILL.mdView on GitHub Overview
Changelog is a strategic memory system to read or update project changelogs across root, apps, and packages. It preserves decisions and context to prevent rework and missed context. It also supports bootstrap when no changelog exists.
How This Skill Works
Identify the changelog location (root ./CHANGELOG.md or apps/packages paths). Read the Current State and search the History for relevant decisions. When writing, add a detailed History entry using the provided template and refresh the Current State.
When to Use It
- When starting work that depends on prior work in any area of the codebase
- After making notable changes or decisions worth preserving
- During onboarding to capture context for new team members
- While auditing changes across apps/packages in a monorepo
- When bootstrapping a new project or if no CHANGELOG.md exists
Quick Start
- Step 1: Locate the appropriate CHANGELOG.md (root or apps/packages)
- Step 2: Read Current State or prepare to write; assess git history for context
- Step 3: When writing, add a formal History entry using the template and update Current State
Best Practices
- Update the Current State to reflect progress and what's working
- Use the History template with clear, specific descriptions
- Be explicit about changes or decisions; avoid vague notes
- Only reference factual sources (git logs, README, and code structure)
- Bootstrap carefully when no CHANGELOG.md exists, using historical summaries first
Example Use Cases
- Vibelabs Bento Grid Hero & Site Revert — branch: feat/homepage-redesign-2026 (7 messages)
- Human-Centric Vibelabs One-Pager — branch: main (10 messages)
- Per-app volume mixer macOS app research — branch: main (7 messages)
- OAuth flow refactor & tests added — branch: feat/oauth-refactor (5 messages)
- Middleware header handling clarified in changelog — branch: main (4 messages)