feat(sync): 이벤트 구동 실시간 동기화 재설계 — PD님 직접 반려 반영
## PD님 원문 (직접 반려) "업무 완료 즉시 원격 반영하라고 지시한게 아니야. 작업 완료 시 공유 문서에 즉시 반영하고(실시간 체크가 어려울 경우 Live 더미), 다른 세션 프롬프트 발생 시 공유 시그널 읽어서 갱신. push를 매번 하는 비효율은 필요할 때만." ## 재설계 (3층 구조) 1. 공유 문서 즉시 반영 — 공유/* md 원본 갱신 2. Live 더미 기록 — .live/* (P25, 다른 세션 즉시 주입) 3. 시그널 갱신 — commit 시 post-commit hook이 자동 호출 ## push는 필요 시에만 - PD님 명시 지시 / 다른 PC 이관 / 조직 공식 공유(C18) - 그 외엔 commit으로 로컬 기록 + 시그널로 같은 PC 세션 공유 충분 ## 구현 - scripts/git-hooks/post-commit 신설 (git 추적, 팀 공유) - SessionStart hook에 core.hooksPath 자동 설정 추가 - SKILL.md C20-1-A 재개정 (자동 push 기본 안 반려 반영) - .live/SKILL.md 요약 갱신 ## 네트워크 비용 - commit: 로컬 I/O만, 비용 0 - push: PD님 지시·필요 시만 - 수신: 시그널 미변경 시 네트워크 0 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
31410bd146
commit
e5486d0e97
|
|
@ -100,6 +100,10 @@
|
|||
{
|
||||
"type": "command",
|
||||
"command": "bash scripts/verify_log_paths.sh 2>/dev/null || true"
|
||||
},
|
||||
{
|
||||
"type": "command",
|
||||
"command": "git config core.hooksPath scripts/git-hooks 2>/dev/null || true"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -325,28 +325,44 @@ PD·스태프와의 회의·리뷰·검증이 실제로 일정상 의존성을
|
|||
- 자기 작업 브랜치에 대한 일반 커밋
|
||||
- 일일보고·PD 지시 로그·메모리 등 운영 산출물 갱신 커밋
|
||||
|
||||
### C20-1-A. push 시점 규칙 (2026-04-17 PD님 재지시로 방침 전환)
|
||||
**업무 완료 시 자동 push (기본)**. 2026-04-16 "PD님 지시 시에만 push" 방침은 2026-04-17 PD님 직접 지시 **"작업이 완료되면 내가 말하지 않아도 항상 업무 내용 공유 및 동기화를 진행해서 어떤 세션에서든 현재 상태가 일관성 있게 유지되어야 해"**로 **자동 동기화 기본**으로 전환됨. 세션 간 상태 불일치가 조직 운영 신뢰에 직결되므로 기본값을 "자동 push"로 바꾼다.
|
||||
### C20-1-A. 공유·push 시점 규칙 (2026-04-17 PM 재개정 — PD님 직접 지시 재반영)
|
||||
|
||||
**자동 push 적용 기준 (업무 완료 판정 3요소 충족 시)**:
|
||||
1. **PD 지시 로그 갱신** (완료 아카이브 이동·상태 전환 완료)
|
||||
2. **대화로그 엔트리 기록** (결정·설계 엔트리는 기각안 필드 포함, P24)
|
||||
3. **산출물 확정** (파일 실존, verify_log_paths 통과)
|
||||
**작업 완료 시 공유 문서 + Live 더미 + 시그널 즉시 갱신. push는 필요 시에만**.
|
||||
|
||||
위 3요소 충족 시 PM은 **별도 PD 지시 없이 즉시** `git push origin main` 수행.
|
||||
2026-04-17 PM의 "자동 push 기본" 안은 **PD님 직접 반려** — 원안: "어느 세션에 있든 작업이 완료되어 공유할 사항이 생길 경우 해당 사항을 공유 문서에 즉시 반영하고(실시간 체크가 어려울 경우 Live 더미에 기록), 다른 세션에서 프롬프트가 발생할 때 공유 시그널을 읽어서 갱신. push를 매번 하는 비효율은 필요할 때만".
|
||||
|
||||
**push 억제 예외** (자동 push 하지 않는 경우):
|
||||
- PD님 명시적 억제 지시 ("push 보류"·"세션 공유 대기" 등)
|
||||
- C19-2 해당 액션 (force push·영구 삭제·외부 공개·프로덕션 영향)
|
||||
- C8 프로덕션 보호 대상 변경 (롤백 경로 확보 전)
|
||||
#### 공유 3층 구조 (PD님 지시 그대로)
|
||||
1. **공유 문서 즉시 반영** — 업무 완료 시 `공유/` 하위 md(PD 지시 로그·대화로그·소통 채널·조직공지 등) 원본 갱신
|
||||
2. **Live 더미 기록** — `.live/` 하위에 변경 요지 기록 (P25, 같은 세션·다른 세션 UserPromptSubmit hook이 즉시 주입)
|
||||
3. **시그널 갱신** — **commit 시점에 git post-commit hook(`scripts/git-hooks/post-commit`)이 자동으로 `sync_signal.sh update` 호출**. 같은 PC 내 다른 세션이 다음 프롬프트에서 `sync_signal.sh check`로 감지 (네트워크 비용 0)
|
||||
|
||||
**작업 중간 커밋**: 로컬 커밋은 자유. 단 한 업무 사이클 완료 시 일괄 push가 기본이며, **세션 종료 전 미푸시 상태 유지 금지** (SessionEnd hook `session_end_audit.sh`가 감지).
|
||||
#### push는 필요 시에만
|
||||
다음에 해당할 때만 push (다른 경우는 로컬 commit + 시그널로 충분):
|
||||
- PD님이 "세션 공유"·"push" 명시 지시한 경우
|
||||
- 다른 PC로 작업 이관 필요 (새 PC 세션 시작 대비)
|
||||
- 조직 공식 공유 완료 선언(C18)이 필요한 변경
|
||||
- 외부 개발자·QA·협력사 공유 대상 변경
|
||||
|
||||
**Live 더미**: 현 세션 즉시 반영 목적으로 유지 (P25). 원본이 이미 커밋·push되어도 .live/ 더미는 세션 중 별도 관리.
|
||||
#### push 수행 시 표준 절차
|
||||
- `bash scripts/sync_push.sh main` 실행: `git push` + 시그널 재갱신 일괄
|
||||
- 또는 `git push origin main` 단독 허용 (post-commit hook이 이미 시그널 갱신했으므로 중복 무해)
|
||||
|
||||
**연관 재정의**:
|
||||
- P21-2 "세션 공유" 트리거는 여전히 유효 — **부분 완료 중간 공유** 시점 명시 용도로 남김 (자동 push와 충돌 없음)
|
||||
- C29-4 "업무 완료 후 동기화"와 정합 — 동기화 범위에 원격 push 포함으로 명시화
|
||||
#### 자동 push 억제 예외 (과거 방침 계승)
|
||||
- PD님 명시적 억제 지시
|
||||
- C19-2 대상 (force push·영구 삭제·외부 공개·프로덕션 영향)
|
||||
- C8 프로덕션 보호 대상
|
||||
|
||||
#### git-hooks 자동 활성화
|
||||
- `scripts/git-hooks/` 하위는 git 추적 대상
|
||||
- SessionStart hook이 `git config core.hooksPath scripts/git-hooks` 자동 설정
|
||||
- 신 PC clone 시에도 첫 세션 즉시 post-commit hook 활성화
|
||||
|
||||
#### 연관 재정의
|
||||
- **P21-2 "세션 공유" 트리거**: 명시적 push 시점. 본 C20-1-A와 모순 없음
|
||||
- **C29-4 "업무 완료 후 동기화"**: 동기화 = 공유 문서 갱신 + Live 더미 + 시그널. push는 선택
|
||||
- **P25 Live 증분 동기화**: 같은 PC 내 다른 세션에 변경 즉시 주입 (주 수단)
|
||||
- **`scripts/sync_signal.sh`**: 시그널 update/check
|
||||
- **`scripts/git-hooks/post-commit`**: commit 시 자동 시그널 갱신
|
||||
|
||||
### C20-2. PD님 사전 확인 필수 (우려 이슈)
|
||||
다음에 해당하는 우려 이슈가 있으면 커밋·push 전 PD님 사전 확인:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
## 2026-04-17 PM — C20-1-A 재개정 (PD님 직접 반려 반영)
|
||||
|
||||
### PD님 원문
|
||||
"업무 완료 즉시 원격 반영하라고 지시한게 아니야. 작업 완료 시 공유 문서에 즉시 반영하고
|
||||
(실시간 체크가 어려울 경우 Live 더미), 다른 세션 프롬프트 발생 시 공유 시그널 읽어서 갱신.
|
||||
push를 매번 하는 비효율은 필요할 때만."
|
||||
|
||||
### 재개정 요지
|
||||
- **자동 push 기본** → **"공유 문서 + Live 더미 + 시그널 즉시. push는 필요 시"**
|
||||
- commit 시점에 git post-commit hook이 자동 시그널 갱신 (push 불요)
|
||||
- 같은 PC 세션 간 공유는 로컬 파일 + Live 더미 + 시그널로 완결
|
||||
- push는 PD 지시·다른 PC 이관·조직 공식 공유 선언 시에만
|
||||
|
||||
### 구현
|
||||
- `scripts/git-hooks/post-commit` 신설 — commit 자동 시그널 갱신
|
||||
- `.claude/settings.json` SessionStart hook에 `core.hooksPath` 자동 설정 추가
|
||||
- `sync_push.sh`는 "push 필요 시 표준 절차"로 재정의
|
||||
|
||||
### 네트워크 비용
|
||||
- commit: 로컬 파일 I/O만, 네트워크 0
|
||||
- push: PD 지시·필요 시에만 수행
|
||||
- 수신: 시그널 미변경 시 네트워크 0
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
#!/bin/bash
|
||||
# post-commit — commit 직후 sync_signal.sh update 자동 호출
|
||||
#
|
||||
# 목적 (2026-04-17 PD님 직접 지시 반영):
|
||||
# "작업 완료 시 공유 문서 즉시 반영 + 시그널로 알림. push는 필요 시만."
|
||||
# commit = "의미 있는 작업 완료" 단위이므로 commit 시점에 시그널 갱신하여
|
||||
# 같은 PC 내 다른 세션이 다음 프롬프트에서 즉시 감지할 수 있도록 함.
|
||||
#
|
||||
# 설치 (자동): SessionStart hook이 `git config core.hooksPath scripts/git-hooks`
|
||||
# 설정하므로 레포 clone 즉시 활성화.
|
||||
#
|
||||
# push와 무관 — commit만 해도 시그널 갱신됨. push는 PD님 지시·필요 시에만.
|
||||
|
||||
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
|
||||
[ -z "$REPO_ROOT" ] && exit 0
|
||||
|
||||
SCRIPT="$REPO_ROOT/scripts/sync_signal.sh"
|
||||
[ -x "$SCRIPT" ] || [ -f "$SCRIPT" ] || exit 0
|
||||
|
||||
bash "$SCRIPT" update
|
||||
exit 0
|
||||
Loading…
Reference in New Issue