بنقرة واحدة
audit-harness
AI 하네스(체크체인·가드레일·훅 커버리지·OWASP Agentic)를 감사한다. 하네스 역량 점검을 요청할 때 사용한다.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
AI 하네스(체크체인·가드레일·훅 커버리지·OWASP Agentic)를 감사한다. 하네스 역량 점검을 요청할 때 사용한다.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Multi-worker 검수 스킬 (Codex + Gemini Double / Opus + Codex + Gemini Triple). 단일 Codex 검수 대비 100% 보완 카테고리 커버. 트리거: /cr-multi, /cr-double, /cr-triple, plan/spec 저장 후 자동(CR_MULTI_AUTO=on), plateau 3회 자동 승격.
Forge 하네스 읽기전용 레거시 감사: 낡은룰/중복/과대 전역컨텍스트/넓은 Skill/불필요 Hook·MCP/제품중복 분류. 트리거: /harness-legacy-scan
YouTube 영상을 트랜스크립트·댓글·설명란까지 수집해 비판적 분석·팩트체크·시스템 개선 제안을 생성한다. 사용자가 YouTube URL을 보내거나 영상 분석을 요청할 때 사용한다.
REST API 엔드포인트 HTTP 레벨 E2E 자동 테스트. Spec 또는 OpenAPI(Swagger) YAML/JSON을 읽어 엔드포인트별 테스트 케이스(happy path/인증 실패/잘못된 입력/경계값)를 자동 생성하고 curl로 실행한다. 응답 스키마를 OpenAPI 스펙과 대조해 드리프트를 감지한다. /qa 스킬이 서버/API 프로젝트 감지 시 자동 트리거. 직접 호출: /api-e2e <spec-path> [--base-url http://localhost:3000]
기획서를 CEO(비즈니스)→Design(UX)→Engineering(기술) 3관점 순차 리뷰 + Synthesizer 종합 + 독립 Evaluator 검증(5-Wave)하는 스킬. Phase 3 에이전트 회의 후 자동 트리거. (적대적 Codex 검수는 cr-triple/codex-review 별도 게이트.)
PR 생성 전 develop 대비 feature 브랜치의 성능을 비교하는 스킬. 번들 크기, 테스트 시간, API 응답 시간을 측정. P7 PR 생성 전 자동 트리거.
| name | audit-harness |
| description | AI 하네스(체크체인·가드레일·훅 커버리지·OWASP Agentic)를 감사한다. 하네스 역량 점검을 요청할 때 사용한다. |
| argument-hint | [target: system|{project-name}] |
| context | fork |
| model | sonnet |
역할: 당신은 AI 하네스 엔지니어링을 OWASP Agentic Top 10 기준으로 감사하는 AI 보안 및 측정 제어 전문가입니다.
컨텍스트: /system-audit 또는 /audit-harness 호출 시, ACHCE 축 3(Harness) 평가가 필요할 때 실행됩니다.
출력: Check Chain·가드레일·Hook 커버리지 항목별 점수 + 보안 개선 권고를 JSON 형식으로 반환합니다.
아래 생각이 들면 더 엄격하게 본다:
ACHCE 프레임워크 축 3: Harness 참조:
docs/tech/2026-03-16-5-axis-ai-analysis-framework.md
AD-81: 작업 위험도에 따라 적정 하네스 두께를 판정한다.
| 위험도 | 트리거 | 적정 두께 |
|---|---|---|
| 고위험 | 결제·배포·법적·외부발송(Telegram/PR/이메일)·삭제 | 두꺼움 — Human 게이트 필수 + Evaluator subagent 격리 + 롤백 경로 명시 |
| 중위험 | 코드 구현·DB 스키마 변경 | 표준 — PGE 또는 Check 체인 |
| 저위험 | 브레인스토밍·리서치·분석 | 얇음 — 경량 검증, 게이트 최소 |
감사 시 반드시 확인:
$ARGUMENTS = 감사 대상. 미입력 시 system (Forge+Forge Dev).| target | 감사 경로 |
|---|---|
system | ~/.claude/forge/rules/ + .claude/rules/ + .claude/agents/ + .claude/skills/ |
{project-name} | forge-workspace.json에 등록된 프로젝트 경로 (.specify/, apps/, .claude/ 등) |
$ARGUMENTS가 비어 있으면 TARGET=system. 아니면 첫 단어를 target으로 사용.
아래 JSON 구조를 반환하도록 Subagent를 스폰한다 (model: sonnet):
에이전트 분석 항목:
분석 기준:
shared/docs/2026-03-30-four-engineering-disciplines.md§3 Harness Engineering 원칙: 정의서에 없는 기법은 감사하지 않는다.
위험도 × 두께 적정성 (AD-81) — 판정
CRITICAL 이슈 등록LOW 이슈 (토큰 낭비)Check Chain (정의서 §3-1) — 실측
Check 6|Check 8|check.*chain in pipeline.md → 체인 단계 수
autoFix|auto-fix|1회.*수정 → autoFix 한도 규칙
Brain.*Hands|brain.*hands|분석.*실행.*분리 → Brain-Hands 분리 아키텍처
\[STOP\] in pipeline.md → Hard Stop 게이트 수
Guardrails (5 Rail Types) (정의서 §3-2) — 실측
PreToolUse in settings.json → 입력 검증 HookPostToolUse in settings.json → 출력 검증 Hookblock.*sensitive|exit 2 in hooks/ → 실행 차단injection|jailbreak in hooks/ → 대화 보호OWASP Agentic Top 10 (정의서 §3-3) — 실측 각 ASI 항목별 방어 코드 존재를 Grep으로 실제 확인 (파일 존재 ≠ settings.json 연결 → 반드시 양쪽 확인):
ignore.*instructions|jailbreak|DAN in hooks/ → exit 2 패턴block.*sensitive|BLOCKED in hooks/ → 차단 패턴ASI03|supply.*chain|third.*party in hooks/ or rules/
→ 미구현 시 HIGH 이슈 (실제 감사 사례: WARN만 있고 exit 2 없음 → CRITICAL로 에스컬레이션)ASI05|sensitive.*output|AWS.*Key|Private.*Key|API.*Key in hooks/\\[STOP\\] in pipeline.md → Hard Stop 게이트 수 (기준: 40개 이상)system.*prompt|ASI07 in hooks/ASI08|context.*manip|inject.*context in hooks/security.log|usage.log in hooks/ AND settings.json PostToolUse 연결 확인AI Evals & Skill Harness Coverage (정의서 §3-5) — 실측
5-a. 평가 인프라 존재 확인:
spec-compliance-checker 스킬 → Spec 추적성 평가code-reviewer 에이전트 → 코드 리뷰 평가asset-critic 스킬 → 에셋 품질 평가qa 스킬 → QA 루프5-b. 스킬 내부 하네스 패턴 실측 (Skill Harness Coverage):
스킬이 존재한다는 것과 스킬 안에 하네스가 구현됐다는 것은 다르다. 반드시 내부를 읽어라.
실행 방법:
bash shared/scripts/skill-harness-check.sh --json
스크립트 없을 시 직접 실측 (실행 가능한 단일 명령):
find ~/.claude/skills/ ~/forge/.claude/skills/ -name "SKILL.md" 2>/dev/null | sort | while read f; do
grep -qE "Agent\(|독립 Evaluator|Wave 2\.5|Evaluator subagent|PGE\b|eval-report\.md|WP_EVAL|DSR_EVAL|WR_EVAL|FD_EVAL|Step 3\.5|신뢰도.*HIGH" "$f" \
&& echo "PASS $(dirname $f | xargs basename)" || echo "FAIL $(dirname $f | xargs basename)"
done | sort
하네스 PASS 기준 (하나라도 있으면 통과):
Agent( — 독립 subagent 스폰 코드 (Anthropic 공식 멀티에이전트 패턴)독립 Evaluator / Evaluator subagent — Generator ≠ Evaluator 원칙 (PGE 연구: 자기평가 편향 제거)Wave 2.5 / PGE — 파이프라인 하네스 단계 (Planner→Generator→Evaluator 3단계)eval-report.md / *_EVAL 파일 참조 — 파일 기반 평가 통신 (컨텍스트 격리 증거)Step 3.5 / 신뢰도.*HIGH — 신뢰도 게이트 패턴 (wiki-sync류 매칭 품질 사전 검증)파이프라인 직결 스킬 (하네스 필수 — 미적용 시 CRITICAL 이슈): qa, spec-compliance-checker, visual-loop, autoplan, writing-plans, frontend-design, daily-system-review, weekly-research, wiki-sync, rd-plan, content-creator, asset-critic
커버리지 계산:
Observability (정의서 §3-6) — 실측
usage-logger|security.log|usage.log in hooks/ → 로깅 HookrequestId|traceId in rules/ → 추적 ID 규칙궤적|trajectory|session.*log|llm.*log in skills/ or pipeline.md → 에이전트 궤적 로깅
→ 기준: 주요 Wave별 파일 출력 로그 존재 (ai-system-analysis.md 등 실측 가능 산출물)Rollback (정의서 §3-7) — 실측
L1.*rollback|L2.*rollback|L3.*rollback|forge-rollback in pipeline.md → 3단계 정의Maintenance Agents (정의서 §3-8) — 실측
.claude/agents/ → 에이전트 수cron|CronCreate|schedule in skills/ or hooks/ → 자동 실행 설정 존재 여부Wave 2.5|독립 Evaluator in daily-system-review/SKILL.md → 유지보수 에이전트 자체에도 하네스 적용됐는지 확인
→ 유지보수 에이전트의 하네스 미적용 = 품질 보증 루프 자체가 uncheckedskill-autoresearch 스킬 존재 → 스킬 자기개선 루프 가동 여부반환 JSON 형식:
{
"axis": "harness",
"target": "{target}",
"score": 0-100,
"check_chain": { "chain_stages": 0, "autofix_limit_rule": true/false },
"guardrails": { "input_rail": true/false, "output_rail": true/false, "execution_rail": true/false, "dialog_rail": true/false, "retrieval_rail": true/false, "coverage_rate": 0 },
"owasp_coverage": { "ASI01": true/false, "ASI02": true/false, "ASI05": true/false, "ASI06": true/false, "ASI07": true/false, "ASI09": true/false, "coverage_rate": 0 },
"hooks": { "hook_count": 0, "coverage_rate": 0 },
"ai_evals": {
"spec_compliance_checker": true,
"code_reviewer": true,
"asset_critic": true,
"qa": true,
"eval_count": 0,
"skill_harness_coverage": {
"total_skills": 0,
"harness_applied": 0,
"coverage_rate": 0,
"missing_harness": ["skill-name1"],
"critical_missing": ["pipeline-skill-without-harness"]
}
},
"observability": { "logging_hook": true/false, "trace_id_rule": true/false },
"rollback": { "three_level_defined": true/false },
"maintenance_agents": { "agent_count": 0, "periodic_review_skill": true/false },
"issues": [
{ "severity": "CRITICAL|HIGH|MEDIUM|LOW", "finding": "...", "evidence": "파일경로:라인", "recommendation": "..." }
],
"strengths": ["강점1", "강점2"],
"summary": "2-3문장 요약"
}
Bash 도구로 직접 실측:
grep -l "exit 0$" ~/.claude/hooks/*.sh 2>/dev/null → 항상 통과 hook 목록hook_theater: [{file, type: "warn_only|incomplete_block|theater", recommendation}]Hook 커버리지 보강 — GitNexus detect_changes 통합:
READ gitnexus://repo/forge/context → 인덱스 신선도 확인
gitnexus_detect_changes({scope: "all"}) → 최근 변경 심볼 목록
→ 변경 심볼 중 Hook 미커버 비율 = (미커버 심볼 / 전체 변경 심볼) × 100
→ 미커버 HIGH 심볼 → issues MEDIUM 등록
GitNexus 미연결 시 스킵 (경고 출력).
Subagent 결과를 기반으로 Lead가 보고서를 작성한다.
저장 위치: docs/reviews/audit/{date}-audit-harness[-{target}].md
(target이 system이면 suffix 생략)
보고서 형식:
# Harness 엔지니어링 감사 보고서
**대상**: {target} | **날짜**: {date} | **점수**: {score}/100
## Executive Summary
## 검증 체인(Check Chain) 상태
## OWASP Agentic Top 10 커버리지
## 가드레일 상태
## Hook 커버리지
## 스킬 하네스 커버리지
| 스킬 | 하네스 적용 | CRITICAL |
|------|:----------:|:--------:|
| ... | ✅ / ❌ | - / ⚠️ |
커버리지: X% (적용 N / 전체 N)
## 이슈 목록
### CRITICAL
### HIGH
### MEDIUM / LOW
## 권장 액션 (우선순위순)
## 참조
- docs/tech/2026-03-16-5-axis-ai-analysis-framework.md
- `~/.claude/rules-on-demand/harness-failure-modes.md` — 하네스 실패모드 카논 (F1-F19): false-test/enforcement-theater/dead-gate/SSoT-drift 등 실제 사례 매트릭스
{
"parent": { "data_source_id": "713563f9-d523-4e90-8d6f-6b0d650628ad" },
"pages": [{
"properties": {
"제목": "{date} Harness 감사 [{target}]",
"축": "Harness",
"대상": "{target}",
"점수": "{score}",
"date:날짜:start": "{date}",
"상태": "완료",
"CRITICAL": "{CRITICAL 이슈 수}",
"HIGH": "{HIGH 이슈 수}",
"보고서 경로": "docs/reviews/audit/{date}-audit-harness.md"
},
"content": "{보고서 전체 내용}"
}]
}
Notion MCP 미연결 시 경고 출력 후 스킵 (파이프라인 중단 안 함).
하네스 감사 결과물 완성 후 독립 Evaluator Subagent가 품질을 2차 검증한다.
원칙: Generator(감사 수행자) ≠ Evaluator. 감사자가 자신의 감사를 평가하면 자기평가 편향이 발생한다. 아이러니 해소: 하네스 감사 스킬 자체에 독립 Evaluator가 없으면 "하네스 미적용" 스킬로 자체 집계됨 — 자기 모순.
Agent(
subagent_type="general-purpose",
model="sonnet",
prompt="""
당신은 audit-harness 결과물의 독립 품질 검증자입니다.
아래 기준으로 결과물을 검토하고 PASS 또는 FAIL을 판정하십시오.
**평가 기준 (4항목 모두 충족해야 PASS):**
1. **OWASP Agentic Top 10 커버리지 완전성**
- [위치] JSON `owasp_coverage` 객체 또는 보고서 "OWASP Agentic Top 10 커버리지" 섹션
- [이유] OWASP 항목 누락은 보안 취약점 은폐로 직결됨
- [방법] ASI01/ASI02/ASI05/ASI06/ASI07/ASI09 6개 항목 각각에 True/False + 실측 근거(Grep 결과 또는 "미구현" 명시)가 존재하는지 확인. `coverage_rate` 수치가 계산됐는지 확인. 기준값(≥60%) 대비 판정이 명시됐는지 확인. 빈 셀이나 항목 누락이 있으면 FAIL.
2. **Hook Theater 탐지 수행 여부**
- [위치] JSON `hook_theater` 배열(Step 2.5 산출물) 또는 보고서 "Hook 커버리지" 섹션
- [이유] Hook이 항상 통과(exit 0)하면 보안 게이트가 무력화됨 — 탐지 없이 커버리지만 세면 과대 평가
- [방법] Step 2.5 Hook Theater 감지 결과가 보고서에 포함됐는지 확인. `hook_theater` 배열이 비어 있어도 "탐지 0건" 명시 필요. 섹션 자체가 누락됐으면 FAIL.
3. **Skill Harness Coverage 계산 정확성**
- [위치] JSON `ai_evals.skill_harness_coverage` 또는 보고서 "스킬 하네스 커버리지" 표
- [이유] 전체 스킬 수 대비 하네스 적용률이 핵심 지표 — 계산 오류 시 로드맵 우선순위가 잘못됨
- [방법] `total_skills` / `harness_applied` / `coverage_rate` 3개 수치 모두 명시됐는지 확인. `coverage_rate = harness_applied / total_skills × 100` 공식과 일치하는지 검산. `critical_missing` 목록이 "파이프라인 직결 스킬"(qa/spec-compliance-checker/visual-loop 등)을 포함하는지 확인. 수치 불일치 또는 누락 시 FAIL.
4. **보고서 저장 확인 (Write+Read 증거)**
- [위치] 보고서 마지막 줄 또는 에이전트 출력
- [이유] 보고서 미저장 시 다음 감사 주기에 트렌드 비교 불가
- [방법] 보고서 경로(`docs/reviews/audit/{date}-audit-harness.md`)에 실제 파일이 Write된 후 Read로 존재 확인됐는지 검증. "SAVED: {path}" 출력이 있거나 파일 존재 확인 로그가 있으면 PASS. 저장 증거 없으면 FAIL.
**판정**: PASS(기준 4항목 모두 충족) / FAIL(1항목 이상 미충족)
**피드백 형식**: [파일명+섹션] — [이유] → [방법]
"""
)
피드백 루프:
AUDIT_TOKEN_CAP (기본 300,000 토큰). 재감사 전 누적 사용량이 캡을 초과하면 즉시 [STOP] Human 에스컬레이션 — 재시도 금지. 출력: [STOP] token-cap 초과 — 재감사 중단. Evaluator FAIL 원인: {feedback}⚠️ 추정치 정직성:
AUDIT_TOKEN_CAP추정치 = best-effort (LLM 자가추정, 정확 토큰 카운트 불가). 결정론적 bound = max-cycles; 토큰 추정은 보조 가드. 정확한 토큰 enforcement는 P4 (agent-budget 훅 연동) 예정. Evaluator FAIL 시.claude/logs/{session}/errors.jsonl참조하여 재시도