docs: document peer-advisory-drift in the org README - #18
Merged
Conversation
The reusable landed without any of the four places that describe the shared CI being updated. One of them was not merely incomplete but wrong: the cost philosophy stated that the only scheduled work is Dependabot and that no cron CI job exists in the org. That is no longer true, and the exception deserves its reason rather than a quiet edit -- Dependabot audits what is installed and structurally cannot see a declared range that has gone stale. Adds the workflow to the inventory table, an inputs/outputs section matching the shape used for the other reusables, and a caller snippet copied from the one running in nest-queue. Records that Rust is an unfilled gap rather than a deliberate exclusion: cargo-audit covers the installed side there, which is the same blind spot this exists to close on the Node side.
There was a problem hiding this comment.
Pull request overview
Updates the org-level README to document the peer-advisory-drift reusable workflow, including why it exists as the sole cron-based CI exception and how repos should call it.
Changes:
- Adds
peer-advisory-drift.ymlto the “What lives here” inventory and “Project types” matrix. - Updates the “Cost philosophy” section to explicitly describe the single scheduled CI exception and its rationale.
- Adds a dedicated inputs/outputs reference section for the
peer-advisory-driftreusable, including a caller snippet and required permissions.
The cost note claimed the workflow runs no install. It installs semver into a throwaway RUNNER_TEMP directory -- what it never installs is the caller's dependency tree, which is the expensive part and the reason the claim was made. Saying "no install" overstated it in a section whose whole purpose is an honest accounting of Action minutes.
Member
Author
{
"pr": 18,
"repo": "bymaxone/.github",
"localGate": "none — docs-only change in a repo with no package.json; CI is the gate",
"consecutiveFailures": {},
"flakyReruns": {},
"processedCommentIds": [3695724378],
"processedFindings": [
"2026-08-01T13:45:24Z README:102 — 'runs no install' overstated; the job installs semver into RUNNER_TEMP, just never the caller's tree. Fixed in 1e136e9."
],
"paused": false,
"note": "Copilot delivers findings in the review BODY as suppressed comments, not only as threads. A thread count of 0 does NOT mean no outstanding findings — always read the newest review body."
} |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.
Suppressed comments (1)
README.md:255
- The Project types table marks
peer-advisory-drift.ymlas “✅ Live (@v1)”, but thev1tag currently points toed0df64and does not include.github/workflows/peer-advisory-drift.yml(it 404s at@v1). Untilv1is moved, callers pinned to@v1will fail, so the README should either note this is pending or avoid claiming it’s live at@v1yet.
| 🟢 **Node libraries** — `@bymax-one/nest-*` | `node-lib-ci.yml` · `security.yml` · `peer-advisory-drift.yml` | ✅ Live (`@v1`) |
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.
peer-advisory-drift.ymlmerged in #17 without any of the four places that describe the shared CI being updated. Three were incomplete. One was wrong.The one that was wrong
The cost philosophy stated, categorically:
That is no longer true — the workflow I merged is a cron CI job. Quietly deleting the sentence would have hidden that a stated org principle now has an exception, so it says what the exception is and why it has to exist:
Dependabot audits what is installed — the lockfile — and stays quiet while a published
peerDependenciesrange still admits a version with an advisory. The range never changes and becomes wrong anyway, because the advisory database is what moves. The drift arrives with no commit and no alert, between releases, when nothing is being pushed. That is why it cannot be event-driven.The cost caveat is preserved: read-only GraphQL queries, no build, no install.
The three that were incomplete
node-ci,node-lib-ciandrust-cieach document their inputs; this one had noneThe inputs section follows the existing shape — inputs table, defaults, notes — plus an outputs table, since this is the first reusable with outputs worth consuming. The caller snippet is copied from the one now running in
nest-queue, with the two non-obvious decisions explained inline: why theconcurrencygroup is deliberately not keyed bygithub.ref, and why the job is pinned to the default branch.Rust is recorded as a gap, not an exclusion
Example apps are not published, so nothing reads the ranges they declare — genuinely out of scope. Rust is different, and saying so is more useful than silence: the advisory database exposes the same data under
ecosystem: RUST, but auditing it means parsingCargo.tomland[workspace.dependencies]and honouring Cargo's semantics, where a bare"1.2"already means^1.2.cargo-auditcovers the installed side there — the same blind spot this workflow exists to close on the Node side.Verification
Not eyeballed. Parsed the workflow and cross-checked every documented field against it:
The caller snippet was diffed field-by-field against the live one in
nest-queue— name, cron, concurrency group,cancel-in-progress,issues: write, the default-branch guard — all match. Every internal link in the README resolves.The
v1tag has not been moved. It points ated0df64whilemainis ahead, sopeer-advisory-drift.ymlreturns 404 at@v1and the callers already merged intonest-queuecannot resolve it. The README's own runbook covers it:Say the word and I will move it.
Ready for your review — not merging it.