skills/update/SKILL.md
Sync edify fragments and portable justfile to match the current plugin version. Detects user-edited files and warns instead of overwriting. Use --force to overwrite conflicts.
npx skillsauth add ddaanet/agent-core updateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Sync instruction fragments and portable.just from the edify plugin to the consumer project. Updates .edify.yaml version and content hashes.
This skill is for consumer projects only. In dev mode (submodule), fragments are read directly via @plugin/fragments/ references -- update is a no-op.
--force -- Overwrite conflicting files (user-edited) with the plugin version. Review the conflict list from a normal run first, then re-run with --force to accept plugin versions.Before proceeding, verify agents/rules/ exists in the project root. If it does not exist, stop and report:
agents/rules/ not found. Run /edify:init first to set up the project structure.
Read $CLAUDE_PLUGIN_ROOT/.claude-plugin/plugin.json and extract the version field.
Read .edify.yaml from the project root. Extract:
version -- the last-synced plugin versionsynced_hashes -- map of relative file paths to SHA-256 content hashes at last syncIf .edify.yaml does not exist, stop and report:
.edify.yaml not found. Run /edify:init first to set up version tracking.
Two categories of sync targets:
Fragments:
.md files in $CLAUDE_PLUGIN_ROOT/fragments/agents/rules/<filename>Portable justfile:
$CLAUDE_PLUGIN_ROOT/portable.justportable.just in project rootFor each sync target, compute the SHA-256 hash of the source file (plugin version) and the destination file (consumer version, if it exists).
Classify each file into one of four categories:
New -- destination file does not exist in consumer project:
synced_hashesSafe to update -- destination file exists AND its SHA-256 matches the synced_hashes entry (user has not edited it since last sync):
synced_hashes with new hashConflict -- destination file exists AND its SHA-256 does NOT match the synced_hashes entry (user has local edits):
--force: warn and skip. Report the file path. Do NOT overwrite.--force: overwrite destination with plugin source, update synced_hashes with new hash. Categorize as Overwritten.No hash entry -- destination file exists but has no entry in synced_hashes (legacy or first run after manual setup):
After all files are processed:
version field to match the current plugin version from Step 1synced_hashes map with all current hash values.edify.yaml (e.g., sync_policy)Write the updated .edify.yaml back to the project root.
Report what was done:
/edify:update complete (vX.Y.Z)
New: N files copied
- agents/rules/new-fragment.md
Updated: N files synced
- agents/rules/changed-fragment.md
Current: N files (no changes)
Conflicts: N files skipped (user-edited)
- agents/rules/edited-fragment.md
With --force, replace the Conflicts line:
Overwritten: N files (user edits replaced)
- agents/rules/edited-fragment.md
If all files are current and version matches:
/edify:update: already up-to-date (vX.Y.Z)
When conflicts are reported, the user has three options:
/edify:update --force to overwrite all conflicting files$CLAUDE_PLUGIN_ROOT/fragments/<filename> and merge changes manually. After merging, the next /edify:update run will detect the merged file as a conflict again (hash differs from synced version). Use --force after manual merge to update the hash baselineThis skill handles sync only:
It does NOT handle scaffolding (that is /edify:init):
agents/ directory creationsession.md, learnings.md, jobs.md scaffoldingtools
Manage git worktrees for parallel task execution. Triggers on "create a worktree", "set up parallel work", "merge a worktree", "branch off a task", or uses the `wt`, `wt merge`, or `wt-rm` shortcuts. Worktree lifecycle: creation, focused sessions, merge ceremony, cleanup, parallel task setup.
testing
Recall behavioral knowledge from project decisions. Triggers on "when to do X", situational patterns, or decision content for recognized situations. Invoke with "/when <trigger>".
testing
Write compact bash scripts using exec tracing pattern. Triggers when writing bash scripts with 3+ sequential commands. The exec 2>&1 + set -xeuo pipefail pattern eliminates echo statements via automatic command tracing, reducing script size by 40-60%.
tools
Archive session context to todo list and reset for new work