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.
- Change
_apply_source's config_dst from install_path / "home" / "config" to install_path / "config". The source side (templates/config/) is unchanged.
- Change
_apply_goose_config's read path from install_path / "home" / "config" / "goose-config.yaml" to install_path / "config" / "goose-config.yaml".
- 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.
- 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.
Finding
After #447 retired
<install_path>/home/.claude/and the legacyIDENTITY.md,<install_path>/home/exists for a single purpose: hosting<install_path>/home/config/goose-config.yaml. That file is consumed by_apply_goose_configat 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:
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._apply_source'sconfig_dstfrominstall_path / "home" / "config"toinstall_path / "config". The source side (templates/config/) is unchanged._apply_goose_config's read path frominstall_path / "home" / "config" / "goose-config.yaml"toinstall_path / "config" / "goose-config.yaml".<install_path>/home/exists with onlyconfig/(or empty), remove it. Idempotent on reinstalls where the directory is already gone. Dry-run preview matches.Acceptance
<install_path>/home/does not exist after_cmd_applycompletes.<install_path>/config/goose-config.yamlexists and is consumed by_apply_goose_config.<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.yamlis removed, the parent<install_path>/home/is removed.grep -rn 'home/config' src/ tests/returns no production hits after the PR.Out of scope
/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.