Update HISTORY.md from /issue-close (#15)#42
Merged
jepegit merged 1 commit intoApr 19, 2026
Conversation
Adds a changelog-update step to /issue-close so landing an issue can keep HISTORY.md (or equivalent) accurate without a manual round-trip. Without a version bump, the step appends a bullet to the existing ## [Unreleased] section. With a bump, it promotes ## [Unreleased] to ## [<new_version>] - <YYYY-MM-DD> and opens a fresh empty [Unreleased] above it, so the just-released section contains the bullet for the closing issue. The mechanics live in a new issueflow-history-update Agent Skill that mirrors the issueflow-version-bump pattern. /issue-close reads it and orchestrates the step; /issue-yolo forwards the new input tokens. When HISTORY.md is missing at the project root, the step prints a short note and skips -- it never auto-creates the file. New input tokens on /issue-close: - nohistory / skip history -- opt out of the step entirely - log "..." / note "..." -- override the bullet summary verbatim (the GitHub issue title is used by default) New config knob ISSUEFLOW_HISTORY_FILE (default HISTORY.md) lets projects using CHANGELOG.md or similar point at their own file. Threaded through Settings, template_context, the .env scaffold, and every slash-command / skill template that mentions the changelog. Tests bumped from 45 to 49: config default + env override, template substitution with a custom filename, the skill's two modes + never- create invariant, /issue-close documenting the HISTORY step, and .env / skill scaffolding picking up the new entry. Closes #15. Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #15.
Adds a new "Update
HISTORY.md" step to/issue-closeso landing an issue can keep the changelog accurate without a manual round-trip. The step runs between the optional version bump and the issue-folder housekeeping.Two operation modes, chosen automatically based on whether a version bump happened in step 2:
## [Unreleased]section:- <summary>. (#<N>)/issue-close bump patch). Renames## [Unreleased]to## [<new_version>] - <YYYY-MM-DD>, prepends a fresh empty## [Unreleased]above it, and lands the new bullet inside the just-closed release section.Skipped gracefully (with a short note) when
HISTORY.mdis missing at the project root — the skill never auto-creates the file.New input tokens on
/issue-close:nohistory/skip history— opt out of the step entirely.log "..."/note "..."— override the bullet summary verbatim (the GitHub issue title is used by default)./issue-yoloforwards these tokens too. The heavy lifting (parse[Unreleased], append vs promote, shape of the new bullet) lives in a newissueflow-history-updateAgent Skill, mirroring theissueflow-version-bumppattern.Config
ISSUEFLOW_HISTORY_FILE(defaultHISTORY.md) lets projects point atCHANGELOG.mdor similar. Threaded throughSettings.history_file,Settings.template_context, the.envscaffold inrun_init, and every template that references the changelog.Files touched
commands/issue-close.md.j2,commands/issue-yolo.md.j2,skills/issueflow_issue_close/SKILL.md.j2, newskills/issueflow_history_update/SKILL.md.j2,docs/cursor-issue-workflow.md.j2.config.py(newhistory_file),init.py(new.envkey),templating.py(newTEMPLATE_MANIFESTentry)..cursor/**anddocs/cursor-issue-workflow.md.README.md: new skill row, new config-var row, expanded/issue-closebullet.HISTORY.md: new[Unreleased]bullet describing this change (dog-fooding the new step).test_config.py,test_templating.py,test_init.py.Test plan
uv run pytest— 49 passed (was 45).uv run ruff check src/ tests/— clean.uv run python scripts/update_issueflow_setup.pyregenerates.cursor/**anddocs/**cleanly; the new.cursor/skills/issueflow-history-update/SKILL.mdis produced.HISTORY.mdbullet for this PR was added by running the new step itself.HISTORY.md: run/issue-closeand confirm step 3 prints a "skipping changelog update" note and continues normally. (Recommend reviewer verify if time allows.)Notes for reviewers
.cursor/**anddocs/cursor-issue-workflow.mdis regenerated fromsrc/issue_flow/templates/**/*.j2— review the template changes and trust the regen, not the other way around.HISTORY.mdbullet mentions the issue number (#15), matching the Keep a Changelog style already used for 16 can issueflow init command also create a dot env file #35–Expand issue-flow workflow with additional slash commands #39./issue-closebehavior is additive. Existing projects without aHISTORY.mdsee the new step auto-skip.Made with Cursor