Skip to content

Revisit ADR-0008: should .claude/rules/pr-body-contract.md stay always-loaded? #641

Description

@kyle-sexton

ADR-0008 distributes .claude/rules/pr-body-contract.md as an always-loaded rule to every gate caller so that plugin-less sessions see the PR-body contract before a bare gh pr create. The stated driver was first PRs failing the required pr-issue-linkage check.

That driver has changed: the rule itself now says a missing closing keyword or section does not fail ci-status; pr-contract leaves an advisory comment and the needs-issue-linkage label. The only gating parts are the Conventional Commits title and the do-not-merge label.

Cost: ~190 words loaded into every session in every gate-caller repo, relevant only when opening a PR. In melodic-software/.github the content is already covered at PR time by .github/PULL_REQUEST_TEMPLATE.md (closing line + four sections), .claude/source-control.md (pr_body_required_sections), and a CLAUDE.md pointer.

Options:

  1. Keep always-loaded, trim to the gating facts plus one line pointing at the template.
  2. Sync to an on-demand path (e.g. .claude/pr-body-contract.md) and rely on each consumer's CLAUDE.md pointer; lockstep-drift.mjs would follow the new path.
  3. Keep as is, and record in ADR-0008 why the advisory switch does not change the decision.

Found by a progressive-disclosure audit in the melodic-software/.github hygiene sweep (melodic-software/.github#153).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions