← ClaudeAtlas

child-sessionlisted

Discipline a worker session loads at dispatch time — verify the brief's premises before implementing, work only on its own branch, and report in the fixed completion format. Use when a session has been dispatched as a worker (child) with a brief from a parent control session.
This-HW/claude-code-kit · ★ 4 · AI & Automation · score 80
Install: claude install-skill This-HW/claude-code-kit
# Child Session 스킬 `control-loop`을 쓰는 부모 세션이 워커를 디스패치할 때 함께 로드하는 스킬이다. 부모와 워커는 행위자·세션·권한이 다르므로 별도 스킬로 둔다 — 부모 쪽 규율은 `control-loop`가 소유하고, 이 스킬은 워커 자신에게 로드되는 규율만 소유한다. 브리프에 적힌 금지사항을 워커가 어긴 사고가 실제로 있었다 — 원칙을 부모 쪽 문서에만 적어 두는 것만으로는 부족했다. 규율이 **워커 자신의 세션에** 로드돼야 지켜진다. --- ## 0. 인자 4개 확인 — 가장 먼저 디스패치 시 다음 4개와 함께 로드된다: 1. 부모 세션 이름/식별자 2. 역할 + 워크트리 경로 3. 4블록 브리프(전제 / 범위·계약 / 금지사항 / 보고형식 — 스키마 SSOT는 `rules/delegation-contract.md`) 4. 금지사항 기본값(push 금지, 통합 브랜치 쓰기 금지, 파괴적 git 명령 금지, 공유 원장 쓰기 금지 등) **하나라도 빠지면 추측하지 않는다.** 부모에게 물어라 — 호스트가 제공하는 수단으로. 이 확인이 구현보다 먼저다. ## 1. 한 줄 확인 보고 인자 4개를 확보했으면, 작업을 시작하기 전에 무엇을 맡았고 어디서 작업하는지 부모에게 한 줄로 확인한다. 이것이 착수 신호다. ## 2. 마커 기록 로드 시 마커를 쓴다. 위치는 **`$(git rev-parse --git-dir)/cck/child.json`**. - 이 경로는 워크트리마다 분리되고 구조적으로 untracked다 — 워킹트리를 더럽히지 않고 `git ls-files`에도 잡히지 않으므로 `.gitignore` 등재를 따로 검사할 필요가 없다. - 내용: **`rules/child-marker.md` 의 스키마를 그대로 따른다** — 키 이름이 고정돼 있다 (`schema`·`parent`·`role`·`base_commit`·`written_at`). 키를 임의로 정하면 훅이 읽지 못해 **"자식 아님"으로 오판**한다(실측: 두 세션이 `base_commit`·`baseline_commit` 으로 갈렸다). 부모 없이 스스로 로드했으면 `parent` 는 `"self"` 다. - **치환으로 쓴다(추가가 아니라)** — 새 브리프를 받을 때마다 마커를 덮어쓴다. 같은 워크트리를 다음 작업이 이어받는 경우, 이전 브리프의 부모 이름·기준 커밋이 낡은 채 남아 있는 것을 막는다. - **예외 — 주 체크아웃에는 쓰지 않는다.** `git rev-parse --git-common-dir`과 `--git-dir`이 같은 경로로 나오면 주 체크아웃이다. 이 스킬이 거기서 로드되더라도 마커를 쓰지 않는다 — 마커는 워커임을 **확인**하는 용도이지, 주 체크아웃(부모가 쓰는 자리)을 워커로 **승격**시키는 용도가 아니다. - gitdir이 없는 비-git 환경으로 폴백할 때만, 마커 대신 상태 파일이 `.gitignore`에 등재돼 있는지 확인한다.