engineering/code-tour/skills/code-tour/SKILL.md
Use when the user asks to create a CodeTour .tour file — persona-targeted, step-by-step walkthroughs that link to real files and line numbers. Trigger for: create a tour, onboarding tour, architecture tour, PR review tour, explain how X works, vibe check, RCA tour, contributor guide, or any structured code walkthrough request.
npx skillsauth add alirezarezvani/claude-skills code-tourInstall 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.
Create CodeTour files — persona-targeted, step-by-step walkthroughs of a codebase that link directly to files and line numbers. CodeTour files live in .tours/ and work with the VS Code CodeTour extension.
A great tour is a narrative — a story told to a specific person about what matters, why it matters, and what to do next. Only create .tour JSON files. Never modify source code.
Before asking anything, explore the codebase:
In parallel: list root directory, read README, check config files. Then: identify language(s), framework(s), project purpose. Map folder structure 1-2 levels deep. Find entry points — every path in the tour must be real.
If the repo has fewer than 5 source files, create a quick-depth tour regardless of persona — there's not enough to warrant a deep one.
One message should be enough. Infer persona, depth, and focus silently.
| User says | Persona | Depth | |-----------|---------|-------| | "tour for this PR" | pr-reviewer | standard | | "why did X break" / "RCA" | rca-investigator | standard | | "onboarding" / "new joiner" | new-joiner | standard | | "quick tour" / "vibe check" | vibecoder | quick | | "architecture" | architect | deep | | "security" / "auth review" | security-reviewer | standard | | (no qualifier) | new-joiner | standard |
When intent is ambiguous, default to new-joiner persona at standard depth — it's the most generally useful.
Every file path and line number must be verified. A tour pointing to the wrong line is worse than no tour.
Save to .tours/<persona>-<focus>.tour.
{
"$schema": "https://aka.ms/codetour-schema",
"title": "Descriptive Title — Persona / Goal",
"description": "Who this is for and what they'll understand after.",
"ref": "<current-branch-or-commit>",
"steps": []
}
| Type | When to use | Example |
|------|-------------|---------|
| Content | Intro/closing only (max 2) | { "title": "Welcome", "description": "..." } |
| Directory | Orient to a module | { "directory": "src/services", "title": "..." } |
| File + line | The workhorse | { "file": "src/auth.ts", "line": 42, "title": "..." } |
| Selection | Highlight a code block | { "file": "...", "selection": {...}, "title": "..." } |
| Pattern | Regex match (volatile files) | { "file": "...", "pattern": "class App", "title": "..." } |
| URI | Link to PR, issue, doc | { "uri": "https://...", "title": "..." } |
| Depth | Steps | Use for | |-------|-------|---------| | Quick | 5-8 | Vibecoder, fast exploration | | Standard | 9-13 | Most personas | | Deep | 14-18 | Architect, RCA |
file path relative to repo root (no leading / or ./)file confirmed to existline verified by reading the filefile or directory anchornextTour matches another tour's title exactly if set| Persona | Goal | Must cover | |---------|------|------------| | Vibecoder | Get the vibe fast | Entry point, main modules. Max 8 steps. | | New joiner | Structured ramp-up | Directories, setup, business context | | Bug fixer | Root cause fast | Trigger -> fault points -> tests | | RCA investigator | Why did it fail | Causality chain, observability anchors | | Feature explainer | End-to-end | UI -> API -> backend -> storage | | PR reviewer | Review correctly | Change story, invariants, risky areas | | Architect | Shape and rationale | Boundaries, tradeoffs, extension points | | Security reviewer | Trust boundaries | Auth flow, validation, secret handling | | Refactorer | Safe restructuring | Seams, hidden deps, extraction order | | External contributor | Contribute safely | Safe areas, conventions, landmines |
file or directory step (never content-only first step — blank in VS Code)| Anti-pattern | Fix | |---|---| | File listing — "this file contains the models" | Tell a story. Each step depends on the previous. | | Generic descriptions | Name the specific pattern unique to this codebase. | | Line number guessing | Never write a line you didn't verify by reading. | | Too many steps for quick depth | Actually cut steps. | | Hallucinated files | If it doesn't exist, skip the step. | | Recap closing — "we covered X, Y, Z" | Tell the reader what they can now do. | | Content-only first step | Anchor step 1 to a file or directory. |
engineering/codebase-onboarding — for broader onboarding beyond toursengineering/pr-review-expert — for automated PR review workflowsdevelopment
Use when someone wants to run a weekly review, close open loops, audit stalled projects and commitments, get their system back to trusted, restart a lapsed review habit, or says "/cs:weekly-review". Walks David Allen's three-phase loop — GET CLEAR, GET CURRENT, GET CREATIVE — with deterministic scripts that inventory open loops, gate the checklist with named gaps, and score commitment health 0-100.
development
Use when someone wants to decide whether a meeting is worth calling, price a meeting in dollars, build a timeboxed agenda with desired outcomes, or turn messy meeting notes into owned action items — or says "should this be a meeting", "/cs:meeting-prep", or "/cs:meeting-actions". Runs a cost gate (ASYNC / NOT-READY / MEET), builds a decision-first agenda, and extracts an owner + due-date checklist that flags every orphan.
development
Convert a rambling description of a desired outcome into one polished, autonomous /goal prompt ready to paste into a fresh session. Use when the user says "/fable-goal", "turn this into a goal prompt", "write me a fable prompt", "write the prompt that builds X", or rambles about something they want made and asks for the prompt that makes it happen. The output is a single copy-paste prompt, never the build itself. Do NOT use when the user wants the thing built right now in this session — only when they want the PROMPT that will make it happen in a fresh session.
development
Use when someone wants to plan a deep work day, time-block their calendar or task list, budget or cut shallow work, protect focus hours, track deep-work sessions and streaks, run an end-of-day shutdown ritual, or says "/deep-work" or "/time-block". Classifies tasks deep vs shallow, builds an energy-first time-blocked schedule that refuses deep demand past the 4-hour ceiling, batches shallow work into at most two windows, and logs focus sessions against a weekly target.