Skip to content

feat: parsers, git walker, and matcher#1

Merged
hermanngeorge15 merged 4 commits into
mainfrom
feat/parsers-git
Apr 1, 2026
Merged

feat: parsers, git walker, and matcher#1
hermanngeorge15 merged 4 commits into
mainfrom
feat/parsers-git

Conversation

@hermanngeorge15
Copy link
Copy Markdown
Contributor

Summary

  • GSD SUMMARY.md parser (8 tests)
  • GSD REQUIREMENTS.md parser (6 tests)
  • Git commit walker with tag listing (4 tests)
  • Commit-to-phase matcher (6 tests)
  • Test fixtures for GSD files

PR 2 of ai-changelog v0.0.1 milestone.

Changes

  • src/parsers/gsd-summary.ts — extracts phase number, what was built, decisions, files changed, and spec requirements from GSD SUMMARY.md files
  • src/parsers/requirements.ts — extracts phases with features and acceptance criteria from GSD REQUIREMENTS.md files
  • src/git.ts — walks git commit history between refs using simple-git, parses conventional commits, lists tags
  • src/matcher.ts — links commits to GSD phases by file path overlap (exact match + directory prefix fallback)
  • Test fixtures: summary-phase1.md, summary-phase2.md, requirements.md

Test plan

  • 32 total tests pass (8 commit parser + 8 GSD summary + 6 requirements + 4 git walker + 6 matcher)
  • TDD: tests written before implementation for all 4 tasks
  • Prettier formatting applied before each commit

Note on git walker

The plan's implementation passed from: undefined to simple-git's log(), which generates an invalid range (..HEAD) returning 0 results. Fixed by conditionally building log options — only including from/to when from is provided.

🤖 Generated with Claude Code

hermanngeorge15 and others added 4 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>
@hermanngeorge15 hermanngeorge15 merged commit 950f724 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