Communitygithub.com

code-tour

Crea archivos `.tour` de CodeTour: recorridos guiados paso a paso con anclajes a archivos y líneas reales. Ideal para onboarding, revisiones de arquitectura, PRs, análisis de causas raíz y más.

¿Qué es code-tour?

La habilidad `code-tour` permite a un agente de IA generar archivos `.tour` en formato CodeTour, que son recorridos interactivos y reutilizables dentro de un repositorio de código. A diferencia de una explicación en chat o un documento plano, estos tours abren directamente archivos y líneas específicas en el editor, proporcionando una narrativa guiada para diferentes perfiles (nuevo ingeniero, revisor de PR, investigador de incidentes, etc.). La habilidad incluye un flujo de trabajo completo: descubrir la estructura del repositorio, inferir la persona del lector para determinar la profundidad adecuada (entre 5 y 18 pasos), verificar que cada anclaje (archivo y línea) exista realmente, y escribir el archivo JSON en la carpeta `.tours/`. También maneja el campo `ref` para evitar el error común de que los pasos no se abran si el archivo no existe en la rama especificada. Los pasos pueden ser de tipo contenido, directorio, archivo+línea, selección, patrón o URI, y cada descripción debe seguir el principio SMIG (Situación, Mecanismo, Implicación y Gotcha). El resultado es una herramienta de documentación viva que guía al lector a través del código de forma estructurada y clara, evitando anti-patrones como listas planas de archivos o descripciones genéricas.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/code-tour

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Code Tour

Crea archivos CodeTour .tour para recorridos guiados de la base de código que se abren directamente en archivos reales y rangos de líneas. Los tours residen en .tours/ y están pensados para el formato CodeTour, no para notas Markdown ad hoc.

Un buen tour es una narrativa para un lector específico:

  • qué está viendo
  • por qué es importante
  • qué camino debe seguir a continuación

Solo crea archivos .tour JSON. No modifiques código fuente como parte de esta habilidad.

Cuándo Usar

Usa esta habilidad cuando:

  • el usuario pida un tour de código, tour de onboarding, recorrido de arquitectura o tour de PR
  • el usuario diga "explica cómo funciona X" y quiera un artefacto guiado reutilizable
  • el usuario quiera una ruta de aprendizaje para un nuevo ingeniero o revisor
  • la tarea sea mejor servida por una secuencia guiada que por un resumen plano

Ejemplos:

  • onboarding de un nuevo mantenedor
  • tour de arquitectura de un servicio o paquete
  • recorrido de revisión de PR anclado a los archivos modificados
  • tour de RCA mostrando la ruta de fallo
  • tour de revisión de seguridad de límites de confianza y controles clave

Cuándo NO Usar

En lugar de code-tourUsa
Una explicación puntual en el chat es suficienteResponde directamente
El usuario quiere documentación en prosa, no un artefacto .tourdocumentation-lookup o edición de documentación en el repo
La tarea es implementación o refactorizaciónHaz el trabajo de implementación
La tarea es un onboarding amplio sin un artefacto de tourcodebase-onboarding

Flujo de Trabajo

1. Descubrir

Explora el repositorio antes de escribir nada:

  • README y puntos de entrada de paquetes/aplicaciones
  • estructura de carpetas
  • archivos de configuración relevantes
  • los archivos modificados si el tour está enfocado en un PR

No empieces a escribir pasos antes de entender la forma del código.

2. Inferir al lector

Decide la persona y la profundidad a partir de la solicitud.

Forma de la solicitudPersonaProfundidad sugerida
"onboarding", "nuevo integrante"new-joiner9-13 pasos
"tour rápido", "vistazo general"vibecoder5-8 pasos
"arquitectura"architect14-18 pasos
"tour de este PR"pr-reviewer7-11 pasos
"por qué falló esto"rca-investigator7-11 pasos
"revisión de seguridad"security-reviewer7-11 pasos
"explica cómo funciona esta funcionalidad"feature-explainer7-11 pasos
"depura esta ruta"bug-fixer7-11 pasos

3. Leer y verificar anclajes

Cada ruta de archivo y anclaje de línea debe ser real:

  • confirma que el archivo existe
  • confirma que los números de línea están dentro del rango
  • si usas una selección, verifica el bloque exacto
  • si el archivo es volátil, prefiere un anclaje basado en patrón

Nunca adivines números de línea.

4. Escribir el .tour

Escribe en:

.tours/<persona>-<enfoque>.tour

Mantén la ruta determinista y legible.

5. Validar

Antes de finalizar:

  • cada ruta referenciada existe
  • cada línea o selección es válida
  • el primer paso está anclado a un archivo o directorio real
  • el ref apunta a una rama o commit que realmente contenga todos los archivos que el tour referencia (ver más abajo)
  • el tour cuenta una historia coherente en lugar de listar archivos

El Campo ref

ref vincula el tour a una rama o commit de git. Es más importante de lo que parece: cuando ref no es la rama que el lector tiene checkout, CodeTour abre el archivo de cada paso desde esa revisión en git, no desde los archivos en disco. Si un archivo no está en esa revisión, el paso no se abrirá — el lector verá "The editor could not be opened because the file was not found" aunque el archivo esté justo ahí. El tour y sus comentarios siguen mostrándose, por lo que la causa real es fácil de pasar por alto.

Elige ref según el tipo de tour:

Tipo de tourAsigna ref a
Tour de PRla rama del PR — nunca la rama base
Onboarding / arquitecturala rama en la que estará el lector (a menudo main), o déjalo vacío
No estás segurodeja ref vacío, para que CodeTour lea los archivos directamente del disco

El caso del PR es la trampa común: un PR normalmente añade archivos nuevos, y los archivos nuevos aún no existen en la rama base. Apunta ref a la base (p. ej. develop) y cada paso sobre un archivo nuevo fallará al abrirse.

Antes de finalizar, confirma que el archivo de cada paso realmente existe en el ref que elegiste.

Tipos de Paso

Contenido

Úsalo con moderación, normalmente solo para un paso de cierre:

{ "title": "Próximos Pasos", "description": "Ahora puedes seguir la ruta de la solicitud de extremo a extremo." }

No hagas que el primer paso sea solo de contenido.

Directorio

Úsalo para orientar al lector hacia un módulo:

{ "directory": "src/services", "title": "Capa de Servicios", "description": "La lógica de orquestación principal vive aquí." }

Archivo + línea

Este es el tipo de paso por defecto:

{ "file": "src/auth/middleware.ts", "line": 42, "title": "Puerta de Autenticación", "description": "Cada solicitud protegida pasa aquí primero." }

Selección

Úsalo cuando un bloque de código importe más que el archivo completo:

{
  "file": "src/core/pipeline.ts",
  "selection": {
    "start": { "line": 15, "character": 0 },
    "end": { "line": 34, "character": 0 }
  },
  "title": "Pipeline de Solicitud",
  "description": "Este bloque conecta validación, autenticación y ejecución downstream."
}

Patrón

Úsalo cuando las líneas exactas puedan variar:

{ "file": "src/app.ts", "pattern": "export default class App", "title": "Punto de Entrada de la Aplicación" }

URI

Úsalo para PRs, issues o documentación cuando sea útil:

{ "uri": "https://github.com/org/repo/pull/456", "title": "El PR" }

Regla de Escritura: SMIG

Cada descripción debe responder:

  • Situación: qué está viendo el lector
  • Mecanismo: cómo funciona
  • Implicación: por qué es importante para esta persona
  • Gotcha: qué podría pasar por alto un lector inteligente

Mantén las descripciones compactas, específicas y basadas en el código real.

Forma Narrativa

Usa este arco a menos que la tarea requiera claramente algo diferente:

  1. orientación
  2. mapa del módulo
  3. ruta de ejecución principal
  4. caso límite o gotcha
  5. cierre / siguiente movimiento

El tour debe sentirse como un camino, no como un inventario.

Ejemplo

{
  "$schema": "https://aka.ms/codetour-schema",
  "title": "Tour del Servicio API",
  "description": "Recorrido de la ruta de solicitud para el servicio de pagos.",
  "ref": "main",
  "steps": [
    {
      "directory": "src",
      "title": "Raíz del Código Fuente",
      "description": "Todo el código en tiempo de ejecución del servicio comienza aquí."
    },
    {
      "file": "src/server.ts",
      "line": 12,
      "title": "Punto de Entrada",
      "description": "El servidor arranca aquí y conecta middleware antes de que se alcance cualquier ruta."
    },
    {
      "file": "src/routes/payments.ts",
      "line": 8,
      "title": "Rutas de Pagos",
      "description": "Cada solicitud de pagos entra a través de este enrutador antes de llegar a la lógica del servicio."
    },
    {
      "title": "Próximos Pasos",
      "description": "Ahora puedes seguir cualquier solicitud de pago de extremo a extremo con los anclajes principales en su lugar."
    }
  ]
}

Anti-Patrones

Anti-patrónSolución
Listado plano de archivosCuenta una historia con dependencia entre pasos
Descripciones genéricasNombra la ruta de código o el patrón concreto
Anclajes adivinadosVerifica cada archivo y línea primero
Demasiados pasos para un tour rápidoRecorta agresivamente
El primer paso es solo contenidoAncla el primer paso a un archivo o directorio real
Desajuste de personaEscribe para el lector real, no para un ingeniero genérico

Mejores Prácticas

  • mantén el número de pasos proporcional al tamaño del repositorio y la profundidad de la persona
  • usa pasos de directorio para orientación y pasos de archivo para sustancia
  • para tours de PR, cubre primero los archivos modificados
  • para monorepos, limita el alcance a los paquetes relevantes en lugar de recorrer todo
  • termina con lo que el lector ahora puede hacer, no con un resumen

Habilidades Relacionadas

  • codebase-onboarding
  • coding-standards
  • council
  • formato oficial upstream: microsoft/codetour

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills relacionados