Simple English
moeru-ai/airi
Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.
Preview and safely adopt a Dex update through the receipt-backed lifecycle (look → back up → apply → verify → rewindable).
$ npx skills add davekilleen/Dex --skill dex-update -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install davekilleen/Dex dex-update --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/dex-update .claude/skills/dex-update && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "dex-update" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-update into .claude/skills/dex-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-update", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-updateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add davekilleen/Dex --skill dex-update -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install davekilleen/Dex dex-update --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/dex-update .agents/skills/dex-update && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dex-update" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-update into .agents/skills/dex-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-update", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add davekilleen/Dex --skill dex-update -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install davekilleen/Dex dex-update --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/dex-update .cursor/skills/dex-update && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dex-update" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-update into .cursor/skills/dex-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-update", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/davekilleen/Dex.git --path .agents/skills/dex-update--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add davekilleen/Dex --skill dex-update -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install davekilleen/Dex dex-update --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/dex-update .gemini/skills/dex-update && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dex-update" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-update into .gemini/skills/dex-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-update", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install davekilleen/Dex dex-updateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add davekilleen/Dex --skill dex-update -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/dex-update .github/skills/dex-update && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dex-update" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-update into .github/skills/dex-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-update", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add davekilleen/Dex --skill dex-update -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install davekilleen/Dex dex-update --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/dex-update .opencode/skills/dex-update && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dex-update" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-update into .opencode/skills/dex-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-update", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dex-updatePreview and safely adopt a Dex update through the receipt-backed lifecycle (look → back up → apply → verify → rewindable).
Dex Update is an agent skill from davekilleen/Dex. Preview and safely adopt a Dex update through the receipt-backed lifecycle (look → back up → apply → verify → rewindable). Use when the user says 'update Dex', 'install the new version', or a release notice appeared. Not for undoing an update; use dex-rollback. Not just seeing what changed; use dex-whats-new.
Its SKILL.md is about 5.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/protect_trust_registry.py`).
It sits in Development, covering Changelog and release notes. The repository describes itself as: Your AI Chief of Staff — a personal operating system starter kit that adapts to your role. No coding required. The licence is MIT.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 227f78e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
VERIFICATION_TOKENAPPROVAL_TOKENACKNOWLEDGEMENT_TOKENRECOVERY_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dex Update loads about 5.9k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 3,306 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from davekilleen/Dex at commit 227f78e, republished under its MIT licence (© davekilleen). 3,306 words, ~5,907 tokens.
.claude/skills/dex-update/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.<!-- Generated from `.claude/skills/dex-update/SKILL.md` by `scripts/generate-agents-skills.py`. Do not edit. -->
Use this skill when someone wants the latest Dex capabilities or asks what an update would change. Keep the conversation plain and reassuring. The skill collects choices and renders lifecycle results; it never edits, copies, renames, deletes, or merges vault files itself.
Every lifecycle operation goes through core.lifecycle.service version 1.5.0. Treat its response as authoritative. Do not fall back to direct file operations, Git mutation, an update script, or a hand-built repair when the service refuses.
Use the service operations in this order:
build_and_preview_topology_migration to check the installed layout as part of the normal update read.build_inventory_and_plan for the verified inventory and ledger-aware plan.adopt items, ask build_and_preview_adoption for the exact preview and approval token.build_and_preview_conflict_resolution.execute_approved_adoption, and unchanged resolution previews and tokens to execute_approved_conflict_resolution.read_lifecycle_state for the verified post-update state and retention warning, then render every receipt.For a split vault whose update needs new release bytes, never ask the user to
run Git. Before presenting a delivery update, ask deliver_latest_release
through core.lifecycle.service. It proves the newest immutable release in an
isolated cache, fetches only that pinned tag and its release-channel ref into
Dex's private brain store, then proves the fetched bytes again. This delivery
step does not change vault content.
Only when delivery returns its exact release identity, ask
build_and_preview_delivered_release through core.lifecycle.service with
that identity. Show every returned write and ask: “Apply this exact update?”
Only a fresh explicit yes to that unchanged preview permits
execute_approved_delivered_release with the same preview and approval token.
Render its lifecycle receipt. Then ask read_lifecycle_state — the applied
version now appears in the same rewind list /dex-rollback uses. If delivery,
preview, or execution refuses, stop; no vault-content change was made.
Immediately after a successful apply, run the post-update canary — one
read-only walk through the same doors every later command will use. From the
vault root, run core/health/post_update.py --vault . with the vault Python
when it exists. Prefer .venv/Scripts/python.exe on Windows, then
.venv/bin/python on a Mac or Linux computer, otherwise python3. The
direct file path matters: it keeps the canary runnable even when the installed
packages are the thing that broke.
Relay its one-line result verbatim. On
failure, treat it as part of this update, not a separate errand: tell the user
plainly that the update applied but something is wrong underneath, and run
/dex-doctor now. Never report the update as complete while the canary is
failing.
Newly written .claude/skills/*/SKILL.md files are live in this session.
The host slash list may still omit them until the next session; that does not
make them unavailable. If the user asks for a skill that now has a SKILL.md
on disk, Read that file and follow it. Do not tell them to restart first.
If the service reports UNKNOWN, conflict, changed evidence, an unsafe path, or a rejected transaction, stop. Explain the refusal in ordinary language and leave the vault untouched. A refusal is a safety result, not an invitation to work around the engine.
The topology check can report that this Dex still keeps the product and the user's notes in one combined history. In that case, the service runs the shipped migrator in dry-run mode. This only prepares the local report; it does not start the move.
Render the topology preview in the same five groups used for the ordinary update. The proposed move appears under Needs your review. Show the complete report returned by the service and explain:
Ask: “Make this exact one-time change?” Only an explicit yes to this displayed report authorizes the move. The earlier request to “update Dex” is not approval. Pass the unchanged preview and approval token to execute_approved_topology_migration.
The lifecycle service owns the conversion and recovery loop. If the migrator returns exit code 75, the service routes it through resume until the bounded work is complete. Never run --auto, --resume, or the migrator directly from this skill.
After success, show the topology receipt, including its transaction identifier, final report, undo archive when present, and each auto/resume attempt. Ask build_and_preview_topology_migration again and continue with the ordinary update only when it reports the split as complete.
If the dry-run fails, the report changes before approval, approval is missing, conversion stops, or the final split cannot be proved, show the service refusal and stop. Do not improvise a repair.
After the topology branch (or at the start of a split-vault update), ask
build_and_preview_mcp_registration. This checks whether Dex's own
Customization Migration connection is missing from an older local setup.
needed is false, say that Dex's local connections are already current and continue.needed is true, show the returned server name and the complete write preview. Explain: “Dex will add this one Dex-owned local connection. It will not replace, remove, or alter any of your existing connections or their settings.” Ask: “Add this exact Dex connection?”execute_approved_mcp_registration. Render its transaction receipt, including the saved recovery snapshot.This is the only update route allowed to add this missing Dex-owned registration.
Never edit .mcp.json directly, replace an existing server entry, or treat the
earlier update approval as approval for this connection change.
Before applying an update, collect the deep Doctor report with
python3 core/utils/doctor.py --deep. JSON is stdout-only; progress is stderr.
This returns JSON on stdout: every check with a verdict (OK / OFF / BROKEN / UNKNOWN), any
Tier-1 heals already applied, and an instruments block saying whether the doctor itself
ran completely. While it runs, stderr prints Checking this Dex install (read-only)...,
then names each check as it starts (for example Checking customizations.assessment...).
If a run sits still, the last named check is the one that is stuck.
If the collector itself fails to run: that IS the
finding. Report it first, with the error. Use that report to decide whether to offer this
branch. Offer it when customization_assessment.completeness is OK and
customization_assessment.identity.customization_count is at least 1, or when the user says
they have customised Dex heavily. If the verified count is zero, follow the normal lightweight update
path and do not mention this branch. If completeness is UNKNOWN, or the report has no
customization_assessment, show Doctor's uncertainty
and do not infer a zero count. If the uncertainty is that Dex could not
verify which version is installed (baseline-not-verified, or Doctor's
"couldn't verify which Dex version is installed" line), point at the
starting-version repair — the person runs
python3 -m core.update.reanchor_cli --dry-run in their own terminal —
and do not continue this update until that repair has set a starting
version. Do not run the repair yourself. When Doctor returns partial: true, show the observed
records and every exclusion path, reason, and guidance as a partial inventory. Do not
run the Capsule preview or ask for Capsule approval until reassessment returns
completeness OK.
Render what the assessment found through /dex-doctor Step 3b's authority rules, including
all four returned groups. Explain that this journey inventories what the user changed,
preserves the evidence in a protected snapshot called the Capsule, guides the update through
the existing approval flow, and then offers the rebuild with this exact promise: “rebuilds
your customisations on the new version, shows you anything it can't safely carry forward,
and the declared write set is previewed and snapshotted; rewind remains available while its
snapshot is retained among the newest three and the activated files remain unchanged.”
A Capsule is a protected local snapshot of the evidence for every customization. It is stored
under System/.dex/, is never uploaded, and survives the update. This is not an automatic
rebuild: candidate planning, staging, activation, and rewind each keep their own authority
boundary.
Run python3 -m core.customization_migration.cli preview. Show every returned preview line and
the preview_sha256 verbatim. Then ask: “Create this exact snapshot?” The earlier request to
“update Dex” is not approval.
Only after a fresh explicit yes, run
python3 -m core.customization_migration.cli create --confirm-token PREVIEW_SHA256 with the
unchanged digest from that preview. The returned Capsule receipt is authority: render its
capsule_id, file_count, byte_count, and transaction_id verbatim. Do not say the
evidence is preserved until that receipt exists.
After the Capsule receipt exists, return to the one-route lifecycle above and use its normal preview and approval flow unchanged. Conflicts still offer Keep mine / Take theirs / Keep both, with Compare available before the user chooses. Capsule approval never counts as update or conflict approval.
Read migration_status_to_dict through Doctor's customization_migration_status section or the
registered Customization Migration MCP status tool. Reproduce the Capsule id, state, validation
status, mismatches, and pending flag. Say the Capsule is intact only when its validation status
is OK; otherwise say the preserved evidence cannot be verified and follow /dex-update
guidance without inventing repair steps.
Run the deep customization assessment again and render it through the Step 3b authority rules.
State plainly which customizations are in update-replaceable-location and which are in
update-untouched-location. Do not rename those groups or claim that a location predicts an
automatic rebuild.
CLAUDE.md differences are file-level evidence, never an orphan-line list. Do not tell the
user to move any differing line into CLAUDE-custom.md. Use Compare and the lifecycle
conflict choices without raw file edits.
Read the Capsule evidence only through the registered MCP. Use
read_customization_capsule_section for evidence and
read_customization_capsule_blob with the exact Capsule id and SHA-256 for source bytes.
Author candidates only from that evidence and those readable blobs. Classify an item
manual when its source is restricted or model-unreadable; never reconstruct it from memory.
Author one canonical candidate in a local scratch file outside the vault named
CANDIDATE_JSON. The no-token stage command
makes no vault write: it parses the closed candidate shape and delegates to validate_regeneration_candidate before it returns a preview. Run that preview before proposing the candidate.
Every customization must have exactly one disposition; never omit an item or use model
confidence as verification.
Present every disposition and its evidence. If an item is blocked or needs manual review, present one question at a time. Update and revalidate the candidate after each answer. Do not stage while required questions remain unresolved or exact-set validation refuses the candidate.
Run python3 -m core.customization_migration.cli stage CANDIDATE_JSON to obtain the private
staging preview. Render every line, including every disposition, future live path, and
preview_sha256. Ask: “Stage this exact candidate for verification?” Capsule approval and
update approval do not count.
Only after a fresh explicit yes, run
python3 -m core.customization_migration.cli stage CANDIDATE_JSON --confirm-token PREVIEW_SHA256
with the unchanged token. Render the CLI's safe staging receipt summary.
Run python3 -m core.customization_migration.cli verify CAPSULE_ID PROPOSAL_ID to preview
the verification verdict and obtain VERIFICATION_TOKEN; this makes no verification-report
write. Ask: “Seal this exact verification report?” Only after a fresh explicit yes, run
python3 -m core.customization_migration.cli verify CAPSULE_ID PROPOSAL_ID --confirm-token VERIFICATION_TOKEN.
Render only the CLI's safe verification and receipt summaries. Treat a result as
verified only when the engine says verified. If the returned per-item value is manual, render manual; if it is
unknown, render unknown. Never promote either one, and never describe a blocked report as
complete.
Run
python3 -m core.customization_migration.cli preview-activation CAPSULE_ID PROPOSAL_ID.
Render every live path, every disposition, the snapshot-retention note, the rewind note, and
approval_token verbatim. Ask: “Activate this exact verified rebuild?” A fresh explicit yes
must be bound to the displayed token: an earlier yes is not this yes.
Only after that yes, run
python3 -m core.customization_migration.cli activate CAPSULE_ID PROPOSAL_ID --confirm-token APPROVAL_TOKEN.
Render only the CLI's safe activation receipt summary; candidate-controlled free text and
complete file-list payloads are deliberately not printed. Then run
python3 -m core.customization_migration.cli activation-status CAPSULE_ID and state rewind
availability only from its returned rewindable value.
When the user asks to undo the activation, run
python3 -m core.customization_migration.cli preview-rewind CAPSULE_ID. Render every restore
path, whether it existed before activation, the reason, and acknowledgement_token verbatim.
Explain that rewind restores the exact pre-activation live file state. It does not undo
external actions from manual verification, and it refuses after unsafe live drift or lost
snapshot evidence.
Ask: “Rewind this exact activation?” Only after a fresh explicit yes, run
python3 -m core.customization_migration.cli rewind CAPSULE_ID --acknowledge-token ACKNOWLEDGEMENT_TOKEN.
Render the CLI's safe rewind receipt summary, then run
python3 -m core.customization_migration.cli activation-status CAPSULE_ID again. Never infer a
successful rewind from command exit alone.
Status and Doctor return an exact phase-specific recovery action for interrupted staging,
interrupted activation, and interrupted rewind. Show the returned phase, Capsule, proposal,
and action verbatim. Ask for a fresh explicit acknowledgement, then run only the returned
python3 -m core.customization_migration.cli recover --confirm-token RECOVERY_TOKEN action.
The engine restores the interrupted transaction to its last complete state; re-run status
before continuing the relevant stage, activation, or rewind preview.
A half-created Capsule can instead appear as recovery-required or with UNKNOWN validation.
Never claim its evidence is preserved before a Capsule receipt exists. Show that status, ask
for a fresh explicit acknowledgement, then route abandonment through
python3 -m core.customization_migration.cli abandon CAPSULE_ID --acknowledge. After a
confirmed abandonment, run the preview again and require a new exact-snapshot approval. If
the deterministic adapter refuses any action, show the refusal and stop.
Always show these groups in this order, even when a group is empty:
adopt.skip-held-back.Example register:
Here’s exactly what this changes for you. Two items are new and safe, one customized item stays untouched, and everything else is already current.
Do not describe an item as safe merely because its name looks familiar. Use only the action and reasons returned by the service.
For each conflicted file, explain that the user changed it and the update carries a new release version. Offer:
{name}-custom, where it stays invocable. The whole change remains rewindable.” Offer this only for a modified skill file. A missing file has nothing to preserve.Collect one take-theirs or keep-both strategy for each item the user wants resolved. Leave Keep mine items out of the request. Pass only those selected strategies to build_and_preview_conflict_resolution, one object per item to resolve, each naming that item and its chosen strategy.
The resolution preview is a separate approval boundary. Show every write exactly as returned, including its path, release or preserved source, SHA-256, and byte size. Explain which canonical file becomes live and which -custom sidecar preserves the user's bytes. Ask: “Apply this exact resolution?” Only an explicit yes to that unchanged preview and approval token permits execute_approved_conflict_resolution.
If Keep both is refused because a {name}-custom already exists, reassure the user that neither file changed and re-offer Keep mine, Take theirs, or Compare. Never overwrite, rename, merge, or number the existing sidecar.
Before execution, show:
Ask one direct question: “Apply this exact update?” for an adoption preview, or “Apply this exact resolution?” for a conflict preview. A vague earlier request to “update Dex” is not approval of a later concrete preview. If anything changes between preview and execution, render the service refusal and build a fresh preview only after the user asks to continue.
After success, render the receipt returned by execute_approved_adoption,
execute_approved_conflict_resolution, or execute_approved_delivered_release:
dex-release at the installed version);read_lifecycle_state.Use language such as:
Update complete. Dex committed one protected transaction and recorded a receipt for every changed file. Your own content was not part of the write set.
Never claim success from a command exit alone. Success means the service returned a committed receipt and the post-update lifecycle state verifies it.
A result whose kept_reasons names lines edited directly into CLAUDE.md means
the update completed and deliberately left that one file untouched. Explain
that plainly (nothing failed, nothing was lost), show the named lines, and
offer to carry them into CLAUDE-custom.md so the next update writes cleanly.
If the user says yes, classify each named line before touching anything — a blind append causes real harm:
Show the user the classified plan (which lines get which treatment) before writing, make the whole edit in one pass, and afterwards confirm the recompose carries every instruction — nothing may remain that exists only in the live file.
The user should see choices, consequences, and receipts. The lifecycle service owns every mutation.
© davekilleen, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in .agents/skills/dex-update of davekilleen/Dex.
Open the folder on GitHubat commit 227f78e
Dex Update next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dex Update this skilldavekilleen/Dex | 493 | — | ~5.9k | Automated safety check: Pass | MIT | |
| Simple Englishmoeru-ai/airi | 50k | 2 repos | ~4.6k | Automated safety check: Pass | MIT | |
| Mole CLI Release Flowtw93/Mole | 70k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Hunk Release Workflowmodem-dev/hunk | 9.6k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Worktrunk Release Workflowmax-sixty/worktrunk | 9.1k | — | ~6.9k | Automated safety check: Pass | Custom licence | |
| Cline Desktop App Releasecline/cline | 70k | — | ~4.5k | Automated safety check: Pass | Apache-2.0 |
moeru-ai/airi
Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
modem-dev/hunk
Maintainer workflow for preparing, publishing, verifying and curating Hunk releases, with confirmation gates before tags, publishes and public edits.
max-sixty/worktrunk
Walks a maintainer through cutting a Worktrunk release: sync the release branch, pass two test gates, review the changes, then publish.
cline/cline
Covers preparing, tagging and publishing a Cline desktop app release on the stable, beta or nightly channel through the desktop-publish GitHub workflow.
EverMind-AI/EverOS
Walks through cutting a versioned everos release: bump the version, update the changelog, tag it, and review the drafted GitHub Release page before publishing.
davekilleen/Dex
This skill should be used when working with DSPy.rb, a Ruby framework for building type-safe, composable LLM applications.
davekilleen/Dex
Adopt a full published Heydex profile by handle ('set me up like @davekilleen').
davekilleen/Dex
Package one workflow — how you use Dex for a specific job — into a shareable DexDiff methodology doc.
davekilleen/Dex
Expert guidance for creating, writing, and refining Claude Code Skills.
davekilleen/Dex
Report a Dex bug to the Dex team with zero homework — Dex investigates locally, builds a privacy-safe report, shows it to you (or auto-sends if you've chosen that), and tracks the ticket until it's…
davekilleen/Dex
This skill should be used when writing Ruby and Rails code in DHH's distinctive 37signals style.
Categories
Preview and safely adopt a Dex update through the receipt-backed lifecycle (look → back up → apply → verify → rewindable). Dex Update is an agent skill from davekilleen/Dex. Preview and safely adopt a Dex update through the receipt-backed lifecycle (look → back up → apply → verify → rewindable).
Dex Update fits situations like: the user says update Dex; install the new version; A release notice appeared.
Run `npx skills add davekilleen/Dex --skill dex-update -a claude-code`. Or copy the skill folder (.agents/skills/dex-update in davekilleen/Dex) into .claude/skills/dex-update in your project. Claude Code loads it when a task matches its description.
Run `npx skills add davekilleen/Dex --skill dex-update -a codex`. Or copy the skill folder (.agents/skills/dex-update in davekilleen/Dex) into .agents/skills/dex-update in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add davekilleen/Dex --skill dex-update -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dex-update, .gemini/skills/dex-update, .github/skills/dex-update and .opencode/skills/dex-update in your project.
Going by SKILL.md and its folder, Dex Update needs Python for the scripts in its folder, the command-line tools its instructions call (python3) and credentials named VERIFICATION_TOKEN, APPROVAL_TOKEN, ACKNOWLEDGEMENT_TOKEN and RECOVERY_TOKEN. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Dex Update is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.9k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Dex Update: Simple English (moeru-ai/airi, 50k stars), Mole CLI Release Flow (tw93/Mole, 70k stars), Hunk Release Workflow (modem-dev/hunk, 9.6k stars) and Worktrunk Release Workflow (max-sixty/worktrunk, 9.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
davekilleen (a GitHub user) maintains it in davekilleen/Dex, which has 493 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on October 8, 2026.
Source: davekilleen/Dex on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.