Skip to content

split-work: 호출자 cwd 가 프로젝트 root 가 아닐 때 슬러그 생성이 망가질 위험 #40

@devstefancho

Description

@devstefancho

배경

PR #38 의 Fix #5git rev-parse --git-common-dir 결과를 절대 경로로 정규화해서 메인 repo cwd 에서 슬러그가 .-. 으로 망가지는 문제를 닫았다. 그러나 fix 는 git 명령 자체만 고친 것이라, 호출자가 잘못된 cwd 에서 스킬을 호출하면 여전히 잘못된 프로젝트의 슬러그를 만든다.

관찰된 사례 (Kanban 검증, 2026-04-26)

  • 호출자 (Claude Code 메인 세션) cwd: /Users/stefancho/works/claude-plugins
  • 실제 작업 대상 프로젝트: /Users/stefancho/works/test/sdd-kanban
  • subagent 가 args 로 받은 절대 경로를 보고 명시적으로 그 디렉토리에서 git 명령을 돌렸기에 슬러그가 test-sdd-kanban 으로 정상 생성됨
  • subagent 가 그렇게 하지 않았다면 슬러그는 works-claude-plugins 로 생성됐을 것 — 원하지 않은 결과

즉 fix #5 는 "git 이 절대 경로 반환" 까지는 보장하지만, "어느 git repo 의 절대 경로인가" 는 호출자 책임이다.

영향

  • 자동 모드 / 헤드리스 컨텍스트에서 잠재적 함정
  • 사용자가 메인 repo 가 아닌 다른 디렉토리에서 split-work 를 호출하는 경우 (worktree 외부, 멀티 repo 워크스페이스 등) 디버깅 어려운 슬러그 오염

개선 후보

  1. 명시적 인자 받기 (권장): SKILL.md 의 "인수" 섹션에 --project-path <abs-path> 옵션 추가. args 에 절대 경로가 있으면 그 경로로 cd 후 git 명령 실행.
  2. Sanity check: 슬러그 생성 직후 결과를 보고 (a) . 같은 단일 점 (b) 명백히 자기 자신을 가리키는 이름이면 경고 출력 + 사용자 확인 요청.
  3. 호출 컨텍스트 명시: SKILL.md 에 "이 스킬은 대상 프로젝트의 git repo root 에서 호출되어야 한다" 를 명시적으로 적고, 그렇지 않은 경우의 책임을 호출자에게 넘김 (현재 암묵적).

해당 파일

split-work-plugin/skills/split-work/SKILL.md 의 "실행 절차" 5번 (project-slug 결정) + "인수" 섹션

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions