Changelog Workflow
Date: 2026-01-22
Status: ✅ Active
Overview
This guide explains the directory structure and workflow for managing changelogs in Lantern App. The changelog system uses separate dated files for dev and prod releases instead of a single monolithic file.
All changelogs are organized in docs/changelogs/ by environment (dev/prod) and lifecycle (active/archived). This structure replaces the monolithic CHANGELOG.md approach with dated files for better organization and CI/CD integration.
Directory Structure
docs/changelogs/
├── dev/ # Daily dev changes
├── prod/ # Production releases
└── archived/ # Historical releases/dev — Development Changelogs
Daily changes during active development on the dev branch.
Naming Convention:dev-MM.DD.YYYY-v{version}.md
Examples:
dev-01.22.2026-v0.1.0.mddev-01.21.2026-v0.1.0.mdQuick Start
Create today's changelog:
bash# Create new file in dev/ touch docs/changelogs/dev/dev-01.22.2026-v0.1.0.mdAdd your changes:
- Use the template below
- Add entries under appropriate categories
- Describe what changed and why it matters
Commit the changelog with your changes:
bashgit add docs/changelogs/dev/dev-01.22.2026-v0.1.0.md git commit -m "Add changelog for XYZ feature"
Dev ChangelogR delete or rename** these files (tracked by CI/CD)
- After production promotion, files are marked with
_mergedsuffix
/prod — Production Changelogs
Production releases created when promoting from dev to main.
Naming Convention:prod-MM.DD.YYYY-v{version}.md
Examples:
prod-01.15.2026-v0.1.0.mdprod-02.01.2026-v0.2.0.md
Rules:
- Created automatically by GitHub Action via
npm run changelog:consolidate - Aggregates all dev changelog entries for the version
- After promotion, marked with
_mergedsuffix to indicate consolidation - One file per production release
/archived — Historical Changelogs
Old production releases moved here after consolidation.
Naming Convention:archived-YYYY-v{version}-{description}.md or original prod filename
Examples:
archived-2026-v0.1.0-initial-release.mdprod-01.15.2026-v0.1.0_merged.md(moved from prod/)
Rules:
- Contains old production releases
- Preserves full changelog history
- Useful for compliance and audit trails
Daily Development Workflow
Adding Dev Changes
- Create a new file in
docs/changelogs/dev/with today's date:dev-MM.DD.YYYY-v{version}.md - Use the template below and add
Added,Changed,Fixed, etc. sections - One file per day per version
- DO NOT delete or rename files; they're tracked by CI/CD for promotion to prod
File Template
# Changelog - {Version} - {Date}
**Date:** MM.DD.YYYY
**Environment:** dev
**Version:** v0.1.0
## Added
- Feature description
## Changed
- Change description
## FProduction Changelog Template
```markdown
# Production Release - v{version}
**Release Date:** MM.DD.YYYY
**Environment:** production
**Version:** v{version}
## Summary
Brief overview of this release.
## Added
- Consolidated features from dev changelogs
## Changed
- Consolidated changes from dev changelogs
## Fixed
- Consolidated fixes from dev changelogs
## Deprecated
- _(If applicable)_
## RConsolidating for Production Release
When promoting dev changes to prod:
1. **Run the consolidation script:**
```bash
npm run changelog:consolidateThis automatically:
- Aggregates all dev changelog entries for current version
- Creates
prod-MM.DD.YYYY-v{version}.mdinprod/ - Marks dev files with
_mergedsuffix - Prepares repo for production deployment
Review and commit:
bashgit add docs/changelogs/ git commit -m "Consolidate changelog for v0.1.0 production release"
The "_merged" Marker
Files marked with _merged suffix (e.g., dev-01.22.2026-v0.1.0_merged.md) indicate:
✅ Consolidated into production release
✅ Preserved for audit trail
✅ Not deleted (maintains full changelog history)
✅ Easy to identify in file browser All changelogs follow:
- Keep a Changelog — Standard format
- Semantic Versioning — Version numbering
- Present tense — "Add feature" not "Added feature"
- Categories — Added, Changed, Fixed, Deprecated, Removed, Security
- One file per date per environment (no duplicates, no overwrites)
- **Describe able)_
Security
- (If applicable)
### Format Rules
- Use **Keep a Changelog** format: https://keepachangelog.com/en/1.1.0/
- Adhere to **Semantic Versioning**: https://semver.org/spec/v2.0.0.html
- Use present tense for all entries
- Group by category: `Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`
- One file per date per environment (no duplicates, no overwrites)
- Describe **what changed and why it matters**
## Production Promotion Workflow
### Promoting to Prod
When promoting dev changes to prod:
1. Common TasksAggregates content into a single prod changelog entry
3. Marks dev files with `_merged` suffix (e.g., `dev-01.22.2025-v0.1.0_merged.md`)
4. Creates `docs/changelogs/prod/prod-MM.DD.YYYY-v{version}.md` with consolidated changes
5. Archives old prod changelogs to `archived/` if needed
6. Prepares repo for production deployment
## Common Tasks
### Creating Today's Changelog Entry
```bash
# File path
docs/changelogs/dev/dev-01.22.2025-v0.1.0.md
# Then add your changes under appropriate sectionsChecking Merged Status
# View dev files marked as merged
ls docs/changelogs/dev/*_merged.md
# These have been promoted to a prod releaseArchiving Old Releases
# After consolidation, prod changelogs can be moved to archived/
mv docs/changelogs/prod/prod-*.md docs/changelogs/archived/Versioning Strategy
Follows Semantic Versioning:
- Format:
MAJOR.MINOR.PATCH - MAJOR: Breaking changes (e.g., v1.0.0 → v2.0.0)
- MINOR: New features, backwards compatible (e.g., v1.0.0 → v1.1.0)
- PATCH: Bug fixes, backwards compatible (e.g., v1.0.0 → v1.0.1)
References
Keep a Changelog: https://keepachangelog.com/en/1.1.0/
Semantic Versioning: https://semver.org/spec/v2.0.0.html
Worklog Convention: Files in
docs/worklog/must useYYYY-MM-DD_prefixRelated: docs/worklog/2025-01-22_CHANGELOG_SYSTEM_REFACTOR.md lated Documentation
Keep a Changelog: https://keepachangelog.com/en/1.1.0/
Semantic Versioning: https://semver.org/spec/v2.0.0.html
Worklog Convention: Files in
docs/worklog/must useYYYY-MM-DD_prefix
Migration History
2026-01-22: Migrated from monolithic CHANGELOG.md to structured directory approach
- All
[DEV]sections extracted to dated files indev/ - v0.1.0 release moved to
archived/ - Root
CHANGELOG.mdremoved (content migrated to dated files