Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
bff50d5
Bump the actions-deps group with 4 updates (#944)
dependabot[bot] Sep 2, 2026
652bafc
Bump the nuget-deps group with 1 update (#946)
dependabot[bot] Sep 2, 2026
ebc5c24
Bump the nuget-deps group with 2 updates (#948)
dependabot[bot] Sep 3, 2026
684dc02
Bump the actions-deps group with 4 updates (#950)
dependabot[bot] Sep 4, 2026
9be27eb
Bump the nuget-deps group with 2 updates (#952)
dependabot[bot] Sep 4, 2026
c4118d1
Bump the actions-deps group with 5 updates (#955)
dependabot[bot] Sep 7, 2026
f5c56e7
Bump the nuget-deps group with 2 updates (#957)
dependabot[bot] Sep 7, 2026
d47440f
Re-vendor the carried Skills tree and the stale verbatim rule section…
ptr727 Sep 7, 2026
a9b2fe3
Bump the actions-deps group with 4 updates (#961)
dependabot[bot] Sep 9, 2026
1cc1a0d
Bump the nuget-deps group with 3 updates (#962)
dependabot[bot] Sep 9, 2026
5503bd5
Bump the actions-deps group with 4 updates (#964)
dependabot[bot] Sep 10, 2026
f5ba6f3
Bump the nuget-deps group with 3 updates (#966)
dependabot[bot] Sep 10, 2026
49e0d7c
Bump the actions-deps group with 4 updates (#968)
dependabot[bot] Sep 11, 2026
7134677
Bump the nuget-deps group with 2 updates (#971)
dependabot[bot] Sep 11, 2026
222eda6
Bump the actions-deps group with 5 updates (#972)
dependabot[bot] Sep 14, 2026
f93752f
Bump the nuget-deps group with 5 updates (#974)
dependabot[bot] Sep 14, 2026
a42cfe7
Bump the actions-deps group with 4 updates (#976)
dependabot[bot] Sep 15, 2026
8b92577
Bump the nuget-deps group with 2 updates (#978)
dependabot[bot] Sep 15, 2026
9f32be5
Bump the actions-deps group with 4 updates (#981)
dependabot[bot] Sep 16, 2026
83fb7f9
Bump the nuget-deps group with 3 updates (#982)
dependabot[bot] Sep 16, 2026
f37abbe
Bump the actions-deps group with 5 updates (#985)
dependabot[bot] Sep 17, 2026
308405d
Bump the actions-deps group with 4 updates (#986)
dependabot[bot] Sep 18, 2026
27905d1
Bump the nuget-deps group with 1 update (#988)
dependabot[bot] Sep 18, 2026
926f457
Bump the actions-deps group with 5 updates (#990)
dependabot[bot] Sep 21, 2026
8ce7a2b
Bump the actions-deps group with 4 updates (#993)
dependabot[bot] Sep 22, 2026
d6b7322
Bump the actions-deps group with 4 updates (#995)
dependabot[bot] Sep 23, 2026
ee67658
Bump the actions-deps group with 5 updates (#996)
dependabot[bot] Sep 24, 2026
42ed955
Remove Version Literals and SHAs From WORKFLOW.md (#998)
ptr727 Sep 25, 2026
909c151
Resync Instruction Set and Skills With the Fleet Hub (#999)
ptr727 Sep 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 17 additions & 36 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,35 @@

Repository-wide instructions for GitHub Copilot.

Read [AGENTS.md](../AGENTS.md) first. It routes every standing repository rule to its canonical
document. When performing code review, load and follow the `code-review` skill in
`.github/skills/code-review/SKILL.md`, then load every language, documentation, or workflow skill
that it selects for the changed files. GitHub Copilot reads these files from the pull request's
head branch, so review the instructions in that tree.
Read [AGENTS.md](../AGENTS.md) first. It routes every standing repository rule to its canonical document. When performing code review, load and follow the `fleet-code-review` skill in `.github/skills/fleet-code-review/SKILL.md`, then load every language, documentation, or workflow skill that it selects for the changed files. GitHub Copilot reads these files from the pull request's head branch, so review the instructions in that tree.

Do not duplicate rules from `AGENTS.md`, `GOVERNANCE.md`, `CODESTYLE.md`, or `WORKFLOW.md` here.
This file contains only Copilot-specific bootstrap and output requirements.
Do not duplicate rules from `AGENTS.md`, `GOVERNANCE.md`, `CODESTYLE.md`, or `WORKFLOW.md` here. This file contains only Copilot-specific bootstrap and output requirements.

## Commit Messages and Pull Request Titles

Use an imperative subject of at most 72 characters with no trailing period. Use US English and
title case with lowercase short bind words. Do not add `Co-Authored-By:` unless requested. Do not
put a release-bump magnitude in the title. The full contract is in
[GOVERNANCE.md "Pull Request Title and Commit Message Conventions"](../GOVERNANCE.md#pull-request-title-and-commit-message-conventions).
Use an imperative subject of at most 72 characters with no trailing period. Use US English and title case with lowercase short bind words. Do not add `Co-Authored-By:` unless requested. Do not put a release-bump magnitude in the title. The full contract is in [GOVERNANCE.md "Pull Request Title and Commit Message Conventions"](../GOVERNANCE.md#pull-request-title-and-commit-message-conventions).

## Reviewing Carried Fleet Content

Follow the fidelity declared for the file. A byte-locked reference to shared infrastructure that
this repository does not carry is intentional, not a broken link. Raise substantive defects in
canonical content, but locate the fix at its canonical source instead of proposing a local edit
that its fidelity rejects.
Follow the fidelity declared for the file. A byte-locked reference to shared infrastructure that this repository does not carry is intentional, not a broken link. Raise substantive defects in canonical content, but locate the fix at its canonical source instead of proposing a local edit.

`.github/skills/`, and in the hub `.claude-plugin/fleet-skills/`, are generated by the hub's `scripts/build_dist.py` from its `.agents/skills/`, so a defect in either is fixed in the source or the generator and never in the copy. A defect inside an include region, the text between the marker lines `<!-- include: <path> > <heading> -->` and `<!-- /include -->` that every copy carries as its authored source does, is fixed in the hub under the heading that key names, since the region is generated from that heading's body and the key's path resolves against the hub's root rather than this repository's copy of the same file. Where that heading's body is itself a region, the fix sits one hop further, under the heading its own key names. Post no review comment on a file under `.github/skills/` or, in the hub, `.claude-plugin/fleet-skills/`. When the pull request changes the file the fix belongs in, comment on that file instead, and otherwise state the finding in the review summary.

## GitHub Copilot Review Runbook

For every review:

1. Read the full pull request diff and count its changed files.
2. Follow `.github/skills/code-review/SKILL.md` and every skill it selects.
3. Publish every supported finding. Never suppress a finding or place it in a low-confidence or
hidden findings block.
4. Use an inline comment when a changed line can anchor the finding. Use the review body only when
no valid inline anchor exists.
5. End the review body with the exact machine-readable marker required by the `code-review` skill.

The review automation is `scripts/pr_review.py`, run from a hub checkout. Use its `status`, `wait`,
`comment`, and `reply --resolve` commands instead of reconstructing GraphQL queries or copying
review identifiers by hand. Use `comment` for a suppressed-finding answer in the pull request
conversation. Its status gate verifies the current head, diff coverage, output shape, inline
threads, body-only findings, and required checks.

A formal review with no findings is complete only when it covers the current head and states full
diff coverage. A refusal, partial or absent coverage statement, unrecognized output shape,
unresolved thread, or body-only finding blocks the review loop. Re-run the loop after every fix
push. Never infer review completion from `mergeStateStatus: CLEAN`.

Review effort is user-controlled. The automation observes `Lite`, `Balanced`, or `Max`, including an inherited `Default (<level>)`, and never selects or changes the setting. Effort does not determine coverage or completion. A request can complete without a `copilot_work_started` event, so absence of that event is not a stalled-review verdict. When `wait` returns `PENDING` with `requested=yes`, report the state and rerun `wait` for another bounded interval by default. Do not clear the request automatically because it may be active. If the maintainer directs a retry, remove Copilot in the pull request UI, add it again, and rerun `wait`. This recovery replaces only the review request and never changes the effort setting.
2. Follow `.github/skills/fleet-code-review/SKILL.md` and every skill it selects.
3. Publish every supported finding. Never suppress a finding or place it in a low-confidence or hidden findings block.
4. Use an inline comment when a changed line can anchor the finding. Use the review body only when no valid inline anchor exists.
5. End the review body with the exact machine-readable marker required by the `fleet-code-review` skill.

The review automation is `scripts/pr_review.py`, run from a hub checkout. Use its `status`, `wait`, `comment`, and `reply --resolve` commands instead of reconstructing GraphQL queries or copying review identifiers by hand. Use `comment` for a suppressed-finding answer in the pull request conversation. Its status gate verifies the current head, diff coverage, output shape, inline threads, body-only findings, and required checks.

A formal review with no findings is complete only when it covers the current head and full diff coverage is stated for the change set that head has. The round covering the head states it, or the newest round that states it at all does and the pull request changes the same set of files at both commits, which is the only condition under which a statement carries forward. Only that newest round is consulted, so an older round whose change set does match carries nothing. A round reporting partial coverage of the diff blocks the merge, and so does a refusal, a coverage statement that does not reach this head, meaning absent from every round or carried by none because the change set moved or could not be compared, an unrecognized output shape, an unresolved thread, or a body-only finding. Re-run the loop after every fix push. Never infer review completion from `mergeStateStatus: CLEAN`.
Comment thread
ptr727 marked this conversation as resolved.

Review effort is user-controlled. The automation observes `Lite`, `Balanced`, or `Max`, including an inherited `Default (<level>)`, and never selects or changes the setting. Effort does not determine coverage or completion. A request can complete without a `copilot_work_started` event, so absence of that event is not a stalled-review verdict. When `wait` returns `PENDING` with `requested=yes`, report the state and rerun `wait` for another bounded interval by default, reading that field as acceptance of the request rather than as delivery of a round. Do not clear the request on that first timeout, because it may still be active. Where a second bounded wait times out as well, read the pending set, clear it only where no human or team reviewer is requested alongside the bot, and rerun `wait`, which then has nothing outstanding to defer to and requests afresh, or polls and says so on its own auto-request line where it finds no reviewer node id to request with. The clear replaces that set rather than adding to it and nothing restores a request it drops, so a stall on a pull request that has a human or team reviewer requested goes to the maintainer, and so does one still pending after the wait that follows a clear. That clear is a recovery step the script does not implement, and `docs/pr-reviewer-reference.md`, in the hub checkout the script is run from, carries it. This recovery replaces only the review request and never changes the effort setting.

### Disproved Claims

Expand All @@ -62,5 +44,4 @@ Review effort is user-controlled. The automation observes `Lite`, `Balanced`, or

## When in Doubt

Stop and report the uncertainty. Do not guess at an instruction, suppress a possible finding, or
claim coverage that the review did not perform.
Stop and report the uncertainty. Do not guess at an instruction, suppress a possible finding, or claim coverage that the review did not perform.
Loading
Loading