Small Claude Code skills for long sessions. The three just-* commands and what-now never fire on their own. You call them when you need them. cleanup can also run when you ask Claude to wrap a session up.
| Command | What it does |
|---|---|
/simplicity:just-ask [focus] |
Sweeps the session (your messages, the plan, the task list and Claude's own earlier responses) for every question that's still open. It drops anything the repo or the conversation already answers, then asks the rest through AskUserQuestion in rounds of up to four. Every option has a recommendation and the reasoning behind it. |
/simplicity:just-say-it [N | topic] |
Re-states the last response, the last N responses, or everything said on a topic as a short numbered list: a bold label plus one plain sentence per item. It adds no preamble and no new information. If the content leaves decisions open, it ends by pointing you to just-ask. |
/simplicity:what-now |
Takes stock of the session and gives three short lists: what's done, where the current task stands, and the next steps to finish it. Each item is a bold label plus one plain sentence. It makes no tool calls and counts work as done only when the session shows it done, so a fix that was never tested is marked unverified. A step that needs you, such as a decision, says so. |
/simplicity:just-finish-it [PR numbers | repo path] |
Ships the session's work and closes it. It pushes this session's branches, opens any missing PRs, waits for CI, and merges the PRs whose checks all pass, base-first for stacked PRs. It then deletes the merged branches, remote and local, syncs your local repos, runs cleanup, and archives the session. It never uses --admin, auto-merge or force-push, never commits work for you, and never pushes to the default branch. If anything is still pending (red CI, a missing review, uncommitted work, unfinished tasks), or if you scoped the run, it skips archiving. It ends with a numbered "Still to do" list, each item with its next step. |
/simplicity:cleanup |
An end-of-session checklist. It flags uncommitted, unpushed or stashed work without touching it, stops background tasks this session started, removes scratch files, and offers to archive the session. It isn't for cleaning up code. |
claude plugin marketplace add EONRaider/claude-plugins
claude plugin install simplicity@eonraiderFor local development, load the plugin straight from a clone:
claude --plugin-dir /path/to/simplicityAskUserQuestionexists only in Claude Code. On other surfaces,just-askfalls back to a numbered markdown list with the same recommendations.just-finish-itneedsgit, plus an authenticatedghor the GitHub MCP server's tools (cloud sessions often have only the MCP server). On the MCP path it can't always see a merge queue. If the default branch is protected and the server'sgovernancetoolset doesn't show one, it takes the answer your CLAUDE.md or CONTRIBUTING states, and asks you only when neither says, once per run. If GitHub then refuses the merge because of a queue, the PR goes on "Still to do" for you to enqueue. The MCP server has no branch-delete tool, so a merged branch the repo doesn't auto-delete goes on the "Still to do" list. Archiving uses the desktop app's session tools. In the CLI it stops at "ready to close".cleanup's session steps (stopping background tasks, messaging other sessions, retitling, archiving) use the desktop app's session tools. In the CLI it skips them, says so, and ends at "ready to close".just-say-itonly compresses. If you want terser output in every session, set an output style or a CLAUDE.md instruction instead.
Each skill ships seeded session transcripts and expectations in skills/<name>/evals/: 21 evals across the five skills. cleanup also ships a 20-query trigger set for its description (skills/cleanup/evals/trigger_eval_set.json). To reproduce the benchmark in the CHANGELOG, run the commands below. Each run is a claude -p call, so it counts against your Claude plan's usage limits, or bills your API key if one is configured. Every eval runs with and without the skill on Haiku, Sonnet and Opus, so --runs 5 (the smoke preset the CHANGELOG uses) is 630 runs. --runs defaults to 1 (126 runs); --skills, --models, --evals and --configs narrow the set.
python3 scripts/run_evals.py --iteration my-run --runs 5
python3 scripts/grade.py .eval-workspace/*/my-run-*Use a fresh iteration name: runs that already have a result are skipped, so an old name only resumes. Then aggregate each iteration directory with scripts/eval_loop.py aggregate from SkillArtisan.
Every run is isolated from the machine it runs on:
- It skips user-level settings, skills and plugins (
--setting-sources project,local). - It skips MCP servers and claude.ai connectors (
--strict-mcp-config). - The only tool it can call is
Skill.
The just-finish-it and cleanup seeds end with a "Live state" snapshot that stands in for the repos and PRs. The model logs every command it would run as a JSON block, and the grader checks those blocks for order and safety. No real repository, PR or session is touched.