From cheese-flow
Smart code reading using tilth MCP. Replaces cat/head/tail with AST-aware file reading. Automatically outlines large files, memorizes hash anchors for efficient editing, and tracks what you've already read to save tokens. Use when: reading files, exploring code structure, understanding modules, checking dependencies, or preparing for edits. Do NOT use for searching symbols or text — use cheez-search. Do NOT use for editing — use cheez-write. Examples: "read src/auth.ts", "show lines 44-89 of handlers.go", "what's in this directory?", "show the dependencies of this file".
How this skill is triggered — by the user, by Claude, or both
Slash command
/cheese-flow:cheez-readThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Hard dependency**: If `mcp__tilth__tilth_read` is unavailable, stop immediately and report
Hard dependency: If
mcp__tilth__tilth_readis unavailable, stop immediately and report "tilth MCP server is not loaded — cannot proceed." Do NOT fall back tocat,Read,Glob, or any host tool.
Smart code reading via tilth MCP (tilth_read, tilth_files, tilth_deps).
tilth replaces cat/head/tail with AST-aware file reading that understands code structure.
tilth decides what to show based on file size and structure:
This means you never waste tokens on a giant lockfile or minified bundle.
tilth_read(path: "src/auth.ts")
Output for small files:
# src/auth.ts (258 lines, ~3.4k tokens) [full]
1 │ import express from 'express';
2 │ import jwt from 'jsonwebtoken';
...
Output for large files (automatic outline):
# src/auth.ts (1240 lines, ~16k tokens) [outline]
[1-12] imports: express(2), jsonwebtoken, @/config
[14-22] interface AuthConfig
[24-42] fn validateToken(token: string): Claims | null
[44-89] export fn handleAuth(req, res, next)
[91-258] export class AuthManager
[99-130] fn authenticate(credentials)
[132-180] fn authorize(user, resource)
Drilling into sections:
# Line range
tilth_read(path: "src/auth.ts", section: "44-89")
# Markdown heading
tilth_read(path: "docs/guide.md", section: "## Installation")
Multiple files in one call:
tilth_read(paths: ["src/auth.ts", "src/routes.ts", "src/middleware.ts"])
When reading files, tilth outputs hash-anchored lines:
42:a3f│ let x = compute();
43:f1b│ return x;
The format is <line>:<hash>│ <content>.
Why this matters:
tilth_edit (cheez-write) for precise editsMemorize anchors for functions you'll edit:
Replaces ls, find, pwd, and the Glob tool.
tilth_files(glob: "**/*.ts", scope: "src/")
Output:
src/auth.ts (~3.4k tokens)
src/routes.ts (~2.1k tokens)
src/middleware.ts (~1.8k tokens)
Token estimates help you decide what to read in full vs outline.
Common patterns:
# All TypeScript files
tilth_files(glob: "**/*.ts")
# Test files only
tilth_files(glob: "**/*.test.ts")
# Specific directory
tilth_files(glob: "*", scope: "src/handlers/")
# Exclude patterns
tilth_files(glob: "**/*.go", scope: ".", exclude: "*_test.go")
Shows what imports this file and what it imports.
tilth_deps(path: "src/auth.ts")
Output:
# Dependencies for src/auth.ts
── imports ──
express external
jsonwebtoken external
@/config src/config/index.ts
── imported by ──
src/routes/api.ts:5
src/routes/admin.ts:8
src/middleware/auth.ts:3
Use ONLY before:
tilth tracks what you've read in the current session:
[shown earlier] instead of full contentImplication: Read once, memorize anchors, reference later.
Start with outline (let tilth auto-decide):
tilth_read(path: "src/auth.ts")
Drill into relevant sections:
tilth_read(path: "src/auth.ts", section: "44-89")
Check dependencies if needed:
tilth_deps(path: "src/auth.ts")
Read the target section to get hash anchors:
tilth_read(path: "src/auth.ts", section: "44-89")
Memorize:
44:a3f89:b7cPass these to cheez-write (tilth_edit) for the edit.
List files with token estimates:
tilth_files(glob: "*", scope: "src/handlers/")
Read small files fully, outline large ones:
tilth_read(paths: ["small.ts", "large.ts"])
tilth uses ~6000 tokens as the outline threshold. Files under this show in full;
files over this get structural outlines. Use section to get hashlined content
for specific ranges when preparing edits on large files.
npx claudepluginhub paulnsorensen/cheese-flowProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.