code/step-through/SKILL.md
--- name: step-through description: >- Walks the user through a long enumerated response (numbered findings, audit list, refactor plan, bug list, PR review, recommendations, action items) one item at a time. For each item, lets the user dive deeper, take action, defer, or skip — instead of staring at the whole wall of text. Learns the user's per-severity defaults from feedback. Use when an assistant has just produced a long list and the user says "let's go through these one by one",
npx skillsauth add mostafa-drz/claude-skills code/step-throughInstall 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.
Take a long enumerated response and walk through it interactively, one item at a time, with a decision per item — and learn the user's per-severity habits over sessions.
On startup, use the Read tool to load ~/.claude/skills/step-through/preferences.md. If missing, treat as first-run (see First-time detection below).
Defaults when no preferences exist:
concise — one paragraph plus 1–2 references on dive deeperyes — print the outline before startingyes — append decisions to sessions/<date>.mdmost-recent — most recent enumerated assistant messagedestructive-only — confirm before file deletes / branch ops / pushes / external posts; everything else proceedsyes — when a session is stopped mid-way, save resume state so the next invocation can pick up where it left offDo NOT pre-load anything on startup. The skill works against the current conversation's recent assistant messages. Run Bash/Read only when the user picks "dive deeper" or "take action" on a specific item — at that point, fetch only what's needed for that item.
Check $ARGUMENTS:
help → display help, then stopconfig → interactive setup, then stopreset → delete ~/.claude/skills/step-through/preferences.md AND feedback-journal.md AND sessions/, confirm, stopfeedback → collect thumbs-up/down on the most recent walkthrough (see Feedback & learning), stopresume → continue the most recent stopped walkthrough using saved resume state, stop if none/step-through — Walk through a long enumerated response item-by-item
Usage:
/step-through Walk through the most recent enumerated response
/step-through --filter blockers Only walk through items in that section/severity
/step-through --start 3 Resume from item N
/step-through --from "<hint>" Pick a different message by short description
/step-through resume Continue the most recent stopped walkthrough
/step-through feedback Rate the last walkthrough (improves future defaults)
/step-through config Set preferences
/step-through reset Clear preferences + feedback journal + sessions
/step-through help This help
Per-item options:
Dive deeper Pull code / docs / context to better understand
Take action Edit, run, research, or fix right now
Note & defer Capture decision (e.g. "address with AIS-XXXX"), move on
Skip Drop without action
Stop End the walkthrough, summarise
Examples:
/step-through After a long PR review
/step-through --filter blockers Only critical items
/step-through --start 7 Resume mid-list
Current preferences:
(loaded from ~/.claude/skills/step-through/preferences.md)
Use AskUserQuestion to collect 5 preferences in one batch:
concise (one paragraph + 1–2 refs) vs thorough (open files, web, full context)yes, always show outline vs skip, jump to item 1yes, write to sessions/<date>.md vs no, summary in chat onlyauto: most-recent enumerated message vs always ask which messagedestructive only (file deletes, pushes, external posts) vs every action (confirm any edit/command)Save to ~/.claude/skills/step-through/preferences.md in this format:
# /step-through preferences
Updated: YYYY-MM-DD
## Defaults
- default-depth: concise
- show-outline: yes
- persist-session-log: yes
- auto-pick-source: most-recent
- action-confirmation: destructive-only
- resume-on-stop: yes
## Profile (optional — edit freely)
- preferred severity to start with: blockers
- usual filter: none
- typical action style: minimal-edit, prefer linking a Linear ticket over inline fix
## Learned
- (populated by feedback over time — e.g. "follow-up severity → defer by default")
After save, print a one-line summary: Saved. /step-through will use these defaults from now on.
Delete:
~/.claude/skills/step-through/preferences.md~/.claude/skills/step-through/feedback-journal.md~/.claude/skills/step-through/sessions/ (entire directory if exists)~/.claude/skills/step-through/resume-state.md (if exists)Confirm: All cleared. Starting fresh next time.
If no preferences file exists, show a warm one-liner (do not block):
First time using
/step-through? I'll walk you through the most recent long response one item at a time. After your first walkthrough, run/step-through feedbackso I can learn your defaults. Or run/step-through configfirst to tune behaviour.
Then proceed with defaults.
Before anything else:
preferences.md — carry Defaults, Profile, and Learned forward into the session.feedback-journal.md if it exists — scan for any "Signal" lines that match the current source (e.g. severity terminology, source style). These quietly bias the per-item pre-selection in step 4b.--filter, --start, or --from are present in $ARGUMENTS, parse them now.If any file fails to read, continue silently with defaults — never block on missing learning state.
Default behaviour: the most recent assistant message in this conversation that contains an enumerated list. Look for any of:
1., 2., …) at line start### N. Something or 🔴 Blockers / 🟠 Major / 🟡 Follow-upIf --from "<hint>" is set, scan back for an assistant message whose contents loosely match the hint (substring or theme) and use that.
If preference auto-pick-source is always-ask, list up to 3 candidate messages with one-line summaries and ask which one to use.
If nothing enumerable is found in recent context: stop and tell the user — I can't see a long enumerated response in this conversation. Paste it, or tell me which message to use. Do not fabricate items.
Extract a structured list. For each item capture:
index — 1-based position in the listseverity — if the source uses sections like Blockers / Major / Follow-up / Nice-to-have, capture the section as severity. Otherwise leave blank.title — short label (first line / heading)body — the full text of the item (verbatim, do not paraphrase)references — any path/to/file.ts:LN citations, URLs, or doc links found in the bodyIf --filter <severity> is passed (e.g. blockers, major, follow-up), keep only matching items. Match case-insensitively against the section the item came from.
If --start <n> is passed, drop items with index < n.
Print a single compact outline so the user knows the scope:
14 items found in the last response. Walking through:
1. [BLOCKER] Client Sentry init missing environment + release
2. [BLOCKER] global-error.tsx was deleted
3. [BLOCKER] Triple Sentry ingestion via structuredLog
…
Titles only — never reproduce the full bodies here. Then say one line: Starting with item 1. and move on (no permission prompt — the user invoked the skill).
For each item in order:
Print the item exactly as it appeared in the source response — verbatim body, references included. Add one header line:
Item N of M — [SEVERITY] — Title
Do not rewrite, summarise, or "improve" the item text on first presentation. The user already chose to walk through this content as-is.
Use AskUserQuestion with these 5 fixed options (in this order):
Header: Item N of M.
Pre-selection logic (apply in priority order, top wins):
Learned has a per-severity rule matching this item's severity, pre-select that.Dive deeper:
Read for paths, Bash(git *) for blame/log if relevant, WebFetch for URLs in the item, Grep/Glob for symbol lookups.default-depth preference (concise vs thorough).Take action:
Edit/Write for code, Bash for commands, WebSearch/WebFetch for verification.action-confirmation: every, confirm in chat before any edit/command. If destructive-only, confirm only before file deletes, branch operations, pushes, or external posts. Auto mode does not bypass destructive-only confirmation.Note & defer: ask one short follow-up — Note? — capture the user's reply (or accept empty) and move on.
Skip: record as skipped, move on.
Stop: break the loop, jump to step 5. If resume-on-stop: yes, write resume state (see step 6) before summarising.
Maintain an in-memory record per item:
{ index, severity, title, decision: "deeper|action|defer|skip", note?: string, action_summary?: string }
If persist-session-log: yes, also append to ~/.claude/skills/step-through/sessions/YYYY-MM-DD-HHMM.md after each decision (incremental write, not at the end). Header line on first write should include the source — message hash, date, and total item count.
When the loop ends (all items processed, or user picked Stop), print one compact block:
Walkthrough complete — N items.
Action taken: [list of indices + 1-line action summaries]
Deferred: [indices + notes]
Skipped: [indices]
Not reached: [indices, if Stop was used]
Then ask one follow-up question via AskUserQuestion:
Do not auto-create tickets/PRs without explicit confirmation.
If the user picked Stop and resume-on-stop: yes, write ~/.claude/skills/step-through/resume-state.md with: source identifier, processed indices, remaining indices, decisions so far. Tell the user: Run /step-through resume to continue from item N.
If the loop completed normally, delete any stale resume-state.md.
End with one short line:
When you're done, run
/step-through feedback— even one rating helps me sharpen per-severity defaults for next time.
Do not ask interactively here. Feedback is opt-in via the dedicated subcommand.
When invoked as /step-through feedback:
sessions/YYYY-MM-DD-HHMM.md). If none, say No recent walkthrough found. and stop.AskUserQuestion (4 questions, one batch):
yes, smooth / too slow / too fast / wrong defaultsdefer by default / skip by default / dive deeper first / variesdive deeper first / take action immediately / defer with ticket / varies~/.claude/skills/step-through/feedback-journal.md:## {session slug} — {date}
- Pace: {smooth|too-slow|too-fast|wrong-defaults}
- Wrong calls: {indices + user text}
- Follow-up default: {answer}
- Blocker default: {answer}
- Signal: {one-line generalization, e.g. "user defers all follow-ups, dives deeper on blockers"}
Promotion rule: when 3+ sessions show a consistent answer for the same severity, promote it to ## Learned in preferences.md as a rule like follow-up severity → defer by default. Mention once: Noticed you consistently defer follow-up items. Saved as standing default. These rules feed step 4b's pre-selection.
Drift correction: if a Learned rule is contradicted in 2 newer sessions, demote it (remove from Learned, log in journal as ## Demoted: {rule} — too unstable). Never leave stale rules.
disable-model-invocation: true makes the skill user-triggered, but file deletes, branch ops, pushes, and external posts always require an explicit yes — auto mode does not bypass that.preferences.md or feedback-journal.md can't be read, continue with built-in defaults — never block on missing learning state.development
--- name: triage-board description: >- Generates a structured triage artifact from the current conversation's findings — a self-contained Desktop folder with a JSON Schema, schema-conformant report.json, prose markdown, and a single-file HTML viewer. Viewer ships with MD / CSV / JSON download buttons in the header and a per-finding "Copy as Markdown" action that produces a GitHub/Linear/Notion-ready ticket block. Stateless — triage state lives in the user's ticket system, not in the
development
Runs a beginner-mind end-to-end UI audit of any running app — local dev server, staging, production, or a specific URL. Drives Chrome through every interactive element on the target surface, collects structured findings (severity, category, where, symptom, impact, repro, triage), and hands the result off to `/triage-board` which produces the Desktop folder (schema + JSON + Markdown + single-file HTML viewer with MD/CSV/JSON exports and a per-finding Copy as Markdown button). Use when you want fresh-eyes verification of a feature, page, modal, flow, branch, or whole app — before shipping, before review, before a demo, or any time the UI deserves a careful poke.
development
Reviews the user's past Claude Code conversations from a wellbeing perspective — sentiment, tone, emotional arc, recurring patterns — and generates a supportive, science-grounded report in both Markdown and HTML. Default lookback is 48 hours across all projects. Uses recognised emotion frameworks (Plutchik, Ekman, Russell's circumplex, Pennebaker linguistic markers) and cites the science behind every observation. Learns the user's baseline tone over time so future reports flag genuine shifts, not noise. Use when the user asks for an emotional/wellbeing recap, mood check, sentiment review, or wants to understand their own ups and downs across recent work sessions.
development
--- name: workflow-advisor description: >- Analyzes recent Claude Code conversations and local Claude state (skills, settings, memory files, CLAUDE.md), researches the latest Claude Code features and best practices online, and suggests one workflow improvement at a time with reasoning and a concrete action item. Can save accepted suggestions to memory for tracking. Use when you want to discover underused Claude Code features, improve your development workflow, stay current with the lat