chore(skills): catch and fix vendored drift instead of waiting to notice it - #66
Merged
Merged
Conversation
…ice it Two directions of drift exist and only one was covered. `cargo test` holds the manifest to the documents in this tree, so a hand-edited vendored copy fails `every_origin_is_well_formed` on its digest. Nothing checked whether those documents still match the repository they were copied from. That second drift is caused by another project publishing, so it arrives with no commit here and no pull request notices it - and the copies are exactly what `devup_skills install` writes on a machine with no network, which is the machine this whole feature exists for. It was already real. devup-ui's SKILL.md had moved from b0d61a2d to 3b1c3bff, 16,629 to 20,632 bytes, adding the rule that no .css file belongs in application source and the rule for what devup-ui extracts statically. A bare machine installing from this binary would have been told neither. This commit re-vendors it. The new `skill-drift` job runs weekly and on demand, re-vendors, and opens a pull request carrying the refreshed bytes. It does not merely turn a scheduled run red: a red scheduled run is a notification nobody acts on, while a pull request is the same information in a form that can be reviewed, and it carries the bytes so nobody reproduces them by hand. It writes a Patch changepack with that pull request. A re-vendored document changes what `devup_skills install` writes, so it is a shipped behaviour change; without the changepack the refresh would fail the `changepack required` gate it has to pass and sit unreleased. It is deliberately not a pull request gate. Failing unrelated pull requests over someone else's publish is the trade devup-ui made by pinning a dependency to `latest` beside a committed generated file, and every pull request against its main went red for a staleness none of them caused.
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.
Why
Two directions of drift exist and only one was covered.
cargo testholds the manifest to the documents in this tree — a hand-edited vendored copy failsevery_origin_is_well_formedon its digest. Nothing checked whether those documents still match the repository they were copied from.That second drift is caused by another project publishing, so it arrives with no commit here and no pull request notices it. And the copies are exactly what
devup_skills installwrites on a machine with no network — the machine this whole feature exists for.It was already real
The moment the check was written it found this:
devup-ui's
SKILL.mdhad moved — that is #665, which added the rule that no.cssfile belongs in application source and the rule for what devup-ui extracts statically. A bare machine installing from this binary would have been told neither of them. This PR re-vendors it.What the job does
Weekly (
cron: 0 6 * * 1) and on demand:node scripts/refresh-skills.mjs— re-vendorThree decisions worth calling out
It opens a PR rather than only going red. A red scheduled run is a notification nobody acts on. A PR is the same information in a reviewable form, and it carries the refreshed bytes so nobody reproduces them by hand.
It writes the changepack itself. A re-vendored document changes what
devup_skills installwrites, so it is a shipped behaviour change. Without the changepack the refresh would fail thechangepack requiredgate it has to pass, and sit unreleased.It is deliberately not a pull request gate. Failing unrelated PRs over someone else's publish is exactly the trade devup-ui made by pinning a dependency to
latestbeside a committed generated file — every PR against itsmainwent red for a staleness none of them caused. This blocks nobody.The branch is force-pushed on each run, so a stale refresh never stacks on a newer one. It is owned by the job and nothing else writes to it.
Verification
cargo test -p devup-mcp --all-featurescargo clippy --locked --workspace --all-targets --all-features -- -D warningscargo fmt --all -- --checknode scripts/refresh-skills.mjs --checkbash -non the extracted step scriptThe
--checkflip from 1 to 0 is the meaningful one: it is the drift this PR both detects and fixes.