Skip to content

Update HISTORY.md from /issue-close (#15)#42

Merged
jepegit merged 1 commit into
mainfrom
15-update-history-when-making-changes-worthy-of-mentioning
Apr 19, 2026
Merged

Update HISTORY.md from /issue-close (#15)#42
jepegit merged 1 commit into
mainfrom
15-update-history-when-making-changes-worthy-of-mentioning

Conversation

@jepegit
Copy link
Copy Markdown
Owner

@jepegit jepegit commented Apr 19, 2026

Summary

Closes #15.

Adds a new "Update HISTORY.md" step to /issue-close so 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:

  • Append mode (no bump). Appends a bullet to the existing ## [Unreleased] section:
    - <summary>. (#<N>)
  • Promote mode (with bump, e.g. /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.md is 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-yolo forwards these tokens too. The heavy lifting (parse [Unreleased], append vs promote, shape of the new bullet) lives in a new issueflow-history-update Agent Skill, mirroring the issueflow-version-bump pattern.

Config

  • New env var ISSUEFLOW_HISTORY_FILE (default HISTORY.md) lets projects point at CHANGELOG.md or similar. Threaded through Settings.history_file, Settings.template_context, the .env scaffold in run_init, and every template that references the changelog.

Files touched

  • Templates (source of truth): commands/issue-close.md.j2, commands/issue-yolo.md.j2, skills/issueflow_issue_close/SKILL.md.j2, new skills/issueflow_history_update/SKILL.md.j2, docs/cursor-issue-workflow.md.j2.
  • Python: config.py (new history_file), init.py (new .env key), templating.py (new TEMPLATE_MANIFEST entry).
  • Regenerated outputs under .cursor/** and docs/cursor-issue-workflow.md.
  • README.md: new skill row, new config-var row, expanded /issue-close bullet.
  • HISTORY.md: new [Unreleased] bullet describing this change (dog-fooding the new step).
  • Tests: 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.py regenerates .cursor/** and docs/** cleanly; the new .cursor/skills/issueflow-history-update/SKILL.md is produced.
  • Dog-food: the HISTORY.md bullet for this PR was added by running the new step itself.
  • Manual smoke in a scratch project with no HISTORY.md: run /issue-close and confirm step 3 prints a "skipping changelog update" note and continues normally. (Recommend reviewer verify if time allows.)

Notes for reviewers

Made with Cursor

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
@jepegit jepegit linked an issue Apr 19, 2026 that may be closed by this pull request
@jepegit jepegit merged commit 2064900 into main Apr 19, 2026
1 check passed
@jepegit jepegit deleted the 15-update-history-when-making-changes-worthy-of-mentioning branch April 19, 2026 18:24
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.

update history when making changes worthy of mentioning

1 participant