worktree_prepare.sh 가 creator 를 기본으로 onboarding, create --no-onboard 가 ID 후발견 에이전트에 경고 (Issue #68) #79

Merged
Godopu merged 7 commits from fix/issue-68 into main 2026-10-29 07:56:58 +00:00
Owner

Refs #68

변경

범위는 #68 댓글 966 의 결정 1–4 다(본문의 --no-onboard 삭제 제안을 대신함).

  • create 는 --no-onboard 를 유지한다. 기본은 그대로 onboarding 이다.
  • --no-onboard 경고
    • 첫 턴 뒤에야 대화 ID 가 생기는 에이전트에 --no-onboard 를 주면, create 가 stderr 에 한 줄을 출력한다. 첫 턴 전까지 ID 가 레지스트리에 없고, 같은 폴더에 같은 종류를 또 만들면 그 create 가 기다린다(#63, MAM_ID_ORDER_WAIT_S)는 내용이다.
    • 판정은 어댑터 필드 id_lifecycle == POST_DISCOVERED 로 한다. lib_py.agents facts 가 MAM_ID_POST_DISCOVERED 를 내보낸다. 셸에 에이전트 목록을 두지 않는다.
    • 지금은 agy, codex, hermes, opencode 에서 나오고 claude, grok 에서는 나오지 않는다.
    • spawn 전에 출력하므로 --dry-run 에서도, 뒤에서 create 가 실패해도 보인다. 종료 코드와 레지스트리 행은 바뀌지 않는다.
  • worktree_prepare.sh --creator-agent 가 기본으로 onboarding 한다.
    • 새 --no-onboard 는 onboarding 을 건너뛰고 create 에 그대로 넘긴다.
    • 기존 --onboard 는 기본과 같은 뜻으로 계속 받는다. 둘 다 주면 마지막 것이 이긴다.
    • 사용법·종료 코드 주석을 고쳤다.
  • 문서: create SKILL.md 의 옵션 표 한 줄과 worktree 절(시놉시스, --creator-agent 설명, 종료 코드). 줄이 밀린 tests/data/skill_code_blocks.json 의 핀을 내용 그대로 옮겼다.
  • 기존 테스트:
    • 기본이 onboarding 하지 않는 것을 전제로 하던 worktree 호출 3곳(test_issue21_acceptance.py 2곳, test_issue21_phase2_loop_a.py 1곳)에 --no-onboard 를 붙였다.
    • test_issue26_ints.py 의 분류 목록에 MAM_ID_POST_DISCOVERED(문자열 비교)를 넣었다.

테스트

  • 새 테스트: tests/test_issue68_onboard_default.py(25건). facts, --dry-run 경고, 경고가 있어도 종료 코드·행이 같은지, 경고가 뒤의 #63 거부보다 먼저 나오는지, worktree_prepare.sh 의 옵션 전달, 기본 onboarding 과 --no-onboard 의 끝까지 동작을 본다.
  • base b9c828f 에서는 25건 중 20건이 실패한다. 나머지 5건은 base 에서도 맞아야 하는 경우다(claude·grok 은 경고 없음 4건, --onboard 전달 1건).
  • Linux, 7cf63f4: 전체 스위트 2327 passed, 20 skipped, 2 failed (69분).
    • test_issue26_ints.py::test_b5_every_integer_env_default_is_classified: 이번 변경으로 생긴 분류 누락이었다. 3b81f99 에서 고쳤고 그 파일은 통과한다.
    • test_issue34_job_tree.py::test_t5b_…[True]: 이번 변경과 관련이 없다. 리뷰 프롬프트의 하위 잡 사유가 deadline_timeout 이 아니라 - 로 나왔다. 단독 실행과 같은 조합 재실행에서는 head 와 base 모두 통과해서 타이밍에 따라 갈리는 테스트로 본다.
  • 테스트는 mock herdr 와 임시 작업 공간을 쓰고, 실제 레지스트리·모니터·herdr 서버를 건드리지 않는다.
  • macOS(bash 3.2, Python 3.9)에서는 실행하지 않았다. 추가한 셸은 [ ], echo, shift 뿐이다.

리뷰

  • 리뷰어 4명(claude, agy, grok, codex) 2회차 전원 PASS.
  • 1회차 NOT PASS 는 test_issue21_acceptance.py 의 암묵적 no-onboard 호출 2곳 때문이었고 7cf63f4 에서 고쳤다. 그 뒤 리뷰어가 --creator-agent 를 쓰는 테스트 호출을 모두 다시 확인했다.
  • 3b81f99(분류 한 줄)는 리뷰 이후 커밋이다.
  • 남긴 것: 새 테스트 파일의 쓰이지 않는 import yaml 한 줄.

범위 밖

  • --no-onboard 삭제와 이를 쓰는 테스트 호출 변경.
  • worktree_prepare.sh --path ../상대경로 가 부모 폴더가 없을 때 "제어 루트 안" 으로 거부되는 문제(별도 버그).
  • 버전 번호와 VERSIONS.md.

릴리스 노트에 적을 것

  • worktree_prepare.sh --creator-agent 가 이제 기본으로 onboarding 한다. 건너뛰려면 --no-onboard.
  • create --no-onboard 가 agy, codex, hermes, opencode 에서 경고 한 줄을 출력한다.

🤖 Generated with Claude Code

Refs #68 ## 변경 범위는 #68 댓글 966 의 결정 1–4 다(본문의 `--no-onboard` 삭제 제안을 대신함). - **create 는 `--no-onboard` 를 유지한다.** 기본은 그대로 onboarding 이다. - **`--no-onboard` 경고** - 첫 턴 뒤에야 대화 ID 가 생기는 에이전트에 `--no-onboard` 를 주면, create 가 stderr 에 한 줄을 출력한다. 첫 턴 전까지 ID 가 레지스트리에 없고, 같은 폴더에 같은 종류를 또 만들면 그 create 가 기다린다(#63, `MAM_ID_ORDER_WAIT_S`)는 내용이다. - 판정은 어댑터 필드 `id_lifecycle == POST_DISCOVERED` 로 한다. `lib_py.agents facts` 가 `MAM_ID_POST_DISCOVERED` 를 내보낸다. 셸에 에이전트 목록을 두지 않는다. - 지금은 agy, codex, hermes, opencode 에서 나오고 claude, grok 에서는 나오지 않는다. - spawn 전에 출력하므로 `--dry-run` 에서도, 뒤에서 create 가 실패해도 보인다. 종료 코드와 레지스트리 행은 바뀌지 않는다. - **`worktree_prepare.sh --creator-agent` 가 기본으로 onboarding 한다.** - 새 `--no-onboard` 는 onboarding 을 건너뛰고 create 에 그대로 넘긴다. - 기존 `--onboard` 는 기본과 같은 뜻으로 계속 받는다. 둘 다 주면 마지막 것이 이긴다. - 사용법·종료 코드 주석을 고쳤다. - **문서:** create `SKILL.md` 의 옵션 표 한 줄과 worktree 절(시놉시스, `--creator-agent` 설명, 종료 코드). 줄이 밀린 `tests/data/skill_code_blocks.json` 의 핀을 내용 그대로 옮겼다. - **기존 테스트:** - 기본이 onboarding 하지 않는 것을 전제로 하던 worktree 호출 3곳(`test_issue21_acceptance.py` 2곳, `test_issue21_phase2_loop_a.py` 1곳)에 `--no-onboard` 를 붙였다. - `test_issue26_ints.py` 의 분류 목록에 `MAM_ID_POST_DISCOVERED`(문자열 비교)를 넣었다. ## 테스트 - 새 테스트: `tests/test_issue68_onboard_default.py`(25건). facts, `--dry-run` 경고, 경고가 있어도 종료 코드·행이 같은지, 경고가 뒤의 #63 거부보다 먼저 나오는지, `worktree_prepare.sh` 의 옵션 전달, 기본 onboarding 과 `--no-onboard` 의 끝까지 동작을 본다. - base `b9c828f` 에서는 25건 중 20건이 실패한다. 나머지 5건은 base 에서도 맞아야 하는 경우다(claude·grok 은 경고 없음 4건, `--onboard` 전달 1건). - Linux, `7cf63f4`: 전체 스위트 2327 passed, 20 skipped, 2 failed (69분). - `test_issue26_ints.py::test_b5_every_integer_env_default_is_classified`: 이번 변경으로 생긴 분류 누락이었다. `3b81f99` 에서 고쳤고 그 파일은 통과한다. - `test_issue34_job_tree.py::test_t5b_…[True]`: 이번 변경과 관련이 없다. 리뷰 프롬프트의 하위 잡 사유가 `deadline_timeout` 이 아니라 `-` 로 나왔다. 단독 실행과 같은 조합 재실행에서는 head 와 base 모두 통과해서 타이밍에 따라 갈리는 테스트로 본다. - 테스트는 mock herdr 와 임시 작업 공간을 쓰고, 실제 레지스트리·모니터·herdr 서버를 건드리지 않는다. - macOS(bash 3.2, Python 3.9)에서는 실행하지 않았다. 추가한 셸은 `[ ]`, `echo`, `shift` 뿐이다. ## 리뷰 - 리뷰어 4명(claude, agy, grok, codex) 2회차 전원 PASS. - 1회차 NOT PASS 는 `test_issue21_acceptance.py` 의 암묵적 no-onboard 호출 2곳 때문이었고 `7cf63f4` 에서 고쳤다. 그 뒤 리뷰어가 `--creator-agent` 를 쓰는 테스트 호출을 모두 다시 확인했다. - `3b81f99`(분류 한 줄)는 리뷰 이후 커밋이다. - 남긴 것: 새 테스트 파일의 쓰이지 않는 `import yaml` 한 줄. ## 범위 밖 - `--no-onboard` 삭제와 이를 쓰는 테스트 호출 변경. - `worktree_prepare.sh --path ../상대경로` 가 부모 폴더가 없을 때 "제어 루트 안" 으로 거부되는 문제(별도 버그). - 버전 번호와 VERSIONS.md. ## 릴리스 노트에 적을 것 - `worktree_prepare.sh --creator-agent` 가 이제 기본으로 onboarding 한다. 건너뛰려면 `--no-onboard`. - create `--no-onboard` 가 agy, codex, hermes, opencode 에서 경고 한 줄을 출력한다. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Godopu added 5 commits 2026-10-28 23:01:46 +00:00
Godopu added 2 commits 2026-10-29 07:56:49 +00:00
Godopu merged commit a3364e82e1 into main 2026-10-29 07:56:58 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmpl/multi-agent-mux#79