feat: auto-refresh vendored agent skills via PR-driven flow - #43
Closed
xergioalex wants to merge 2 commits into
Closed
feat: auto-refresh vendored agent skills via PR-driven flow#43xergioalex wants to merge 2 commits into
xergioalex wants to merge 2 commits into
Conversation
Turn every upstream release of DailybotHQ/deepworkplan-skill or DailybotHQ/agent-skill into a new release of this website, unattended. - check_vendored_skills.yml (daily 12:00 UTC + workflow_dispatch): resolves the latest tag of each upstream skill via `gh release view`, compares to the vendored SKILL.md version, and if any skill is behind: force-resets feature__vendored_skills_refresh from main, runs `npx skills add <repo>@<tag>` (asserting the installed SKILL.md version matches the tag), and opens (or updates) a PR against main. - check_and_merge_vendored_skills_pr.yml (daily 17:00 UTC): auto-merges that PR when GitHub reports mergeable_state == "clean". Any other state leaves the PR for a human. Never force-merges. Merging the PR fires release_and_publish.yml normally, so the skill refresh becomes a real website version bump + tag + GitHub Release — skills upstream and website release stay in lockstep. Mirrors the existing check_packages_versions.yml + auto-merge pattern used for npm dependency upgrades. Refactor is behavioural-only; no site content changes. Co-authored-by: Cursor <cursoragent@cursor.com>
Member
Author
|
Cerrando en favor de un patr\u00f3n m\u00e1s simple: refrescar las skills como parte del release existente ( |
4 tasks
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.
Summary
Turns every upstream release of
DailybotHQ/deepworkplan-skillorDailybotHQ/agent-skillinto a new release of this website, unattended — the same PR-driven pattern this repo already uses for npm dependency upgrades (check_packages_versions.yml+check_and_merge_packages_upgrades_pr.yml).Two new workflows work in tandem:
check_vendored_skills.yml— daily 12:00 UTC +workflow_dispatchgh release view --repo <owner/repo>..agents/skills/<name>/SKILL.md. Computes per-skilldwp_moved/db_movedflags — installs only the skills that actually moved, so a partial refresh produces a truthful commit subject (chore: refresh vendored skills to deepworkplan v2.16.3, not the misleadingdeepworkplan v2.16.3, dailybot v3.10.3when only one advanced).feature__vendored_skills_refreshbranch frommain, runsnpx --yes skills add <repo>@<tag> --skill <name> --force -y, asserts the installedSKILL.mdfrontmatterversion:equals the resolved tag (invariant), commits, and force-with-lease pushes.gh pr edits an existing) PR titled🤖 Refresh vendored skills to (…)with a diff-style from/to table and release-notes links.workflow_dispatchaccepts optional inputsdeepworkplan_taganddailybot_tagfor pinning / rollback.check_and_merge_vendored_skills_pr.yml— daily 17:00 UTC +workflow_dispatchfeature__vendored_skills_refresh.mergeable_stateviagh api repos/.../pulls/<n>."clean"(required checks green, no conflicts, branch up to date) →gh pr merge <n> --merge. Any other state → leaves the PR for a human. Never force-merges.The chain
Merging the auto-generated PR fires
release_and_publish.ymlnormally (pull_request: closed && merged == true), which bumpspackage.json, tagsvX.Y.Z, publishes a GitHub Release, and Cloudflare Pages deploys. Latency from upstream skill tag to a live website release with the refreshed skill vendored inside: ~24h, hands-off.Design decisions worth flagging
release: publishedand pushed a follow-up dogfood commit. That was the wrong direction — a new skill should be the reason for a release, not an appendix to one. This design cuts a real version bump for each upstream skill release.resolve()shell function. Command substitution captures stdout, so annotations must go to stderr or they end up inside the captured tag string and break the equality check.--force-with-leasepush on the bot-owned refresh branch — safe because the branch is 100% owned by the automation and force-reset frommainat the start of every run that needs it.Test plan
Once merged (this PR itself will produce a normal
v1.0.75release via the existing flow):Check Vendored SkillsandCheck & Merge Vendored Skills PR).check_vendored_skills.ymlviaworkflow_dispatchwith no inputs. Expected outcome given today's state (.agents/skills/deepworkplan/SKILL.md= 2.16.1, upstream latest = 2.16.3): a PR opens titled🤖 Refresh vendored skills to deepworkplan v2.16.3(assumingdailybotis already at 3.10.3 upstream = current).check_and_merge_vendored_skills_pr.ymlmanually to auto-merge the PR (needs CI green on the refresh PR first).release_and_publish.ymlfires →v1.0.75or similar release published.Files changed
+ .github/workflows/check_vendored_skills.yml(new)+ .github/workflows/check_and_merge_vendored_skills_pr.yml(new)M .github/docs/WORKFLOWS.md(sections 6 & 7 + dependency graph)M AGENTS.md/CLAUDE.md(via symlink) — new "Vendored agent skills" subsection describing the auto-refresh flowNotes for reviewers
AUTOMATION_GITHUB_TOKENhascontents: write+pull-requests: writescope and can bypass branch protection onmain(same PAT used byrelease_and_publish.ymlandcheck_packages_versions.yml).mainallows the same PAT to merge PRs viagh pr merge(already the case for the packages flow).pull_request_check.ymlautomatically. Any PR the bot opens has enough body text to clear the 10-char minimum.