skills/mine-elevate/SKILL.md
Use when the user says: "what would a v2 look like", "how would we rebuild this", "next iteration of this design", "what improvements are we skipping", "what would a mature version look like", "what are we not considering here", "how would we make this more robust", "sophistication ceiling", "elevate this subsystem". Surfaces upward improvements to an existing subsystem through three generator lenses — each candidate annotated with cost and the case against, ordered by signal. A counterweight to solo-dev myopia: it proposes, it never decides.
npx skillsauth add NodeJSmith/Claudefiles mine-elevateInstall 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.
Looks up at existing code and asks "if we did this over, knowing what we know now, what would we change?" — surfacing the upward moves that normally get skipped as "not worth it at this level." The deliberate inverse of /mine-simplify and /mine-decompose (which look down and remove). It produces an impact-ordered menu of independently-landable candidates, each with a cheap first move, a cost, and an honest case against — not a ranked mandate.
Use it to pressure your own design choices on a subsystem you suspect could be better. It is not a correctness review (/mine-review), a debt audit (/mine-audit), a collapse pass (/mine-simplify), or a UI overhaul (/i-overdrive).
$ARGUMENTS — the subsystem to elevate (a directory or module). Empty → the skill asks. It does not silently sweep the repo.
The skill's job is to make upward options visible and let you judge them — never to decide for you that something isn't worth it. Suppression is the exact myopia this exists to fight. Everything generated is shown; nothing is filtered out. The judge annotates and argues against, but it never deletes a candidate.
[no source found].Subagents read code directly with Read, Grep, Glob, and git. Do NOT write or run analysis scripts.
Run get-skill-tmpdir mine-elevate — note the dir; all intermediate files live here.
Resolve $ARGUMENTS to the subsystem's source files and confirm they're a single coherent design unit:
AskUserQuestion:
question: "Which subsystem should I elevate? (One coherent unit works best.)"
header: "Target"
multiSelect: false
options:
- label: "A specific module"
description: "I'll name a directory or module"
- label: "Specific files"
description: "I'll list the files for one subsystem"
Resolve the user's answer — the module or files they name (typically via the free-text option) — to the subsystem's source file list. Do not build subsystem-detection logic; the user's pointer decides the boundary.
Read REFERENCE.md. Dispatch three generator subagents in a single message (parallel; model: sonnet, subagent_type: general-purpose; read-only, no worktree isolation). One per lens — Friction, Latent, Maximalist. Each receives: the subsystem file list, only its own lens block from REFERENCE.md verbatim, the candidate record format from REFERENCE.md, and an output path <tmpdir>/<lens>-candidates.md. There is no cap on candidate count — quality over count.
Keep the generators isolated: each receives only its own lens block and the subsystem — never another generator's prompt or output file. If one lens sees another's restraint, the maximalist lens regresses to the cautious mean.
Model note: sonnet is the default; the Latent and Maximalist lenses are architecture-flavored, so opus may earn its place there — tune from usage, don't commit up front.
After they complete, verify each output file exists and is non-empty.
Dispatch one judge subagent (model: sonnet, subagent_type: general-purpose) — not three. One judge over the whole set keeps cost and the case-against calibrated across lenses. It runs in a context separate from every generator, which is what preserves no-self-grading.
It receives: all three candidate files, the subsystem files, the judge prompt from REFERENCE.md, and output path <tmpdir>/annotated.md. Its job is to add Cost and Case against to every candidate — including arguing against ideas it doubts — and to add nothing else. It must not drop, merge away, or reorder candidates.
Read <tmpdir>/annotated.md. Render the report inline using the template in REFERENCE.md. Sort candidates by their lens tag into the fixed tier order Friction → Latent → Maximalist, regardless of the order they appear in annotated.md (high signal first; the reader stops when they lose interest — this ordering is the volume control, not a filter). Then:
AskUserQuestion:
question: "What would you like to do with these?"
header: "Next steps"
multiSelect: false
options:
- label: "Implement some"
description: "Pick candidates to build now; each is independently landable"
- label: "File as issues"
description: "Turn selected candidates into issues via /mine-create-issue"
- label: "Note and move on"
description: "Acknowledged — no changes this session"
Implementing any candidate is a refactor or a feature change — pin behavior first per refactoring-discipline.md: confirm test coverage (or write a characterization test), apply the minimal move, then run the suite. After changes, say: "Run /mine-review before committing."
development
Use when the user says: "document how X works", "write up how this works", "durable explanation", "explain this for the docs", "document this subsystem". Writes a durable, architectural-altitude explanation that survives code churn.
development
Use when picking up a fresh session after /clear, a stop, or an unanswered AskUserQuestion. Reconstructs the prior session's intent from its transcript tail and surfaces any unresolved decision; user-invoked only — for a hand-written end-of-day handoff use /mine-good-morning instead.
development
Use when the user says: "what did we discuss", "continue where we left off", "remember when", "as I mentioned", "you suggested", "we decided", "search my conversations", "find the conversation where", "what did we work on", or uses implicit signals like past-tense references, possessives without context, or assumptive questions. Direct search over past Claude Code sessions via cass.
tools
Use when the user says: "what context do I have", "relevant history for this task", "what have we done related to this". Also usable proactively when starting work that likely has prior history. Assembles a structured context brief from past session history via cass, scoped to the current task and workspace.