docs-and-changelogs
Documentation and Changelogs
Generate and maintain project documentation including changelogs, architectural decision records, and product requirement documents.
Overview
To manage project documentation effectively:
- Generate changelogs from git commit history using Conventional Commits
- Maintain CHANGELOG.md with semantic versioning
- Create architectural decision records (ADR) for significant decisions
- Scaffold product requirement documents (PRD) for new features
- Automate documentation updates as part of release process
Changelog Generation
To generate changelogs from Conventional Commits:
- Parse git commit history for conventional commit messages
- Categorize commits by type (feat, fix, chore, docs, etc.)
- Group by version/release using git tags
- Format according to Keep a Changelog standards
- Append to existing CHANGELOG.md or create new file
Use scripts/generate_changelog.py to automate changelog generation from commit history.
Conventional Commits Format
Follow this commit message structure:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, semicolons, etc.)refactor: Code refactoring without feature changesperf: Performance improvementstest: Adding or updating testschore: Maintenance tasksci: CI/CD changes
Breaking Changes:
- Add
BREAKING CHANGE:in footer or!after type - Example:
feat!: redesign entity schema structure
CHANGELOG.md Maintenance
To maintain changelog file:
- Structure with sections: Unreleased, versioned releases
- Use semantic versioning (MAJOR.MINOR.PATCH)
- Group changes by category (Added, Changed, Deprecated, Removed, Fixed, Security)
- Include links to commits and pull requests
- Add release dates in ISO format (YYYY-MM-DD)
Consult references/changelog-format.md for detailed formatting guidelines and examples.
Architectural Decision Records (ADR)
To create architectural decision records:
- Use
scripts/create_adr.pyto scaffold new ADR file - Number ADRs sequentially (0001-title.md, 0002-title.md)
- Include standard sections: Context, Decision, Consequences
- Document alternatives considered
- Reference related ADRs
Use assets/adr-template.md as starting point for new ADRs.
ADR Structure
Standard ADR sections:
- Title: Short, descriptive name
- Status: Proposed, Accepted, Deprecated, Superseded
- Context: What problem are we solving?
- Decision: What did we decide to do?
- Consequences: What are the tradeoffs and impacts?
- Alternatives Considered: What other options were evaluated?
Product Requirement Documents (PRD)
To scaffold product requirement documents:
- Use
scripts/create_prd.pyto generate PRD template - Define problem statement and goals
- List functional and non-functional requirements
- Include user stories and acceptance criteria
- Document technical constraints and dependencies
Reference assets/prd-template.md for comprehensive PRD structure.
PRD Sections
Standard PRD components:
- Overview: High-level description
- Problem Statement: What problem are we solving?
- Goals and Non-Goals: Scope definition
- User Stories: Who, what, why format
- Requirements: Functional and non-functional
- Design Considerations: UI/UX, architecture
- Success Metrics: How to measure success
- Timeline: Development phases
Implementation Steps
Generate Changelog from Commits
To generate changelog:
-
Collect Commits
python scripts/generate_changelog.py --since v1.0.0 -
Categorize Changes
- Parse commit messages for conventional commit types
- Extract breaking changes
- Group by scope if present
-
Format Output
- Generate markdown with appropriate headings
- Link to commits and PRs
- Add version header with date
-
Update CHANGELOG.md
- Prepend new version section
- Maintain existing content
- Update "Unreleased" section
Create New ADR
To document architectural decision:
-
Generate ADR File
python scripts/create_adr.py "use postgresql for entity storage" -
Fill Template
- Document context and constraints
- Explain decision rationale
- List consequences and tradeoffs
-
Review and Commit
- Get team feedback
- Update status to "Accepted"
- Link from main architecture docs
Scaffold New PRD
To create product requirements:
-
Generate PRD Template
python scripts/create_prd.py "timeline visualization feature" -
Complete Sections
- Define problem and goals
- Write user stories
- List requirements
-
Review with Stakeholders
- Get product team input
- Validate technical feasibility
- Refine scope and requirements
Automation
To automate documentation updates:
Release Workflow Integration
Add to .github/workflows/release.yml:
- name: Generate changelog
run: python scripts/generate_changelog.py --output CHANGELOG.md
- name: Commit changelog
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git add CHANGELOG.md
git commit -m "docs: update changelog for ${{ github.ref_name }}"
Pre-commit Hook
Add to .git/hooks/commit-msg:
#!/bin/bash
# Validate conventional commit format
python scripts/validate_commit_msg.py "$1"
Documentation Structure
Organize project documentation:
docs/
├── CHANGELOG.md # Version history
├── ADR/ # Architectural decisions
│ ├── 0001-use-nextjs.md
│ └── 0002-database-choice.md
├── PRD/ # Product requirements
│ ├── timeline-feature.md
│ └── entity-relationships.md
└── api/ # API documentation
└── endpoints.md
Best Practices
Changelog
- Write for users, not developers
- Use present tense ("Add" not "Added")
- Link to relevant issues/PRs
- Highlight breaking changes prominently
- Keep entries concise and clear
ADR
- Write when decision is made, not after
- Document alternatives considered
- Be honest about tradeoffs
- Update status if decision changes
- Link related ADRs
PRD
- Start with user needs, not solutions
- Include success metrics
- Define scope clearly (goals and non-goals)
- Get stakeholder buy-in early
- Update as requirements evolve
Version Management
To manage semantic versioning:
- MAJOR: Breaking changes (incompatible API changes)
- MINOR: New features (backward-compatible)
- PATCH: Bug fixes (backward-compatible)
Use scripts/bump_version.py to update version across package.json, changelog, and tags.
Release Notes
To generate release notes:
- Extract relevant changelog section
- Add highlights and notable changes
- Include upgrade instructions if needed
- Link to full changelog
- Publish to GitHub releases
Use scripts/generate_release_notes.py to create formatted release notes from changelog.
Troubleshooting
Common issues:
- Commits Not Categorized: Ensure commits follow Conventional Commits format
- Missing Version: Tag releases in git with semantic version numbers
- Duplicate Entries: Check for merge conflicts in CHANGELOG.md
- Broken Links: Verify commit SHAs and PR numbers are correct
More from hopeoverture/worldbuilding-app-skills
eslint-prettier-husky-config
This skill should be used when setting up code quality tooling with ESLint v9 flat config, Prettier formatting, Husky git hooks, lint-staged pre-commit checks, and GitHub Actions CI lint workflow. Apply when initializing linting, adding code formatting, configuring pre-commit hooks, setting up quality gates, or establishing lint CI checks for Next.js or React projects.
51testing-next-stack
Scaffolds comprehensive testing setup for Next.js applications including Vitest unit tests, React Testing Library component tests, and Playwright E2E flows with accessibility testing via axe-core. This skill should be used when setting up test infrastructure, generating test files, creating test utilities, adding accessibility checks, or configuring testing frameworks for Next.js projects. Trigger terms include setup testing, scaffold tests, vitest, RTL, playwright, e2e tests, component tests, unit tests, accessibility testing, a11y tests, axe-core, test configuration.
38markdown-editor-integrator
This skill should be used when installing and configuring markdown editor functionality using @uiw/react-md-editor. Applies when adding rich text editing, markdown support, WYSIWYG editors, content editing with preview, or text formatting features. Trigger terms include markdown editor, rich text editor, text editor, add markdown, install markdown editor, markdown component, WYSIWYG, content editor, text formatting, editor preview.
27form-generator-rhf-zod
This skill should be used when generating React forms with React Hook Form, Zod validation, and shadcn/ui components. Applies when creating entity forms, character editors, location forms, data entry forms, or any form requiring client and server validation. Trigger terms include create form, generate form, build form, React Hook Form, RHF, Zod validation, form component, entity form, character form, data entry, form schema.
23supabase-auth-ssr-setup
This skill should be used when configuring Supabase Auth for server-side rendering with Next.js App Router, including secure cookie handling, middleware protection, route guards, authentication utilities, and logout flow. Apply when setting up SSR auth, adding protected routes, implementing middleware authentication, configuring secure sessions, or building login/logout flows with Supabase.
18tailwind-shadcn-ui-setup
This skill should be used when setting up, configuring, or initializing Tailwind CSS (v3 or v4) and shadcn/ui for Next.js 16 App Router projects. Configure dark mode, design tokens, base layout with header/sidebar, accessibility defaults, and generate example components. Includes comprehensive setup automation, theme customization, and production-ready patterns. Use when the user requests "setup Tailwind", "configure shadcn/ui", "add dark mode", "initialize design system", or "setup UI framework" for Next.js projects.
17