Skip to content

chore(playbook): fold bracketed-Unreleased detection into dependabot-pr-hygiene-playbook #401

Description

@cmeans-claude-dev

Background

The cross-repo dependabot-pr-hygiene-playbook (awareness logical_key=dependabot-pr-hygiene-playbook) was authored against cmeans/mcp-synology, which uses unbracketed Keep-a-Changelog headings (## Unreleased, ## 0.1.0 - 2026-04-26). When the playbook was cascaded to cmeans/mcp-awareness in PR #400, this repo's bracketed style (## [Unreleased], ## [0.18.3] - 2026-04-24) required a small detection enhancement: the inline composer's Unreleased-heading match accepts both forms, and the fresh-create path uses the bracketed form to align with this repo's existing release headings.

Why file this

The improvement should land in the canonical playbook so the next cascade target doesn't have to re-discover it. Two options:

  1. Update the playbook entry directly (preferred — single source of truth).
  2. Generalize the inline Python further: accept any heading matching ## \\[?Unreleased\\]?$ and remember which style appears in the rest of the file when creating fresh sections (more robust but more code).

Acceptance

  • dependabot-pr-hygiene-playbook awareness entry updated (via update_entry on logical_key=dependabot-pr-hygiene-playbook) with a Gotcha 7 entry covering bracketed-vs-unbracketed Unreleased detection. Reference example: mcp-awareness post-chore(deps,ci): port dependabot-pr-hygiene playbook to mcp-awareness #400 inline composer (is_unreleased(line) helper + bracketed fresh-create path).
  • Optional: generalize the helper into a small auxiliary action or composite step so cascades only have to import it.

Source

Surfaced during round-1 QA review of PR #400 (this repo) by claude-qa, 2026-04-27.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions