zioinfo-mail/.claude/skills/system-sync-orchestrator/SKILL.md
DESKTOP-TKLFCPR\ython 19dd2c0c09 feat(harness): system-sync-orchestrator + deploy agents + zioinfo assets
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 21:14:34 +09:00

6.3 KiB

name description
system-sync-orchestrator GUARDiA 5개 시스템(guardia-itsm, zioinfo-web, guardia-manager, guardia-messenger, guardia-docs) 배포 상태를 검증하고 이슈를 자동 수정하는 오케스트레이터. workspace ↔ repos ↔ Gitea ↔ 서버 4-way 동기화 불일치, /var/www 구버전, 서버 stash 잔존, app vs src 미동기화, uncommitted 변경을 탐지·수정한다. 다음 상황에서 반드시 사용: (1) '5개 시스템 확인', '배포 상태 점검', '서버 최신 확인'; (2) '동기화', 'sync', '최신본 올려줘', '배포 맞춰줘'; (3) Manager/ITSM/홈페이지/Messenger/Docs 배포 이슈; (4) 다시 실행, 업데이트, 수정, 보완.

GUARDiA 5개 시스템 배포 동기화 오케스트레이터

실행 모드: 하이브리드

  • Phase 1 (검증): 서브 에이전트 (deploy-verifier)
  • Phase 2 (수정): 에이전트 팀 (deploy-verifier + deploy-fixer 협업)
  • Phase 3 (재검증): 서브 에이전트

Phase 0: 컨텍스트 확인

_workspace/ 존재 여부 확인:
- 없음 → 초기 실행 (Phase 1부터)
- 있음 + 사용자가 특정 시스템만 지정 → 부분 재실행 (해당 시스템만)
- 있음 + 전체 재검증 요청 → 전체 재실행

_workspace/ 디렉토리:

C:/GUARDiA/.claude/agents/_workspace/
├── verify_report.json   ← deploy-verifier 출력
└── fix_report.json      ← deploy-fixer 출력

Phase 1: 전체 검증 (서브 에이전트)

deploy-verifier 서브 에이전트로 실행:

5개 시스템 검증 항목

시스템 서비스 경로 정적 경로
guardia-itsm guardia /opt/guardia/src + /opt/guardia/app
zioinfo-web zioinfo /opt/zioinfo/src /var/www/zioinfo
guardia-manager guardia-manager /opt/manager/src or /opt/manager/backend /var/www/manager
guardia-messenger EAS 빌드 Gitea only
guardia-docs Gitea only /var/www/docs (선택)

검증 스크립트 패턴

C:/GUARDiA/scripts/check/verify_all_systems.py 참조. Gitea API 인증: base64.b64encode(b'zio:Zio@Admin2026!').decode()

이슈 분류

코드 설명 심각도
STALE_WWW /var/www 파일이 최근 배포보다 오래됨 critical
APP_SRC_DRIFT /opt/{app}/app vs src 미동기화 critical
STASH_EXISTS 서버 git stash 잔존 warning
UNCOMMITTED 비빌드 파일 uncommitted warning
COMMIT_MISMATCH 서버 커밋 != Gitea 커밋 critical
SERVICE_DOWN systemctl not active critical
WORKSPACE_DRIFT workspace != repos info

Phase 2: 이슈 수정 (에이전트 팀)

Phase 1에서 이슈가 없으면 → 완료 보고 후 종료. 이슈 있으면 → deploy-fixer와 팀 구성.

수정 우선순위

1. SERVICE_DOWN     → 서비스 재기동 먼저
2. APP_SRC_DRIFT    → rsync + restart
3. STASH_EXISTS     → stash 내용 평가 → 복원 또는 삭제
4. COMMIT_MISMATCH  → git fetch + reset --hard origin/main
5. STALE_WWW        → npm/mvn 빌드 + www 복사
6. UNCOMMITTED      → 파일 분류 (중요/임시) → workspace 반영 또는 clean
7. WORKSPACE_DRIFT  → sync_workspace_to_repos.py 실행

시스템별 수정 처리

guardia-itsm (APP_SRC_DRIFT 표준 처리):

rsync -a --exclude=__pycache__ --exclude=.git \
      --exclude="*.db" --exclude="uploads" \
      /opt/guardia/src/ /opt/guardia/app/
systemctl restart guardia
sleep 4 && systemctl is-active guardia

zioinfo-web (STALE_WWW 표준 처리):

cd /opt/zioinfo/src
git fetch origin main && git reset --hard origin/main
# stash 있으면 핵심 파일 cherry-pick
cd frontend && npm run build
cp -r ../backend/src/main/resources/static/. /var/www/zioinfo/
systemctl restart zioinfo

guardia-manager (STALE_WWW 표준 처리):

cd /opt/manager/src/frontend  # or /opt/manager/backend
# workspace/guardia-manager의 최신 frontend를 서버에 업로드
npm ci && npm run build
cp -r dist/. /var/www/manager/
systemctl restart guardia-manager

stash 처리 원칙:

  • git stash show --stat 으로 변경 파일 목록 확인
  • frontend/src/ 파일 포함 → git checkout stash -- frontend/src/ 로 선별 복원 후 빌드
  • 빌드 산출물(static/assets/)만 있으면 → git stash drop

Phase 3: 재검증 (서브 에이전트)

Phase 2 완료 후 deploy-verifier 재실행. 모든 action_required 항목이 비어있으면 성공.


결과 보고 형식

=== GUARDiA 5개 시스템 배포 상태 ===

✅ guardia-itsm   — active | 커밋 일치 | app 동기화
✅ zioinfo-web    — active | 커밋 일치 | www Jun 1 최신
✅ guardia-manager— active | 커밋 일치 | www Jun 1 최신
✅ guardia-messenger — EAS v1.0.0 | Gitea 최신
✅ guardia-docs   — 36개 md | Gitea 최신

수정된 이슈: X개
남은 이슈: 0개

에러 핸들링

에러 처리
서비스 재기동 실패 journalctl -u {service} -n 20 로그 수집 후 보고
npm build 실패 node_modules 삭제 후 npm ci 재시도
git reset 충돌 git clean -fd 후 재시도
Gitea push 실패 bundle → 서버 → push 방식 (push_jenkinsfiles_api 패턴)
rsync 권한 오류 chown -R root:root /opt/{app} 후 재시도

테스트 시나리오

정상 흐름:

  1. 검증 실행 → 이슈 탐지 (Manager STALE_WWW, ITSM APP_SRC_DRIFT)
  2. 수정 팀 실행 → Manager npm build, ITSM rsync
  3. 재검증 → 모두

에러 흐름:

  • Manager npm build 실패 → npm ci 재시도 → 실패 시 보고서에 기록 후 다음 시스템 진행

should-trigger

  • "5개 시스템 배포 확인해줘"
  • "서버에 최신본 올라간 거 맞아?"
  • "Manager 구버전 올라가 있는데 수정해줘"
  • "guardia-itsm 배포 상태 점검"
  • "홈페이지 최신 코드 반영됐나?"
  • "전체 동기화 해줘"
  • "다시 실행", "수정", "보완"

should-NOT-trigger

  • "guardia-itsm 새 기능 만들어줘" → itsm-dev 에이전트
  • "홈페이지 디자인 바꿔줘" → ui-overhaul-orchestrator
  • "Jenkins 파이프라인 설정" → cicd-pipeline-orchestrator
  • "코드 리뷰해줘" → code-review 스킬