incidents-to-agent
반복 실패 패턴을 분석해 새 에이전트 후보를 생성한다
- License 许可
- MIT
- 最近更新
- 2026-10-15
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- incidents-to-agent
- triggers
- [ "/incidents-to-rule 스킬이 Step 6 에서 체인 호출 (자동)", { "수동": "최근 incidents 에서 새 agent 필요성 판단해줘" } ]
- description
- 반복 실패 패턴을 분석해 새 에이전트 후보를 생성한다
03 SKILL.md 正文
Skill: incidents-to-agent
목적
rule 로 해결 불가한 반복 실패 패턴을 분석해 전문 에이전트 후보를 생성한다.
새 에이전트 감지 기준 (3가지 모두 충족 시만)
- 동일 작업 유형 기존 에이전트 self-review 실패 3회 이상
- 작업 유형이 한 문장으로 설명 가능하고 기존 에이전트와 명확히 구분
- 기존 에이전트 + 하위 AGENTS.md 조합으로 해결 불가능
입력
trail/incidents/auto-*.md(status in {pending, processed}, count >= 3,agent_eligible != false)- 기존
trail/agent-candidates/<hash>.md(decision 확인용)
실행 절차
Step 1: 후보 식별
각 auto-*.md 를 순회:
count >= 3체크- frontmatter
agent_eligible확인:false→ 에이전트 후보에서 제외 (bug/artifact — hook 소스 수정 등 다른 경로로 해결)true또는unknown또는 필드 없음 → 통과 (기존 동작 유지)
- 기존 candidate
<pattern_hash>.md존재? → decision != pending 이면 skip - 남은 건을 후보 리스트에 추가
왜 이 필터인가:
count >= 3만 보면 hook 소스의 regex false-positive 같은 버그성 패턴도 agent 후보로 올라와 사용자가 매번 decline 해야 한다.agent_eligible: false는/incidents-to-rule분석 단계에서 기록되며, 여기서 필터링한다. 기존 incident 파일 (필드 없음) 은unknown으로 해석되어 기존 동작을 깨지 않는다 (backfill 불요).
candidate stub 생성:
# plugin root 해소 (Claude Bash 도구 환경에서는 ${CLAUDE_PLUGIN_ROOT} 가 unset)
REIN_PLUGIN_ROOT="$(claude plugin path rein-core 2>/dev/null || echo "$HOME/.claude/plugins/marketplaces/rein/plugins/rein-core")"
python3 "$REIN_PLUGIN_ROOT/scripts/rein-mark-agent-candidate.py" create \
--hash <pattern_hash> \
--source-incident <auto-*.md 파일명> \
--role-one-liner "<추정 역할 한 문장>"
Helper path 는 plugin install 환경에서 plugin root 의
scripts/(위 resolver block 의$REIN_PLUGIN_ROOT결과 기준), 메인테이너 dogfood (plugin root env unset) 에서는scripts/rein-mark-agent-candidate.py로 fallback (RES-1 resolver 가 동일 파일 가리킴).
Step 2: Batch 사용자 결정
후보가 1건 이상이면 한 번의 AskUserQuestion (multiSelect) 호출:
- 질문: "agent 후보로 승격할 건을 선택하세요 (미선택은 declined 처리)"
- 옵션: 후보별로
<hash> — <role_one_liner> (count=N) - 후보 0건이면 이 단계 skip.
Step 3: 결정 반영
각 후보에 대해:
- 선택됨 →
decide서브커맨드로approved - 선택 안 됨 →
decide서브커맨드로declined
# plugin root 해소 (Claude Bash 도구 환경에서는 ${CLAUDE_PLUGIN_ROOT} 가 unset)
REIN_PLUGIN_ROOT="$(claude plugin path rein-core 2>/dev/null || echo "$HOME/.claude/plugins/marketplaces/rein/plugins/rein-core")"
python3 "$REIN_PLUGIN_ROOT/scripts/rein-mark-agent-candidate.py" decide \
--hash <hash> --decision <approved|declined> \
--reason "<사람이 제시한 이유>"
Step 4: 검증
approved 후보가 있으면:
trail/index.md에 "agent-candidates 승격 대기" 한 줄 추가- 사용자에게 "다음 단계:
/promote-agent <hash>로 정식 에이전트 초안 작성" 안내
Step 5: approved / declined 파일 삭제 (정책)
결정이 approved (agent 승격 대기) 또는 declined 로 종결된 auto-*.md 는 삭제한다:
rm trail/incidents/auto-<hook>-<hash>[-N].md
이유:
- approved 건은
trail/agent-candidates/<hash>.md가 스텁이자 source of truth. 원본 incident 파일은 중복 - declined 건은
blocks.jsonl에 해당 엔트리가 남아 있으면 aggregate 가 다음 세션에서 재생성하는 stale-surfacing 문제 발생. 파일 삭제가 가장 단순한 해소 수단
approved 후보에 대해서는 trail/agent-candidates/<hash>.md 를 확인해 decision: approved + source_incident 가 기록돼 있는지 검증한 뒤 원본 삭제.
재평가 (opt-in)
기존 declined 후보를 다시 검토하려면 수동으로 해당 파일의 decision 을 pending
으로 편집한 뒤 본 스킬 재실행.
완료 기준
[ ] 식별된 후보 모두 candidate 파일 생성 (또는 skip)
[ ] 후보 있으면 batch AskUserQuestion 호출 완료
[ ] 각 후보의 decision 갱신 (approved/declined)
[ ] approved 건은 index.md 에 반영
[ ] approved/declined 로 종결된 auto-*.md 원본 삭제 (Step 5)
주의
- 에이전트 수 증가 = 조정 비용 + 토큰 비용 + 충돌 위험
- 불확실하면 에이전트 생성보다 규칙 추가 (/incidents-to-rule) 를 선택
- 본 스킬은 사람의 최종 승인 없이 에이전트를 활성화하지 않는다 (
/promote-agent전용)
04 同仓库更多 Skills
sample-skill
暂无简介
repo-audit
저장소 전체 상태 점검. 오래된 규칙, 누락 테스트, 비활성 에이전트, trail 일관성 확인.
promote-agent
에이전트 후보를 정식 에이전트로 승격. 사람 승인 이후에만 실행.
pr-review-fixer
PR 리뷰 코멘트를 읽고 수정 사항을 자동으로 적용한다
persona
페르소나 프리셋 선택·해제 + 질문-답변 커스텀 프리셋 생성. "페르소나 골라줘/만들어줘/바꿔줘/꺼줘" 류 요청에서 호출.
parallel-execute
활성 plan 의 `## 실행 전략`(depends_on/mode/scope v2) 을 읽어 의존 위상정렬로 웨이브를 유도하고, 각 웨이브의 독립 edit_only 태스크를 같은 작업 트리에서 서브에이전트로 병렬 실행, mutating·의존 태스크는 순차 실행한다. 부모(메인 세션)가 웨이브 단위로 검증·테스트·커밋. 호스트가 병렬 dispatch 불가 시 순차 fallback 으로 degrade.