dev/skills/evolution/SKILL.md
Nova 자체를 진화시킬 때 사용한다. — MUST TRIGGER: /nova:evolve 호출, 외부 기술 동향을 Nova에 반영해야 할 때, Nova 메타-개선(규칙/스킬/훅 구조 변경) 작업.
npx skillsauth add TeamSPWK/nova evolutionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/nova:evolve 커맨드의 핵심 파이프라인을 정의한다.
Scanner → Filter → Proposal → [Builder → Gate Chain → Merge]
(--apply/--auto만)
Scanner는 WebSearch + GitHub Search API (gh api) 두 채널을 병렬 사용한다. gh api는 star/topic 같은 정량 시그널을 수집하고, WebSearch는 changelog/블로그 같은 서술 정보를 수집한다.
WebSearch 키워드:
site:docs.anthropic.com Claude Codesite:anthropic.com/blogClaude Code changelog latestClaude Code hooks MCP updategh api 쿼리:
gh api 'search/repositories?q=org:anthropics+claude-code&sort=updated&per_page=10'
gh api 'search/repositories?q=org:anthropics+language:TypeScript&sort=updated&per_page=10'
체크 포인트:
WebSearch 키워드:
Claude Code plugin communityCLAUDE.md best practices 2026Claude Code custom agentsgh api 쿼리:
gh api 'search/repositories?q=claude+code+skills+in:name,description&sort=stars&per_page=10'
gh api 'search/repositories?q=topic:claude-code&sort=stars&per_page=10'
gh api 'search/repositories?q=awesome-claude-code&sort=stars&per_page=10'
gh api 'search/repositories?q=claude+code+mcp+in:name,description&sort=stars&per_page=10'
체크 포인트:
WebSearch 키워드:
aider changelog latestcursor rules updateAI coding assistant comparison 2026LLM harness engineeringgh api 쿼리 (2개 — 다양성 의무 충족 후 노이즈 회피):
gh api 'search/repositories?q=aider-chat+in:name,description&sort=stars&per_page=10'
gh api 'search/repositories?q=cursor+rules+in:name,description&sort=stars&per_page=10'
총 8개 쿼리 (Anthropic 2 + 생태계 4 + 하네스 2). cline/continue.dev/windsurf는 WebSearch 키워드로 커버. 추가 쿼리 필요 시
--sources옵션으로 확장 가능.
체크 포인트:
WebSearch와 gh api 채널을 다음 기준으로 평가한다:
| 채널 결과 | 분류 |
|---|---|
| 정상 응답 + 결과 0건 | 0건 |
| HTTP 200 + 결과 ≥1건 | 정상 |
| HTTP 403 (rate-limit) | 실패 |
| HTTP 5xx / network timeout | 실패 |
| gh: command not found / 미인증 | 실패 |
| WebSearch 도구 호출 실패 | 실패 |
Baseline fallback 트리거: (WebSearch == 실패 OR WebSearch == 0건) AND (gh api 8개 쿼리 모두 실패 OR 모두 0건). 이 조건 충족 시 dev/docs/evolve-baseline.md에서 nova_applied=false 항목을 로드해 Phase 2 입력으로 전달. 보고서 헤더에 ⚠ Baseline fallback — Live scan failed (reason: {WebSearch={상태}, gh_api={실패 N건/0건 N건}) 명시.
부분 실패(WebSearch 정상 + gh api 일부만 실패)는 fallback 트리거 X — 사용 가능한 데이터로 계속 진행하되 Phase 1 출력에 skip 카운트 노출.
Baseline 갱신 책임은 dev/docs/evolve-baseline.md 참조.
Filter는 3단계 직렬로 동작한다: ① 신호 강도 임계값 → ② Ledger 매칭(중복 흡수 차단) → ③ MUST/MUST NOT 조건.
| 조건 | 통과 기준 |
|---|---|
| GitHub 레포 | stars ≥ 100 OR updated_within_180d |
| Anthropic 공식 (docs.anthropic.com, github.com/anthropics/*, anthropic.com/blog) | 임계값 면제 (무조건 통과) |
| --min-stars N 오버라이드 | N>0이면 임계값을 N으로 대체 |
| --min-stars 0 | 임계값 비활성화 — 모든 GitHub 레포 통과 (노이즈 폭증 주의, 디버그/탐색용) |
낮은 임계값은 노이즈, 너무 높으면 신생 도구 누락 — 100은 시작점이며 측정 후 조정한다.
각 발견 항목에 대해 dev/docs/proposals/_ABSORBED.md를 조회:
source_url substring 매칭 (status≠deprecated 한정) → 이미 흡수 표기 후 제안 제외title/description 키워드 ↔ pattern_slug fuzzy 매칭(단어 단위) → 잠재 중복 표기. 자동 폐기 X — Phase 3 제안서 항목으로 포함하되 ⚠ ledger 잠재 중복: {pattern_slug} 주석을 제안서 헤더에 명시. 사용자는 다음 사이클에서 별도 응답할 필요 없으며, 제안서를 읽고 직접 채택/폐기 판단 (수락 시 일반 머지 흐름, 폐기 시 제안서 삭제).docs/proposals/*-evolve-scan.md)의 비채택(drop/defer/⊘) 항목과 주제가 같으면 → 직전 비채택 재제출: {slug} ({기각 사유}) 표기. 직전 기각 사유를 반박하는 새 근거 없이는 제안에서 제외. 동일 논점이 한 사이클 만에 재등장(예: tree-sitter 컨텍스트 압축맵 graphify→RepoMapper)하는 중복 필터 누락을 차단한다. ledger는 "흡수한 것", 본 단계는 "기각한 것"을 함께 기억해 양방향 중복을 막는다..claude/rules/ 우선순위를 침범하는 변경WebSearch-only 학술 인용(arxiv 등)·개인 블로그는 환각/오인용/결론왜곡 위험이 높다. 2026-06-01 사이클에서 ai-eng 카테고리(WebSearch-only)의 arxiv 인용 3건 전부가 결함으로 드러났다 — 제목 불일치 1건, 결론 상반 1건(논문이 "process 검증은 일관된 개선 없음·고분산"인데 "검증축 추가로 품질 향상"으로 정반대 인용), 맥락 차이 1건. 검증 없이 --apply로 갔으면 틀린 근거가 그대로 머지됐다.
| 출처 유형 | 1차 대조 의무 |
|---|---|
| WebSearch-only 학술(arxiv 등)·개인 블로그 | 필수 — 제안서 진입 전 WebFetch로 제목·결론을 대조. 인용 주장과 불일치/상반/미확인 시 단독 근거 금지(보조 근거 강등 또는 제외) |
| Anthropic 공식 호스트(docs.anthropic.com / github.com/anthropics/* / CHANGELOG) | 경량 확인 (이미 신호강도 면제 대상) |
| stars≥임계 GitHub 레포 | 경량 확인 (gh api로 실재·갱신일 확인으로 충분) |
전수가 아니라 고위험 출처 한정. 실패가 집중된 영역(WebSearch-only 학술/블로그)만 의무화해 비용/지연을 통제한다. low effort 세션에서 의례적 고무도장으로 퇴화하지 않도록, **대조 미수행 인용은 자동으로 보조 근거 강등(default-deny)**이 기본값이다.
변경 가능 범위:
docs/eval-checklist.md — 체크리스트 항목 추가/수정docs/nova-rules.md — 규칙 문구 개선 (의미 변경 불가)docs/templates/*.md — 템플릿 보완commands/*.md — 오타 수정, 문구 개선 (로직 변경 불가)README.md, README.ko.md — 문서 개선변경 불가:
hooks/*.sh — 세션 훅은 patch로 변경 불가skills/*/SKILL.md — 스킬 로직 변경 불가mcp-server/src/** — 서버 코드 변경 불가변경 가능 범위:
hooks/*.sh — 훅 로직 개선commands/*.md — 옵션 추가, 검증 기준 추가skills/*/SKILL.md — 스킬 로직 개선docs/nova-rules.md — 규칙 추가/변경 (session-start.sh 동기화 필수)mcp-server/src/** 변경Gate 1 (Tests): bash tests/test-scripts.sh 실행
git restore .으로 롤백Gate 2 (Evaluator): /nova:review --fast 실행
Gate 3 (수준별 분기):
--auto: 커밋 메시지 자동 생성, git add + git commit--auto: 브랜치 생성 + PR + _ABSORBED.md ledger 행 appendminor 머지 또는 major 사용자 결재 직후:
| {pattern_slug} | {source_url} | v{current_version} | {nova_artifact_path} | active |
pattern_slug — kebab-case, 외부 도구 일반명 (예: aider-repo-map, cursor-rules-mdc)nova_artifact_path — 흡수 결과물 경로 (예: skills/new-skill/SKILL.md)활성화:
/nova:evolve --from-observations
사용자의 실제 행동 패턴에서 CPS Problem 초안을 제안한다. 외부 스캔(WebSearch) 없이 내부 관찰 데이터만 사용한다.
[1] analyze-observations.sh 호출
↓
[2] Top N 반복 패턴 추출 (--pattern 선택)
↓
[3] 패턴 → CPS Problem 초안 드래프트
↓
[4] 사용자 승인 요청 (자동 승격 금지)
↓
[5] 승인된 경우만 → Phase 3 Proposal 진입
# 도구 호출 빈도 분석 (기본)
bash scripts/analyze-observations.sh --top 10 --pattern tool-frequency
# 시퀀스 패턴 분석
bash scripts/analyze-observations.sh --top 5 --pattern sequence
# 반복 실패 패턴 분석
bash scripts/analyze-observations.sh --top 10 --pattern failures
docs/proposals/YYYY-MM-DD-from-observations.md에 저장하고 대기한다/schedule로 cron 등록하여 자동 실행할 수 있다:
/schedule "Nova Self-Evolution 스캔" --cron "0 21 * * 1,3,5" --command "/nova:evolve --auto"
위 예시: 매주 월/수/금 06:00 KST (UTC 21:00)에 자동 스캔 + 자율 범위 적용
testing
Nova 방법론을 실제 프로젝트에서 검증해 개선 포인트를 찾을 때. — MUST TRIGGER: 신규 Nova 기능 검증, 사용자가 실전 피드백을 요청할 때, 워크트리 격리 환경에서 방법론을 리허설할 때.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------