# Tour Desk > Write and check VS Code CodeTour .tour files: persona-targeted walkthroughs whose every step opens on a real file and line. Paste the source files a reader needs; the page checks any tour's anchors free in the browser, and metered runs write the tour for one reader and revise it on feedback. URL: https://tour-desk.skillsafe.ai/ API tutorial: https://tour-desk.skillsafe.ai/api.html ## What it does - Free, in the browser: reads pasted or dropped source files (one "==> path <==" header per file, the format `tail -n +1` prints), numbers every line, maps symbols (functions, classes, methods, types) and landmarks (entry points, routes, auth checks, error paths, transactions, tests) with their real lines, and infers the reader from the request: new-joiner (9-13 steps), vibecoder (5-8), architect (14-18), pr-reviewer, rca-investigator, security-reviewer, feature-explainer, bug-fixer (7-11). - Free: checks any .tour file against the files - paths that are not pasted, lines and selections out of range, patterns that match nothing or several places, unknown directories, a content-only first step, a ref on a pull request's base branch, PR tours that do not lead with the changed files, duplicate and overlapping anchors, tours that read like a file listing, and steps whose description names code that is not within eight lines of where the step opens (drift). Safe fixes: the $schema key, a drifted or out-of-range anchor whose code has one definition in the file, selection characters, a base-branch ref when the PR branch is known. - Free: a step-by-step player showing each step with the anchored code highlighted; exports as .tour, a Markdown document, a steps CSV and a JSON reading. - Metered lane `write`: a CodeTour tour for the reader at the skill's depth, following orientation - module map - core path - gotcha - closing, every description in Situation / Mechanism / Implication / Gotcha form. - Metered lane `revise`: the full revised tour on the user's feedback and the page's flags, with a change log (added, removed, moved, re-anchored, rewritten, merged, split, retitled), reconciled by the page against what actually changed. ## Run contract Input fields (all strings): task (write | revise), subject, ask, persona, ref, changed, files (numbered listing), facts (the page's reading, with "must:" lines), tour (revise: the current tour JSON), feedback, optional retry_note. Output: one JSON object - task, summary, focus, tour (title, description, optional ref, steps of kind directory / file+line / selection / pattern / uri / closing content), beats (one per step), uncovered, caveats; revise adds changes (kind, steps, what, because). ## Source Built on the SkillSafe skill @affaan-m/code-tour (https://skillsafe.ai/skill/@affaan-m/code-tour), from affaan-m/everything-claude-code (MIT), by affaan-m. The .tour format is the one read by the CodeTour extension for VS Code (microsoft/codetour); Tour Desk is not affiliated with or endorsed by Microsoft or the CodeTour project.