Skip to content

/easy-cheese-setup

When to invoke: Register the durable cheese-durable Hallouminate corpus. Repair the durable corpus when its configuration changes. Register the repository tenant. Repair the repository tenant when its configuration changes. Use this skill when the user requests durable corpus setup or repair. Use it when the user requests repository tenant registration. Also use it when the user invokes /easy-cheese-setup. Use the wiki skills for general Hallouminate wiki work.


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 four 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 artifacts [--apply] [--root PATH ...] # register every .cheese dir as one corpus
python3 skills/easy-cheese-setup/scripts/easy-cheese-setup.pyz doctor [--apply] # all three legs

Install the Hallouminate MCP server first. See README.md § Installing MCP servers. This skill controls the interactive registration process.

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

  • 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:

    Terminal window
    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.

  • 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.

Artifacts leg — machine-wide .cheese corpus

Section titled “Artifacts leg — machine-wide .cheese corpus”

Run artifacts after new repositories accumulate .cheese artifacts worth searching. Hallouminate indexes a gitignored .cheese dir only when a paths entry names that dir directly, so the block lists each .cheese directory, not a shared parent root. A paths entry that no longer exists on disk makes the daemon skip the whole corpus with a warning. A complete scan removes missing entries; an incomplete scan reports an error and leaves the block unchanged. After an --apply that changes the file, run hallouminate daemon restart, then hallouminate index --corpus cheese-artifacts.

  • 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.

scripts/render_generated_regions.py generates this file from the static COMMANDS manifest in src/easy_cheese/skills/easy_cheese_setup/commands.py. Do not edit this file. Run each command as python3 skills/easy-cheese-setup/scripts/easy-cheese-setup.pyz <command> [args...]. Each command returns an integer exit status. Pass --help to a command for its arguments and output format. Keep worked examples in the skill instructions.

Command Purpose Subcommands
artifacts Register every .cheese directory as one Hallouminate corpus
doctor Run the global, local, and artifacts registration legs
global Register or repair the durable Hallouminate corpus
local Register or repair this repository’s Hallouminate tenant