BurningTimesAi/scripts/verify_log_paths.sh

68 lines
2.2 KiB
Bash
Raw Normal View History

feat(core): P27 신설 + 3축 감사 체계 (dev/plan-auditor) + hook 확장 (PD님 조직 생명급 지시) PD님 직접 지시 "세션 전환 시 업무 맥락 초기화 재발 방지 + 모든 에이전트 교차 검증 동기화 체계 구축" 대응. ## 추가·변경 사항 ### 규칙 - P27 신설 — 조직 업무 공유·기록 체계 일관성 보장 (7 하위 조항) - P27-1: 3축 감사 체계 (pm/dev/plan-auditor) - P27-2: Agent 호출 이력 기록 의무 - P27-3: 세션 전환 시나리오 A~D 복원 보장 - P27-4: SOT 경계 (중복 기록 금지) - P27-5: 자동화 hook 체계 정리 - P27-6: 위반 처분 - P27-7: 연관 규칙·에이전트 - C31-1-D 체크리스트 확장 — PD 지시 로그 비고란 실독 의무 + verify_log_paths.sh 결과 확인 + Agent 호출 이력 확인 3항 추가 ### 에이전트 신설 - .claude/agents/dev-auditor.md — 개발팀 전담 감사 (기술 결정·API 변경 이력 특화) - .claude/agents/plan-auditor.md — 기획팀 전담 감사 (밸런스 이력·기각안·차기 프로젝트 참고 자료 특화) ### 스크립트 신설 - scripts/postuse_log_reminder.sh — PostToolUse hook, md 변경 시 대화로그 부재 리마인더 - scripts/session_end_audit.sh — SessionEnd hook, 기록 누락·Live 잔류·미커밋·경로 부재 감사 - scripts/verify_log_paths.sh — PD 지시 로그 활성 테이블 산출물 경로 실존 감사 ### 소통·설정 - 공유/소통/README.md 9축 확장 (감사관 3종 채널 추가) + YAML 필수 7필드 체크리스트 강화 - .claude/settings.json PostToolUse·SessionEnd hook 추가 - 공유/소통/dev-auditor→PM/·plan-auditor→PM/ 디렉토리 신설 ### 팀 검토 보고서 수령 - 개발팀장·클라이언트팀장·서버팀장·기획팀장·pm-auditor 5개 에이전트 교차 검증 완료 - 공유/소통/{각팀}→PM/2026-04-17_업무공유체계_점검_*.md 5건 ### 대화로그 - 공유/대화로그/조직운영/2026-04-17.md — 조직생명급_공유체계_구축 체크포인트 + 6 엔트리 append Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 06:12:36 +00:00
#!/bin/bash
# PD 지시 로그 활성 테이블의 산출물 경로 실존 자동 감사
# 신설 근거: 2026-04-17 pm-auditor 감사 Critical C1 + 클라이언트팀 B-1 설계
# 관련 규칙: C13 PD 지시 트래킹, C31-1-D 세션 시작 맥락 복원, P26 PM 업무 정확도 보장
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
[ -z "$REPO_ROOT" ] && exit 0
LOG_DIR="$REPO_ROOT/공유/PD_지시_트래킹"
[ ! -d "$LOG_DIR" ] && exit 0
MISSING_COUNT=0
CHECKED_COUNT=0
REPORT=""
# 활성 지시 섹션 파싱: "## 활성 지시"와 "## 완료 아카이브" 사이
for LOG_FILE in "$LOG_DIR"/*_PD_지시_로그.md; do
[ ! -f "$LOG_FILE" ] && continue
TEAM=$(basename "$LOG_FILE" _PD_지시_로그.md)
# awk로 활성 섹션만 추출
ACTIVE_SECTION=$(awk '/^## 활성 지시/,/^## 완료 아카이브/' "$LOG_FILE" 2>/dev/null)
# 테이블 행(| 로 시작)에서 5번째 컬럼(산출물 경로) 추출
# 헤더·구분선(-|-|)은 제외
PATHS=$(echo "$ACTIVE_SECTION" | awk -F'|' '
/^\| *[0-9]/ && NF>=6 {
# 5번째 컬럼에서 백틱 감싸진 경로 추출
col=$6
while (match(col, /`[^`]+`/)) {
p = substr(col, RSTART+1, RLENGTH-2)
# D:/ 로 시작하는 외부 경로는 스킵
if (p !~ /^[A-Z]:/ && p !~ /^http/) {
print p
}
col = substr(col, RSTART+RLENGTH)
}
}' | sort -u)
[ -z "$PATHS" ] && continue
while IFS= read -r P; do
[ -z "$P" ] && continue
CHECKED_COUNT=$((CHECKED_COUNT + 1))
FULL_PATH="$REPO_ROOT/$P"
# 디렉토리 경로(/로 끝) or 파일 경로 모두 -e로 확인
if [ ! -e "$FULL_PATH" ]; then
MISSING_COUNT=$((MISSING_COUNT + 1))
REPORT="${REPORT}[${TEAM}] ${P}\n"
fi
done <<< "$PATHS"
done
if [ "$MISSING_COUNT" -gt 0 ]; then
echo ""
echo "🚨 [PD 지시 로그 경로 감사] 부재 산출물 ${MISSING_COUNT}/${CHECKED_COUNT}건 감지:"
echo -e "$REPORT" | head -20
echo ""
echo "→ PD 지시 로그 비고란에 '경로 정정 또는 흡수/소실 판정' 갱신 필요"
echo "→ dev-auditor·plan-auditor 모드 C 호출 권고"
exit 1
else
if [ "$CHECKED_COUNT" -gt 0 ]; then
echo "✅ [PD 지시 로그 경로 감사] ${CHECKED_COUNT}건 전수 실존 확인"
fi
exit 0
fi