Skip to content

feat(sc-install): symmetric --claude/--codex install targets - #113

Merged
randlee merged 4 commits into
fix/sc-git-worktree-dynamic-base-pathfrom
feat/sc-install-codex-target
Sep 23, 2026
Merged

randlee merged 4 commits into
fix/sc-git-worktree-dynamic-base-pathfrom
feat/sc-install-codex-target

Conversation

@randlee

@randlee randlee commented Sep 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • --claude/--codex are now independent, symmetric target flags under a scope (--global/--local/--user/--project): either alone installs only that target, neither installs both .claude and .codex. Mirrors how --global/--local already behave. --dest stays a single explicit .claude-only path and now rejects --codex explicitly instead of silently ignoring it.
  • Both targets share one code path (_resolve_install_scope + _resolve_install_targets + a single install_target() closure) — no duplicated artifact-copy logic between .claude and .codex.
  • Any package artifact (any category) with a sibling <path>.local.j2 file is rendered through sc-compose (auto-installed on first use) instead of copied verbatim, for any install that isn't --global/--user. .codex never consults .local.j2, matching --global/--user.

Test plan

  • python3 -m pytest tests/ -q — 1400 passed

randlee and others added 4 commits September 23, 2026 12:35
Codex CLI (~/.codex) only has a skills directory relevant to us and no
commands/agents concept, so a --codex install should skip commands,
agents, and registry.yaml maintenance entirely rather than mimicking
the ~/.claude layout.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ating

- --claude/--codex are now independent target flags under a scope
  (--global/--local/--user/--project), symmetric with each other: either
  alone installs only that target, neither installs both .claude and
  .codex. --dest remains a single, explicit .claude-only path and now
  rejects --codex outright instead of silently ignoring it.
- Installing to both targets shares one code path (_resolve_install_scope
  + _resolve_install_targets + a single install_target() closure) instead
  of duplicating the artifact-copy loop per target.
- Any artifact in any category with a sibling <path>.local.j2 file is
  rendered through sc-compose (auto-installed on first use) instead of
  copied verbatim, for any install that isn't --global/--user; .codex
  never consults .local.j2, matching --global/--user.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…dex-target

# Conflicts:
#	src/sc_cli/install.py
…-path' into feat/sc-install-codex-target

# Conflicts:
#	src/sc_cli/install.py
#	tests/test_sc_install_phase1_2.py
@randlee
randlee changed the base branch from develop to fix/sc-git-worktree-dynamic-base-path September 23, 2026 21:47
@randlee
randlee added this pull request to stack #115 September 23, 2026 21:47
@randlee
randlee removed this pull request from stack #115 September 23, 2026 22:09
@randlee
randlee merged commit e912415 into fix/sc-git-worktree-dynamic-base-path Sep 23, 2026
28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant