Agents: workspace-mover, path-updater, integrity-checker
Skill: workspace-reorganize-orchestrator (pipeline)
CLAUDE.md: harness pointer registered
Target: itsm/->workspace/guardia-itsm, manager/->workspace/guardia-manager,
app/->workspace/guardia-messenger, manual/->workspace/guardia-docs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.4 KiB
5.4 KiB
| name | description |
|---|---|
| workspace-reorganize-orchestrator | C:\GUARDiA 모노레포의 소스를 workspace/ 하위로 통합 재구성하는 오케스트레이터. itsm/→workspace/guardia-itsm/, manager/→workspace/guardia-manager/, app/→workspace/guardia-messenger/, manual/→workspace/guardia-docs/ 이동. git mv로 히스토리 보존, 모든 경로 참조 일괄 업데이트. 다음 상황에서 반드시 사용: (1) 'workspace로 이동', '소스 workspace 통합', '프로젝트별 workspace 정리'; (2) 'git mv 히스토리 보존 이동'; (3) 이동 후 경로 참조 업데이트; (4) 다시 실행, 업데이트, 수정, 보완. |
workspace 통합 재구성 오케스트레이터
실행 모드: 파이프라인 (순차 서브 에이전트)
workspace-mover → path-updater → integrity-checker
목표 구조
현재 이동 후
C:\GUARDiA\ C:\GUARDiA\
├── workspace/ └── workspace/
│ └── zioinfo-web/ ├── zioinfo-web/ (유지)
├── itsm/ → ├── guardia-itsm/ (itsm/)
├── manager/ → ├── guardia-manager/ (manager/)
├── app/ → ├── guardia-messenger/ (app/)
└── manual/ → └── guardia-docs/ (manual/)
Phase 0: 사전 확인
cd C:\GUARDiA
# 미커밋 변경사항 확인 (없어야 함)
git status --short | grep -v "^??" | head -10
# 이동 대상 디렉토리 존재 확인
for d in itsm manager app manual; do
[ -d "$d" ] && echo "OK: $d exists" || echo "SKIP: $d not found"
done
# workspace/ 디렉토리 존재 확인
[ -d "workspace" ] && echo "OK: workspace exists"
⚠️ 사전 조건:
- 미커밋 변경사항 없을 것 (있으면 먼저 커밋 또는 stash)
workspace/디렉토리 존재할 것
Phase 1: git mv 이동 (workspace-mover)
cd C:\GUARDiA
# 4개 디렉토리 이동 (한 번에 처리)
git mv itsm workspace/guardia-itsm
git mv manager workspace/guardia-manager
git mv app workspace/guardia-messenger
git mv manual workspace/guardia-docs
# 상태 확인
git status --short | head -20
# 하나의 커밋으로 처리
git commit -m "refactor(structure): consolidate all projects under workspace/
- itsm/ → workspace/guardia-itsm/
- manager/ → workspace/guardia-manager/
- app/ → workspace/guardia-messenger/
- manual/ → workspace/guardia-docs/
workspace/zioinfo-web/ unchanged.
git mv preserves full commit history."
Phase 2: 경로 참조 업데이트 (path-updater)
2-1. CLAUDE.md (루트) 업데이트
경로 매핑:
itsm/ → workspace/guardia-itsm/
manager/ → workspace/guardia-manager/
app/ → workspace/guardia-messenger/
manual/ → workspace/guardia-docs/
--prefix=itsm → --prefix=workspace/guardia-itsm
--prefix=manager → --prefix=workspace/guardia-manager
--prefix=app → --prefix=workspace/guardia-messenger
--prefix=manual → --prefix=workspace/guardia-docs
2-2. .claude/agents/repo-splitter.md 업데이트
# 이전
git subtree split --prefix=itsm -b split/guardia-itsm
git subtree split --prefix=manager -b split/guardia-manager
git subtree split --prefix=app -b split/guardia-messenger
git subtree split --prefix=manual -b split/guardia-docs
# 이후
git subtree split --prefix=workspace/guardia-itsm -b split/guardia-itsm
git subtree split --prefix=workspace/guardia-manager -b split/guardia-manager
git subtree split --prefix=workspace/guardia-messenger -b split/guardia-messenger
git subtree split --prefix=workspace/guardia-docs -b split/guardia-docs
2-3. .claude/skills/repo-split-orchestrator/SKILL.md 업데이트
subtree split prefix 경로 모두 업데이트.
2-4. 수동 변경 후 커밋
git add .claude/ CLAUDE.md
git commit -m "refactor(paths): update all path references after workspace reorganization"
Phase 3: 무결성 검증 (integrity-checker)
# 히스토리 보존 확인
git log --oneline --follow workspace/guardia-itsm/main.py | head -3
# 구조 확인
ls workspace/
# 예상: guardia-docs guardia-itsm guardia-manager guardia-messenger zioinfo-web
# 원본 경로 없음 확인
test ! -d itsm && test ! -d manager && test ! -d app && test ! -d manual
echo "원본 디렉토리 제거 완료"
# 경로 참조 잔재 확인
grep -r "\"itsm" CLAUDE.md 2>/dev/null | grep -v "guardia-itsm" && echo "WARN" || echo "OK"
grep -r "prefix=app" .claude/ 2>/dev/null | grep -v "guardia-messenger" && echo "WARN" || echo "OK"
완료 후 변경 필요 항목 (manual 작업)
서버의 deploy_server.py는 서버 소스 경로(독립 repo)를 참조하므로 변경 불필요.
독립 repos(C:\GUARDiA\repos\)는 이미 분리됐으므로 변경 불필요.
에러 핸들링
| 오류 | 원인 | 해결 |
|---|---|---|
git mv 실패 |
미커밋 변경사항 | git stash 후 재실행 |
| 타겟 경로 존재 | 이미 이동됨 | git status 확인 |
| 히스토리 단절 | 일반 mv 사용 | git log --follow로 확인 |
| 경로 참조 누락 | grep으로 탐지 | 수동 수정 |
테스트 시나리오
정상: git mv 4개 → 히스토리 확인 → 경로 업데이트 → grep 잔재 없음 에러: itsm/ 없음 → "SKIP: itsm not found" 경고 후 나머지 진행