Skip to content

feat: changelog generator, templates, and config#2

Merged
hermanngeorge15 merged 9 commits into
mainfrom
feat/generator
Apr 1, 2026
Merged

feat: changelog generator, templates, and config#2
hermanngeorge15 merged 9 commits into
mainfrom
feat/generator

Conversation

@hermanngeorge15
Copy link
Copy Markdown
Contributor

Summary

  • Handlebars templates (product + technical formats) with eq, hasItems, and filterByType helpers
  • Changelog generator renders ChangelogOutput through templates; supports custom template paths from config
  • Config loader with loadConfig() (reads + merges with defaults) and initConfig() (scaffolds config file)
  • Templates inlined as string constants to avoid __dirname/fileURLToPath bundling issues with tsup
  • Fixed pre-existing simpleGit named import issue in git.ts
  • Added .prettierignore to prevent Prettier from mangling .hbs files

PR 3 of ai-changelog v0.0.1 milestone (Tasks 7-8).

Test plan

  • 9 generator tests (product format, technical format, breaking changes, empty groups, GSD summary, custom templates, trailing newline)
  • 7 config tests (defaults, fixture loading, merge, init, nested dirs, github undefined)
  • Full suite: 48 tests passing
  • tsc --noEmit clean
  • Prettier formatted

🤖 Generated with Claude Code

hermanngeorge15 and others added 9 commits April 1, 2026 14:54
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implements the changelog generator (Task 7) with product and technical
Handlebars templates. Templates are inlined as string constants to avoid
__dirname/fileURLToPath issues in tsup bundles. Registers eq, hasItems,
and filterByType Handlebars helpers. Supports custom template paths via
config. Also fixes pre-existing simpleGit import issue in git.ts and
adds .prettierignore for .hbs files.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implements config loader (Task 8) with loadConfig() and initConfig().
loadConfig() reads ai-changelog.config.json from a given directory and
merges with defaults. initConfig() creates the config file with default
values, creating parent directories as needed. Uses rmSync (not
deprecated rmdirSync) for test cleanup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@hermanngeorge15 hermanngeorge15 merged commit 207a033 into main Apr 1, 2026
0 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant