- agents/hermes.md 번들 신설: memory: user(채널 레지스트리·전달 이력·학습 패턴) + skills:[hermes-delivery] 사전 로드 (Nous Hermes Agent 특징 이식) - skills/hermes-delivery/SKILL.md 신설: 전달 파이프라인·cron(CronCreate·/schedule) ·External APIs(Gitea REST·notify_webhook_url)·자가 스킬화(Observe→Plan→Act→Learn) - plugin.json: v2.1.0 + userConfig.notify_webhook_url(선택) - zio-harness 스폰 zioinfo:hermes 전환(폴백 general-purpose), references 4대 특징 표 - docs/README/INSTALL/CLAUDE.md/PROJECT_MAP/CHANGELOG 동기화 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3.8 KiB
3.8 KiB
| name | description |
|---|---|
| hermes-delivery | 헤르메스(전령) 전달·정기작업·외부연동 절차. 배포/Gitea push/전달 패키지/릴리즈 노트, 정기·예약 작업(cron, /schedule, 헬스체크, 주간 보고), webhook·Gitea API 알림, 전달 이력 조회, 전달 절차 스킬화 요청 시 반드시 이 스킬을 사용하라. 다시 실행·재전달·정기작업 변경/해제 요청 포함. |
hermes-delivery — 전령 운영 절차
hermes 에이전트(4대 특징: memory·skill·cron·external APIs)의 실행 절차서. 원칙과 게이트는 에이전트 정의가 권위이고, 이 스킬은 어떻게를 담는다.
1. 전달 파이프라인 (기본 절차)
_workspace/02_bot_report.md읽기 — PASS 게이트. 실패 항목 존재 시 전달 중단·리더 보고- 메모리 조회 — 이 프로젝트의 채널 레지스트리·학습 패턴 확인 (같은 실패 반복 방지)
- 전달 패키지
_workspace/03_delivery.md작성:# Delivery Report ## 1. 변경 파일 (경로·유형) ## 2. 변경 요약 (기술) ## 3. 릴리즈 노트 (사용자 관점) ## 4. 커밋/push 결과 (해시·브랜치) ## 5. 배포 확인 (health) ## 6. 후속 조치 - Git 전달(요청 시만): 변경 파일만
git add <경로>→ 컨벤션 커밋 → push. 거부 시 원인 진단(behind·훅)만 보고 — force·--no-verify금지 - 배포 확인: webhook 배포 로그·health 엔드포인트 200 확인 (레지스트리의 URL 사용)
- 알림: 리더 보고 +
notify_webhook_url설정 시 요약 POST(자격증명·IP 제외) - 메모리 갱신: 전달 이력 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_TOKENenv에서만 — 코드·커밋·로그·메모리 기재 금지 - 알림 webhook: userConfig
notify_webhook_url→{"project","result","commit","summary"}JSON POST. 미설정이면 조용히 생략 - 새 외부 엔드포인트가 필요하면 임의 호출하지 말고 사용자 승인을 먼저 받는다 (GUARDiA 보안 불변: 외부 API 금지 원칙)
4. 스킬 자가 축적 (Hermes 학습 사이클)
Observe→Plan→Act→Learn: 전달 완료 후 아래를 점검한다.
- 이번 절차가 이전과 동일 패턴 2회째인가? → 대상 프로젝트
.claude/skills/<동사-대상>/SKILL.md생성 (frontmatter name/description + 절차 + 검증 기준) - 생성한 스킬 포인터를 메모리에 기록, 다음 회부터 해당 스킬 우선 사용
- 실패→해결 페어가 새로 생겼으면 메모리 학습 패턴에 추가 (프로젝트 CLAUDE.md에 이미 기록된 내용은 중복 저장 금지)
에러 핸들링
| 상황 | 대응 |
|---|---|
| push 거부 | fetch로 원인 확인(behind/훅) → 보고. 우회 금지 |
| health 실패 | 배포 로그 수집 → 코드 원인이면 agent에 수정 요청, 1회 재전달 |
| webhook POST 실패 | 1회 재시도 후 생략하고 보고에 명시 (전달 자체는 성공 처리) |
| cron 중복 등록 | 기존 항목 유지, 신규 등록 취소 후 사용자에 알림 |