Skip to content

Relocate goose-config.yaml out of <install_path>/home/ and retire the home/ parent #452

@dcellison

Description

@dcellison

Finding

After #447 retired <install_path>/home/.claude/ and the legacy IDENTITY.md, <install_path>/home/ exists for a single purpose: hosting <install_path>/home/config/goose-config.yaml. That file is consumed by _apply_goose_config at install time to seed the Goose backend's extension config. Nothing else lives under <install_path>/home/ anymore.

This was explicitly carved out as a follow-up in #447's out-of-scope list:

<install_path>/home/config/goose-config.yaml — still consumed by _apply_goose_config at install time. A relocation to <install_path>/config/ or /etc/kai/config/ is a separate cleanup that does not need to ride this issue.

Renaming <install_path>/home/ itself. After this issue lands, <install_path>/home/ will only contain config/; whether to rename the parent is a follow-up cosmetic question.

This issue is the follow-up.

Proposed change

Relocate the goose config to <install_path>/config/goose-config.yaml, then retire <install_path>/home/ entirely.

  1. Change _apply_source's config_dst from install_path / "home" / "config" to install_path / "config". The source side (templates/config/) is unchanged.
  2. Change _apply_goose_config's read path from install_path / "home" / "config" / "goose-config.yaml" to install_path / "config" / "goose-config.yaml".
  3. Add a one-shot install-time cleanup: after the new config copy lands, if <install_path>/home/ exists with only config/ (or empty), remove it. Idempotent on reinstalls where the directory is already gone. Dry-run preview matches.
  4. Update tests for both call-site changes plus a new test pinning the cleanup.

Acceptance

  • Fresh install: <install_path>/home/ does not exist after _cmd_apply completes. <install_path>/config/goose-config.yaml exists and is consumed by _apply_goose_config.
  • Reinstall on a host whose pre-state has <install_path>/home/config/goose-config.yaml: the new copy lands at <install_path>/config/goose-config.yaml, the old <install_path>/home/config/goose-config.yaml is removed, the parent <install_path>/home/ is removed.
  • Reinstall on a post-cleanup host: the helper is a silent no-op.
  • grep -rn 'home/config' src/ tests/ returns no production hits after the PR.

Out of scope

  • Relocating to /etc/kai/config/ (the issue body mentions it as an alternative). <install_path>/config/ keeps the config local to the install tree, matching the rest of the static-template layout.
  • Wiki updates naming the old path. Will ride the PR description.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions