Agent skill

Dustoff

by joshukraine in joshukraine/dotfiles

Assess a project that's been dormant for months and produce a prioritized re-entry plan — lifecycle stage, what's stale or broken, and how far the project's tooling has drifted from current…

MITAuto-check passed

Install Dustoff

skills CLI
$ npx skills add joshukraine/dotfiles --skill dustoff -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install joshukraine/dotfiles dustoff --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/joshukraine/dotfiles.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude/.claude/skills/dustoff .claude/skills/dustoff && rm -rf skills-src

Use ~/.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/

Facts

Skill name
dustoff
GitHub stars
429
Token cost
~3.1k tokens
SKILL.md length
1,641 words
Files
1
Skills in repo
24
Repo updated
First seen
Licence
MIT

At a glance

Assess a project that's been dormant for months and produce a prioritized re-entry plan — lifecycle stage, what's stale or broken, and how far the project's tooling has drifted from current…

  • Works in 5 steps: Orient — how dusty, and where in the… → Take stock — read-only health → Toolset / convention drift → …
  • SKILL.md covers The core guardrail, Your task and Tone
  • Calls gh, git and bundle

What it does

Dustoff is an agent skill from joshukraine/dotfiles. Assess a project that's been dormant for months and produce a prioritized re-entry plan — lifecycle stage, what's stale or broken, and how far the project's tooling has drifted from current conventions — delegating every fix to the skill that owns it, and optionally capturing the plan as a tracking issue that survives sessions.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: :roundpushpin: My dotfiles for macOS using Neovim, Zsh, and Ghostty + Tmux. The licence is MIT.

Example prompts

  • “s stale or broken, and how far the project”
  • “/dustoff”

Requirements

  • Docker

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Orient — how dusty, and where in the lifecycle
  2. Take stock — read-only health
  3. Toolset / convention drift
  4. Synthesize — the re-entry plan
  5. Persist the plan — so it survives the session

What it can do on your machine

Read from SKILL.md and the folder at commit b59ad5b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git
    • bundle
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, git and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dustoff loads about 3.1k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 1,641 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

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.

Safety

Auto-check passed

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from joshukraine/dotfiles at commit b59ad5b, republished under its MIT licence (© joshukraine). 1,641 words, ~3,139 tokens.

Download SKILL.mdSave it as .claude/skills/dustoff/SKILL.md (or your agent's skills folder).
name
dustoff
description
Assess a project that's been dormant for months and produce a prioritized re-entry plan — lifecycle stage, what's stale or broken, and how far the project's tooling has drifted from current conventions — delegating every fix to the skill that owns it, and optionally capturing the plan as a tracking issue that survives sessions.
disable-model-invocation
true

Dust Off

Take stock of a project that's been sitting untouched for months and produce a single, prioritized re-entry plan for getting it back into active development. Dependencies have fallen behind, tests may be broken, and the project's adopted conventions have probably drifted from the current ~/.claude toolset. This skill assesses all of that and tells you, in priority order, what to do first — but it does not do the work itself.

It is read-only with respect to the codebase, and advisory. It inspects, reports, and recommends; it never updates dependencies, edits project files, marks ROADMAP checkboxes, or writes code. Its one deliberate write is optional and opt-in: capturing the finished plan as a tracking issue (or a DUSTOFF.md) so it survives the session — see step 5. The deliverable is a plan, and every item on that plan names the existing skill (or manual step) that acts on it.

Where it sits in the workflow. This is the first thing you run when returning to a dormant project — before picking up an issue, before /plan-phase, before any new work. Its output feeds the normal cycle: a clean assessment hands off to /update-deps, /readme-refresh, /plan-phase, and /resolve-issue to actually execute the catch-up.

Applicability. Works in any repo. It reads both the project (the working directory) and the current conventions under ~/.claude to measure drift between them. It degrades gracefully — no PRD, no README, no CI, or no gh are all handled, with the relevant phase noting what it couldn't check rather than failing.

Not the same as:

  • /checkpoint — that's mid-stream orientation: a 2-minute hallway update that assumes you already know where you are in an active push. This is the sit-down re-entry assessment for when you don't — you've been away for months and need to re-derive the project's state, staleness, and lifecycle stage from scratch.
  • /update-deps, /readme-refresh, /plan-phase — those do the work (update dependencies, fix the README, create issues). This one only flags the need and hands off. Delegate; don't duplicate.
  • /drift-check — that checks a branch diff against the project spec before a PR. This checks the whole project's adopted tooling and conventions against the current ~/.claude standard at re-entry. Different drift, different scope.

The core guardrail

The output is a plan, not a fix — dustoff routes work to other skills, it doesn't perform it. (Capturing the plan as a tracking issue in step 5 is the one write it makes, and only when you approve it.) The one-line test for any step you're tempted to add or take: "Does this belong to re-entry assessment, or am I about to re-implement /update-deps (or /readme-refresh, or /plan-phase)?" If it's the latter, stop — flag it as a plan item and hand off. The value of this skill is the synthesis, not the mechanics it would otherwise duplicate.

Your task

Work through the five steps below. Steps 1–4 are read-only; step 5 is the one optional, opt-in write (capturing the plan). Gather findings as you go and present a single consolidated re-entry plan at the end of step 4 — not a separate report per step. If the working directory isn't a git repository, say so and stop; there's no dormant project to dust off.

1. Orient — how dusty, and where in the lifecycle
  • Dormancy duration: git log -1 --format=%cd --date=short for the last commit date; git log -20 --format='%cd %s' --date=short to see the cadence before it stopped (steady work that abruptly halted reads differently than a project that was always sporadic).
  • Read the project's own account of itself: the project CLAUDE.md, docs/prd/ROADMAP.md (if present), and the README. Don't trust them as current — they're inputs to assess, not ground truth.
  • Determine the lifecycle stage per the handbook (~/.claude/docs/prd-workflow/spec-driven-development.md §6 "PRD Lifecycle") and state it explicitly with evidence:
    • Greenfield — building against the spec; ROADMAP checkboxes are the active work queue, many unchecked.
    • MVP-complete (transition) — all ROADMAP phases marked complete; new work coming from issues; living docs starting to take over from the PRD.
    • Mature — issue-driven; PRD is historical; living docs are authoritative.
    • Evidence to cite: ratio of checked-to-unchecked ROADMAP items, whether work flows from the ROADMAP or from issues, presence of living docs (domain model, runbooks), and the CHANGELOG's activity.
  • No PRD? Place the project from git history, the README, and any living docs instead. The lifecycle question still applies — it just measures against whatever authoritative reference exists.
2. Take stock — read-only health

Detect before you assume (the /update-deps and /readme-refresh approach): identify the package manager, the test/lint commands, the CI workflow, and the boot command from what the repo actually contains. Prefer a single project gate (bin/ci, bin/test, script/test, a Makefile/Justfile target) over guessing individual runners.

  • Health check (report-only — never fix here): run the tests, the linter, and a boot check. Report results in the compact /checkpoint format:

    text
    Tests:   <pass/fail counts, or "couldn't run — <reason>">
    Linting: <clean / N issues / couldn't run>
    Boot:    <boots OK / fails — <error> / not checked>

    If a command isn't discoverable, say what you looked for rather than inventing one.

  • Open work: gh issue list --state open and gh pr list --state open. Call out open Dependabot PRs separately — they're the clearest dependency-staleness signal. (No gh or no remote? Note it and skip.)

  • Deployment posture: detect a deploy target (fly.toml, Procfile, render.yaml, netlify.toml, app.json, Dockerfile, docker-compose.yml, .github/workflows/*deploy*). Report deployed-public vs. local-only. If deployed, flag that live status can't be confirmed from the repo alone — that's a manual check for the plan.

  • Dependency staleness — flag, don't fix: a one-line summary is enough (bundle outdated/npm outdated counts, or simply the count of open Dependabot PRs). Do not run updates — that's /update-deps's job and it belongs in the plan, not here.

Show full SKILL.md (725 more words)Show less
3. Toolset / convention drift

This is the check no off-the-shelf tool does: how far has the project's adopted tooling fallen behind the current conventions, given that ~/.claude itself keeps evolving? Read the current standard, then compare the project against it. Keep every finding concrete — name the specific missing block or file and the skill/template that closes the gap. No vague "things may have changed."

  • Read the current standard under ~/.claude: the bootstrap templates (~/.claude/docs/prd-workflow/templates/CLAUDE.md and templates/prd/), the handbook (spec-driven-development.md), and the skills directory (~/.claude/skills/).
  • CLAUDE.md markers: compare the project's CLAUDE.md against the current template. Flag marker sections the template has that the project lacks (e.g. a ## QA Publish Target block), and conventions that have since changed.
  • PRD structure: if docs/prd/ exists, check it against the current expected structure — README.md (nav hub), ROADMAP.md, CHANGELOG.md (deviation log), numbered feature files. Flag missing pieces (a PRD with no CHANGELOG predates the deviation-log convention).
  • Skill/workflow evolution (heuristic, framed softly): use git history to date the last skill-driven activity and flag where it predates a current capability — e.g. "the last dependency PR (#84, ~5 months ago) predates the Dependabot-aware /update-deps; a fresh run is worth it." Frame these as worth re-running, not as asserted facts about exact dates you can't verify from inside the project.
4. Synthesize — the re-entry plan

Fold everything into one prioritized, housekeeping-first plan. This is the whole point of the skill. Order strictly by what unblocks new development:

  1. Critical / broken — failing tests, security advisories, a broken boot. These block new work and come first.
  2. Stale housekeeping — dependency updates, README drift, convention catch-up from step 3.
  3. Reorientation — where you left off (the last in-flight ROADMAP item or open issue) and the recommended next development step.

Every item names the action to take on it — a skill invocation or an explicit manual step:

text
Re-Entry Plan — <project> (dormant ~<duration>, <lifecycle stage>)
================================================================

Critical (do first — blocks new work):
  ✗ 3 failing tests in spec/models/order_spec.rb   → investigate before anything else
  ✗ bundler-audit reports CVE-2026-xxxx in nokogiri → /update-deps (security)

Housekeeping:
  ⚠ 4 open Dependabot PRs, deps ~5mo stale          → /update-deps
  ⚠ README says Rails 7.1; Gemfile.lock shows 8.0   → /readme-refresh
  ⚠ CLAUDE.md missing '## QA Publish Target' block  → review against current template
  ⚠ docs/prd/ has no CHANGELOG.md                    → adopt current PRD convention

Reorientation:
  • Lifecycle: MVP-complete transition (all 5 phases marked, work is now issue-driven)
  • Last in flight: issue #42 "export to CSV" (branch exists, no PR)
  • Suggested next step: run the §6 MVP-transition checklist, then /plan-phase for new work
  • Deployed at fly.io — confirm the live app still boots (manual)

The plan is the deliverable. Present it in full — then move to step 5 to decide how to keep it.

5. Persist the plan — so it survives the session

A long-dormant project's plan can run to a dozen items across several sessions; don't let it scroll off the terminal. After presenting the plan, offer to capture it. This is the skill's one write, and it's opt-in:

  • Default offer — a tracking issue. File the plan as a single GitHub issue (title like chore: dust off <project>), with a tiered checklist body (from step 4) where each item is a - [ ] so progress is visible ("3 of 9") and checkable across sessions. Apply the chore label if it exists (gh label list) — don't assume it does. If it's absent, create it or file without a label rather than letting gh issue create --label error out; the title convention is what the refresh step keys on, not the label. Add it to the project board if one exists (gh project list, or per CLAUDE.md).
  • Resume, don't duplicate. Before creating, search for an existing open dust-off issue by the title convention (gh issue list --search "dust off in:title" --state open). If one exists, offer to refresh it — reconcile new findings, preserve already-checked items — rather than open a second.
  • No gh or no remote. Fall back to writing a DUSTOFF.md at the project root with the same checklist. Same survives-the-session benefit, no GitHub dependency. Ask whether to commit it (durable, shared with collaborators) or add it to .gitignore (a private scratch worklist) — don't leave it as a silent untracked file.
  • Decline path. If the user wants it terminal-only, that's fine — leave the plan on screen and stop.

Whichever way it's captured, stop there — do not start executing the plan. Offer to kick off the top item (e.g. "Want me to start with /update-deps?") and let the user choose. The discrete new-work items (a discovered bug, failing tests with no obvious cause) become their own issues when you pick them up — via /plan-phase or the owning skill — and the tracking issue links to them. Dustoff doesn't file those itself.

Tone

  • You're a senior developer giving an executive an honest re-entry assessment after a project sat idle. Lead with what's broken; don't bury bad news under qualifications.
  • Be concrete about drift — a named missing block beats "your config might be out of date."
  • Right-size every finding. You're flagging and routing, not solving. If you catch yourself running the full /update-deps analysis, you've crossed the line — flag it and move on.

© joshukraine, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in claude/.claude/skills/dustoff of joshukraine/dotfiles.

Open the folder on GitHubat commit b59ad5b

Compare with similar skills

Dustoff 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.

Dustoff compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dustoff this skilljoshukraine/dotfiles429—~3.1kAutomated safety check: PassMIT
Acreadiness Assessgithub/awesome-copilot40k1 repos~839Automated safety check: PassMIT
Relsa Severity AssessmentK-Dense-AI/scientific-agent-skills48k1 repos~5.2kAutomated safety check: NotesMIT
Claude Code Skill Assessmentluongnv89/claude-howto42k—~5.5kAutomated safety check: PassMIT
Conducting Cyber Risk Assessment With Nist 800 30mukul975/Anthropic-Cybersecurity-Skills34k—~2.5kAutomated safety check: PassApache-2.0
Monthly Closing Statementssickn33/agentic-awesome-skills47k1 repos~6.2kAutomated safety check: PassMIT

Similar skills

  • Acreadiness Assess

    github/awesome-copilot

    Official

    Run the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html.

    40k GitHub starsUsed in 1 repo~839 tokens
    Legal & ComplianceAuto-check passed
  • Relsa Severity Assessment

    K-Dense-AI/scientific-agent-skills

    Supports multivariate severity assessment and exploratory endpoint-time score forecasting for laboratory animal studies using the RELSA (RELative Severity Assessment) score and ARIMA-based foRcast…

    48k GitHub starsUsed in 1 repo~5.2k tokens
    Data & AnalyticsAuto-check: notes
  • Claude Code Skill Assessment

    luongnv89/claude-howto

    Runs a quick or deep quiz on Claude Code skills, scores ten feature areas and generates a personalized learning path with prioritized next steps.

    42k GitHub stars~5.5k tokensUpdated 10 days ago
    EducationAuto-check passed
  • Conducting Cyber Risk Assessment With Nist 800 30

    mukul975/Anthropic-Cybersecurity-Skills

    Conduct a defensible cybersecurity risk assessment using the NIST SP 800-30 Rev 1 methodology: prepare scope and a risk model, identify threat sources and threat events, identify vulnerabilities and…

    34k GitHub stars~2.5k tokensUpdated 1 mo ago
    Legal & ComplianceAuto-check passed
  • Monthly Closing Statements

    sickn33/agentic-awesome-skills

    Monthly closing register: period dates, cash/bank/party/inventory/TDS reconciliation flags, profit, receivables, payables, working capital, open adjustments and reviewer.

    47k GitHub starsUsed in 1 repo~6.2k tokens
    Business, Finance & HRAuto-check passed
  • Conducting Gdpr Compliance Assessment

    mukul975/Anthropic-Cybersecurity-Skills

    Conduct comprehensive GDPR compliance assessments by evaluating data processing activities against EU Regulation 2016/679, including Article 30 records of processing, lawful basis validation, data…

    34k GitHub stars~3.4k tokensUpdated 1 mo ago
    Legal & ComplianceAuto-check passed

More from joshukraine/dotfiles

All 24 skills in this repo
  • Todoist CLI

    joshukraine/dotfiles

    Manage Todoist tasks, projects, labels, filters, sections, comments, reminders, and workspaces via the td CLI.

    429 GitHub starsUsed in 1 repo~6.9k tokens
    Auto-check passed
  • Autopilot Triage

    joshukraine/dotfiles

    Vet open issues for autonomous resolution and queue the qualifying ones with the autopilot-queued label — the start-of-day "fill the queue" half of the triage → run split.

    429 GitHub stars~2.1k tokensUpdated 4 days ago
    Auto-check passed
  • Checkpoint

    joshukraine/dotfiles

    Quick 2-minute status update on current phase, completed work, blockers, and health check.

    429 GitHub stars~600 tokensUpdated 4 days ago
    Auto-check passed
  • Create PR

    joshukraine/dotfiles

    Create a pull request with auto-generated description, issue linking, ROADMAP updates, and PR-metadata validation.

    429 GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed
  • Debrief

    joshukraine/dotfiles

    Detailed technical walkthrough covering architecture, test coverage, product tour, and key design decisions.

    429 GitHub stars~2.5k tokensUpdated 4 days ago
    Auto-check passed
  • Drift Check

    joshukraine/dotfiles

    Pre-PR advisory check for deviations from the project spec. An agent skill from joshukraine/dotfiles.

    429 GitHub stars~1.2k tokensUpdated 4 days ago
    Auto-check passed

Questions about Dustoff

What does Dustoff do?

Assess a project that's been dormant for months and produce a prioritized re-entry plan — lifecycle stage, what's stale or broken, and how far the project's tooling has drifted from current…. Dustoff is an agent skill from joshukraine/dotfiles. Assess a project that's been dormant for months and produce a prioritized re-entry plan — lifecycle stage, what's stale or broken, and how far the project's tooling has drifted from current conventions — delegating every fix to the skill that owns it, and optionally capturing the plan as a tracking issue that survives sessions.

How do I install Dustoff in Claude Code?

Run `npx skills add joshukraine/dotfiles --skill dustoff -a claude-code`. Or copy the skill folder (claude/.claude/skills/dustoff in joshukraine/dotfiles) into .claude/skills/dustoff in your project. Claude Code loads it when a task matches its description.

How do I install Dustoff in Codex?

Run `npx skills add joshukraine/dotfiles --skill dustoff -a codex`. Or copy the skill folder (claude/.claude/skills/dustoff in joshukraine/dotfiles) into .agents/skills/dustoff in your project. Codex loads it when a task matches its description.

Can I use Dustoff in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add joshukraine/dotfiles --skill dustoff -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dustoff, .gemini/skills/dustoff, .github/skills/dustoff and .opencode/skills/dustoff in your project.

What does Dustoff need to run?

Going by SKILL.md and its folder, Dustoff needs the command-line tools its instructions call (gh, git, bundle and npm). Our summary lists: Docker.

Does Dustoff access the network?

SKILL.md contains no URLs. Its commands use gh, git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Dustoff safe to install?

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. Review the folder before installing.

What licence does Dustoff use?

Dustoff is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dustoff use?

About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Dustoff?

Skills that share tags, products or a category with Dustoff: Acreadiness Assess (github/awesome-copilot, 40k stars), Relsa Severity Assessment (K-Dense-AI/scientific-agent-skills, 48k stars), Claude Code Skill Assessment (luongnv89/claude-howto, 42k stars) and Conducting Cyber Risk Assessment With Nist 800 30 (mukul975/Anthropic-Cybersecurity-Skills, 34k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dustoff?

joshukraine (a GitHub user) maintains it in joshukraine/dotfiles, which has 429 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 6, 2026.

Source: joshukraine/dotfiles on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.