easy-cheese

agent
Security Audit
Warn
Health Warn
  • License รขโ‚ฌโ€ License: MIT
  • Description รขโ‚ฌโ€ Repository has a description
  • Active repo รขโ‚ฌโ€ Last push 0 days ago
  • Low visibility รขโ‚ฌโ€ Only 5 GitHub stars
Code Pass
  • Code scan รขโ‚ฌโ€ Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions รขโ‚ฌโ€ No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Cheese your code ๐Ÿง€ โ€” high-quality results as easy as cheese. A portable, harness-agnostic Agent Skills toolkit.

README.md

๐Ÿง€ easy-cheese ๐Ÿง€

CI
License: MIT
Latest release
Conventional Commits
Agent Skills
PRs welcome
Buy Me a Coffee

Don't know what to do? Just /cheese it.

"The cheese must flow."

A portable, harness-agnostic Agent Skills toolkit โ€” self-contained SKILL.md files any Agent Skills-compatible harness can load. No agents, no compiled bundles, no repo-wide MCP requirement. The vocabulary (mold, culture, cook, press, age, cure) reads as a workflow you can dip into anywhere.

Contents

Why cheese? Two reasons

  1. From gaming slang: a "cheese" win is cheap, easy, and disproportionately effective โ€” exactly the design center (correctness, token efficiency, quality).
  2. What's life without whimsy? ๐Ÿง€

Skill layout

This repo follows the Agent Skills spec:

skills/
โ””โ”€โ”€ <skill-name>/
    โ”œโ”€โ”€ SKILL.md          # required: name + description + body
    โ”œโ”€โ”€ references/       # optional: detail pulled in on demand
    โ”œโ”€โ”€ scripts/          # optional: executable helpers
    โ””โ”€โ”€ assets/           # optional: templates / static resources

Each SKILL.md is self-contained markdown with YAML frontmatter. There are no nested sub-skills; deeper material lives in references/<topic>.md so the harness can load it progressively.

Skills

Workflow skills

Skill path Command Purpose
skills/cheese/SKILL.md /cheese Unified entry point. Classifies any input (idea, spec path, PR, stack trace, file path), announces the routing decision, and gates dispatch behind AskUserQuestion. Never auto-invokes.
skills/briesearch/SKILL.md /briesearch Research technical questions across docs, web, codebase, and GitHub examples with confidence-capped synthesis.
skills/mold/SKILL.md /mold Shape fuzzy ideas into grounded specs through dialogue, validate cycles, and a two-key handshake.
skills/culture/SKILL.md /culture No-write rubber-ducking and architecture exploration. Hard invariant: writes only the opt-in .cheese/notes/<slug>.md handoff at session end, and only when the user asks for notes.
skills/cook/SKILL.md /cook Implement clear specs via cut โ†’ cook โ†’ taste-test with scoped edits and tests.
skills/press/SKILL.md /press Harden cooked changes with coverage, assertion, and boundary checks.
skills/age/SKILL.md /age Review diffs across nine staff-engineer dimensions and produce a severity-grouped findings report.
skills/cure/SKILL.md /cure Fix user-selected findings, validate, and prepare the branch for shipping.
skills/hard-cheese/SKILL.md /hard-cheese (or --hard flag) Metacognitive vibecheck gate before review โ€” asks the author to explain the diff's causal logic, grades the explanation against the SOLO Taxonomy. Standalone or via --hard propagation through the pipeline.
skills/ultracook/SKILL.md /ultracook Autonomous fresh-context pipeline (cook โ†’ press โ†’ age โ†’ cure โ†’ age โ†’ cure โ†’ age, all --auto). Each phase runs inside its own full-peer sub-agent so review stays adversarial and parent context never bloats. For high-blast-radius specs.
skills/cheese-factory/SKILL.md /cheese-factory Large-feature orchestrator. Decomposes an approved spec into seed + parallel curds + wiring, fans out per-curd /cook โ†’ /press โ†’ /age โ†’ /cure, merges, runs a fresh-context post-merge review pass, and ends in 1โ€“N reviewable PRs (single, orthogonal flat, stacked linear, or diamond-stacked). Portable, harness-agnostic sibling of /fromagerie.
skills/melt/SKILL.md /melt Resolve merge / rebase / cherry-pick conflicts via the structural cascade (mergiraf โ†’ rerere โ†’ kdiff3) with batch, pick-side, and lockfile helpers.

Tool skills

The workflow skills can delegate code search, reading, and editing to these MCP-backed skills when tilth is available:

Skill path Command Purpose
skills/cheez-search/SKILL.md /cheez-search AST-aware code/text/regex/caller search via tilth MCP. Replaces grep / rg / find.
skills/cheez-read/SKILL.md /cheez-read Smart file/directory reading with hash anchors via tilth MCP. Replaces cat / head / tail / ls.
skills/cheez-write/SKILL.md /cheez-write Hash-anchored, surgical edits via tilth MCP. Never rewrites whole files.

The cheez-* skills require tilth MCP and hard-fail when it is unavailable rather than fall back to host tools. Workflow skills remain portable by falling back directly to host-native tools when they are not using cheez-*.

cheez-* router protocol

The three cheez-* skills are designed to chain. The standard sequence:

  1. /cheez-search โ€” locate the symbol, caller, content match, or file. AST-aware; replaces grep/rg/find.
  2. /cheez-read โ€” read the target file or section to capture hash anchors. Smart-outlines large files; replaces cat/head/tail/ls.
  3. /cheez-write โ€” apply hash-anchored edits with the anchors from step 2. Surgical; rejects on hash mismatch.

Workflow skills (/cook, /age, /cure) call into this chain when they need code intelligence. A skill should never search-then-edit without reading in between โ€” the read is what produces the anchors that make the edit safe.

Tool redirection map

If you'd reach for one of these on a code task, route through cheez-* instead:

If you'd run... Use this skill Why
grep, rg, ripgrep, ag, ack /cheez-search AST-aware; ranks definitions over usages, filters comments/strings.
find, fd (by name pattern, code work) /cheez-read (tilth_files) Token estimates and .gitignore filtering for free.
ast-grep / sg (for name-shaped queries) /cheez-search sg is reserved for structural metavariable patterns tilth can't express.
LSP "find references" / "find definition" (manual) /cheez-search Same answer, no IDE round-trip; falls through to LSP under the hood when needed.
cat, head, tail, less, more, bat /cheez-read Hash anchors + outline-vs-full token budgeting.
ls, tree, eza (code dirs) /cheez-read (tilth_files) Token estimates; respects .gitignore.
Read, Glob (host tools, code paths) /cheez-read Bypasses session deduplication and emits no anchors.
sed, awk, perl -i /cheez-write No hash-mismatch safety; silent races on concurrent writes.
patch (apply diff to code) /cheez-write Anchored range edits are the safe equivalent.
tee, >, >> (overwrite/append code files) /cheez-write Same โ€” no anchors, no mismatch detection.
Edit, Write (host tools, code) /cheez-write tilth_edit is the only edit path with hash-anchor safety.
sg --rewrite (codemod across N files) /cheez-write Sanctioned escape from cheez-write for structural codemods; tilth_edit stays the default for single-block edits.

Outside code work (e.g. find -mtime, ls /tmp, log inspection with tail -f, JSON munging with jq) the host tools are still the right call. The redirection rule is: anything that touches source code goes through cheez-*.

Installing tilth MCP

See Installing MCP servers below โ€” expand the tilth section for full instructions.

If those tools don't show up after install, the cheez-* skills will hard-fail with "tilth MCP server is not loaded" instead of silently falling back to host tools.

Suggested flow

/cheese  โ”€โ”€โ–บ  classify intent
   โ”œโ”€ need info / external evidence  โ”€โ”€โ–บ  /briesearch
   โ”œโ”€ rubber-duck only               โ”€โ”€โ–บ  /culture
   โ”œโ”€ fuzzy / multi-module idea       โ”€โ”€โ–บ  /mold        โ”€โ”€โ–บ  /cook       โ”€โ”€โ–บ  /press  โ”€โ”€โ–บ  /age  โ”€โ”€โ–บ  /cure
   โ”œโ”€ high-blast-radius spec          โ”€โ”€โ–บ  /mold        โ”€โ”€โ–บ  /ultracook   (fresh-context: cook โ†’ press โ†’ age โ†’ cure โ†’ age โ†’ cure โ†’ age)
   โ”œโ”€ clear, scoped ask               โ”€โ”€โ–บ  /cook        โ”€โ”€โ–บ  /press       โ”€โ”€โ–บ  /age   โ”€โ”€โ–บ  /cure
   โ”œโ”€ debugging task                  โ”€โ”€โ–บ  /culture     โ”€โ”€โ–บ  /cook        โ”€โ”€โ–บ  /press โ”€โ”€โ–บ  /age  โ”€โ”€โ–บ  /cure
   โ”œโ”€ resume in fresh context         โ”€โ”€โ–บ  /cheese --continue <slug>
   โ””โ”€ review only                     โ”€โ”€โ–บ  /age         โ”€โ”€โ–บ  /cure

/cheese is the front door. It inspects whatever you drop in (idea, spec path, PR ref, stack trace, file path), announces its routing decision, and waits for explicit confirmation before any downstream skill runs. Use it directly, or skip it when you already know the destination โ€” a clear bug can go straight to /cook, a no-write design discussion stays in /culture. /melt cuts in whenever a merge step blocks /cook or /cure. Append --hard to any pipeline step to insert /hard-cheese as a metacognitive vibecheck gate before review.

Scope

Easy-cheese is intentionally a small surface. What that means in practice:

  • Skills only. No agents, commands, eta templates, or compiled harness bundles. Each capability is a single SKILL.md.
  • No repo-wide MCP requirement. Workflow skills suggest tools (tilth, Context7, Tavily, code-review-graph) but have host-native fallbacks. The cheez-* tool skills are the exception: they require tilth MCP by design.
  • One orchestrator skill, narrowly scoped. /ultracook is the only orchestrator โ€” it spawns full-peer sub-agents for the fixed cook โ†’ press โ†’ age โ†’ cure โ†’ age โ†’ cure โ†’ age chain on high-blast-radius specs. There is no large-feature decomposition, no PR-rescue convoy, no whole-repo NIH audit. Every other skill remains a single, scoped step a human can drive.
  • No automatic re-age loop in /cure. The skill describes the protocol; the human runs the next /age when ready.

Optional tools

Workflow skills name preferred tools when they help, with fallbacks for portability. Tool skills can be stricter when their purpose is to enforce a specific tool protocol.

Tool Helps with Fallback
tilth (MCP) AST-aware read/search/edit and dependency context Required for cheez-*; workflow skills can bypass cheez-* and use host read/edit, ripgrep, patches
sg (ast-grep) Structural pattern matching and codemods (sg --rewrite) with metavariables ripgrep, find, targeted reads; tilth_edit for non-structural edits
Context7 (MCP) Library and API documentation repo docs, package docs, vendor pages, web search
Tavily (MCP) Current web/vendor research host web search or user-supplied sources
code-review-graph (MCP) Review impact radius, architecture framing, and embeddings-backed semantic / cross-repo search import searches, caller searches, tests
LSP / Serena Semantic navigation and symbol understanding sg, ripgrep, targeted reads
ripgrep Fast text search grep, find, editor search
gh GitHub issues, PRs, checks, examples local git commands or user-provided links/logs
delta Readable diffs plain git diff
mergiraf Structured merge conflict resolution manual conflict resolution plus tests
jq JSON inspection for reports or tool output manual inspection
fd Fast file discovery find
just Project task discovery package scripts or documented commands

When a preferred tool is unavailable, workflow skills say so once, fall back, and lower confidence only if evidence quality suffers. The cheez-* skills stop instead because tilth is their compatibility requirement.

Install

gh skill (recommended)

Requires GitHub CLI v2.90.0 or later with the gh skill command.

Install all skills interactively โ€” browse what's available and pick what you want:

gh skill install paulnsorensen/easy-cheese

Install every skill in one shot:

for s in age briesearch cheese cheese-factory cheez-read cheez-search cheez-write cook culture cure hard-cheese melt mold press ultracook; do
  gh skill install paulnsorensen/easy-cheese "$s"
done

Install one specific skill by name:

gh skill install paulnsorensen/easy-cheese cook

Pin to a specific release tag or commit SHA for reproducibility:

gh skill install paulnsorensen/easy-cheese [email protected]
gh skill install paulnsorensen/easy-cheese cook@abc123def

Control which agent and scope to install into:

# User-wide (recommended for personal toolkits)
gh skill install paulnsorensen/easy-cheese --agent claude-code --scope user

# Committed into the current project repo (default scope)
gh skill install paulnsorensen/easy-cheese --agent claude-code --scope project

Supported --agent values include github-copilot, claude-code, cursor, codex, gemini-cli, and others. Omit --agent to use the harness auto-detected from your environment.

Preview a skill's content before committing to an install:

gh skill preview paulnsorensen/easy-cheese cook

Keep installed skills up to date:

gh skill update --all

Claude Code (manual)

Copy the skills you want into your skills directory:

# Per-user
mkdir -p ~/.claude/skills
cp -r skills/age ~/.claude/skills/

# Per-project
mkdir -p .claude/skills
cp -r skills/cook .claude/skills/

Other harnesses

Copy skills/<name>/ into wherever the harness loads Agent Skills from. The format follows the agentskills.io spec and works in any compliant client.

Validate

The reference validator from agentskills/agentskills checks frontmatter and naming:

skills-ref validate ./skills/age

Each SKILL.md must have YAML frontmatter with at least name and description, and name must match the parent directory name.

Installing MCP servers

The cheez-* tool skills and several workflow skills benefit from MCP servers. Install the ones you need.

tilth (required for cheez-* skills) โ€” AST-aware code search, smart reading, hash-anchored edits

tilth provides AST-aware code search, smart file reading, and hash-anchored edits. Required by /cheez-search, /cheez-read, and /cheez-write.

# Install tilth CLI โ€” pick one (no Homebrew formula upstream)
cargo install tilth        # via Cargo (Rust) โ€” preferred, native binary
npm install -g tilth       # via npm (Node 18+) โ€” no Rust toolchain needed
# or run via npx โ€” no global install needed (Node.js v18+):
#   npx -y tilth install claude-code --edit

# Register as an MCP server โ€” include --edit only if you plan to use cheez-write
tilth install claude-code --edit   # Claude Code
tilth install cursor --edit        # Cursor
tilth install vscode --edit        # VS Code
tilth install codex --edit         # Codex CLI
tilth install gemini --edit        # Gemini CLI
tilth install zed --edit           # Zed

After registering, restart your harness and confirm these tools appear:

  • mcp__tilth__tilth_search
  • mcp__tilth__tilth_read
  • mcp__tilth__tilth_files
  • mcp__tilth__tilth_deps
  • mcp__tilth__tilth_edit (only with --edit)
Context7 โ€” library documentation for /briesearch and /cook

Context7 fetches up-to-date, version-specific library docs into your session. Used by /briesearch and /cook when available.

Claude Code:

claude mcp add context7 -- npx -y @upstash/context7-mcp@latest

Other harnesses โ€” add to your MCP config file:

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    }
  }
}

For higher rate limits, get a free API key at context7.com and append --api-key YOUR_API_KEY to the args array. A keyless hosted option is also available:

{
  "mcpServers": {
    "context7": {
      "url": "https://mcp.context7.com/mcp"
    }
  }
}

Requires Node.js v18+.

Tavily โ€” web search for /briesearch

Tavily provides real-time web search and content extraction. Used by /briesearch when available.

Get a free API key at tavily.com, then:

Claude Code:

claude mcp add tavily -- npx -y tavily-mcp

Set your key in the environment or pass it inline:

TAVILY_API_KEY=your-key npx -y tavily-mcp

Other harnesses โ€” add to your MCP config file:

{
  "mcpServers": {
    "tavily": {
      "command": "npx",
      "args": ["-y", "tavily-mcp"],
      "env": {
        "TAVILY_API_KEY": "your-key"
      }
    }
  }
}

Requires Node.js v18+.

code-review-graph โ€” impact radius, architecture framing, semantic search for /age, /press, /cure

code-review-graph builds a persistent call graph of your codebase with Tree-sitter, Louvain communities, betweenness-centrality, and optional vector embeddings. Used by /age, /press, and /cure for risk-scored impact (get_impact_radius_tool, detect_changes_tool), curated review context (get_review_context_tool, get_minimal_context_tool), affected flows (get_affected_flows_tool), architecture framing (get_architecture_overview_tool, get_hub_nodes_tool, get_bridge_nodes_tool), and cross-repo / semantic search (cross_repo_search_tool, semantic_search_nodes_tool). Tilth handles AST search, callers, and hash-anchored edits; code-review-graph covers the graph-algorithmic and cross-repo dimensions tilth does not.

# Install with the local sentence-transformers embeddings extra (Python 3.10+ required)
pip install 'code-review-graph[embeddings]'   # or: pipx install 'code-review-graph[embeddings]'

# Auto-detect and configure your harness
code-review-graph install

# Target a specific harness
code-review-graph install --platform claude-code
code-review-graph install --platform cursor
code-review-graph install --platform codex

# Build the graph for the current project (re-run after large changes)
code-review-graph build

# Compute embeddings for semantic_search_nodes_tool (one-time, then incremental)
code-review-graph embed

The [embeddings] extra pulls in sentence-transformers so semantic_search_nodes_tool works out of the box with the default all-MiniLM-L6-v2 model. Override with CRG_EMBEDDING_MODEL=<model-id>. Other embedding providers (Google Gemini, MiniMax, OpenAI-compatible endpoints) are also supported โ€” see the upstream README for [google-embeddings] and the CRG_OPENAI_* env vars.

Installing CLI tools

The optional tools in the table below are referenced by workflow skills. None are required, but having them available unlocks better fallbacks and richer output.

One-shot installer (macOS)

scripts/install.sh does the whole setup in one shot:

  1. Installs every CLI tool listed below โ€” Homebrew for the eight brew-core formulas, plus cargo install tilth (or npm install -g tilth if Rust isn't available) for tilth, which has no Homebrew formula upstream.
  2. Auto-detects installed Claude Code, Cursor, and Codex CLIs, then installs every easy-cheese skill into each detected harness at user scope.
  3. Registers the tilth and context7 MCP servers with those harnesses where supported.

Currently macOS only โ€” it relies on Homebrew. Requires gh to be authenticated (gh auth login) before running.

Pipe straight from GitHub:

curl -fsSL https://raw.githubusercontent.com/paulnsorensen/easy-cheese/main/scripts/install.sh | bash

Or grab the script first if you'd like to read it:

curl -fsSL -o /tmp/easy-cheese-install.sh https://raw.githubusercontent.com/paulnsorensen/easy-cheese/main/scripts/install.sh
bash /tmp/easy-cheese-install.sh --help
bash /tmp/easy-cheese-install.sh --dry-run

Common flags:

# Install only ripgrep + jq, skip MCP registration
curl -fsSL https://raw.githubusercontent.com/paulnsorensen/easy-cheese/main/scripts/install.sh \
  | bash -s -- --tools ripgrep,jq --skip-mcp

# Register MCP servers only (assumes CLI tools and skills are already installed)
curl -fsSL https://raw.githubusercontent.com/paulnsorensen/easy-cheese/main/scripts/install.sh \
  | bash -s -- --skip-tools --mcp tilth,context7,tavily

# Pick a specific harness for skill + MCP registration
curl -fsSL https://raw.githubusercontent.com/paulnsorensen/easy-cheese/main/scripts/install.sh \
  | bash -s -- --harness cursor

# Or target a comma-separated harness list explicitly
curl -fsSL https://raw.githubusercontent.com/paulnsorensen/easy-cheese/main/scripts/install.sh \
  | bash -s -- --harness claude-code,cursor,codex

The script is idempotent โ€” it skips any tool already on PATH โ€” and accepts --dry-run so you can preview what it would do before letting it run. If no supported harness CLI is detected, it falls back to the historical claude-code target; pass --harness to override detection.

Heads-up: curl | bash runs whatever the URL serves at the moment of the request. If you want to audit before running, use the two-step form above.

If you'd rather install tools individually, the per-tool sections below cover macOS, Windows, and Linux.

GitHub CLI (gh)

brew install gh           # macOS/Linux via Homebrew
winget install GitHub.cli # Windows
# or see https://cli.github.com for other methods
gh auth login

Minimum version for gh skill: v2.90.0.

gh --version

gh skill ships as a built-in subcommand in GitHub CLI v2.90.0+. If your installation predates that release, upgrade gh rather than installing an extension. Check cli.github.com/manual/gh_skill for the current status.

ast-grep (sg)

Used by /cook, /age, and /cure for structural codemods when tilth is unavailable.

brew install ast-grep          # macOS/Linux
npm install -g @ast-grep/cli   # Node.js
cargo install ast-grep         # Rust/Cargo
scoop install ast-grep         # Windows (Scoop)

ripgrep (rg)

Fast text search used as a fallback when tilth is unavailable.

brew install ripgrep           # macOS/Linux
winget install BurntSushi.ripgrep.MSVC  # Windows
cargo install ripgrep          # Rust/Cargo

delta

Human-readable diffs used by /age and /cure.

brew install git-delta         # macOS/Linux
cargo install git-delta        # Rust/Cargo
winget install dandavison.delta # Windows

Add to ~/.gitconfig to enable globally:

[core]
    pager = delta
[interactive]
    diffFilter = delta --color-only

mergiraf

Structured merge-conflict resolution used by /melt.

cargo install mergiraf         # Rust/Cargo
brew install mergiraf          # macOS/Linux (if tap is available)

jq

JSON inspection used by various skills for structured output.

brew install jq                # macOS/Linux
winget install jqlang.jq       # Windows
apt-get install jq             # Debian/Ubuntu

fd

Fast file discovery used as a fallback when tilth is unavailable.

brew install fd                # macOS/Linux
cargo install fd-find          # Rust/Cargo
winget install sharkdp.fd      # Windows
apt-get install fd-find        # Debian/Ubuntu

just

Project task runner used by /cook and /press to discover and run project commands.

brew install just              # macOS/Linux
cargo install just             # Rust/Cargo
winget install Casey.Just      # Windows

Credits

The shared voice kernel at skills/age/references/voice.md โ€” output discipline, reasoning posture, the certain | speculating | don't know confidence vocabulary, and the depth-vs-question split โ€” adapts a Claude Opus 4.7 system-prompt experiment by Reebz, narrowed to the parts that earn their keep in a portable skills toolkit. Cross-referenced from briesearch, culture, mold, cook, and cure.

Reviews (0)

No results found