SuperAPI AI Directory

easy-cheese-setup

General & other

View repository

Updated 10-16 03:16

About this skill

/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 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

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 all three 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:

    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.

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.

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.