SKILL.md
/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 scripts/easy-cheese-setup.pyz. It has three commands. Each command changes data only with --apply. Without this option, each command only reports.
python3 <skill>/scripts/easy-cheese-setup.pyz global [--apply] # durable-corpus registration/repair
python3 <skill>/scripts/easy-cheese-setup.pyz local [--apply] # per-repository tenant registration
python3 <skill>/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. HALLOUMINATECONFIGandXDGCONFIG_HOMEoverride that default. Do not assume the default path.- Use
# >>> easy-cheese:cheese-durableas the start marker. - Use
# <<< easy-cheese:cheese-durableas 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 secondglobal --applyleaves the file unchanged. - Use
--applyto correct a marked block that points elsewhere. - Legacy migration requires user interaction. An unmarked
cheese-global → ~/.cheeseblock is stale. Show the report. Ask the user for confirmation. Then use the explicit migration option. The installer never uses this option:
``bash python3 <skill>/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
--applyfor each operation that changes data. - Use the imported
paths.corpus_home()as the only source for the durable root. Do not hardcode~/.cheeseor an XDG path. - Do not delete data by default.
global --applyrewrites 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](references/commands.md).