← ClaudeAtlas

git-prlisted

Generates pull request titles and descriptions from git diffs. Use for any PR creation or update, such as when asked to "open a pull request".
erclx/canon · ★ 2 · Code & Development · score 68
Install: claude install-skill erclx/canon
# Git PR ## Context Read these files in parallel: - `${CLAUDE_SKILL_DIR}/../../standards/branch.md`: branch format, valid types, and constraints - `${CLAUDE_SKILL_DIR}/../../standards/pr.md`: structure, rules, and banned phrases - `${CLAUDE_SKILL_DIR}/references/labels.md`: label map format, matching, and the missing-label warning. Skip when the project has no `.claude/canon/pr-labels.toml`. - `${CLAUDE_SKILL_DIR}/../../standards/markdown.md`: banned words, punctuation, and formatting for all generated text - The `write-human` skill: voice, rhythm, and sentence construction for all generated text - `${CLAUDE_SKILL_DIR}/../../standards/versioning.md`: phase label vs semver discipline Resolve the base ref first, because the log range and the diff below both consume it: ```bash git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD main 2>/dev/null ``` Then run these commands in parallel to gather git context: - `git remote get-url origin 2>/dev/null || echo "NO_REMOTE"` - `git branch --show-current 2>/dev/null || echo "unknown"` - `git log <base>..HEAD --oneline 2>/dev/null || echo "NO_COMMITS"` - `git diff <base> HEAD -- . ':(exclude)*.lock' ':(exclude)*-lock.json' 2>/dev/null || echo "NO_DIFF"` - `git diff --name-only <base> HEAD 2>/dev/null || echo "NO_FILES"` ## Diff baseline Prefer `origin/main` over local `main`. Both reads resolve against `<base>`, so the commits listed and the changes described come from one scope. `git diff main..HEAD` is the form