agentleFS
s3s-projects3s-project/s3s/.agents/skills/pull-request/SKILL.md

pull-request

Skill313 starsChanged 26 days agoApache-2.0View on GitHub

Prepare a change for this repository as a pull request. Use when a branch is ready to publish, when writing the commit series or the pull request description, or when a queued pull request needs follow-up.

We split this skill into the rules it gives an agent

6 rules. 0 are common, 3 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 43 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Run just ci-python for Python changes, just spdx-check for new files, and just link-license-check when the set of published crates changes.

    line 15
  2. Distinctive:

    Keep one logical change per branch.

    line 18
  3. Very specific:

    Follow Conventional Commits.

    line 28
  4. Very specific:

    Add Assisted-by: <tool>:<model> when a tool wrote a substantive part of the change, and never add Signed-off-by on someone else's behalf.

    line 32
  5. Distinctive:

    Body: use these sections in this order and drop the ones that do not apply.

    line 37
  6. Distinctive:

    Treat a review comment as a question to settle, not a verdict to obey: answer with the artifact that settles it (a command, a file, a test) …

    line 62

“Common” is measured: kept by at least 6 in 10 of the 43 edited versions of this file we could read. “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

Pull request

A pull request here is squash-merged into main, so its title becomes the commit subject on main and its body is the only narrative a later reader gets. Prepare both with the same care as the diff.

Before publishing

  • Run the gates on the tree that will be pushed: just dev, just ci-rust, and the nightly clippy line CI uses. just ci-rust ends with assert_unchanged, so a codegen run that is not committed fails the gate; keep just codegen idempotent. CI runs just ci-rust under both a stable and a nightly toolchain, so the nightly half has to be run locally as cargo +nightly clippy --workspace --all-targets --all-features -- -D warnings.
  • Run just ci-python for Python changes, just spdx-check for new files, and just link-license-check when the set of published crates changes. A skill lives in .agents/skills/<name>/SKILL.md, is symlinked from .github/skills/<name>, and carries license: "Apache-2.0" in its frontmatter instead of an SPDX header.
  • A change that touches a feature gate is also checked in s3s-fs: the default build must not pull quinn or h3, and --features http3 must.
  • Collect the evidence the body will cite: commands, exit codes, counts, and the source of every number (a gate, a measurement, a parity check).
  • Keep one logical change per branch. A second concern rides in a second pull request, not in a second commit series.

Branch and history

  • Name the branch <type>/<slug> with the same type the commits use: feat/, fix/, docs/, test/, refactor/, chore/.
  • Branch from main, or from the branch the change builds on, and keep the history linear: the main ruleset requires linear history and the merge method is squash, so merge commits and "fix review" commits only enlarge the reviewer's diff.
  • Fold a fix into the commit that owns the file and push with --force-with-lease. Rewriting your own unmerged branch is normal here; rewriting a branch someone else reviewed warrants a comment that says what moved.

Commits

  • Follow Conventional Commits; the Git section of CONTRIBUTING.md points there.
  • Scope with the crate or the area the change belongs to (s3s, s3s-fs, codegen, xtask, ci, deps, release, ...).
  • The subject states the change; the body states why it is needed and what it makes true. Do not narrate the iterations that led to it.
  • Mark a change that alters existing behaviour with ! after the type or scope (feat(s3s)!:) and describe the migration under ### Behavior.
  • Add Assisted-by: <tool>:<model> when a tool wrote a substantive part of the change, and never add Signed-off-by on someone else's behalf; the AI Contribution Policy governs both.

Title and body

  • Title: the subject of the squash commit, without a (#N) suffix — GitHub appends the number when it merges.
  • Body: use these sections in this order and drop the ones that do not apply.
    • ### Summary — one paragraph: the problem, the change, and the number that shows the effect.
    • ### Changes — bullets, one per behavioural unit rather than one per file.
    • ### Behavior — what changes for a user or a caller, including deliberate breakages.
    • ### Tests — what ran, with exit codes or counts, plus any parity check or red control that shows the tests can fail.
    • ### References — the issues, upstream discussions or earlier pull requests the change answers. Write Part of #N while the issue still tracks other work: Fixes and Closes close it on merge.
    • ### Dependencies — what the change adds, removes or bumps, and anything the release order depends on.
    • ### AI — the tool and model that took part, what they did, and that a human reviewed the diff and owns the change.
  • Open the pull request as a draft: the main ruleset runs a Copilot code review on drafts too. Convert it to ready when the checks are green and the description is complete.

What the checks will run

  • CI runs on pull_request against main and feat/**, on merge_group, on a weekly schedule and on manual dispatch. skip-check is configured with paths_ignore: '["*.md"]', and status-check aggregates the jobs; that aggregate is the only check the ruleset requires.
  • A pull request runs python, rust-msrv, rust (stable and nightly; the nightly leg is continue-on-error), cross-test (macOS and Windows), wasm-test and coverage.
  • The seven e2e jobs (mint, s3-tests, boto3, rclone, s3s-e2e against silo or s3s-fs) carry if: github.event_name != 'pull_request': they run in the merge queue and on the schedule, never on the pull request. A pull request with every visible check green can therefore still fail the queue, so run the affected script under scripts/ before queueing it.
  • Audit (dependency and license policy) runs when a manifest, the lockfile or .cargo/ changes; Fuzz when fuzz/, crates/ or its own workflow changes — on a pull request that is fuzz-check alone, because fuzz-run carries the same != 'pull_request' gate and fuzzes one rotating target per week on the schedule; Semver runs on every pull request and merge group.
  • Code scanning uses GitHub's default setup. A very large diff can make it attribute pre-existing alerts to the pull request, and that check is not required: read code-scanning/alerts before treating it as a finding.

Landing

  • main takes pull requests through the merge queue with the squash method; the queue re-runs CI, Audit and Semver on merge_group, and that is where the e2e jobs run for the first time. A queued pull request that fails the queue is dequeued rather than merged, so read the merge_group run before queueing it again.
  • Merging does not delete the head branch, so clean up after it: once the pull request is merged, delete the head branch (remote and local) and remove the worktree instead of leaving a stale checkout behind.

Working with a review

  • Treat a review comment as a question to settle, not a verdict to obey: answer with the artifact that settles it (a command, a file, a test) and state what changed.
  • Reply on the line that was questioned, and say what changed.
  • Either amend the commit that owns the change or append a commit that answers the review; both are accepted here. Pick the one that leaves the history easiest to read and mention which one you used.

Watching a pull request

Hang cargo run -p xtask -- watch-pr <PR#> in the background while a pull request is open, read its log when it exits and hang it again; the watch-pr skill covers the state line, the exit conditions, the restart discipline, and how to wait for checks alone with gh.

The public layer

Everything committed here, and everything pasted into a pull request, a review or a log, is public. Strip local paths, internal notes, tool- or machine-specific references, and personal data before they leave the machine, and keep a published tool self-contained: no dependency on a local checkout, no absolute path, no private context. A script that is brought into the repository is rewritten for that audience rather than copied.

What needs an explicit instruction

Pushing a branch, opening, undrafting, queueing or merging a pull request, dismissing a scanning alert, changing repository settings, deleting branches, and force-pushing a branch somebody else owns are actions to take only when the person responsible asks for them.

Download now (ZIP)

  • Other versions48 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 48

    1. samchon/typia★ 5.9ksame name
    2. epicenter-md/epicenter★ 4.8ksame name
    3. EpicenterHQ/epicenter★ 4.8ksame name
    4. werf/werf★ 4.7ksame name
    5. basicmachines-co/basic-memory★ 4.4ksame name
    6. PaulWoitaschek/Voice★ 3.2ksame name
    7. heyitsnoah/claudesidian★ 2.6ksame name
    8. samchon/nestia★ 2.2ksame name
    9. theopenco/llmgateway★ 1.7ksame name
    10. microsoft/hve-core★ 1.6ksame name

    38 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use issue-campaign, development and 9 more.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • samchonSkill

      issue-campaign

      Defines the default solo repository-wide issue campaign for typia: exhaustive discovery, lead-vetted issue publication, one unified CI-validated implementation pull request per cycle, solo Self-Review, and repeated rediscovery until a full clean round. Use for broad audits, many issue candidates, or repeated issue-to-pull-request campaigns unless the user explicitly requests parallel or multi-agent execution; do not use for one already-defined issue or an ordinary pull request.

      Also in 3 projects that use this

    • mfang0126Skill

      development

      Full-stack development workflow skill. Guides the complete cycle from understanding requirements to shipping code via PR with Preview validation.

      Also in 3 projects that use this

    • AnthropicSkill

      contracts

      Answer a question across a corpus of contract documents with verified citations. Use when the user asks what a contract says, which contracts have a clause, what changed between amendments, or any question that needs reading and citing across a set of contract files. The corpus must be on the local filesystem (see README).

      Also in 3 projects that use this

    • dragonflydbSkill

      benchmark

      Benchmark Dragonfly (and compare against Valkey/Redis) on local or remote cloud instances, then produce a performance + memory report with charts and a raw-data appendix. Use this whenever the user runs /benchmark, or asks to benchmark / load-test / measure throughput, QPS, latency, or memory efficiency of Dragonfly or another Redis-compatible server, to compare Dragonfly vs Valkey or Redis, or to generate a benchmark report. Trigger it even when the user just describes the goal ("see how fast Dragonfly is on this box", "compare memory per key vs Valkey") without saying the word "benchmark".

      Also in 4 projects that use this

    • GoogleSkill

      prototype

      Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

      Also in 5 projects that use this

    • MicrosoftSkill

      adversarial-review

      Adversarial review of a system design from 6 critical perspectives -- SRE, security, staff engineer, finance, operator, and developer advocate. Produces a unified risk assessment. Use for INTERACTIVE on-demand reviews during a design conversation (/adversarial-review). For RECIPE-DRIVEN reviews (where prior step context is needed), use the systems-design-critic agent instead.

      Also in 3 projects that use this

  • In this repository11 other files it gives its agents.

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.