feat(skills): lift pr-triage, pr-stats, pr-maintainer-review#33
Merged
Conversation
…apache/airflow Three maintainer-facing PR-queue skills move from `<upstream>` into the framework so adopters with a public contributor PR queue can reuse the same playbook. The skills cover: - `pr-triage` — first-pass triage: classify, propose disposition (draft / comment / close / rebase / rerun / mark ready / ping), execute on confirmation. Successor to `breeze pr auto-triage`. - `pr-stats` — read-only summary tables of the open PR backlog grouped by area label. - `pr-maintainer-review` — deep code review one PR at a time; reads the diff, applies the project's review criteria, drafts an `approve` / `request-changes` / `comment` review. The slash command for the third one is renamed from `/maintainer-review` → `/pr-maintainer-review` to fit the category-prefix convention. Project-agnostic genericisation: - All `apache/airflow` → `<upstream>`, `Apache Airflow` → `<PROJECT>` (placeholder convention enforced by `tools/dev/check-placeholders.sh`). - SKILL.md descriptions updated to point at `<project-config>/project.md → upstream_repo` for the default repo. Adopter contract scaffolds added under `projects/_template/`: - `pr-triage-config.md` — committers team handle, area-label prefix, project-specific labels, grace windows. - `pr-triage-comment-templates.md` — comment-body URLs + AI- attribution footer wording + project display name. - `pr-triage-ci-check-map.md` — CI-check name pattern → category + doc-URL map. - `pr-maintainer-review-criteria.md` — list of project's review- criteria source files, security-model calibration doc, backport pattern, section anchors. Each skill's SKILL.md adds a new `## Adopter configuration` section documenting which template files it reads. The framework currently ships with airflow-flavored defaults inline in the supporting files of each skill (comment-templates.md, criteria.md). Follow-up work will move those out so the skills are fully project-agnostic — until then, non-airflow adopters override by forking the relevant supporting file into their own `.claude/skills/`. README "PR triage and review" section updated from a placeholder to the actual skill listing + adopter contract pointers. Two pre-commit-config additions to keep typos / markdownlint clean: - `.typos.toml`: allowlist bracket-prefix CLI prompt fragments (`ody` from `[B]ody`, `equest` from `[R]equest`, etc.) used in the skills' interactive prompts. - `pr-triage-ci-check-map.md`: heading uses `to` instead of `→` for the anchor — markdownlint MD051 doesn't recognise UTF-8 arrows in anchor links. Generated-by: Claude Code (Claude Opus 4.7)
5 tasks
potiuk
added a commit
that referenced
this pull request
May 2, 2026
…ract (#34) Two doc surfaces updated to surface the four PR-skill scaffold files added in #33: - **Top-level README `## Adopting the framework`** — restructured into four subsections: - `Bootstrapping a new adopter` — three concrete steps (submodule add, copy `_template/`, symlink `.claude/skills/`) with the actual commands; - `Per-skill-family contract` — splits the adopter's required `<project-config>/` files by skill family (security workflow vs PR triage and review). Adopters who use only one family can delete the other family's scaffold; - `How skills resolve <project-config>/ paths` — explains the pure-text placeholder convention so adopters don't go hunting for an env var or build step; - `Keeping the submodule current` — preserves the existing `git submodule update --init --recursive` post-merge-hook guidance. - **`projects/_template/README.md`** — adds a `### PR triage and review` subsection listing the four PR-skill scaffold files (`pr-triage-config.md`, `pr-triage-comment-templates.md`, `pr-triage-ci-check-map.md`, `pr-maintainer-review-criteria.md`) with per-file purpose and which skills consume them. The "Checklist after copying" splits into three groups (security workflow / PR triage and review / common finishers) so adopters who only use one family can skip the other group's checks. doctoc TOCs regenerated. Both surfaces carry the same disclaimer that the framework currently embeds airflow-flavoured defaults inline in the PR- skill supporting files; a follow-up PR completes the extraction. Until then non-airflow adopters override by forking the relevant supporting file into their own `.claude/skills/<skill-name>/`. Generated-by: Claude Code (Claude Opus 4.7)
This was referenced May 2, 2026
potiuk
added a commit
that referenced
this pull request
May 4, 2026
…sedes #30) (#44) * docs: enable markdownlint MD040 and tag all fenced code blocks Follow-up to #18. Flips MD040 from `false` to `true` and tags the 64 previously untagged fences across the tree. Most fences ended up `text` (MCP call sketches, URL examples, dir trees, plain output, commit trailers). 3 got `html` for HTML-comment idempotency markers and the <details> envelope, 3 `markdown` for the AI-disclosure block and rollup body samples, 1 `yaml` for the subagent return block in sync-security-issue. One nested-fence case in allocate-cve/SKILL.md needed the outer fence promoted from 3 to 4 backticks so the inner 3-backtick block renders as an actual nested code block instead of breaking the outer one. Signed-off-by: André Ahlert <andre@aex.partners> * docs: extend MD040 tagging to skills added since #30 #30 was opened against an earlier tree state; the pr-management skill family (lifted in #33, renamed to type-what-action in #35) added 9 new skill supporting files with 20 untagged fences that fail markdownlint MD040 once it's enabled. This commit applies the same tagging convention #30 established for the security family + tools to the new pr-management files: pr-management-triage/fetch-and-batch.md 1 fence pr-management-triage/comment-templates.md 2 fences → markdown pr-management-triage/interaction-loop.md 4 fences → text (UI mockups) pr-management-triage/workflow-approval.md 2 fences → text (UI mockups) pr-management-stats/fetch.md 3 fences → text (search queries) pr-management-stats/render.md 3 fences → text (output samples) pr-management-stats/classify.md 3 fences → text (pseudocode) pr-management-code-review/review-flow.md 1 fence → text (CLI mockup) pr-management-code-review/prerequisites.md 1 fence → text (HTTP error) Most fences ended up `text` (the same catch-all #30's commit message used for "MCP call sketches, URL examples, dir trees, plain output"). Two `markdown` fences in `pr-management-triage/comment-templates.md` because the content is a markdown link / list item example that GitHub should render as markdown. prek run --all-files clean. MD040 reports zero violations across the tree. Generated-by: Claude Code (Claude Opus 4.7) --------- Signed-off-by: André Ahlert <andre@aex.partners> Co-authored-by: André Ahlert <andre@aex.partners>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
apache/airflowinto the framework:pr-triage,pr-stats,pr-maintainer-review(renamed frommaintainer-reviewper the category-prefix convention). 7522 lines of skill content moved.apache/airflow→<upstream>,Apache Airflow→<PROJECT>per the framework's placeholder convention (enforced bytools/dev/check-placeholders.sh).projects/_template/:pr-triage-config.md,pr-triage-comment-templates.md,pr-triage-ci-check-map.md,pr-maintainer-review-criteria.md. Each skill'sSKILL.mdadds a new## Adopter configurationsection pointing at these.PR triage and reviewsection graduates from a placeholder to the actual skill listing + adopter contract pointers.What the skills do
pr-triagebreeze pr auto-triage.pr-statspr-maintainer-reviewAPPROVE/REQUEST_CHANGES/COMMENTreview with inline findings.Known follow-up work
The framework currently ships with airflow-flavored defaults inline in the supporting files of each skill (e.g.
pr-triage/comment-templates.mdreferences airflow's PR-quality-criteria URL;pr-maintainer-review/criteria.mdlists airflow'scode-review.instructions.mdandAGENTS.mdpaths). The new template scaffolds inprojects/_template/document the contract; a follow-up PR will complete the extraction so the skills read exclusively from<project-config>/. Until then, non-airflow adopters override by forking the relevant supporting file into their own.claude/skills/. This is documented in each skill's new "Adopter configuration" section.Two minor pre-commit-config additions
.typos.toml: allowlist bracket-prefix CLI prompt fragments (odyfrom[B]ody,equestfrom[R]equest, etc.) used in the skills' interactive prompts.pr-triage-ci-check-map.mdheading usestoinstead of→: markdownlint MD051 doesn't recognise UTF-8 arrows in heading-derived anchors.Test plan
check-placeholders)apache/airflow/Apache Airflowliterals in framework files/maintainer-review→/pr-maintainer-reviewrenamed everywherepr-triage↔pr-stats,pr-triage→pr-maintainer-review) updated🤖 Generated with Claude Code