zioinfo-mail/plugins/harness-main/_workspace/release/audit-2026-04-18.md
DESKTOP-TKLFCPR\ython e228faabf5 feat(itsm): G-1~G-12 확장 기능 + 하네스/봇/설치스크립트 구현
G-1: 메신저 Webhook Relay + _send_to_room 실제 httpx 호출 구현
G-2: POST /api/tasks/bulk SR 대량작업 엔드포인트 (최대 100건)
G-3: 라이선스 만료 알림 스케줄러 (매일 09:00 KST)
G-4: 체험판 upgrade_banner 필드 + license.py 배너 로직
G-5: core/auto_rca.py + incidents/problem auto-rca 엔드포인트
G-6: core/deploy_impact.py + vibe impact-analysis 엔드포인트
G-7: core/ticket_classifier.py + SR 생성 시 AI 분류 + ai-suggestion API
G-8: VulnPatchRecord 모델 + vuln_scan 패치추적 4개 엔드포인트
G-9: core/jira_sync.py + gateway Jira/Confluence 연동 엔드포인트
G-10: core/push_notify.py + routers/push.py + PushSubscription 모델
G-11: approvals 다중승인 (위임/서명/기한초과/마감연장)
G-12: alembic.ini + migrations/ + cicd/migrate_to_postgres.sh

하네스: guardia-orchestrator 확장기능 Phase 반영
봇명령어: /sr /status /license /bulk 슬래시 명령어 추가
설치스크립트: setup/ (Ubuntu, CentOS, RHEL, Windows) --test 옵션 포함

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 18:18:52 +09:00

10 KiB

Release Audit — 2026-04-18

담당: release-engineer 에이전트 대상 저장소: /Users/robin/IdeaProjects/harness (revfactory/harness) 상위 전략 문서: /Users/robin/Downloads/harness-research/revfactory-harness_Jcurve_전략_2026-04-18.md §3.2 P-04 근거: 리서치 보고서 §1.5, §4.7 약점 4번 (태그·버전 불일치)


1. 현재 상태 (Before)

소스 버전 파일 경로 비고
README.md 뱃지 1.0.1 README.md:6 version-1.0.1-brightgreen.svg
README_KO.md 뱃지 1.0.1 README_KO.md:6 EN과 동일 문자열
README_JA.md 뱃지 1.0.1 README_JA.md:6 EN과 동일 문자열
plugin.json 1.2.0 .claude-plugin/plugin.json:4 Claude Code가 실제로 읽는 권위 소스
marketplace.json 1.1.0 .claude-plugin/marketplace.json:14 plugins[0].version
CHANGELOG 최신 [1.2.0] CHANGELOG.md:5 2026-04-08 날짜
git tag 최신 (없음) git tag -l 빈 출력, 태그드 릴리스 0건
최신 커밋 3bfc442 HEAD (main) v1.2.0: CLAUDE.md 포인터 정책으로 간소화...

1.1 불일치 요약

3중 불일치 상태 — 엔터프라이즈 결재·마켓플레이스 신뢰 축적 과정에서 첫 탈락 트리거가 될 수 있는 위생 문제.

  • README 뱃지(3종) vs plugin.json: 2단계 gap (1.0.1 → 1.2.0)
  • marketplace.json vs plugin.json: 1단계 gap (1.1.0 → 1.2.0)
  • plugin.json vs git tag: 태그 부재 (1.2.0 선언은 있으나 릴리스 아티팩트 0건)

1.2 불일치 영향도

영향 영역 증상
신뢰성 방문자가 README 뱃지를 보고 "1.0.1이 최신"으로 오해 → 구버전 선입견
설치 경험 마켓플레이스 설치 시 1.1.0 메타로 등록되나 실제 plugin은 1.2.0 → 후속 업데이트 추적 불가
릴리스 추적 git tag -l 빈 값 → gh release list 빈 값 → 사용자가 버전별 CHANGELOG를 추적할 수 없음
엔터프라이즈 결재 태그드 릴리스가 없으면 CVE·SBOM·감사 트레일을 구성할 수 없음

2. 정답 버전 결정

선정: v1.2.0

근거

  1. plugin.json 우선 원칙 — Claude Code 플러그인 시스템이 실제로 읽는 소스이므로 가장 권위 있음 (역할 정의 Step 2 우선순위)
  2. CHANGELOG 최신과 일치[1.2.0] - 2026-04-08이 최신 엔트리로 존재하며 plugin.json과 정합
  3. 최신 커밋 메시지 일치3bfc442 v1.2.0: CLAUDE.md 포인터 정책으로 간소화... (2개 소스 상호 확증)

→ README 뱃지 3종(1.0.1) 및 marketplace.json(1.1.0)을 v1.2.0으로 상향 동기화

추가 판단: 현재 작업 자체를 v1.2.1로 기록

  • 이번 작업(버전 정합성 + 포지셔닝 선언 + CONTRIBUTING + docs/ + Issue #3 응답)은 v1.2.0 이후의 patch/minor 단위 개선이므로 CHANGELOG에 [1.2.1] - 2026-04-18 엔트리로 추가
  • SemVer 판단: breaking change 없음 + 기능 추가(CONTRIBUTING, docs/)는 additive이나 사용자 스킬 API는 변경 없음 → patch로 판정
  • 애매 시 minor가 기본이나, 이 저장소 사용자가 보는 "스킬 실행 표면"은 전혀 변경이 없으므로 patch 유지

3. 동기화 내역 (After)

파일 Before After 변경 방식
README.md:6 version-1.0.1-brightgreen version-1.2.0-brightgreen Edit (뱃지 URL 문자열 교체)
README_KO.md:6 version-1.0.1-brightgreen version-1.2.0-brightgreen Edit
README_JA.md:6 version-1.0.1-brightgreen version-1.2.0-brightgreen Edit
.claude-plugin/marketplace.json:14 "version": "1.1.0" "version": "1.2.0" Edit
.claude-plugin/plugin.json:4 "version": "1.2.0" (변경 없음) 이미 정답 버전
CHANGELOG.md 최신 [1.2.0] [1.2.1] - 2026-04-18 섹션 추가 Edit (앞에 삽입)

3.1 수정된 파일 목록 (5종)

 M CHANGELOG.md
 M README.md
 M README_JA.md
 M README_KO.md
 M .claude-plugin/marketplace.json

3.2 신규 파일 (1종)

?? _workspace/release/audit-2026-04-18.md   (이 감사 문서)

3.3 plugin.json은 건드리지 않음

이미 정답 버전(1.2.0)을 갖고 있으므로 무변경. 다음 버전(1.2.1) 릴리스 시점에 별도 bump 필요.


4. git tag 계획 (실행 승인 대기)

실행 금지 — 아래 명령은 메인 오케스트레이터의 명시적 승인 후에만 실행. 현재는 문서화만.

4.1 소급 태그 (3건)

태그 대상 커밋 커밋 날짜 근거
v1.0.0 dd0d0db 2026-03-27 "마켓플레이스 제출 준비: CHANGELOG 추가, description 영문 병기, 요구사항 정리" — CHANGELOG에 [1.0.0] 섹션이 처음 들어간 커밋
v1.0.1 22bdbff 2026-03-29 "README 뱃지 추가 및 plugin.json 버전 1.0.1 동기화" — plugin.json 1.0.0→1.0.1 실제 bump 커밋
v1.1.0 2d84863 2026-04-05 "v1.1.0: Phase 0 현황 감사, CLAUDE.md 자동 동기화, 운영/유지보수 워크플로우 추가" — v1.1.0 최종 릴리스 커밋 (동일 날 선행 커밋 8604b11은 중간 단계)

4.2 신규 태그 (1건)

태그 대상 커밋 근거
v1.2.0 3bfc442 현재 HEAD, "v1.2.0: CLAUDE.md 포인터 정책으로 간소화, 하이브리드 실행 모드 추가"

4.3 실행 예정 명령 (승인 대기)

cd /Users/robin/IdeaProjects/harness

# 소급 태그 — annotated 태그만 사용 (lightweight 금지, 역할 정의 §6)
git tag -a v1.0.0 dd0d0db -m "v1.0.0: 초기 하네스 메타 스킬 공개

- 6 Phase 워크플로우 기반 하네스 구성
- 6가지 에이전트 아키텍처 패턴
- 에이전트 팀 / 서브 에이전트 실행 모드
- Progressive Disclosure 기반 스킬 생성 가이드"

git tag -a v1.0.1 22bdbff -m "v1.0.1: SKILL.md 중복 제거 및 plugin.json 버전 동기화

- SKILL.md ↔ references 간 중복 내용 제거 (330줄 → 285줄)
- Phase 2-1, 2-3, 3, 5-2 references 포인터 전환"

git tag -a v1.1.0 2d84863 -m "v1.1.0: Phase 0 현황 감사, CLAUDE.md 동기화, 하네스 진화 메커니즘

- Phase 0: 현황 감사 및 3분기 라우팅 (신규/확장/유지보수)
- Phase 5-4: CLAUDE.md 하네스 컨텍스트 등록
- Phase 7: 하네스 진화 메커니즘 (피드백→반영→변경 이력)
- 오케스트레이터 후속 작업 지원"

git tag -a v1.2.0 3bfc442 -m "v1.2.0: CLAUDE.md 포인터 정책, 하이브리드 실행 모드

- CLAUDE.md 등록 정책 간소화 (컨텍스트 → 포인터)
- Phase 2-1 하이브리드 실행 모드 (팀 + 서브 조합)
- Phase 5-0 하이브리드 오케스트레이터 패턴
- Phase 5-1 반환값 기반 데이터 전달 (서브 모드)"

# 확인
git tag -l --sort=-v:refname
git show v1.2.0 --stat | head -20

4.4 원격 push (이중 승인 대기)

# ⚠️ 위 로컬 태그 4건을 검증한 후, 메인 오케스트레이터의 2차 승인을 받은 뒤에만 실행
git push origin v1.0.0 v1.0.1 v1.1.0 v1.2.0

원칙: git push --tags (전체 push)는 사용하지 않음. 태그 4건을 명시적으로 개별 push하여 사고 방지.


5. GitHub Release 초안 (승인 대기)

실행 금지gh release createdraft 포함 모두 승인 대기. 아래는 명령 텍스트만 제안.

5.1 v1.2.0 (현재 정답 버전)

cd /Users/robin/IdeaProjects/harness

gh release create v1.2.0 \
  --title "v1.2.0 — CLAUDE.md 포인터 정책 & 하이브리드 실행 모드" \
  --notes "$(cat <<'EOF'
> ⚠️ **Experimental**: Claude Code 플러그인 시스템은 현재 Experimental 단계입니다. 프로덕션 도입 시 pin-to-tag 전략을 권장합니다.

## Changed

- **CLAUDE.md 등록 정책 간소화 (중복 제거)** — Phase 5-4 "컨텍스트 등록"을 "포인터 등록"으로 전환. 에이전트 목록·스킬 목록·디렉토리 구조·실행 규칙 상세를 CLAUDE.md에서 제거하고 **트리거 규칙 + 변경 이력**만 남김
- **Phase 3/4 임시 동기화 단계 삭제** — CLAUDE.md 동기화 부담 축소
- **핵심 원칙 3번 재정의** — "컨텍스트 등록" → "포인터 등록"

## Added

- **Phase 2-1: 하이브리드 실행 모드** — 에이전트 팀 / 서브 에이전트 외 하이브리드 패턴 추가
- **Phase 2-1 실행 모드 비교표** — 팀/서브/하이브리드 3종 의사결정 순서
- **Phase 5-0 하이브리드 오케스트레이터 패턴**
- **Phase 5-1 반환값 기반 데이터 전달** (서브 에이전트 모드 전용)

## Migration

이전 버전(v1.1.0)에서 CLAUDE.md 섹션 "하네스 컨텍스트"가 비대해진 사용자는 `docs/migration-1.2.md` (준비 중)를 참고하여 포인터 블록으로 전환하세요.

## Full Changelog

[CHANGELOG.md §1.2.0](https://github.com/revfactory/harness/blob/main/CHANGELOG.md)
EOF
)" \
  --draft

5.2 v1.0.0 / v1.0.1 / v1.1.0 (소급 릴리스)

태그 생성 후 CHANGELOG의 해당 섹션을 --notes 본문으로 추출. 본 감사에서는 명령 제안 생략 (v1.2.0 승인 후 2차 배치로 처리).

5.3 실행 승인 체크리스트

메인 오케스트레이터가 gh release create 실행을 승인하기 전 확인:

  • 로컬 태그 4건이 정확한 SHA에 붙었는가 (git show <tag> 검증)
  • git push origin v* 완료 후 GitHub에서 태그가 확인되는가
  • 릴리스 노트 상단 Experimental 경고가 포함되었는가 (역할 정의 Step 6)
  • content-creator가 배너 이미지를 릴리스에 첨부할 수 있는지 확인했는가

부록 A. 다음 감사 시점의 체크리스트

  • 이번 감사 이후 새 커밋 수
  • plugin.json 버전이 그 사이 변경되었는가
  • CHANGELOG에 새 엔트리가 추가되었는가
  • 태그된 마지막 버전과 plugin.json 사이 gap
  • 3종 README 뱃지 동기화 상태

부록 B. 상위 문서 연결

  • 전략 보고서 §3.2 P-04 "버전·릴리스 정합성" — 본 작업의 직접 트리거
  • 전략 보고서 §4.7 "엔터프라이즈 결재 경로" — 태그드 릴리스 요구사항
  • 리서치 보고서 §1.5 "저장소 정량 지표" — 릴리스 0건 상태 원인
  • 리서치 보고서 §4.7 약점 4 "태그·버전 불일치" — 본 작업의 해결 대상