deepworkplan-upgrade
Skill23 starsChanged 5 months agoMITView on GitHub
Check whether a newer DeepWorkPlan skill and DWP standard exists and — only after the developer explicitly accepts — install the latest published tag through the documented channel and re-run onboarding exactly as if https://deepworkplan.com/init.md were executed fresh, preserving every plan under .dwp/ and surfacing local adaptations instead of silently overwriting them. Use when the developer asks to upgrade, update, or refresh DWP in a repository that already has it installed. Do not use it to onboard a repo for the first time (that is the onboard sub-skill) or to migrate an old plan's shape (that is refine migrate, and plans are never migrated by an upgrade).
In this repository16 other files it gives its agents.
- AGENTS.mdAGENTS.md
- ai-diff-reviewerSkill
- dailybotSkill
- deepworkplanSkill
- fix-frontmatterSkill
- shellcheck-fixSkill
- write-bats-testSkill
- deepworkplan-authorSkill
- deepworkplan-createSkill
- deepworkplan-executeSkill
- deepworkplan-onboardSkill
- deepworkplan-refineSkill
- deepworkplan-resumeSkill
- deepworkplanSkill
- deepworkplan-statusSkill
- deepworkplan-verifySkill
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 4 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Keep a repository's installed DeepWorkPlan skill and its declared DWP standard current.
- Distinctive: line 39
Before a long plan, when the developer wants the harness current
- Very specific: line 47
Run the shared context helper to resolve the repo, branch, agent and .dwp/ location:
- Very specific: line 63
Installed version: Read version: from the installed pack's SKILL.md frontmatter — read it, never edit it.
- Distinctive: line 83
If installed == latest, say the repository is current and end here.
- Distinctive: line 84
Offline or unreachable upstream: If the network call fails (no network, DNS, proxy, rate limit), say so in one line, state the installed …
- Very specific: line 143
Short path for an onboarded repository (F-09): When the repository already declares DWP standard: 6.x and was conformant before the …
- Very specific: line 193
.dwp/is history: No plan, state file, gate record or evidence file is migrated, rewritten or invalidated by an upgrade.
≈ “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
DeepWorkPlan — Upgrade (Sub-Skill)
Keep a repository's installed DeepWorkPlan skill and its declared DWP standard
current. Three phases, strictly ordered: check (read-only, safe to run
anytime), consent (nothing downloads without an explicit yes), upgrade
(same install command a fresh consumer runs, then onboarding re-executed as if
https://deepworkplan.com/init.md were executed fresh). An upgrade never touches
.dwp/ plans — plans and their recorded evidence are history, not state to
migrate (../spec/DWP_SPECIFICATION.md §6.5); its one .dwp/ write is the
addon registry back-fill (Phase 3 step 4).
Trust boundary (write scope)
allowed-tools includes write-capable Edit, Write and Bash. Phase 1
(check) and Phase 2 (consent) are read-only. Only after the developer's
explicit acceptance does Phase 3 write: the vendored skill tree at the exact
accepted stable tag (pre-release tags only on an explicit request for that
channel), through the documented installer, then the onboarding
reconciliation. It MUST NOT download anything before acceptance, install
a moving ref (@main, @latest) or an unpinned source, overwrite local
adaptations without showing their diff first, touch any plan under .dwp/,
or read, print or write a secret.
When to use
- "upgrade DWP", "update the deepworkplan skill", "is there a newer version?", "re-run the init", "/dwp-upgrade"
- Before a long plan, when the developer wants the harness current
- Not for first-time onboarding (route to
../onboard/SKILL.md) - Not for changing an in-flight plan's scope or shape (
../refine/SKILL.md) - Not for the targeted harness upgrade of one outdated piece — that is
../onboard/SKILL.mdPhase 0; this sub-skill replaces the whole skill first
Context detection
Run the shared context helper to resolve the repo, branch, agent and .dwp/
location:
bash ../shared/context.shThen locate the installed pack: the deepworkplan/ directory this sub-skill
was read from (in a repo, typically .agents/skills/deepworkplan/; a global
install lives under ~/.<agent>/skills/deepworkplan/). Everything below reads
versions relative to that directory.
Phase 1 — Check (read-only)
- Installed version. Read
version:from the installed pack'sSKILL.mdfrontmatter — read it, never edit it. Also read the DWP standard the installed checker implements (SUPPORTED_SPECinverify/conformance.sh) and the standard the repository declares (theDWP standard:line inAGENTS.md, if present). - Latest published version. Through the documented channel, resolve the
newest release tag:
Sort the stablegit ls-remote --tags https://github.com/DailybotHQ/deepworkplan-skill.gitvX.Y.Ztags numerically and take the highest; ignore pre-release tags (vX.Y.Z-beta.N,-rc.N,-alpha.N) unless the developer explicitly asks for the pre-release channel. (gh release view --repo DailybotHQ/deepworkplan-skill— which never returns a pre-release — is an equivalent alternative when the GitHub CLI is present.) - Report, then stop. State, in a few lines: installed skill version,
latest published version, the standard each implements (the series are
2.x, 4.x, 5.x and 6.x historical and 7.x current —
../spec/README.md), and where the changelog lives (https://github.com/DailybotHQ/deepworkplan-skill/blob/main/CHANGELOG.md). If installed == latest, say the repository is current and end here. - Offline or unreachable upstream. If the network call fails (no network, DNS, proxy, rate limit), say so in one line, state the installed version, and exit cleanly — no partial state, no error cascade, no retry loop.
Phase 2 — Consent (nothing moves without an explicit yes)
- Name what the upgrade overwrites: the vendored skill files under the
installed pack directory (and only those). Name what it does not touch:
.dwp/(plans, state, evidence),AGENTS.md,docs/,.agents/outside the vendored pack, and every addon the repository configured. Name the one registry write: already-installed addons the registry does not name are recorded in.dwp/config.json(Phase 3 step 4). - Surface local adaptations before overwriting anything. Repositories
deliberately adapt their vendored copy (a repo may pin and maintain its own
edition — a blind reinstall would erase that work). Stage the incoming tag
into a temporary directory and diff it against the installed tree:
Report the differing files grouped two ways: files where the incoming tag itself changed (a normal upgrade), and files where the installed tree differs from the tag it claims (installeddiff -r --brief .agents/skills/deepworkplan "$TMP/incoming/deepworkplan" || trueversion:) — those are local adaptations. In a git repository the vendored tree is tracked, so the after-installgit diffshows the full picture the same way. - Ask. One question, listing both groups: proceed with the upgrade, and for adapted files — re-apply the adaptation on top of the new version, or take the new version as-is? Only an explicit acceptance starts Phase 3; a decline or silence ends the sub-skill with the Phase 1 report standing.
Phase 3 — Upgrade (accepted)
- Install the exact tag the developer accepted, using the same documented
command a fresh consumer would run through the skills.sh channel (both
-yflags are required in a non-interactive session):
A repository that installed via Method 2 or 3 upgrades through its own documented channel instead (npx --yes skills add https://github.com/DailybotHQ/deepworkplan-skill/tree/vX.Y.Z --skill deepworkplan --force -yopenclaw skills update deepworkplan, orgit pull && ./setup.shin the clone). Around every CLI install, run the Phase 7 install-verification contract from../onboard/SKILL.md(two CLI defects are known from round-1 evidence —../shared/troubleshooting.md§2): pre-create.agents/skills/deepworkplan/before the call, then verify the installedSKILL.mdfrontmatterversion:equals the accepted tag and the directory is non-empty. A mismatch or an empty/false success aborts the phase with the difference stated — retry once after pre-creating the directory, then fall back to the byte-exactgit archive <tag>install with adiff -rqbyte-check and record the event; never continue on a wrong or empty install. - Re-run onboarding as if executing
https://deepworkplan.com/init.md fresh. Read
../onboard/SKILL.mdand execute it end-to-end as a first-run onboarding — not its Phase 0 targeted-upgrade branch: the skill files were just replaced, so every phase re-reasons against the new version. Its guarantees hold unchanged — non-destructive, reconcile-don't-overwrite, idempotent on a second run. This re-detects the stack, reconcilesAGENTS.md/docs//.agents/, and re-offers addons under their standing policies (AI Diff Reviewer local install rides onboarding authorization; every optional addon still needs explicit acceptance). Short path for an onboarded repository (F-09). When the repository already declaresDWP standard: 6.xand was conformant before the upgrade, the re-onboarding is this checklist instead of a full run: (a)python3 <pack>/shared/delegators.py check --repo .— present eachDRIFTas keep (a deliberate adaptation) or refresh (from../onboard/command-templates/), and offer eachMISSING(F-23); (b) step 4's registry back-fill and.gitignoreexception; (c) the host capability record from the existingAGENTS.mddeclaration (config.py host <capability> true,../onboard/v6.md§1); (d) Phase 7b's offer of addons the registry does not name yet; then step 3 and step 6. Run the full onboarding when conformance failed, the declaration predates 6.0, or the developer asks for it. - Re-stamp the standard. The provenance line in
AGENTS.mdbecomesDWP standard: <the standard the new pack implements> (onboarded YYYY-MM-DD; upgraded YYYY-MM-DD; skill x.y.z)— the upgrade variant of../spec/DOCUMENTATION_STANDARD.md§3.5. Never edit the skill's ownversion:fields orCHANGELOG.md; the release process owns them. - Back-fill the addon registry (F-15). Addons installed before the
registry existed are recorded, never re-decided: run
python3 <pack>/shared/config.py backfill --repo .(dry run), show the list, then--write. A key the registry already names is never changed, and a machine-level install is only reported (offer it; never back-filled). Then propose the.gitignoreexception that shares the registry (.dwp/*+!.dwp/config.json,../spec/CONFIG.md§1). - Leave
.dwp/plans untouched. Plans keep their recorded lifecycle and their authored standard — an old plan declaring 2.x stays valid as historical and is never migrated by an upgrade; migrating one is a separate, explicitrefine migratedecision (../spec/DWP_SPECIFICATION.md§6.5). - Close the loop. Re-apply the accepted adaptation decisions on the new
files, run
../verify/SKILL.mdconformance, and report: old → new skill version, old → new standard stamp, what the re-onboarding reconciled, the adaptations applied or dropped, and the conformance verdict.
Version discovery (consumers)
- The installed version is the
version:of the installeddeepworkplan/SKILL.mdfrontmatter.skills-lock.jsonrecords only a content hash (computedHash), never the tag — record the ref beside it by hand when you need it (F-07). - A pre-release carries its identifier (
7.0.0-beta.1). A page or manifest that shows the stable line reads the latest non-pre-release (GitHubreleases/latest), never the frontmatter of a vendored pre-release (F-26).
Guarantees
- Read-only until accepted. Phase 1 writes nothing; Phase 3 starts only after an explicit yes naming exactly what changes.
.dwp/is history. No plan, state file, gate record or evidence file is migrated, rewritten or invalidated by an upgrade.- No silent loss. Local adaptations are diffed, listed and decided before any overwrite; a git-tracked vendored tree keeps the full audit trail.
- Offline-safe. An unreachable upstream is a clean report and exit — never a partial install and never a guess.
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.

