agentleFS
GoogleKnown publishergoogle/A2UI/.agents/skills/pr-hygiene/SKILL.md

pr-hygiene

Skill17k starsChanged 3 months agoApache-2.0View on GitHub

Enforces pull request scope, atomicity, and software design standards distilled from human reviewer feedback across A2UI pull requests. Use when authoring, preparing, splitting, or reviewing a pull request, or when a change introduces new modules, abstractions, or comments.

We split this skill into the rules it gives an agent

12 rules. About 0 are common, 11 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈11

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Keep each PR scoped to a single logical objective.

    line 17
  2. Distinctive:

    If a change is becoming broad, split it into smaller, logically isolated PRs.

    line 18
  3. Distinctive:

    If a refactoring is required to support a new feature, implement the refactoring first in a dedicated PR (or foundational stacked layer), …

    line 32
  4. Distinctive:

    Do not modify repository tooling, package manager wrappers, or shared build scripts unless that is the explicit objective of the PR.

    line 45
  5. Distinctive:

    Write a clear, self-contained PR description that details the specific problem, solution, and verification steps for this PR alone.

    line 56
  6. Distinctive:

    Avoid relying on ephemeral stack metadata (e.g., avoid "Part 2 of 5" or "stacked on top of #123").

    line 57
  7. Very specific:

    When a PR modifies the public API or consumer-facing behavior of a published package, update its CHANGELOG.md following update-changelog.

    line 58
  8. Distinctive:

    Ensure the PR compiles cleanly and passes all format checks, lints, and unit tests independently before requesting review.

    line 59
  9. Distinctive:

    Add a comment only when it explains a line or block that is hard to understand on its own, or the reasoning behind a decision, invariant, …

    line 70
  10. Distinctive:

    Keep docstrings and JSDoc blocks focused on what a caller needs: what the symbol is for and any contract the signature does not show.

    line 71
  11. Distinctive:

    Prefer a clearer identifier or a smaller helper function over a comment that explains a confusing one.

    line 73
  12. Distinctive:

    Reduce Complexity, Don't Move It: Avoid fixes that merely relocate complexity or make future changes harder.

    line 85

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

PR Hygiene, Atomicity, Scope Control & Software Design

Principles

1. Enforce Atomic, Minimal PRs for Review Velocity

  • Problem & Rationale: Large, monolithic pull requests overwhelm human reviewers, increase merge conflict risks, delay reviews, and make post-merge debugging or bisecting painful. PRs must be atomic and as minimal as possible to facilitate quick, high-confidence reviews.
  • Actionable Guidance:
    • Keep each PR scoped to a single logical objective.
    • If a change is becoming broad, split it into smaller, logically isolated PRs.
    • Stack split PRs (for example with gh stack) when changes build sequentially upon one another, improving logical isolation while maintaining developer flow.
  • Reviewer / Agent Checklist:
    • Is this PR atomic and minimal? Can it be reviewed thoroughly in under 15 minutes?
    • Could this PR be split into smaller, stacked PRs to improve logical isolation and review velocity?

2. Never Bundle Features with Unrelated Refactoring

  • Problem & Rationale: Bundling "feature X" with "a bit of refactoring in module Y" (or even refactoring within the same module) conflates behavioral changes with structural adjustments. Reviewers cannot easily distinguish intentional functional changes from refactoring artifacts, increasing the risk of subtle regressions slipping through.
  • Actionable Guidance:
    • Separate features and refactorings into independent PRs.
    • PRs should strictly contain only the changes required to fulfill their specific objective.
    • If a refactoring is required to support a new feature, implement the refactoring first in a dedicated PR (or foundational stacked layer), verify all existing tests pass, and then implement the feature in a separate PR on top.
  • Reviewer / Agent Checklist:
    • Flag any refactoring, structural cleanup, or renaming bundled into a feature PR.
    • Request separating the feature and the refactoring into two independent PRs.

3. Eliminate Unrelated Tooling, License Header, and Formatting Noise

  • Problem & Rationale: Incidental edits, such as updating copyright years on untouched files, tweaking package manager wrappers, reformatting untouched lines, or modifying unrelated build scripts, distract reviewers, inflate diff size, and create misleading git blame history.
  • Actionable Guidance:
    • Revert any unsolicited copyright year updates on untouched files.
    • Confine formatting changes strictly to the code lines being modified.
    • Do not modify repository tooling, package manager wrappers, or shared build scripts unless that is the explicit objective of the PR.
  • Reviewer / Agent Checklist:
    • Revert unsolicited copyright year updates and script wrapper tweaks in existing files.
    • Ensure formatting changes are strictly confined to modified code.

4. Self-Contained Descriptions & Independent CI Validation

  • Problem & Rationale: Reviewers evaluate PRs individually. PR descriptions with missing context or commits that break CI midway through a series stall review cycles and block CI pipelines.
  • Actionable Guidance:
    • Write a clear, self-contained PR description that details the specific problem, solution, and verification steps for this PR alone.
    • Avoid relying on ephemeral stack metadata (e.g., avoid "Part 2 of 5" or "stacked on top of #123").
    • When a PR modifies the public API or consumer-facing behavior of a published package, update its CHANGELOG.md following update-changelog.
    • Ensure the PR compiles cleanly and passes all format checks, lints, and unit tests independently before requesting review.
  • Reviewer / Agent Checklist:
    • The PR description clearly explains the motivation, changes, and verification steps independently.
    • All CI checks (formatting, linting, unit tests) pass cleanly for this PR alone.

5. Comment Only What the Code Cannot Say

  • Problem & Rationale: Comments that restate the code or the identifier, or that repeat the PR description in every file, add reading time without adding information, and drift out of date.
  • Actionable Guidance:
    • Add a comment only when it explains a line or block that is hard to understand on its own, or the reasoning behind a decision, invariant, or tradeoff that is not obvious from the code.
    • Keep docstrings and JSDoc blocks focused on what a caller needs: what the symbol is for and any contract the signature does not show. Do not echo parameter names or types that are already in the type signature.
    • State a shared design once (in the module header or PR description); do not repeat it per symbol.
    • Prefer a clearer identifier or a smaller helper function over a comment that explains a confusing one.
  • Reviewer / Agent Checklist:
    • Every added comment states something the code itself does not.
    • Docstrings and JSDoc blocks are concise and free of restated type signatures.

6. Prefer Deep Modules and Reduce System Complexity

  • Problem & Rationale: Shallow modules that expose complex configuration or internal mechanics for minimal functionality increase cognitive load across the codebase. Similarly, tactical quick patches that shift complexity from one caller to another accumulate technical debt.
  • Actionable Guidance:
    • Prefer Deep Modules: Design simple, narrow, and predictable public interfaces that hide meaningful implementation complexity behind a clean abstraction.
    • Reduce Complexity, Don't Move It: Avoid fixes that merely relocate complexity or make future changes harder; decrease overall system complexity.
    • Obvious Design: Choose naming and structure that make the design and intent obvious at the call site.
    • Strategic over Tactical Changes: Favor strategic designs that solve the root cause cleanly over tactical patches that work around the immediate symptom.
  • Reviewer / Agent Checklist:
    • Does the module expose a narrow, predictable interface relative to the complexity it encapsulates?
    • Does the change reduce overall complexity rather than pushing burden onto callers?

Download now (ZIP)

Trending

Less talk lately.about the whole repository

Dec 2025: 10 mentionsJan 2026: 6 mentionsFeb 2026: 3 mentionsMar 2026: 8 mentionsApr 2026: 18 mentionsMay 2026: 22 mentionsJun 2026: 3 mentionsJul 2026: 1 mentionAug 2026: 1 mentionSep 2026: 0 mentionsOct 2026: 1 mentionNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the google/A2UI repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about google/A2UI

The biggest 5 of 73 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 73

Talked about on GitHub, YouTube, Bluesky and Hacker News (73 times).

On GitHub · 50

45 more on GitHub

On YouTube · 17

12 more on YouTube

On Bluesky · 5

On Hacker News · 1

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.