paulnsorensen/easy-cheese

easy-cheese-setup

Register the durable cheese-durable Hallouminate corpus.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/paulnsorensen/easy-cheese --skill easy-cheese-setup

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

/easy-cheese-setup

Register the durable cheese-durable Hallouminate corpus. The corpus makes each project's XDG artifacts searchable across sessions.

Register the current repository as a Hallouminate tenant when the user requests it. This process is idempotent. It does not delete data.

The engine is a self-contained bundle at skills/easy-cheese-setup/scripts/easy-cheese-setup.pyz. It has three commands. Each command changes data only with --apply. Without this option, each command only reports.

python3 skills/easy-cheese-setup/scripts/easy-cheese-setup.pyz global [--apply]   # durable-corpus registration/repair
python3 skills/easy-cheese-setup/scripts/easy-cheese-setup.pyz local  [--apply]   # per-repository tenant registration
python3 skills/easy-cheese-setup/scripts/easy-cheese-setup.pyz doctor [--apply]   # both legs

At installation, install.sh calls global --apply when --mcp includes hallouminate. This skill controls the interactive process.

Flow

Run doctor without --apply first. It reports the planned actions for both legs without changes. Show the report as evidence. Ask the user for confirmation. Apply only the approved legs.

Global leg — durable corpus

  • Create the directory from paths.corpus_home() if it does not exist. This action prevents Hallouminate issue #101.
  • Insert or replace the marked [[corpus]] block in the Hallouminate configuration file.
  • Read config_path() for that file. Its default is ~/.config/hallouminate/config.toml.
  • HALLOUMINATE_CONFIG and XDG_CONFIG_HOME override that default. Do not assume the default path.
  • Use # >>> easy-cheese:cheese-durable as the start marker.
  • Use # <<< easy-cheese:cheese-durable as the end marker. Write the identifier in both markers.
  • An end marker without the identifier does not close the block. The rewrite then replaces the rest of the file.
  • Point the block at corpus_home(). A second global --apply leaves the file unchanged.
  • Use --apply to correct a marked block that points elsewhere.
  • Legacy migration requires user interaction. An unmarked cheese-global → ~/.cheese block is stale. Show the report. Ask the user for confirmation. Then use the explicit migration option. The installer never uses this option:
bash
  python3 skills/easy-cheese-setup/scripts/easy-cheese-setup.pyz global --migrate-legacy --apply

Leave a cheese-global block unchanged if it points anywhere except ~/.cheese.

Local leg — repository tenant

  • Run hallouminate init-repo <name> --path <main-root> when both required conditions are true. The repository must have .cheese/ artifacts. It must not have a Hallouminate tenant.
  • Register the main repository root. Do not register a worktree. This rule prevents a temporary path from replacing the tenant identity.

Rules

  • Detect the current state. Report proposed changes. Ask the user for confirmation. Require --apply for each operation that changes data.
  • Use the imported paths.corpus_home() as the only source for the durable root. Do not hardcode ~/.cheese or an XDG path.
  • Do not delete data by default.
  • global --apply rewrites the marked block. It also creates the corpus directory.
  • Remove a legacy block only after user confirmation.

See the generated bundle command inventory in `references/commands.md`.

Related by task

from this repository

More skills

All skills
paulnsorensen
Community

age

Review a diff, PR, branch, or path across thirteen dimensions. Emit a severity-grouped findings report. Use when the user wants a code review. Trigger on "review this", "/age", "is this safe to merge", or "find bugs". Also trigger on "spot security issues", "check for slop", "review my PR", or "what's wrong with this code". Review every requested dimension. Review all thirteen dimensions by default. Do not apply fixes. Route them to /cure. Do not harden tests; route that work to /press.

installs
1
GitHub stars
18
Updated
Oct 20
paulnsorensen
Community

culture

Models problems and trade-offs without writing code or specifications. Use when a workflow needs silent reasoning, or the user asks for "/culture", "no writes", "rubber-duck this", or "these bugs feel connected". Not for specs (/mold), code (/cook), or bug diagnosis and fixes (/pasteurize).

installs
1
GitHub stars
18
Updated
Oct 20
paulnsorensen
Community

hard-cheese

Checks whether an author can explain a code change before review. Use when the user requests /hard-cheese, /cheese --hard, or an understanding check. Use it before a pull request or through the --hard pipeline flag. Do not use it for reviews, test hardening, or fixes.

installs
1
GitHub stars
18
Updated
Oct 20
paulnsorensen
Community

mold

Turn a high-leverage design decision into a validated spec through grounded dialogue. Use it when a leverage trigger fires (auth, irreversible effects, concurrency, contracts, destructive ops, a new slice, a cross-slice dependency, an invariant gap) or when the user asks for a spec or design. Typical phrases include "let's design X", "shape this into a spec", "what should the API for Z look like", and "/mold". A feature ask with zero fired triggers is a /cook mini-spec, not a mold; route it thro

installs
1
GitHub stars
18
Updated
Oct 20