Broaden Step 2 to find the PR template under every accepted spelling - #108
Broaden Step 2 to find the PR template under every accepted spelling#108dmccoystephenson wants to merge 3 commits into
Conversation
GitHub accepts PULL_REQUEST_TEMPLATE.md and pull_request_template.md, in .github/, the repo root, or docs/, plus a .github/PULL_REQUEST_TEMPLATE/ directory. Step 2 named only the lowercase .github/ path, so on a case-sensitive filesystem a repo using any other spelling had its template skipped silently under the "skip silently if absent" instruction. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Every other bullet in Step 2's file lists opens with a backticked path followed by an em-dash description. Restore that shape. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Self-review rubricScored adversarially against the diff at Universal
Repo-specific
What did run
RecommendationHold for human review. Two independent conditions call for it: This review was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener). |
Summary
.github/pull_request_template.md. Because Step 2's instruction is to "read the following files if they exist (skip silently if absent)", a target repo using any other accepted spelling or location had its PR template missed with no trace left behind. This repository is itself such a case — its template lives at.github/PULL_REQUEST_TEMPLATE.md.PULL_REQUEST_TEMPLATE.mdorpull_request_template.md, in.github/, the repo root, ordocs/, plus a.github/PULL_REQUEST_TEMPLATE/directory when multiple templates are offered.README.md's comparison table repeated the same single lowercase path and has been made spelling-agnostic so the described behavior continues to match what Step 2 actually does.Closes #105
Research grounding
RESEARCH.md§3 — "SWE-bench Verified is inflated; localization is the real bottleneck" applies. The finding's implication is that the dominant agent failure mode is locating the right surface rather than patching it, and its remedy is to make localization explicit rather than assumed. Step 2 is where a generated skill's localization of its target repo is established; a file list that silently under-matches is a localization failure of exactly the kind the finding warns about, and it is invisible downstream because the miss is defined to be silent. An Implementations entry has been recorded under that finding in this PR.Doc sync check
README.md's "What it does" Step list still matchescreate-dev-loop.md's Steps 1:1 — no Step was added or removed{{placeholder}}added or changed has a corresponding Step 4 substitution-table row — no placeholder was added or changedRESEARCH.mdupdated — an Implementations entry was added under §3Test plan
python3 scripts/check_docs.py— passes ("Doc consistency check passed.")python3 -m pytest tests/— 13 passed.github/PULL_REQUEST_TEMPLATE.mdexists and the previous bullet's lowercase path does not, confirming the miss the issue describes was real hereCLAUDE.md's "Testing changes" anchor requires running/create-dev-loopagainst a real target repo and inspecting the generated skill. This session is a headless Gardener dispatch whose sandbox is scoped to this repository's own checkout, so no second repository was reachable to generate against, and Step 6 of that procedure creates a GitHub repository — an action outside what this dispatch is authorized to take unattended. Per the generated skill's Phase 4 UNVERIFIED gate, template surface (create-dev-loop.md) is modified here, so the anchor is required and this PR is not eligible for autonomous merge. Human validation against a fixture repo is requested before merge.Deferred issues (skip reasons)
Recorded here for auditability rather than as comments on the issues themselves:
CLAUDE.mdstill links gardener under the old owner) — deferred.CLAUDE.mdis agent-loaded configuration; the generated skill's Phase 1 classification requires that edits to it be authorized explicitly and separately rather than made mid-cycle, and no such authorization was available in this headless run. The issue itself records the same reason for its own creation.Merge readiness
Not merged by this session. The modified path
create-dev-loop.mdis on the generated skill's do-not-auto-merge list — every change to it propagates to all future generated skills — and the behavioral anchor above could not be run. Both conditions independently call for human review.This PR description was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener).