diff --git a/CHANGELOG.md b/CHANGELOG.md index e50d2c9..4635d3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ 이 프로젝트는 [Semantic Versioning](https://semver.org/)을 따릅니다. +## [2.1.0] - 2026-07-21 (hermes 4대 특징) + +### Added +- **hermes 번들 에이전트** (`agents/hermes.md`) — Nous Hermes Agent 4대 특징 이식: + - **Memory**: `memory: user` — 채널 레지스트리·전달 이력·실패→해결 학습 패턴을 세션 간 영속 (자격증명 저장 금지) + - **Skill**: `skills/hermes-delivery/` 신설·사전 로드 + 반복 절차 2회 시 프로젝트 스킬로 자가 축적 + - **Cron**: CronCreate/CronList/CronDelete·`/schedule` — 정기 헬스체크·주간 릴리즈 노트·정기 wiki 갱신 + - **External APIs**: Gitea REST(`GITEA_TOKEN` env)·userConfig `notify_webhook_url` 전달 완료 webhook +- plugin.json `userConfig.notify_webhook_url` (선택 입력) + +### Changed +- zio-harness SKILL.md — hermes 스폰을 번들 `zioinfo:hermes`로 전환 (플러그인 미설치 시 general-purpose 폴백) + ## [2.0.0] - 2026-07-21 (zioinfo 통합 플러그인) ### Changed diff --git a/CLAUDE.md b/CLAUDE.md index 620c474..7f5e8b4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -5,12 +5,13 @@ ## 통합 플러그인: zioinfo (ZIO INFOTECH Suite, v2.0.0) -**위치:** `plugins/zioinfo/` — 스킬 4(zio-harness·harness·proposal-builder-orchestrator·pm-pmo-orchestrator) · 커맨드 3(`/zioinfo:pmo`·`/zioinfo:proposal`·`/zioinfo:wiki`) · 에이전트 15 · SessionStart graphify 훅 · ZIO WISE 테마 · knowledge/(kintex·guardia) +**위치:** `plugins/zioinfo/` — 스킬 5(zio-harness·harness·proposal-builder-orchestrator·pm-pmo-orchestrator·hermes-delivery) · 커맨드 3(`/zioinfo:pmo`·`/zioinfo:proposal`·`/zioinfo:wiki`) · 에이전트 16(**hermes** 번들 포함) · SessionStart graphify 훅 · ZIO WISE 테마 · knowledge/(kintex·guardia) **변경 이력:** | 날짜 | 변경 내용 | 대상 | 사유 | |------|----------|------|------| | 2026-07-21 | **v2.0.0 — 4개 플러그인 단일 통합 + 최신 플러그인 기술 적용**: ①git mv로 히스토리 보존 통합(루트 skills/harness→plugins/zioinfo/skills/harness, zio-harness 스킬·훅·scripts·knowledge, proposal-builder 에이전트7·커맨드·스킬) ②manifest 최신화 — `$schema`·`displayName`("ZIO INFOTECH Suite")·`experimental.themes` ③**LLM wiki 커맨드 신설**(`/zioinfo:wiki` — graphify --wiki → graphify-out/wiki/ 커뮤니티별 아티클) ④**ZIO WISE 테마** 동봉(themes/zioinfo.json — 시안 #11c3ff·블루 #1f29fc) ⑤marketplace.json 단일 엔트리·docs/README/설치가이드 재구성 | 전체 | "플러그인 4개를 zioinfo로 통합 + 최신 플러그인 기술 크롤링 추가(예: LLM wiki)" 요청. 공식 plugins-reference 조사 — 최신 컴포넌트(themes·monitors·LSP·channels·userConfig·displayName·$schema) 중 테마·wiki 채택, monitors/channels는 실험적·상시 프로세스라 보류 | +| 2026-07-21 | **v2.1.0 — hermes 4대 특징 탑재(Nous Hermes Agent 이식)**: 번들 에이전트 `agents/hermes.md` 신설 — ①**memory: user**(채널 레지스트리·전달 이력·실패→해결 학습 패턴 영속, 자격증명 저장 금지) ②**skill**(`skills/hermes-delivery/` 신설·사전 로드 + 반복 절차 2회 시 자가 스킬화 Observe→Plan→Act→Learn) ③**cron**(CronCreate/List/Delete·/schedule — 정기 헬스체크·주간 릴리즈 노트·정기 wiki) ④**External APIs**(Gitea REST `GITEA_TOKEN` env·userConfig `notify_webhook_url` 알림 webhook). zio-harness SKILL 스폰을 `zioinfo:hermes`로 전환(미설치 폴백 general-purpose), references/hermes.md 4대 특징 표 추가 | plugins/zioinfo | "헤르메스 4대 특징(memory·skill·cron·External APIs) 플러그인 반영 확인" 질의 — 미반영 상태 확인 후 즉시 이식 | --- diff --git a/PROJECT_MAP.md b/PROJECT_MAP.md index 01705d1..680dd0f 100644 --- a/PROJECT_MAP.md +++ b/PROJECT_MAP.md @@ -2,7 +2,7 @@ > 마지막 업데이트: 2026-07-21 > 프로젝트: harness — Claude Code Plugin 저장소 (ythong 마켓플레이스) -> 버전: zioinfo v2.0.0 (plugins/zioinfo/.claude-plugin/plugin.json 기준) +> 버전: zioinfo v2.1.0 (plugins/zioinfo/.claude-plugin/plugin.json 기준) > 업데이트 방법: "PROJECT_MAP 업데이트해줘" 또는 구조 변경 후 analyst 에이전트 자동 갱신 --- @@ -45,7 +45,7 @@ Claude Code용 **ZIO INFOTECH 통합 하네스** 플러그인 저장소. 2026-07 | 경로 | 용도 | |------|------| | `.claude-plugin/plugin.json` | 매니페스트 — `$schema`·`displayName`("ZIO INFOTECH Suite")·`experimental.themes`·버전 단일 출처 | -| `agents/` | 15인 — proposal 7종(rfp-analyst·proposal-strategist·proposal-tech-advisor·proposal-writer·proposal-visual-designer·deck-designer·proposal-qa) + pm·pmo 8종(pm-planner·pm-risk-manager·pm-reporter·pm-auditor·pmo-governance·pmo-portfolio·pm-ai-commissioner·pm-qa) | +| `agents/` | 16인 — **hermes**(전령: `memory: user`·hermes-delivery 사전 로드·cron·External APIs) + proposal 7종(rfp-analyst·proposal-strategist·proposal-tech-advisor·proposal-writer·proposal-visual-designer·deck-designer·proposal-qa) + pm·pmo 8종(pm-planner·pm-risk-manager·pm-reporter·pm-auditor·pmo-governance·pmo-portfolio·pm-ai-commissioner·pm-qa) | | `commands/pmo.md` | `/zioinfo:pmo` — PM·PMO 팀 지휘 | | `commands/proposal.md` | `/zioinfo:proposal` — 제안서 팀 지휘 | | `commands/wiki.md` | `/zioinfo:wiki` — graphify LLM wiki 생성/갱신 (graphify-out/wiki/) | @@ -98,6 +98,12 @@ Claude Code용 **ZIO INFOTECH 통합 하네스** 플러그인 저장소. 2026-07 |------|------| | `SKILL.md` | 8인 팀 오케스트레이터 (계획→리스크→보고→감리→거버넌스→포트폴리오→AI 의뢰→QA) | +### skills/hermes-delivery/ (전령 운영 절차) + +| 파일 | 용도 | +|------|------| +| `SKILL.md` | hermes 실행 절차 — 전달 파이프라인·cron/정기작업(CronCreate·/schedule)·External APIs(Gitea REST·webhook)·스킬 자가 축적. hermes 에이전트에 사전 로드 | + --- ## docs/ (참조 문서) @@ -142,6 +148,7 @@ Claude Code용 **ZIO INFOTECH 통합 하네스** 플러그인 저장소. 2026-07 | 날짜 | 변경 내용 | 담당 | |------|----------|------| +| 2026-07-21 | **v2.1.0 — hermes 4대 특징 탑재**: 번들 에이전트(memory: user)·hermes-delivery 스킬·cron·External APIs(userConfig notify_webhook_url) | - | | 2026-07-21 | **4개 플러그인 → zioinfo v2.0.0 단일 통합** (git mv 히스토리 보존) + LLM wiki 커맨드·ZIO WISE 테마·manifest 최신화($schema·displayName) | - | | 2026-07-21 | zio-harness v1.3.0 — hermes(전령) 에이전트 추가 (5→6인) + 팀 이미지 일치화 | - | | 2026-06-23 | `docs/plugin-guide.md` 신설 + PROJECT_MAP 현행화 | - | diff --git a/docs/plugins.md b/docs/plugins.md index a1cd4de..a7d751f 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -11,7 +11,7 @@ | 플러그인 | 버전 | 설명 | |----------|------|------| -| **zioinfo** (ZIO INFOTECH Suite) | 2.0.0 | 구 4개 플러그인(harness·zio-harness·proposal-builder·zioinfo) 단일 통합판. ①풀스택 개발 6인 팀(orchestrator·analyst·designer·agent·bot·**hermes 전령**) ②하네스 팩토리 메타 스킬 ③제안서 자동완성 7인 팀(`/zioinfo:proposal`) ④PM·PMO 8인 팀(`/zioinfo:pmo`) + graphify 지식그래프 SessionStart 훅·**LLM wiki**(`/zioinfo:wiki`)·ZIO WISE 테마·KINTEX/GUARDiA 지식베이스. | +| **zioinfo** (ZIO INFOTECH Suite) | 2.1.0 | 구 4개 플러그인(harness·zio-harness·proposal-builder·zioinfo) 단일 통합판. ①풀스택 개발 6인 팀 — **hermes(전령) 번들 에이전트: Hermes Agent 4대 특징(memory·skill 자가 축적·cron·External APIs) 탑재** ②하네스 팩토리 메타 스킬 ③제안서 자동완성 7인 팀(`/zioinfo:proposal`) ④PM·PMO 8인 팀(`/zioinfo:pmo`) + graphify 지식그래프 SessionStart 훅·**LLM wiki**(`/zioinfo:wiki`)·ZIO WISE 테마·KINTEX/GUARDiA 지식베이스. | 구 harness(1.3.1)·zio-harness(1.3.0)·proposal-builder(1.0.0)·zioinfo(1.1.0)는 2026-07-21 zioinfo v2.0.0으로 통합되어 개별 배포가 종료됐다. @@ -47,8 +47,8 @@ claude plugin list # 설치 목록·enabled 상태 claude plugin details zioinfo@ythong # 컴포넌트 인벤토리·토큰 비용 ``` -기대 인벤토리: Skills 4(zio-harness·harness·proposal-builder-orchestrator·pm-pmo-orchestrator) · -Commands 3(pmo·proposal·wiki) · Agents 15 · Hooks 1(SessionStart graphify) · Themes 1(ZIO WISE) +기대 인벤토리: Skills 5(zio-harness·harness·proposal-builder-orchestrator·pm-pmo-orchestrator·hermes-delivery) · +Commands 3(pmo·proposal·wiki) · Agents 16(hermes 포함) · Hooks 1(SessionStart graphify) · Themes 1(ZIO WISE) > Agent Teams 기능을 쓰는 하네스는 `export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`이 필요하다. 상세: [`experimental-dependency.md`](./experimental-dependency.md). diff --git a/plugins/zioinfo/.claude-plugin/plugin.json b/plugins/zioinfo/.claude-plugin/plugin.json index c97537c..6906f91 100644 --- a/plugins/zioinfo/.claude-plugin/plugin.json +++ b/plugins/zioinfo/.claude-plugin/plugin.json @@ -2,8 +2,8 @@ "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "zioinfo", "displayName": "ZIO INFOTECH Suite", - "description": "ZIO INFOTECH 통합 하네스 — 4개 플러그인(harness·zio-harness·proposal-builder·zioinfo) 단일 통합판. ①zio-harness: React+Spring Boot+Mobile 풀스택 개발 6인 팀(orchestrator·analyst·designer·agent·bot·hermes 전령 — Gitea push·배포 확인·산출물 중계·알림) + graphify 지식그래프 자동 분석(SessionStart 훅) + LLM wiki 생성(/zioinfo:wiki) + KINTEX·GUARDiA 지식베이스 내장. ②harness: 도메인 한 문장→에이전트 팀+스킬 자동 생성 메타 스킬(6개 팀 아키텍처 패턴). ③proposal-builder: RFP+PPT 템플릿→제안서 자동완성 7인 팀(/zioinfo:proposal). ④PM·PMO: 계획(WBS·M/M)→리스크→진척보고(EVM)→감리 대응→거버넌스→포트폴리오 8인 팀(/zioinfo:pmo). ZIO WISE 테마 동봉.", - "version": "2.0.0", + "description": "ZIO INFOTECH 통합 하네스 — 4개 플러그인(harness·zio-harness·proposal-builder·zioinfo) 단일 통합판. ①zio-harness: React+Spring Boot+Mobile 풀스택 개발 6인 팀 — 번들 hermes(전령) 에이전트는 Hermes Agent 4대 특징(persistent memory·skill 자가 축적·cron 스케줄·External APIs 연동) 탑재(Gitea push·배포 확인·산출물 중계·알림·정기작업) + graphify 지식그래프 자동 분석(SessionStart 훅) + LLM wiki 생성(/zioinfo:wiki) + KINTEX·GUARDiA 지식베이스 내장. ②harness: 도메인 한 문장→에이전트 팀+스킬 자동 생성 메타 스킬(6개 팀 아키텍처 패턴). ③proposal-builder: RFP+PPT 템플릿→제안서 자동완성 7인 팀(/zioinfo:proposal). ④PM·PMO: 계획(WBS·M/M)→리스크→진척보고(EVM)→감리 대응→거버넌스→포트폴리오 8인 팀(/zioinfo:pmo). ZIO WISE 테마 동봉.", + "version": "2.1.0", "author": { "name": "ythong", "url": "https://git.zioinfo.co.kr/ythong" @@ -19,6 +19,9 @@ "spring-boot", "mobile", "hermes", + "memory", + "cron", + "webhook", "proposal", "rfp", "pm", @@ -37,5 +40,12 @@ ], "experimental": { "themes": "./themes/" + }, + "userConfig": { + "notify_webhook_url": { + "type": "string", + "title": "사내 알림 Webhook URL (선택)", + "description": "hermes(전령)가 전달 완료 시 요약을 POST할 사내 webhook 엔드포인트. 비워두면 알림 생략." + } } } diff --git a/plugins/zioinfo/README.md b/plugins/zioinfo/README.md index 5b2e69b..794dbf4 100644 --- a/plugins/zioinfo/README.md +++ b/plugins/zioinfo/README.md @@ -1,4 +1,4 @@ -# zioinfo — ZIO INFOTECH 통합 하네스 (v2.0.0) +# zioinfo — ZIO INFOTECH 통합 하네스 (v2.1.0) 구 4개 플러그인(**harness · zio-harness · proposal-builder · zioinfo**)을 단일 플러그인으로 통합한 ZIO INFOTECH의 Claude Code 올인원 하네스. @@ -22,8 +22,9 @@ ZIO INFOTECH의 Claude Code 올인원 하네스. | **제안서 자동완성** (구 proposal-builder) | `/zioinfo:proposal` | 7인: rfp-analyst·strategist·tech-advisor·writer·visual-designer·deck-designer·qa | RFP+PPT 템플릿→SI/SM 제안서 PPTX | | **PM·PMO** | `/zioinfo:pmo` | 8인: pm-planner·risk-manager·reporter·auditor·pmo-governance·portfolio·ai-commissioner·qa | 계획(WBS·M/M)→리스크→보고(EVM)→감리→거버넌스→포트폴리오→외부 AI 의뢰 | -## 최신 플러그인 기능 (v2.0.0) +## 최신 플러그인 기능 (v2.0.0~2.1.0) +- **hermes 4대 특징** (v2.1.0, Nous Hermes Agent 이식) — 번들 에이전트 `zioinfo:hermes`: ①persistent **memory**(`memory: user` — 채널 레지스트리·전달 이력·학습 패턴 세션 간 축적) ②**skill**(hermes-delivery 사전 로드 + 반복 절차 자가 스킬화) ③**cron**(CronCreate·/schedule — 정기 헬스체크·주간 릴리즈 노트) ④**External APIs**(Gitea REST·userConfig `notify_webhook_url` 알림 webhook) - **LLM wiki** — `/zioinfo:wiki [경로]`: graphify 지식그래프에서 커뮤니티별 아티클(`graphify-out/wiki/`)을 생성/갱신 - **graphify SessionStart 훅** — 설치만으로 프로젝트 소스 자동 분석(`graphify-out/graph.json`), 코드 질문은 그래프 우선 - **ZIO WISE 테마** — `/theme`에서 선택 가능 (시안 #11c3ff · 블루 #1f29fc 팔레트, experimental) @@ -45,10 +46,11 @@ ZIO INFOTECH의 Claude Code 올인원 하네스. ``` plugins/zioinfo/ -├── .claude-plugin/plugin.json # v2.0.0 ($schema·displayName·experimental.themes) -├── agents/ # 15인 (proposal 7 + pm·pmo 8) +├── .claude-plugin/plugin.json # v2.1.0 ($schema·displayName·experimental.themes·userConfig) +├── agents/ # 16인 (hermes 1 + proposal 7 + pm·pmo 8) ├── commands/ # /zioinfo:pmo · /zioinfo:proposal · /zioinfo:wiki ├── skills/ +│ ├── hermes-delivery/ # 전령 운영 절차 (hermes에 사전 로드) │ ├── zio-harness/ # 풀스택 개발 오케스트레이터 (+references 11종) │ ├── harness/ # 하네스 팩토리 메타 스킬 (+references 6종) │ ├── proposal-builder-orchestrator/ # 제안서 (+scripts 2종) diff --git a/plugins/zioinfo/agents/hermes.md b/plugins/zioinfo/agents/hermes.md new file mode 100644 index 0000000..a1d2717 --- /dev/null +++ b/plugins/zioinfo/agents/hermes.md @@ -0,0 +1,55 @@ +--- +name: hermes +description: "전령(Hermes) 에이전트 — Nous Hermes Agent 4대 특징(persistent memory·skill 자가 축적·cron 스케줄·External APIs 연동) 이식판. 검증 통과 산출물의 Gitea commit/push·배포 확인·릴리즈 노트, 에이전트 간 산출물 중계, 결과 알림, 정기 작업(cron/스케줄) 등록·관리, 외부 API(Gitea REST·webhook·알림 채널) 연동을 담당한다. 배포, push, 전달, 알림, 릴리즈 노트, 정기/예약 작업, cron, webhook 요청 시 사용." +model: opus +memory: user +skills: + - hermes-delivery +--- + +# Hermes — 전령 (memory · skill · cron · external APIs) + +bot 검증을 통과한 산출물만 바깥으로 내보내는 최종 관문이자, 팀의 기억·정기 업무·외부 연동을 맡는 전령. 파이프라인 위치: `analyst → designer → agent → bot → hermes`. + +## 4대 특징 운영 규칙 + +### 1. Memory (영속 메모리) + +작업 시작 전 **에이전트 메모리를 먼저 조회**하고, 작업 완료 후 학습한 것을 저장하라. MEMORY.md는 프로젝트별 섹션으로 정리한다: + +- **채널 레지스트리**: 프로젝트별 알림 수신처(webhook·담당자)·배포 엔드포인트·health URL +- **전달 이력**: 최근 전달(날짜·커밋·배포 결과) 요약 — 상세는 프로젝트 `_workspace/03_delivery.md`가 원본 +- **학습 패턴**: push 거부·배포 실패의 원인→해결 페어, 프로젝트별 특이 절차(빌드 순서·훅 함정) + +자격증명·토큰·비밀번호·내부 IP는 **메모리에 절대 저장하지 않는다** — 위치 포인터(예: "서버 env 참조")만 남긴다. + +### 2. Skill (자가 축적) + +같은 전달 절차를 **2회 이상 반복**하면, 그 절차를 대상 프로젝트의 `.claude/skills/<이름>/SKILL.md`로 스킬화한다 (예: `deploy-itsm`, `release-note-weekly`). 스킬화 후 메모리에 스킬 포인터를 기록해 다음 회부터 스킬을 사용한다. 상세 절차는 사전 로드된 `hermes-delivery` 스킬을 따른다. + +### 3. Cron (정기 작업) + +정기·예약 업무는 세션 내 반복이 아니라 스케줄러에 등록한다: + +- **세션 예약**: `CronCreate`/`CronList`/`CronDelete` 도구 — 정기 배포 헬스체크, 주간 릴리즈 노트, 정기 wiki 갱신(`/zioinfo:wiki`) +- **클라우드 루틴**: `schedule` 스킬(/schedule) — 세션이 꺼져 있어도 도는 반복 작업 +- 등록/변경/해제는 사용자 요청 또는 오케스트레이터 지시로만 수행하고, 등록 내역을 메모리 채널 레지스트리에 기록한다 + +### 4. External APIs (외부 연동) + +- **Gitea REST API**: 릴리즈 생성·이슈 코멘트·webhook 관리 (`git.zioinfo.co.kr`) — 토큰은 env에서만 로드 +- **사내 webhook/알림 채널**: 플러그인 userConfig `notify_webhook_url`이 설정돼 있으면 전달 완료 시 요약 POST (미설정 시 생략, 오류 아님) +- **원칙**: 사내 엔드포인트 우선. 그 외 외부 API는 소유자 승인 예외(예: api.anthropic.com)만. 요청·응답 로그 인용 시 자격증명 마스킹 + +## 전달 원칙 (기존 3역할) + +1. **검증이 관문** — `_workspace/02_bot_report.md` PASS 없이 커밋·push·배포·알림 금지 +2. **push는 요청 시만** — force push·`--no-verify` 금지, 변경 파일만 add(경로 명시) +3. **중계는 요약, 원본은 파일** — 단계 전환 시 산출물 경로+요지만 SendMessage, 전달 패키지는 `_workspace/03_delivery.md` +4. **전달은 사실만** — 릴리즈 노트에 검증된 변경만, 실패·스킵은 축소 없이 명시 + +## 재호출 지침 + +- 메모리의 학습 패턴을 먼저 확인해 같은 실패를 반복하지 않는다 +- 이전 `03_delivery.md`가 있으면 이력 행 추가 후 이번 전달분만 갱신 +- push 실패 후 재호출이면 원인 해소를 확인하고 같은 명령을 반복하지 않는다 diff --git a/plugins/zioinfo/docs/INSTALL.md b/plugins/zioinfo/docs/INSTALL.md index 6231b22..82778d5 100644 --- a/plugins/zioinfo/docs/INSTALL.md +++ b/plugins/zioinfo/docs/INSTALL.md @@ -9,9 +9,10 @@ 설치되는 것: - 플러그인: `zioinfo` (ZIO INFOTECH Suite) — 구 harness·zio-harness·proposal-builder·zioinfo 4개 통합 -- 스킬 4종: `zio-harness`(풀스택 개발) · `harness`(하네스 팩토리) · `proposal-builder-orchestrator` · `pm-pmo-orchestrator` +- 스킬 5종: `zio-harness`(풀스택 개발) · `harness`(하네스 팩토리) · `proposal-builder-orchestrator` · `pm-pmo-orchestrator` · `hermes-delivery`(전령 절차) - 커맨드 3종: `/zioinfo:pmo` · `/zioinfo:proposal` · `/zioinfo:wiki`(LLM wiki) -- 에이전트 15종: proposal 7(rfp-analyst 등) + pm·pmo 8(pm-planner 등) +- 에이전트 16종: **hermes**(전령 — memory·skill·cron·External APIs 4대 특징) + proposal 7 + pm·pmo 8 +- (선택) userConfig `notify_webhook_url` — enable 시 입력하면 hermes가 전달 완료 알림 POST - 훅: SessionStart → graphify 지식그래프 자동 구축/갱신 - 테마: ZIO WISE (`/theme`에서 선택, experimental) - 지식베이스: `knowledge/kintex/` · `knowledge/guardia/` diff --git a/plugins/zioinfo/skills/hermes-delivery/SKILL.md b/plugins/zioinfo/skills/hermes-delivery/SKILL.md new file mode 100644 index 0000000..4980d30 --- /dev/null +++ b/plugins/zioinfo/skills/hermes-delivery/SKILL.md @@ -0,0 +1,58 @@ +--- +name: hermes-delivery +description: "헤르메스(전령) 전달·정기작업·외부연동 절차. 배포/Gitea push/전달 패키지/릴리즈 노트, 정기·예약 작업(cron, /schedule, 헬스체크, 주간 보고), webhook·Gitea API 알림, 전달 이력 조회, 전달 절차 스킬화 요청 시 반드시 이 스킬을 사용하라. 다시 실행·재전달·정기작업 변경/해제 요청 포함." +--- + +# hermes-delivery — 전령 운영 절차 + +hermes 에이전트(4대 특징: memory·skill·cron·external APIs)의 실행 절차서. 원칙과 게이트는 에이전트 정의가 권위이고, 이 스킬은 **어떻게**를 담는다. + +## 1. 전달 파이프라인 (기본 절차) + +1. `_workspace/02_bot_report.md` 읽기 — **PASS 게이트**. 실패 항목 존재 시 전달 중단·리더 보고 +2. 메모리 조회 — 이 프로젝트의 채널 레지스트리·학습 패턴 확인 (같은 실패 반복 방지) +3. 전달 패키지 `_workspace/03_delivery.md` 작성: + ``` + # Delivery Report + ## 1. 변경 파일 (경로·유형) ## 2. 변경 요약 (기술) + ## 3. 릴리즈 노트 (사용자 관점) ## 4. 커밋/push 결과 (해시·브랜치) + ## 5. 배포 확인 (health) ## 6. 후속 조치 + ``` +4. Git 전달(요청 시만): 변경 파일만 `git add <경로>` → 컨벤션 커밋 → push. 거부 시 원인 진단(behind·훅)만 보고 — force·`--no-verify` 금지 +5. 배포 확인: webhook 배포 로그·health 엔드포인트 200 확인 (레지스트리의 URL 사용) +6. 알림: 리더 보고 + `notify_webhook_url` 설정 시 요약 POST(자격증명·IP 제외) +7. 메모리 갱신: 전달 이력 1줄 + 새로 배운 패턴 + +## 2. Cron / 정기 작업 + +| 요청 | 도구 | 예 | +|------|------|-----| +| 세션 예약 반복 | `CronCreate` (조회 `CronList`, 해제 `CronDelete`) | 배포 후 10분 헬스체크, 매주 금요일 릴리즈 노트 초안 | +| 세션 밖 클라우드 루틴 | `schedule` 스킬 | 야간 정기 배포 상태 점검·주간 wiki 갱신 | +| 짧은 폴링 루프 | `loop` 스킬 | CI 완료 대기 | + +- 등록 전 `CronList`로 중복 확인. 등록·해제 내역은 메모리 채널 레지스트리에 기록 +- 정기 작업의 산출(보고서·알림)도 §1의 마스킹 원칙을 따른다 + +## 3. External APIs + +- **Gitea REST** (`https://git.zioinfo.co.kr/api/v1/`): 릴리즈 생성 `POST /repos/{owner}/{repo}/releases`, 이슈 코멘트, webhook 관리. 토큰은 `GITEA_TOKEN` env에서만 — 코드·커밋·로그·메모리 기재 금지 +- **알림 webhook**: userConfig `notify_webhook_url` → `{"project","result","commit","summary"}` JSON POST. 미설정이면 조용히 생략 +- 새 외부 엔드포인트가 필요하면 임의 호출하지 말고 사용자 승인을 먼저 받는다 (GUARDiA 보안 불변: 외부 API 금지 원칙) + +## 4. 스킬 자가 축적 (Hermes 학습 사이클) + +Observe→Plan→Act→**Learn**: 전달 완료 후 아래를 점검한다. + +1. 이번 절차가 이전과 동일 패턴 2회째인가? → 대상 프로젝트 `.claude/skills/<동사-대상>/SKILL.md` 생성 (frontmatter name/description + 절차 + 검증 기준) +2. 생성한 스킬 포인터를 메모리에 기록, 다음 회부터 해당 스킬 우선 사용 +3. 실패→해결 페어가 새로 생겼으면 메모리 학습 패턴에 추가 (프로젝트 CLAUDE.md에 이미 기록된 내용은 중복 저장 금지) + +## 에러 핸들링 + +| 상황 | 대응 | +|------|------| +| push 거부 | fetch로 원인 확인(behind/훅) → 보고. 우회 금지 | +| health 실패 | 배포 로그 수집 → 코드 원인이면 agent에 수정 요청, 1회 재전달 | +| webhook POST 실패 | 1회 재시도 후 생략하고 보고에 명시 (전달 자체는 성공 처리) | +| cron 중복 등록 | 기존 항목 유지, 신규 등록 취소 후 사용자에 알림 | diff --git a/plugins/zioinfo/skills/zio-harness/SKILL.md b/plugins/zioinfo/skills/zio-harness/SKILL.md index 7d79640..6f78024 100644 --- a/plugins/zioinfo/skills/zio-harness/SKILL.md +++ b/plugins/zioinfo/skills/zio-harness/SKILL.md @@ -21,7 +21,7 @@ analyst → designer(UI 작업 시) → agent → bot → hermes(전달·배포 | designer | UI/UX 설계·디자인 토큰·컴포넌트 스펙·선 SVG 아이콘·스티치(Stitch) 의뢰 design.md 생성(MCP 연결 시 직접 요청) | `references/designer.md` | `_workspace/01_design_spec.md` + `assets/icons/*.svg` (+ 필요 시 `design.md`) | | agent | React/Spring Boot/Mobile 코드 구현 | `references/react.md`, `spring-boot.md`, `mobile.md` | 실제 코드 파일 | | bot | 테스트 실행·빌드·린트·DB 마이그레이션 | `references/playwright.md`, `database.md` | `_workspace/02_bot_report.md` | -| hermes | 전령 — 검증 통과 산출물의 Gitea commit/push·배포 트리거·배포 확인, 에이전트 간 산출물 중계, 최종 알림·릴리즈 노트 | `references/hermes.md` | `_workspace/03_delivery.md` | +| hermes | 전령 — 검증 통과 산출물의 Gitea commit/push·배포 확인, 산출물 중계, 알림·릴리즈 노트 + **4대 특징: persistent memory(`memory: user`)·skill 자가 축적·cron 정기작업·External APIs(Gitea REST·webhook)** | `references/hermes.md` + `hermes-delivery` 스킬(사전 로드) | `_workspace/03_delivery.md` | > designer는 **UI가 있는 작업에만**, hermes는 **전달·배포·알림이 있는 작업에만** 참여한다 (분석·로컬 수정만은 3인 파이프라인). @@ -108,7 +108,7 @@ _workspace/ 존재 여부 확인 - **Analysis**: 코드/구조 분석만 - **Setup**: 초기 프로젝트 설정 - **DocMap**: PROJECT_MAP.md 생성/업데이트만 -- **Deploy**: 배포·push·전달·알림만 — hermes 담당 +- **Deploy**: 배포·push·전달·알림·정기작업(cron/스케줄) — hermes 담당 ### Phase 2: 팀 구성 @@ -133,8 +133,10 @@ Agent(subagent_type: "agent", team_name: "zio-dev-team", name: "agent" prompt: "analyst의 계획과 designer의 01_design_spec.md를 읽고 코드 구현. React/Spring Boot/Mobile 스택에 맞는 컨벤션 준수.") Agent(subagent_type: "bot", team_name: "zio-dev-team", name: "bot", prompt: "구현 완료 후 테스트 실행·린트·빌드 검증. 결과를 _workspace/02_bot_report.md에 기록.") -Agent(subagent_type: "general-purpose", team_name: "zio-dev-team", name: "hermes", - prompt: "references/hermes.md 지침대로 _workspace/02_bot_report.md PASS 확인 후 전달 패키지(_workspace/03_delivery.md)·commit/push·배포 확인·알림. push는 사용자 요청 시만. 파이프라인 중 산출물 중계 보조.") +Agent(subagent_type: "zioinfo:hermes", team_name: "zio-dev-team", name: "hermes", + prompt: "_workspace/02_bot_report.md PASS 확인 후 전달 패키지(_workspace/03_delivery.md)·commit/push·배포 확인·알림. push는 사용자 요청 시만. 메모리의 채널 레지스트리·학습 패턴 우선 조회.") +# 번들 에이전트(zioinfo:hermes)는 memory: user + hermes-delivery 스킬 사전 로드. +# 플러그인 미설치 환경 폴백: subagent_type "general-purpose" + references/hermes.md 지침 주입. ``` 작업 유형별 팀 조정: diff --git a/plugins/zioinfo/skills/zio-harness/references/hermes.md b/plugins/zioinfo/skills/zio-harness/references/hermes.md index 1848d04..1af829b 100644 --- a/plugins/zioinfo/skills/zio-harness/references/hermes.md +++ b/plugins/zioinfo/skills/zio-harness/references/hermes.md @@ -4,9 +4,21 @@ **전령(傳令)**을 담당한다. 세 가지 임무 — ①**메시지·알림 전파**(작업 결과를 사용자·알림 채널에 전달), ②**에이전트 간 산출물 중계**(핸드오프 요약·`_workspace/` 인덱스 관리), ③**배포·전달**(Gitea commit/push·배포 트리거·배포 확인). bot의 검증을 통과한 산출물만 바깥으로 내보내는 **최종 관문**이다. 파이프라인 위치: `analyst → designer → agent → bot → hermes`. +## 4대 특징 (Nous Hermes Agent 이식) + +번들 에이전트 `zioinfo:hermes`(`plugins/zioinfo/agents/hermes.md`)는 Hermes Agent의 4대 특징을 Claude Code 메커니즘으로 탑재한다: + +| 특징 | 구현 | 내용 | +|------|------|------| +| **Memory** | frontmatter `memory: user` (`~/.claude/agent-memory/hermes/`) | 채널 레지스트리·전달 이력·실패→해결 학습 패턴을 세션 간 영속 축적. 자격증명은 메모리 저장 금지 | +| **Skill** | frontmatter `skills: [hermes-delivery]` 사전 로드 + 자가 축적 | 같은 전달 절차 2회 반복 시 대상 프로젝트 `.claude/skills/`에 스킬화 (Observe→Plan→Act→Learn) | +| **Cron** | `CronCreate`/`CronList`/`CronDelete` + `/schedule` 루틴 | 정기 배포 헬스체크·주간 릴리즈 노트·정기 wiki 갱신 등 예약 작업 등록·관리 | +| **External APIs** | Gitea REST(`GITEA_TOKEN` env)·userConfig `notify_webhook_url` | 릴리즈 생성·이슈 코멘트·전달 완료 webhook 알림. 사내 엔드포인트 우선, 임의 외부 호출 금지 | + ## 에이전트 파일 위치 -`.claude/agents/hermes.md` +**플러그인 설치 환경**: 번들 `zioinfo:hermes` 사용 — 프로젝트 로컬 정의 불필요. +**미설치 환경 폴백**: `.claude/agents/hermes.md`를 아래 템플릿으로 생성 (memory·skills frontmatter 포함). ## 정의 템플릿 @@ -15,7 +27,10 @@ name: hermes subagent_type: general-purpose model: opus -description: "전령 에이전트. 검증 통과 산출물의 Gitea commit/push·배포 트리거·배포 확인, 에이전트 간 산출물 중계(핸드오프 요약·인덱스), 최종 결과 알림·릴리즈 노트 작성을 담당한다. 배포, push, 전달, 알림, 릴리즈 노트 요청 시 사용." +memory: user +skills: + - hermes-delivery +description: "전령 에이전트(4대 특징: memory·skill·cron·external APIs). 검증 통과 산출물의 Gitea commit/push·배포 확인, 산출물 중계, 알림·릴리즈 노트, 정기 작업(cron/스케줄) 등록·관리, Gitea REST·webhook 연동을 담당한다. 배포, push, 전달, 알림, 릴리즈 노트, 정기/예약 작업 요청 시 사용." --- # Hermes — 전령