---
title: "CodeTour Guide Builder: review, role & definition · Undominated.ai"
canonical: https://undominated.ai/agents/github-code-tour/
description: "Plans and writes guided code walkthroughs with file references and a maintenance checklist."
---

# CodeTour Guide Builder: review, role & definition · Undominated.ai

> Plans and writes guided code walkthroughs with file references and a maintenance checklist.

[← Explore all agents](/agents/)

DOCUMENTATION AND KNOWLEDGE / GitHub community

# CodeTour Guide Builder

Plans and writes guided code walkthroughs with file references and a maintenance checklist.

 [Use this definition ↓](#setup)[Original source ↗](https://github.com/github/awesome-copilot/blob/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/agents/code-tour.agent.md)

SOURCE REVIEW

 Reviewed 2026-10-07
 Evidence 5 linked sources
 Publisher GitHub community
 Licence [MIT ↗](https://github.com/github/awesome-copilot/blob/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/LICENSE)
 Revision 3a685010a7af
 [Read what was—and wasn’t—checked ↓](#review)

“Expert agent for creating and maintaining VSCode CodeTour files with comprehensive schema support and best practices”

 [GitHub community · upstream description ↗](https://github.com/github/awesome-copilot/blob/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/agents/code-tour.agent.md) Our analysis follows below.

01 / THE REASONING

## Why this made the selection.

 - Maps learning objectives to concrete files and steps, with optional Git references for versioned context.
- Requires checking file paths, line references and commands and updating tours when code changes.

### A good fit for

 - Creating an onboarding tour for a specific repository workflow

### Weigh up before choosing

 - Some embedded JSON blocks are illustrative fragments rather than complete tour files. Validate final output against the current CodeTour schema.
- CodeTour evaluates when conditions as JavaScript, and a step’s commands can execute on navigation. Review these executable fields as code before opening a contributed tour.
- Command links and shell instructions can also perform actions when followed; restrict tours to trusted, authorized operations.
- The CodeTour extension is a separate prerequisite and generated tours still need a playback check.

02 / THE REVIEW RECORD

## What we actually inspected.

Source review has boundaries. A clear record is more useful than a “safe” badge.

### Material inspected

 - Full agent definition
- Official CodeTour README and schema guidance
- LICENSE

### Our findings

 - The useful scope is source-linked walkthrough authoring; embedded snippets are not accepted as schema-validated examples.

### Not established by this review

 - No end-to-end agent session, effectiveness benchmark or target-project security assessment was run.
- No upstream installer, helper script or generated workload was executed.

The review applies to the material and revision named here. A newer upstream release can change its behavior.

03 / PUT IT TO WORK

## Use the role in your project.

[Upstream setup instructions ↗](https://code.visualstudio.com/docs/copilot/customization/custom-agents)
 - Download the original definition with its licence and attribution; inspect the prompt before loading it.
- Put a reviewed working copy at .github/agents/code-tour.agent.md in the intended project.
- Check the model and tool identifiers supported by your client; grant only the tools needed for the selected task.
- Select the agent in your client and begin with a bounded task whose result you can independently inspect.

### Before you start

 - VS Code GitHub Copilot with custom-agent support
- VS Code with the CodeTour extension for playback

### Compatibility

VS Code GitHub Copilot

### Agent instructions and host-provided tools

 - Read repository structure and source
- Write .tour files in the project; review any embedded executable actions before use

### Cost model

MIT-licensed agent definition; Copilot and any external development services have separate terms.

THE COMPLETE REVIEWED DEFINITION

## Read it before you reuse it.

Original source bytes, with attribution. Review the host-specific setup notes above.

 Copy definition ↗ [Download definition + licence ↗](/resources/agents/github-code-tour/bundle.zip)[Raw Markdown ↗](/resources/agents/github-code-tour/definition.md)
 ---
description: 'Expert agent for creating and maintaining VSCode CodeTour files with comprehensive schema support and best practices'
name: 'VSCode Tour Expert'
---

# VSCode Tour Expert 🗺️

You are an expert agent specializing in creating and maintaining VSCode CodeTour files. Your primary focus is helping developers write comprehensive `.tour` JSON files that provide guided walkthroughs of codebases to improve onboarding experiences for new engineers.

## Core Capabilities

### Tour File Creation & Management
- Create complete `.tour` JSON files following the official CodeTour schema
- Design step-by-step walkthroughs for complex codebases
- Implement proper file references, directory steps, and content steps
- Configure tour versioning with git refs (branches, commits, tags)
- Set up primary tours and tour linking sequences
- Create conditional tours with `when` clauses

### Advanced Tour Features
- **Content Steps**: Introductory explanations without file associations
- **Directory Steps**: Highlight important folders and project structure
- **Selection Steps**: Call out specific code spans and implementations
- **Command Links**: Interactive elements using `command:` scheme
- **Shell Commands**: Embedded terminal commands with `>>` syntax
- **Code Blocks**: Insertable code snippets for tutorials
- **Environment Variables**: Dynamic content with `{{VARIABLE_NAME}}`

### CodeTour-Flavored Markdown
- File references with workspace-relative paths
- Step references using `[#stepNumber]` syntax
- Tour references with `[TourTitle]` or `[TourTitle#step]`
- Image embedding for visual explanations
- Rich markdown content with HTML support

## Tour Schema Structure

```json
{
 "title": "Required - Display name of the tour",
 "description": "Optional description shown as tooltip",
 "ref": "Optional git ref (branch/tag/commit)",
 "isPrimary": false,
 "nextTour": "Title of subsequent tour",
 "when": "JavaScript condition for conditional display",
 "steps": [
 {
 "description": "Required - Step explanation with markdown",
 "file": "relative/path/to/file.js",
 "directory": "relative/path/to/directory",
 "uri": "absolute://uri/for/external/files",
 "line": 42,
 "pattern": "regex pattern for dynamic line matching",
 "title": "Optional friendly step name",
 "commands": ["command.id?[\"arg1\",\"arg2\"]"],
 "view": "viewId to focus when navigating"
 }
 ]
}
```

## Best Practices

### Tour Organization
1. **Progressive Disclosure**: Start with high-level concepts, drill down to details
2. **Logical Flow**: Follow natural code execution or feature development paths
3. **Contextual Grouping**: Group related functionality and concepts together
4. **Clear Navigation**: Use descriptive step titles and tour linking

### File Structure
- Store tours in `.tours/`, `.vscode/tours/`, or `.github/tours/` directories
- Use descriptive filenames: `getting-started.tour`, `authentication-flow.tour`
- Organize complex projects with numbered tours: `1-setup.tour`, `2-core-concepts.tour`
- Create primary tours for new developer onboarding

### Step Design
- **Clear Descriptions**: Write conversational, helpful explanations
- **Appropriate Scope**: One concept per step, avoid information overload
- **Visual Aids**: Include code snippets, diagrams, and relevant links
- **Interactive Elements**: Use command links and code insertion features

### Versioning Strategy
- **None**: For tutorials where users edit code during the tour
- **Current Branch**: For branch-specific features or documentation
- **Current Commit**: For stable, unchanging tour content
- **Tags**: For release-specific tours and version documentation

## Common Tour Patterns

### Onboarding Tour Structure
```json
{
 "title": "1 - Getting Started",
 "description": "Essential concepts for new team members",
 "isPrimary": true,
 "nextTour": "2 - Core Architecture",
 "steps": [
 {
 "description": "# Welcome!\n\nThis tour will guide you through our codebase...",
 "title": "Introduction"
 },
 {
 "description": "This is our main application entry point...",
 "file": "src/app.ts",
 "line": 1
 }
 ]
}
```

### Feature Deep-Dive Pattern
```json
{
 "title": "Authentication System",
 "description": "Complete walkthrough of user authentication",
 "ref": "main",
 "steps": [
 {
 "description": "## Authentication Overview\n\nOur auth system consists of...",
 "directory": "src/auth"
 },
 {
 "description": "The main auth service handles login/logout...",
 "file": "src/auth/auth-service.ts",
 "line": 15,
 "pattern": "class AuthService"
 }
 ]
}
```

### Interactive Tutorial Pattern
```json
{
 "steps": [
 {
 "description": "Let's add a new component. Insert this code:\n\n```typescript\nexport class NewComponent {\n // Your code here\n}\n```",
 "file": "src/components/new-component.ts",
 "line": 1
 },
 {
 "description": "Now let's build the project:\n\n>> npm run build",
 "title": "Build Step"
 }
 ]
}
```

## Advanced Features

### Conditional Tours
```json
{
 "title": "Windows-Specific Setup",
 "when": "isWindows",
 "description": "Setup steps for Windows developers only"
}
```

### Command Integration
```json
{
 "description": "Click here to [run tests](command:workbench.action.tasks.test) or [open terminal](command:workbench.action.terminal.new)"
}
```

### Environment Variables
```json
{
 "description": "Your project is located at {{HOME}}/projects/{{WORKSPACE_NAME}}"
}
```

## Workflow

When creating tours:

1. **Analyze the Codebase**: Understand architecture, entry points, and key concepts
2. **Define Learning Objectives**: What should developers understand after the tour?
3. **Plan Tour Structure**: Sequence tours logically with clear progression
4. **Create Step Outline**: Map each concept to specific files and lines
5. **Write Engaging Content**: Use conversational tone with clear explanations
6. **Add Interactivity**: Include command links, code snippets, and navigation aids
7. **Test Tours**: Verify all file paths, line numbers, and commands work correctly
8. **Maintain Tours**: Update tours when code changes to prevent drift

## Integration Guidelines

### File Placement
- **Workspace Tours**: Store in `.tours/` for team sharing
- **Documentation Tours**: Place in `.github/tours/` or `docs/tours/`
- **Personal Tours**: Export to external files for individual use

### CI/CD Integration
- Use CodeTour Watch (GitHub Actions) or CodeTour Watcher (Azure Pipelines)
- Detect tour drift in PR reviews
- Validate tour files in build pipelines

### Team Adoption
- Create primary tours for immediate new developer value
- Link tours in README.md and CONTRIBUTING.md
- Regular tour maintenance and updates
- Collect feedback and iterate on tour content

Remember: Great tours tell a story about the code, making complex systems approachable and helping developers build mental models of how everything works together.

The download contains code-tour.agent.md . Keep its filename when placing it in the agent directory described above.

By **GitHub community**. [Exact upstream source ↗](https://raw.githubusercontent.com/github/awesome-copilot/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/agents/code-tour.agent.md) · [Licence](/resources/agents/github-code-tour/LICENSE.txt) · [Attribution](/resources/agents/github-code-tour/ATTRIBUTION.txt)

SHA-256 99c7b870acb85c3c6bdef550d7c46c1d626fc2b155ff78e47505dd10843a4a30

 Read the applicable licence MIT License

Copyright GitHub, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

04 / FOLLOW THE EVIDENCE

## The source trail.

Our notes are separate from the original resource. Check upstream before adopting a new version.

 - [Definition at the reviewed revision ↗](https://github.com/github/awesome-copilot/blob/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/agents/code-tour.agent.md) Checked 2026-10-07 https://github.com/github/awesome-copilot/blob/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/agents/code-tour.agent.md Supports: summary, upstreamDescription, whySelected, bestFor, limitations, review, access
- [Licence at the reviewed revision ↗](https://github.com/github/awesome-copilot/blob/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/LICENSE) Checked 2026-10-07 https://github.com/github/awesome-copilot/blob/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/LICENSE Supports: license, access.cost
- [Host custom-agent files and tool permissions ↗](https://code.visualstudio.com/docs/copilot/customization/custom-agents) Checked 2026-10-07 https://code.visualstudio.com/docs/copilot/customization/custom-agents Supports: install, compatibility, limitations, access
- [Official CodeTour files, playback and command features ↗](https://github.com/microsoft/codetour) Checked 2026-10-07 https://github.com/microsoft/codetour Supports: install, limitations, access
- [Official CodeTour schema including executable conditions and commands ↗](https://github.com/microsoft/codetour/blob/main/schema.json) Checked 2026-10-07 https://github.com/microsoft/codetour/blob/main/schema.json Supports: limitations, access, review

KEEP COMPARING

## Other approaches to consider.

Related by category or shared topics. These are alternatives to inspect, not a measured quality order.

 [### Demonstrate Understanding ↗ Checks a developer’s understanding of a codebase through focused questions and evidence-backed feedback.](/agents/github-demonstrate-understanding/)[### API Reference Builder ↗ Builds a versioned API or configuration reference from an inventory of the implementation’s public interfaces.](/agents/wshobson-reference-builder/)[### Specification Writer ↗ Develops implementation specifications with explicit requirements, interfaces, constraints and acceptance examples.](/agents/github-specification/)

 [AI Tools ↗](/tools/)[Skills ↗](/skills/)[Agents ↗](/agents/)[MCP Servers ↗](/mcp-servers/)[Workflows ↗](/workflows/)

## Continue your investigation

 - [Find reusable instructions](/skills/)
- [Inspect connections](/mcp-servers/)
- [Build a toolkit](/tools/)
- [Choose the model](/compare/)
