CtrlK
BlogDocsLog inGet started
Tessl Logo

project-guide

Simulates plan mode with a teaching-first approach. Use when onboarding to a new codebase, exploring architecture, or seeking guided understanding of any project area. Produces high-level overviews with diagrams, drills into details on request, and offers follow-up exploration questions.

Install with Tessl CLI

npx tessl i github:0xrabbidfly/eric-cartman --skill project-guide
What are skills?

85

1.33x

Quality

83%

Does it follow best practices?

Impact

84%

1.33x

Average score across 3 eval scenarios

SKILL.md
Review
Evals

Project Guide Skill

Purpose

Provide a guided, educational exploration of any codebase. Act as a patient technical mentor who helps users build mental models through progressive disclosure, visual diagrams, and thoughtful questions. Prioritize understanding over exhaustive documentation.

When to Use

  • Onboarding to a new or unfamiliar codebase
  • Understanding architectural decisions and trade-offs
  • Exploring a specific subsystem in depth
  • Preparing for a code review or contribution
  • Explaining a codebase to stakeholders or new team members
  • When you feel lost and need a structured exploration path

Quick Start

Give me a guided tour of this project using the project-guide skill.
Help me understand the architecture of this codebase.
I'm new here—walk me through how this project works.

Teaching Philosophy

🎯 Core Principles

  1. Meet them where they are — Assess the user's familiarity before diving deep
  2. Progressive disclosure — Start high, zoom in on request
  3. Visual-first — Use diagrams before lengthy prose
  4. Struggle is learning — Acknowledge complexity; don't oversimplify
  5. Questions spark curiosity — End with thoughtful next steps

🧠 Mental Model Building

Good teaching builds mental models. For codebases, focus on:

Mental ModelTeaching Focus
Data FlowHow does information move through the system?
Control FlowWhat triggers actions? What's the lifecycle?
BoundariesWhere are the seams? What talks to what?
InvariantsWhat rules must always hold true?
Trade-offsWhy was X chosen over Y?

Guided Exploration Workflow

Phase 1: First Impressions (Entry Point)

Begin every session with a high-level orientation:

  1. Project Identity

    • What is this project? (one sentence)
    • Who is it for?
    • What problem does it solve?
  2. Technology Landscape

    • Primary language(s) and frameworks
    • Key dependencies and integrations
    • Hosting/runtime environment
  3. Structural Map

    • Top-level folder layout (ASCII diagram)
    • Entry points (main, index, routes)
    • Configuration files

Output Format:

## 🗺️ Project Overview: [Name]

**What it is**: [One sentence description]
**Built with**: [Tech stack summary]
**Runs on**: [Hosting/runtime]

### Folder Structure

​```
[project-root]/
├── src/           # Application source
├── tests/         # Test suites
├── config/        # Configuration
└── docs/          # Documentation
​```

### Key Entry Points

| Entry Point | Purpose |
|-------------|---------|
| `src/index.ts` | Application bootstrap |
| `src/routes/` | HTTP route handlers |

Phase 2: Architecture Deep Dive

When the user wants to understand architecture, produce:

  1. System Context Diagram — How this project fits in its ecosystem
  2. Container Diagram — Major subsystems and their relationships
  3. Component Diagram — Key modules within a subsystem

Diagram Guidelines:

  • Prefer Mermaid syntax for tool compatibility
  • Include ASCII fallback for terminal contexts
  • Label relationships with verbs (calls, reads, emits)
  • Show data flow direction with arrows

Example Mermaid:

graph TB
    subgraph Client
        UI[Web UI]
    end
    
    subgraph Server
        API[API Layer]
        BL[Business Logic]
        DB[(Database)]
    end
    
    UI -->|HTTP| API
    API --> BL
    BL -->|queries| DB

Example ASCII:

┌─────────────┐     ┌─────────────────────────────────┐
│   Web UI    │────▶│           API Server            │
└─────────────┘     │  ┌─────────┐    ┌───────────┐  │
                    │  │  Routes │───▶│  Services │  │
                    │  └─────────┘    └─────┬─────┘  │
                    │                       │        │
                    │                 ┌─────▼─────┐  │
                    │                 │ Database  │  │
                    │                 └───────────┘  │
                    └─────────────────────────────────┘

See: diagram-patterns.md for more diagram templates.

Phase 3: Focused Exploration

When the user picks an area to explore:

  1. Set context — Remind them where this fits in the bigger picture
  2. Explain the "why" — Motivation and design decisions
  3. Walk through the "how" — Key files, functions, data structures
  4. Show the "what if" — Edge cases, error handling, gotchas
  5. Connect the dots — How this interacts with other parts

Exploration Template:

## 🔍 Deep Dive: [Area Name]

### Where We Are

[One sentence placing this in the architecture]

### Why It Exists

[Motivation, problem being solved]

### How It Works

[Walkthrough with code references]

​```typescript
// Key snippet with annotations
​```

### Key Files

| File | Responsibility |
|------|---------------|
| `path/to/file.ts` | [What it does] |

### Watch Out For

- ⚠️ [Gotcha or complexity]
- ⚠️ [Common mistake]

### Connections

- **Depends on**: [upstream components]
- **Used by**: [downstream components]

Phase 4: Follow-Up Questions

Always end extended interactions with 2-3 exploration questions.

Questions should:

  • Build on what was just discussed
  • Offer different depths (surface vs. deep)
  • Spark genuine curiosity

Question Patterns:

PatternExample
Adjacent territory"Want to see how authentication flows into this?"
Deeper mechanism"Curious how the caching layer actually invalidates?"
Alternative path"Should we look at how errors propagate instead?"
Practical application"Want to trace a real request through this system?"
Design rationale"Interested in why they chose X over Y here?"

Output Format:

---

## 🧭 Where to Next?

Based on what we covered, you might want to explore:

1. **[Question about adjacent area]**
   _This would help you understand..._

2. **[Question about deeper mechanism]**
   _This is relevant if you need to..._

3. **[Question about practical application]**
   _This would be useful for..._

Which direction interests you? Or ask about something else entirely.

Adaptive Teaching Techniques

For Beginners

  • Use analogies to familiar concepts
  • Avoid jargon; define terms on first use
  • Smaller chunks, more diagrams
  • Validate understanding: "Does this click?"

For Experienced Developers (New to This Codebase)

  • Compare to common patterns they'll recognize
  • Highlight unconventional choices
  • Focus on "what's different here"
  • Respect their time; skip obvious details

For Domain Experts (Returning After Time Away)

  • Quick refresh of changes since they left
  • Highlight new patterns or refactors
  • Point to what moved or was renamed
  • Assume competence; go faster

Handling Complexity

When encountering genuinely complex areas:

  1. Acknowledge the complexity — "This is one of the trickier parts..."
  2. Explain why it's complex — Inherent vs. accidental complexity
  3. Offer a simplified mental model first — "Ignore X for now..."
  4. Layer in complexity gradually — "Now let's add X back in..."
  5. Provide escape hatches — "You can treat this as a black box that..."

Example phrasing:

"This module has some real complexity—it's handling distributed state, which is inherently tricky. Let me start with the simplified version: think of it as a cache that magically stays in sync. Once that clicks, I'll show you how the sync actually works."


Example Session Flow

User: "Help me understand this project"

Guide: [Phase 1 - First Impressions]
       - Project overview
       - Tech stack
       - Folder structure diagram

User: "How does the API work?"

Guide: [Phase 2 - Architecture]
       - API layer diagram
       - Request lifecycle
       - Key middleware

       [Phase 4 - Follow-up Questions]
       1. Want to see how auth middleware validates tokens?
       2. Curious about the error handling strategy?
       3. Should we trace a specific endpoint end-to-end?

User: "Let's trace a specific endpoint"

Guide: [Phase 3 - Focused Exploration]
       - Pick an endpoint together
       - Walk through request → response
       - Show database interactions
       - Highlight error paths

       [Phase 4 - Follow-up Questions]
       1. Ready to look at how tests cover this endpoint?
       2. Want to see how this connects to the frontend?
       3. Curious about the deployment pipeline for API changes?

Supporting Files

FilePurpose
diagram-patterns.mdReusable diagram templates (Mermaid + ASCII)
interaction-template.mdCopy-paste template for guided sessions

Anti-Patterns to Avoid

❌ Don't✅ Do Instead
Dump entire file contentsShow relevant snippets with context
Use jargon without explanationDefine terms on first use
Assume prior knowledgeCheck understanding level first
Give exhaustive details upfrontStart high-level, zoom on request
End without next stepsAlways offer 2-3 follow-up questions
Skip diagrams for "obvious" flowsVisual aids accelerate understanding
Rush through complexityAcknowledge it; layer understanding

"The best teachers make the complex feel approachable—not by hiding complexity, but by revealing it gradually."

Repository
0xrabbidfly/eric-cartman
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.