weekly-skill-refresh
Skill4 starsChanged 12 days agoMITView on GitHub
Run the unattended weekly refresh of one client's agent-creator and client-config skills in CowboyLogic/ai-dev from a fresh cloud clone. Use when a routine names a client (claudecode, codex, copilot, opencode).
- Deletes or force-pushes
- Installs packages
- Commits and pushes
In this repository24 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/client-config-opencode/references/agents.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- repository-reviewSkill
- skill-maintenanceSkill
- about-me-skill-creatorSkill
- agent-creator-claudecodeSkill
- agent-creator-codexSkill
- agent-creator-copilotSkill
- agent-creator-opencodeSkill
- client-config-claudecodeSkill
- client-config-codexSkill
- client-config-copilotcliSkill
- client-config-opencodeSkill
- copilot-instruction-creatorSkill
- copilot-workerSkill
- docker-image-managementSkill
- git-commit-messagesSkill
- google-style-docsSkill
- handoffSkill
- markdownlint-validatorSkill
- mkdocs-site-managementSkill
- skill-routerSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
27 rules. About 0 are common, 13 are distinctive, and 14 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 27
Read AGENTS.md first. It governs git, documentation and PR rules.
- Very specific: line 57
Look for this client's unmerged work with GitHub MCP list_pull_requests (state open, head CowboyLogic:refresh/<client>, no base filter).
- Very specific: line 67
No open PR: start fresh. Cloud sessions cannot delete remote branches, so reset instead: git checkout -B refresh/<client> origin/main.
- Very specific: line 76
Before the first edit, confirm git rev-parse --abbrev-ref HEAD is refresh/<client>.
- Very specific: line 90
Read .github/ISSUE_TEMPLATE/weekly_maintenance.md, drop its frontmatter, and fill in every section from what you know now.
- Very specific: line 93
Create it with GitHub MCP issue_write (method create), title [<skill 1>, <skill 2>] Weekly refresh against <Tool> <version>, issue type …
- Distinctive: line 97
Keep the number. If the issue cannot be created, stop and report why.
- Very specific: line 101
Read both skills in full (SKILL.md, everything under references/, README.md, CHANGELOG.md where present) and the sources in the client's …
- Distinctive: line 103
Check the vendor's release notes for the window and the published documentation for each source.
- Distinctive: line 106
Keep every change verifiable.
- Very specific: line 109
Update the version basis and verification date in each skill's README.md and SKILL.md.
- Very specific: line 114
Update the matching docs/ pages per AGENTS.md "Artifact and documentation synchronization".
- Distinctive: line 116
Run, with the venv active, and fix every failure:
- Very specific: line 124
If npm blocks installing a version this new (release-age guard), do not override it.
- Distinctive: line 125
Verify from the release docs and source, and say in the README and the PR that the binary was not run.
- Distinctive: line 130
Every run produces a PR, because the verification date and basis change every run.
- Very specific: line 132
Commit in logical units, conventional style (docs(skills): ...), staging exact paths.
- Distinctive: line 146
Only if there is no diff at all (dates already match today), skip the PR: comment on the issue with the basis and sources checked, then …
- Distinctive: line 164
Wait 2 to 3 minutes after the PR opens or after a push, then read all reviews: inline threads and findings that appear only in a review …
- Distinctive: line 169
Invalid or inapplicable: no change; note what you checked.
- Very specific: line 170
Valid but out of scope: no change; note why. Follow AGENTS.md "Planned work" (draft the issue in .agent-output/, and because no human is …
- Distinctive: line 174
Run the applicable validators on the final tree, then push once.
- Distinctive: line 179
If Codex reviews the push with new findings, that is the next round, up to 3 total.
- Distinctive: line 180
After the third round's push, check the resulting review but do not respond to a fourth.
- Very specific: line 185
Before reporting, verify on the current PR head (pull_request_read get and status methods.
- Very specific: line 188
Not a draft unless the routine said draft.
- Distinctive: line 197
If a condition cannot be met within this procedure, report the exact blocker and the PR link as unfinished.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Weekly skill refresh
Unattended weekly refresh of one client's two skills against that client's latest stable
release. This is a repository maintenance skill, not an installable artifact. It runs in a
fresh cloud clone: no local worktrees, no ~/projects paths, no .venv, no GraphQL, and no
way to delete remote branches.
Parameter: client, one of claudecode, codex, copilot, opencode. Use the row
below for everything client-specific; every other step is identical.
| client | Skills in scope | Tool and version source | sources.json |
claudecode | skills/agent-creator-claudecode, skills/client-config-claudecode | npm @anthropic-ai/claude-code latest dist-tag and anthropics/claude-code releases | skills/client-config-claudecode/assets/sources.json |
codex | skills/agent-creator-codex, skills/client-config-codex | openai/codex GitHub releases (tag rust-v<version>), stable only | skills/client-config-codex/sources.json |
copilot | skills/agent-creator-copilot, skills/client-config-copilotcli | github/copilot-cli GitHub releases, stable only | skills/client-config-copilotcli/sources.json |
opencode | skills/agent-creator-opencode, skills/client-config-opencode | anomalyco/opencode: V1 from GitHub releases, V2 from git tags (no releases); release notes are the repository CHANGELOG.md | skills/client-config-opencode/sources.json |
Branch name: refresh/<client>. This run owns that branch and nothing else.
Rules that override this file
Read AGENTS.md first. It governs git, documentation and PR rules. Never commit or push
to main or master, never merge a PR, never bypass hooks, never git add -A or
git add ., and never edit site/. Put scratch files in .agent-output/. If anything
below conflicts with AGENTS.md, AGENTS.md wins, with one standing exception: the
maintainer (Micheal) pre-approved, for these scheduled refresh runs, the two outward
actions section 3 and 5 call for: posting the one tracking issue per client per run
(AGENTS.md "Planned work" asks for a draft and approval; the issue content here is
generated from .github/ISSUE_TEMPLATE/weekly_maintenance.md and contains nothing
private), and opening one ready-for-review (not draft) PR per client per run. The
approval is Micheal's instruction on 2026-11-01 in the project thread that created this
procedure, which required the issue-first, PR-every-run flow, and his answer "READY PR's".
It covers only that issue and that PR. It does not cover merging, any other issue
(including deferrals under section 6, which are reported, not posted), or any other PR.
1. Prepare
- The clone may be shallow and single-branch, so a plain
git fetch origin <branch>can update onlyFETCH_HEAD. Always fetch into explicit remote-tracking refs:git fetch --unshallow origin 2>/dev/null || true, thengit fetch origin +refs/heads/main:refs/remotes/origin/main. Set up tooling from the repo's own instructions (
AGENTS.md, "Python environment"):uv venv --python 3.14 source .venv/bin/activate uv pip install pyyaml mkdocs mkdocs-material mkdocs-calloutsmarkdownlint runs through
npx --yes markdownlint-cli2 <changed files>(config in.markdownlint.json). If it cannot be installed, say so in the PR; do not claim it passed.- Look for this client's unmerged work with GitHub MCP
list_pull_requests(stateopen, headCowboyLogic:refresh/<client>, no base filter). Reset or force-push only after a successful and complete lookup: the call returned without error, you paged until no further page remained, and it returned zero open PRs for this head. On any error, truncated or ambiguous result, retry once, then stop and report; never treat a failed lookup as "no open PR". If an open PR targets a base other thanmain, do not continue or reset the branch: stop and report.- Open PR exists: continue it.
git fetch origin +refs/heads/refresh/<client>:refs/remotes/origin/refresh/<client>andgit checkout -B refresh/<client> origin/refresh/<client>. Take the issue number from theCloses #<n>line in the PR body. Open no new issue or PR this run. - No open PR: start fresh. Cloud sessions cannot delete remote branches, so reset
instead:
git checkout -B refresh/<client> origin/main. Ifrefresh/<client>exists on origin (check withgit ls-remote --heads origin refresh/<client>; if it does, fetch it with the same explicit refspec as above soorigin/refresh/<client>exists), the first push isgit push --force-with-lease=refresh/<client>:<sha-you-fetched> -u origin refresh/<client>, where the sha isgit rev-parse origin/refresh/<client>. Force only here, only on this branch, only when no open PR exists. If the branch is not on origin, plaingit push -u origin refresh/<client>.
- Open PR exists: continue it.
- Before the first edit, confirm
git rev-parse --abbrev-ref HEADisrefresh/<client>.
2. Establish the basis
- Find the latest stable release from the table's source. Skip alpha, beta, rc and other prereleases.
- Find the basis recorded by the previous refresh in each skill's
README.md,SKILL.mdandCHANGELOG.md(agent-creator skills may have noCHANGELOG.md). - The window is the previous basis through the new version.
3. Open the tracking issue (every run, even if nothing changed)
Skip when step 1.3 found an open PR; use the issue it closes.
- Read
.github/ISSUE_TEMPLATE/weekly_maintenance.md, drop its frontmatter, and fill in every section from what you know now. Tick only what is true. In "Before starting", the worktree line is satisfied by this run's fresh clone; say so. - Create it with GitHub MCP
issue_write(methodcreate), title[<skill 1>, <skill 2>] Weekly refresh against <Tool> <version>, issue typeMaintenance, labelsdocumentationandskill. If the MCP tool cannot set the type, usegh api -X POST repos/CowboyLogic/ai-dev/issues ... -f type=Maintenance. - Keep the number. If the issue cannot be created, stop and report why.
4. Refresh the skills
- Read both skills in full (
SKILL.md, everything underreferences/,README.md,CHANGELOG.mdwhere present) and the sources in the client'ssources.json. - Check the vendor's release notes for the window and the published documentation for each source. Use authoritative sources only.
- Make targeted edits. Do not rewrite sections that are still accurate.
- Keep every change verifiable. If a claim cannot be checked against a source, do not make it. Label a claim that rests on release notes alone. Record conflicts between sources instead of resolving them.
- Update the version basis and verification date in each skill's
README.mdandSKILL.md. Add aCHANGELOG.mdentry per skill that has one; where a skill has none (the agent-creator skills), do not create one: record the change in the PR and the client-config entry. A refresh with no content change still gets the entry, saying what was verified and that no content changed. - Update the matching
docs/pages perAGENTS.md"Artifact and documentation synchronization". Docs link to the skill folder and never copy its content. Run, with the venv active, and fix every failure:
python scripts/validate_artifact_sync.py mkdocs build --clean --strict npx --yes markdownlint-cli2 <changed .md files>- If
npmblocks installing a version this new (release-age guard), do not override it. Verify from the release docs and source, and say in the README and the PR that the binary was not run.
5. Record the outcome
Every run produces a PR, because the verification date and basis change every run.
- Commit in logical units, conventional style (
docs(skills): ...), staging exact paths. - Push
refresh/<client>per step 1.3. Otherwise never force-push. - Continuing an open PR: the push updates it. Comment on the PR with what this run added,
then go to section 6. Otherwise open the PR with GitHub MCP
create_pull_request(headrefresh/<client>, basemain), body filled from.github/PULL_REQUEST_TEMPLATE/weekly_maintenance.md, withCloses #<issue>. Title:docs(skills): weekly <Tool> skills refresh against <Tool> <version> (<YYYY-MM-DD>). The body is the maintainer's review surface, since the maintainer reads it before merging. It must summarize, in plain terms: what changed per skill and why (with the source for each claim), what was verified with no change, what was deliberately left out or could not be verified, and which claims rest on release notes alone. A date-only refresh says so under "Changes made" and lists the sources checked. Begin the body with any attribution block the routine or session context requires. - Comment on the issue with the PR link. Leave it open; it closes when the PR merges.
- Only if there is no diff at all (dates already match today), skip the PR: comment on the issue with the basis and sources checked, then close it as completed.
6. Answer the review
Opening the PR starts the review; it is not the end. Copilot reviews once and does not re-review. Codex reviews code and security and re-reviews after each push. Work in rounds and stop after 3 rounds in total. Wait at most 10 minutes in total for any one review; if it has not landed, stop waiting, report the PR link, and say the review is pending. Never call the PR clean in that case.
GraphQL is blocked in cloud. Use GitHub MCP pull_request_read (methods for review
comments, reviews and review threads) to read; add_reply_to_pull_request_comment to
reply; resolve_review_thread to resolve. REST via gh api repos/CowboyLogic/ai-dev/pulls/<n>/...
is the fallback. Page through every result.
Each round is one pass, with one push at the end:
- Wait 2 to 3 minutes after the PR opens or after a push, then read all reviews: inline threads and findings that appear only in a review summary.
- Classify every finding before changing anything, checking each against the code:
- Valid: fix it in its own commit, with the validator or test that covers it. Findings with one cause are one fix and one commit.
- Invalid or inapplicable: no change; note what you checked.
- Valid but out of scope: no change; note why. Follow
AGENTS.md"Planned work" (draft the issue in.agent-output/, and because no human is present to approve, report it as a deferral in the final report instead of posting it; do not resolve that thread until an issue exists, and say so).
- Run the applicable validators on the final tree, then push once. Never amend or rebase reviewed commits. Never push while a review is pending or while findings from the same round are unaddressed.
- Reply on every thread (name the fix commit, or give the reason), then resolve it, except as noted for deferrals. Check resolution state, not comment presence.
- If Codex reviews the push with new findings, that is the next round, up to 3 total. After the third round's push, check the resulting review but do not respond to a fourth; report its findings or pending status for human direction.
7. Merge-readiness bar
Before reporting, verify on the current PR head (pull_request_read get and
status methods; gh api repos/CowboyLogic/ai-dev/pulls/<n> as fallback):
- Not a draft unless the routine said draft;
mergeableis true andmergeable_stateisclean; required checks pass. Unknown, pending or failing is unverified, not clean. - Rebaseable onto
mainwith no conflicts.git fetch origin +refs/heads/main:refs/remotes/origin/mainand checkgit merge-tree --write-tree origin/main HEADexits 0. Ifmainmoved and conflicts, mergeorigin/mainintorefresh/<client>(never rebase a reviewed branch), resolve, rerun the validators, push, and repeat sections 6 and 7 on the new head. Pushes count toward the 3-round cap. - No unresolved review threads from any reviewer, outdated ones included, every page.
If a condition cannot be met within this procedure, report the exact blocker and the PR link as unfinished. Never claim mergeable or ready while anything is unresolved or unverified. Never merge.
8. Final report
Also post this as a final comment on the PR (the maintainer reads the PR, not the session), and update the PR body if the review rounds changed its content. State: client and version, issue and PR links, whether the PR is draft or ready, rounds used, fixes (with commits), refutations, deferrals, and the merge-readiness result with anything unverified.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

