Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions ai_scientist/cross_session_work_discipline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# 세션-간 작업 규율 (도구 무관) — AI Scientist 하네스 보충

> 착상 = kkkim 개인 워크플로(`/mine`·`/wrap` 슬래시커맨드)에서 **원칙만** 뽑은 것. **특정 CLI·슬래시커맨드에 묶이지 않는다** — Claude Code든 Codex든 OpenCode든 사람이든 따를 수 있는 규율이다. CLI 선택은 각자 몫(CLAUDE.md "CLI choice is each person's own"), 이 규율만 공통으로 통일한다.
> 이 문서는 팀 기록(git 추적)이다. 반대로 §C가 말하는 **개인 로그는 git에 올리지 않는다** — 그 경계가 이 층의 핵심이다.

## 왜 — 실패에서 나온 규율

- **방치 사고**: 타인 댓글 *말미*에 박힌 kkkim 요청을 놓쳐 11~16일 방치(BIOP01-70·61). 마지막 댓글의 앞부분(진행보고)만 보면 안 잡힌다.
- **반영 누락**: 코드만 짜고 커밋 안 함 / 분석만 하고 JIRA 미기록 / HANDOFF만 쓰고 세션로그·전역 요약 빠뜨림.
- 공통점: **부분만 보고 "됐다/없다"를 단정**한 것. 규율은 이 단정을 막는다.

## A. 착수 규율 — 전수 스캔 (부분 스캔 금지)

"내 할 일" = **assignee + 댓글/텍스트 멘션 + 신규 카드**, 셋 다 본다. 아래 3관문을 통과하기 전엔 "할 일 없음"을 선언하지 않는다.

- **관문 A** — 마지막 댓글이 *타인*이면 그 댓글 **말미**를 읽는다. 본문이 진행보고여도 끝에 요청이 박혀 있다. 신호: `부탁` · `확인 후` · `주시면` · `병합` · `결정` · 물음표.
- **관문 B** — 마지막 댓글이 *본인*이어도 "공이 넘어갔다"고 단정하지 않는다. 상태기록(HANDOFF)에 열린 항목이 없는지 교차확인한다.
- **관문 C** — **전 댓글 전수 스캔.** 내 할 일이 *오래된* 댓글에 박혀 있고 뒤로 남들이 진행보고를 쌓아 마지막이 아닌 경우가 많다. 타인이 쓴 내 지시를 전부 뽑아 각각 *이후에 답/처리/moot됐는지*까지 확인해야 '없음'이 확정된다.

> 목록 조회(JQL 등)엔 댓글이 없다. 실제로 손댈 티켓은 **개별로 댓글까지** 다시 연다.

## B. 마무리 규율 — 4구역 반영

작업이 끝나면 **그 자리에서** 네 곳 전부에 반영한다("반영하겠다"는 말이 아니라 그 턴에 실제로).

1. **git** — 미커밋 산출물을 티켓 브랜치에서 커밋·푸시. 리뷰 필요분은 PR + 리뷰어 지정(Owner≠Reviewer). 완료 experiment는 아티팩트·해시 규약.
2. **JIRA** — 본문/댓글/상태. 완료 게이트(작업+critic/sign-off) 충족 시에만 완료 전환(게이트 우회 금지).
3. **상태기록** — 개인 상세 로그 + "다음이 이어받을" 인계 메모(§C 분리 원칙).
4. **memory** — 인프라·도구 문제를 풀었으면 기록(재시작 후 같은 디버깅 반복 방지).

## C. 개인기록 ↔ 팀기록 분리 (이 층의 핵심 경계)

- **개인 로그(작업일지·인계 메모·개인 TODO)는 개인으로 둔다 — git에 올리지 않는다.** 중간 상태·자기정정·사람 메모라, 팀 영구 히스토리에 넣으면 신호는 안 늘고 **노이즈와 오독**만 는다(나중에 뒤집은 잠정 판단이 팀엔 확정처럼 읽힘).
- **팀 기록 = 큐레이트 채널**: JIRA(상태·결정·지적) · Confluence · PR 본문 · `experiments/registry`. "공유 상태"가 필요하면 개인 로그를 노출하는 게 아니라 **이 채널들을 최신으로 유지**한다 — 그게 §B가 하는 일이다.
- **durability는 백업으로**: 개인 로그는 컨테이너 로컬이라 유실 위험 → 별도 백업 경로에 복사(git 아님).
- **크로스-프로젝트 인계**는 전역 핸드오프(세션 시작 시 읽는 공통 파일)로 — 개인 리포를 넘나들지 않는다.

## 채택 방법 — 권장이지 강제 아님

- 이 **규율(원칙)** 은 팀 공통으로 권장한다. 어떤 도구로 구현하든 A/B/C·4구역·분리를 지키면 된다.
- **구현 예(선택)**: kkkim은 Claude Code 슬래시커맨드 `/mine`(전수 스캔)·`/wrap`(4구역 반영)으로 자동화한다. **원하는 사람에게 그 커맨드 파일을 템플릿으로 제공**한다(개인 경로·JIRA 자격 부분은 각자화 필요). Codex·OpenCode·수동 체크리스트로도 동일 규율을 지킬 수 있다.
- 강제하지 않는 이유: CLI는 각자 몫이고, 특정 슬래시커맨드는 그 사람 셋업에 튜닝돼 있어 그대로 이식되지 않는다. **통일하는 것은 도구가 아니라 규율이다.**
Loading