Issue #491 requires a documented 7-day stale-conflict policy. This commit adds docs/STALE_PR_POLICY.md specifying: - 7-day threshold for merge-conflicted PRs - Standard closure procedure with rationale comment - Exceptions for active milestones, explicit requests, experimental work - Daily check → pester → close workflow Closes #491
1.6 KiB
1.6 KiB
Stale/Blocked PR Policy
Scope: hermes-agent and all Timmy_Foundation repositories
Effective: 2026-04-29
Related: Issue timmy-home#491, hermes-agent#129/#108/#107
Purpose
Blocked or merge-conflicted PRs stall delivery and clutter the pipeline. This policy defines when such PRs must be closed and how exceptions are handled.
7-Day Stale-Conflict Rule
- A PR that cannot be merged due to merge conflicts and remains in that state for 7 consecutive days is considered stale-blocked.
- Stale-blocked PRs should be closed with a comment explaining:
- why the PR is being closed (merge conflicts, unrebased)
- whether the underlying work is still needed
- how to rebase or reopen if still relevant
- The closure comment should reference the related issue(s) or epic.
Exceptions
A PR may be exempt from automatic closure if:
- It is linked to an active milestone with an explicit rebase plan
- The author has explicitly requested extra time in a comment
- The PR is kept open intentionally for long-running experimental work
(must carry the
experimentallabel)
Process
- Daily check (via cron): scan all open PRs with
mergeable = false - Age filter: if PR is >7 days old and
blocked = trueor conflicts present → flag - Comment: pester author to rebase within 48h
- Close: if no action after 48h, close with standard closure message
Record
Closed PRs are documented in:
- timmy-home: the cross-audit triage report links to closed PRs
- hermes-agent: closure comments explain the decision in each case
This policy directly implements timmy-home#491's final acceptance criterion.