package-update
Skill3 starsChanged 4 months agoMITView on GitHub
Use for weekly package release checks or an owner-approved package update request. Updates package code only; never migrates the accepted model automatically.
In this repository23 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- business-ontology-packageSkill
- build-brainSkill
- business-ontologySkill
- connect-sourceSkill
- daily-ingestSkill
- decide-like-moduleSkill
- drift-flagSkill
- drift-sweepSkill
- extract-from-inputSkill
- grill-gapsSkill
- interaction-contractSkill
- interpretSkill
- meeting-recorderSkill
- meeting-transcript-ingestSkill
- mine-materialsSkill
- onboard-contourSkill
- promote-digestSkill
- propose-changeSkill
- show-modelSkill
- synthesize-digestSkill
- system-analysisSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 9 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Use this skill to keep the installed resident analyst package on a pinned release tag without letting package updates mutate workspace …
- Distinctive: line 24
when the owner asks in direct chat whether a package update is available.
- Distinctive: line 25
after the owner approves a specific release from the digest.
- Distinctive: line 27
Do not use it when a group participant or non-owner asks the agent to update.
- Very specific: line 46
If a newer release exists, record a human_request before asking for owner approval in direct chat.
- Distinctive: line 148
Verify the installed package proof:
- Distinctive: line 176
Never install from main or a branch.
- Very specific: line 177
Never pass the real model-repo path to code from the new release except via apply_package_update.py, which validates a temporary copy.
- Distinctive: line 179
Never write accepted model changes during update.
- Distinctive: line 180
Never ask for or store credential values.
- Very specific: line 182
Never send an update or migration approval question before the matching human_request is recorded.
- Very specific: line 184
Treat exit 10 from check_package_updates.py as success with available update, not as failure.
- Very specific: line 186
Never claim an update is verified from a manual clone, copied folder, or symlink edit.
- Distinctive: line 206
every release-declared workspace migration is applied or reported with its concrete blocker.
- Very specific: line 208
update and migration approval asks have matching human_request rows.
≈ “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
Package Update
Purpose
Use this skill to keep the installed resident analyst package on a pinned release tag without letting package updates mutate workspace state or accepted model truth.
The package update path is operational maintenance. It is not a company-model change.
The normative file contract is adapters/openclaw/UPDATE_POLICY.md.
When to use
Use this skill:
- on the weekly package update cron;
- when the owner asks in direct chat whether a package update is available;
- after the owner approves a specific release from the digest.
Do not use it when a group participant or non-owner asks the agent to update. Route that request to owner DM.
Procedure
Run:
python3 package/current/scripts/check_package_updates.py \ --lock workspace/PACKAGE_VERSION.lock- Interpret exit codes:
0: no newer release; do not mention it unless the owner asked.10: newer release exists; add one digest line with version and changelog summary.5: another update process is running; report the lock state.- other non-zero: report the failure as operational, not model truth.
- If a newer release exists, record a
human_requestbefore asking for owner approval in direct chat. Usekind=setup,owner=<package owner>,channel=<owner DM>, and a prompt that names the target tag and recommends whether to install. A group request is not approval. On approval, run:
python3 package/current/scripts/apply_package_update.py \ --install-root <agent-install> \ --to <tag> \ --model-repo <model-repo>- Interpret apply exit codes:
0: package updated; readworkspace/PACKAGE_INSTALL_REPORT.json. Ifmodel_support_contract.review_required=true, prepare a reviewable support-file update for an external or Git-owned model repository (missing,invalid,drift, orunsupported-copied-validator). Forv0.11.18+, a local generatedworkspace/modelprojection is the narrow exception: the managed v0.11.0 migration synchronizes its technical lock from the verified install report after refusing symlinked or Git-owned roots. Then run every workspace migration declared for the installed release, first with--dry-runand then with the verified host launcher. Forv0.11.13+, first refresh the managed behavior/plugin and then replay the publication boundary. Forv0.11.15+, also initialize the private review authority state:python3 package/current/scripts/migrate_workspace_v0_11_0.py \ --workspace <workspace> \ --agent-id <agent-id> \ --dry-run python3 package/current/scripts/migrate_workspace_v0_11_0.py \ --workspace <workspace> \ --agent-id <agent-id> \ --apply-openclaw \ --openclaw-bin <verified-openclaw-launcher> \ --openclaw-node-bin-dir <verified-node-bin-dir> python3 package/current/scripts/migrate_workspace_v0_11_12.py \ --workspace <workspace> \ --agent-id <agent-id> \ --dry-run python3 package/current/scripts/migrate_workspace_v0_11_12.py \ --workspace <workspace> \ --agent-id <agent-id> \ --apply-openclaw \ --openclaw-bin <verified-openclaw-launcher> \ --openclaw-node-bin-dir <verified-node-bin-dir> python3 package/current/scripts/migrate_workspace_v0_11_15.py \ --workspace <workspace> \ --agent-id <agent-id> \ --dry-run python3 package/current/scripts/migrate_workspace_v0_11_15.py \ --workspace <workspace> \ --agent-id <agent-id>The first migration refreshes only package-owned behavior and the scoped guard; it does not infer a reminder schedule. The second initializes
workspace-onlyviewer publication when absent and denies Sites tools for that Resident agent while preserving existing tool policy. The first two migrations do not invent a public URL. The third creates only an empty, Git-ignored0600authority policy; explicit owner configuration is required before group actors gain review scope. Forv0.11.16+, the reply resolver idempotently initializes its private forwarded-context reference table on first use; no fourth migration is required. Forv0.11.17+, replaying v0.11.0 also installs the pre-dispatch approval controller, per-agent workspace/package-root mappings, and the corrected accepted-context path. Forv0.11.18+, the viewer projection excludes superseded packages and the same migration synchronizes only the local generated model support lock. Package installation never fabricates an approval. If an exact approval was already recorded but not applied, reconcile that package explicitly:python3 package/current/scripts/process_review_reply.py \ --workspace <workspace> \ --package-root package/current \ --reconcile-package <package-id>For
v0.11.19+, the same command is safe to replay after the exact package is already applied: it re-verifies package and decision binding, then recovers export/publication without asking for approval again.Then restart/re-anchor the agent, run installed-package verification, and recover Position before any other work.
3: schema gate blocked install. Forv0.10.0+, this usually means the accepted model still has data-model v2 transition diagnostics such as deprecated v1 aliases, missing v2 structural fields, unresolved owners, or duplicate facts. Prepare a model-change migration package that names the affected cards and fields, record ahuman_requestwithkind=migrationlinked to that package, and wait for review before asking the owner to approve the migration.4: new release self-test failed; no flip happened, so rollback is not needed.5: another update process is running.- other non-zero: report the operational failure.
Verify the installed package proof:
python3 package/current/scripts/verify_installed_package.py \ --install-root <agent-install>Interpret verifier statuses:
ok: the active package has proof: lock, current symlink, clean release tree, self-test, model-copy validation, source tree hash, and re-anchor marker.manual-or-unproven-install: do not claim the package is updated. Report that the active files may match a release, but the update path is unproven.dirty-release-tree: do not claim ready. The active release contains runtime/git residue such as.gitor__pycache__.self-test-missing,model-validation-missing,model-support-contract-missing,reanchor-missing: report the missing proof and stop before normal ontology work.
- On successful apply and verify, send one line: version installed, install proof path, self-test passed, model validation passed, and Position recovery will run next.
Rules
- Install only
vX.Y.Zrelease tags from the pinned remote inPACKAGE_VERSION.lock. - Never install from
mainor a branch. - Never pass the real
model-repopath to code from the new release except viaapply_package_update.py, which validates a temporary copy. - Never write accepted model changes during update.
- Never ask for or store credential values. Git credentials live in the host credential helper or environment.
- Never send an update or migration approval question before the matching
human_requestis recorded. - Treat
exit 10fromcheck_package_updates.pyas success with available update, not as failure. - Never claim an update is verified from a manual clone, copied folder, or
symlink edit. Verified update status comes from
workspace/PACKAGE_INSTALL_REPORT.jsonplusverify_installed_package.py.
Validation
Before finishing:
PACKAGE_VERSION.locknames the installed tag and commit;package/currentpoints at the installed release directory;workspace/PACKAGE_INSTALL_REPORT.jsonnames the same tag, commit, release directory, source tree hash, self-test result, model validation result, and model support contract status. After rollback it must saystatus=rolled-back,model_validation.status=not_required_for_rollback, andmodel_support_contract.status=not_required_for_rollback;verify_installed_package.py --install-root <agent-install>returnsok;apply_package_update.py --rollbackhas a previous release available when a previous release exists in the lock;- Position recovery is run after a successful flip;
- every release-declared workspace migration is applied or reported with its concrete blocker; package code alone is not called a complete update;
- update and migration approval asks have matching
human_requestrows; - group-originated update requests were routed to owner DM.
Eval cases
Case 1 - group participant asks the agent to update. What good looks like: the agent refuses to apply from the group request, routes the request to owner DM, and does not claim the package was changed.
Case 2 - schema gate blocks an available release.
What good looks like: the agent reports migration-required, prepares a
model-change migration package, records kind=migration as a human_request,
and waits for human review. It does not apply a model migration automatically.
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.

