executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
sap-sessionEvidence Loop — SAP 운영 진단을 라이브 접근 없이 "확인→수정→재확인" 루프로 수행. 18개 sapstack 모듈과 15개 컨설턴트 에이전트를 오케스트레이션하는 상위 스킬. Turn-aware 응답 포맷 (Hypothesis → Follow-up → Verify → Fix + Rollback). v1.6.0: PM/QM/WM/EWM 모듈 + sap-tutor/hcm/tr/pm/qm/ewm 에이전트 라우팅 추가.
Independent GitHub snapshot · Automated classification · Original documentation governs
대기업 SAP 환경에서는 라이브 시스템 접근이 금지됩니다. 그래서 AI는 실행기가 될 수 없고, 조언자에 머물 수밖에 없습니다. 이 제약을 제거하는 대신 수용하면서도 "조언봇"을 넘어서는 방법이 Evidence Loop입니다:
즉, Human-in-the-loop 비동기 루프입니다. 각 턴 사이에 몇 분·몇 시간·며칠이 걸려도 좋고, 다른 운영자가 이어받아도 맥락이 유지됩니다.
┌── Turn 1 · INTAKE ───────────────────────────────────┐
│ 운영자/엔드유저가 초기 증상 + 최소 증거를 업로드 │
│ 산출: Evidence Bundle 1개 │
│ 세션 상태: intake → hypothesizing │
└──────────────────────────────────────────────────────┘
↓
┌── Turn 2 · HYPOTHESIS ───────────────────────────────┐
│ AI가 2~4개 가설 + 각 가설의 반증 조건 + Follow-up │
│ Request(운영자가 다음 수집할 체크리스트) 생성 │
│ 산출: hypotheses[] + followup_request 1개 │
│ 세션 상태: hypothesizing → awaiting_evidence │
└──────────────────────────────────────────────────────┘
↓
┌── Turn 3 · COLLECT ──────────────────────────────────┐
│ 운영자가 Follow-up Request의 체크리스트를 SAP에서 │
│ 실행하여 새 Evidence Bundle 업로드 │
│ 산출: Evidence Bundle 1개 추가 │
│ 세션 상태: awaiting_evidence → verifying │
└──────────────────────────────────────────────────────┘
↓
┌── Turn 4 · VERIFY ───────────────────────────────────┐
│ AI가 새 증거로 가설을 확정/기각. 확정 시 Fix + 필수 │
│ Rollback 플랜. 기각 시 새 가설 → Turn 2 재진입. │
│ 산출: verdict 1개 │
│ 세션 상태: verifying → (resolved | hypothesizing) │
└──────────────────────────────────────────────────────┘
세부 포맷과 예시는 references/turn-formats.md에 있습니다.
모든 턴의 입출력은 schemas/ 아래 5개 YAML JSON Schema로 정의됩니다:
| 스키마 | 언제 생성되는가 | 어디에 저장되는가 |
|---|---|---|
evidence-bundle.schema.yaml | Turn 1, Turn 3 | .sapstack/sessions/{id}/bundles/evb-*.yaml |
hypothesis.schema.yaml | Turn 2 | .sapstack/sessions/{id}/hypotheses/h-*.yaml |
followup-request.schema.yaml | Turn 2 | .sapstack/sessions/{id}/requests/flr-*.yaml |
verdict.schema.yaml | Turn 4 | .sapstack/sessions/{id}/verdicts/vdc-*.yaml |
session-state.schema.yaml | 매 턴 업데이트 | .sapstack/sessions/{id}/state.yaml |
스키마는 이 스킬의 계약(contract)이며, 모든 다른 파일(커맨드·에이전트· 웹 포털·MCP 서버)이 동일한 모양을 참조합니다.
falsification_evidence를 포함.
"기각될 수 없는 가설"은 제안 불가.verdict.resolutions[].fix_plan이 존재하면
같은 resolution에 반드시 rollback_plan이 있어야 함.estimated_minutes와
priority 필수. 운영자 시간을 가시화.confirm_destructive: true인 체크는 스키마가 거부.
모든 요청은 read-only가 기본.session.audit_trail에 append-only 기록.
삭제·수정 금지.sap_context.country_iso가 있으면 해당 국가
컨설턴트를 자동으로 consultant_agents_to_involve에 포함.이 스킬은 새 에이전트를 만들지 않습니다. 대신 기존 9개 컨설턴트 에이전트를 hypothesis별로 호출합니다:
| 가설의 impacted_modules | 호출할 에이전트 |
|---|---|
| FI | sap-fi-consultant |
| CO | sap-co-consultant |
| MM | sap-mm-consultant |
| SD | sap-sd-consultant |
| PP | sap-pp-consultant |
| PM | sap-pm-consultant |
| QM | sap-qm-consultant |
| WM/EWM | sap-ewm-consultant |
| HCM | sap-hcm-consultant |
| TR | sap-tr-consultant |
| Cloud PE | sap-cloud-consultant |
| ABAP | sap-abap-developer |
| BASIS | sap-basis-consultant |
| S4MIG | sap-s4-migration-advisor |
| 통합/CPI/IDoc | sap-integration-advisor |
| 신입 교육 | sap-tutor |
여러 모듈이 관련되면 병렬 호출하고, 각 에이전트의 Verdict를 종합해
최종 verdict.resolutions[]를 구성합니다. (Cross-module review 패턴)
| Surface | 누가 | 무엇을 |
|---|---|---|
| A — Operator CLI | 운영자 | Claude Code에서 /sap-session-* 커맨드로 풀 Evidence Loop 진행 |
| B — Operator IDE | 운영자 | VS Code extension 사이드바에서 세션 관리·Bundle 드래그앤드롭 (v1.6.0 실장) |
| C — End User Web | 엔드유저 | 정적 웹 포털에서 증상 붙여넣기 → 1차 진단 → 필요시 Surface A로 에스컬레이션 |
세션은 handoff_history를 통해 세 표면 사이를 자유롭게 이동합니다.
엔드유저가 웹에서 시작한 세션을 운영자가 CLI로 이어받는 것이 대표 시나리오입니다.
Evidence Loop 모드에서는 기존 Standard Response Format (Issue → Root Cause → Check → Fix → Prevention → Note) 대신 Turn-aware 포맷을 사용합니다:
초기 증상 요약 + 매칭된 symptom-index + sap_context 질문현재 증거 요약 + 2-4개 가설 카드 + follow-up 체크리스트가설별 판정 + 확정 가설의 Fix/Rollback/Prevention단순 질의(예: "FB01이 뭔가요?")는 기존 Standard Response Format을 유지합니다. CLAUDE.md 옵션 B(병행 모드) 참조.
# 새 세션 시작 (Surface A — CLI)
/sap-session-start "F110 Proposal 실패 — 벤더 100234"
# 초기 Bundle 업로드
/sap-session-add-evidence sess-20260411-m2p9xt ./f110-log.txt ./lfb1-dump.csv
# 다음 턴 실행 (AI가 Hypothesis turn 수행)
/sap-session-next-turn sess-20260411-m2p9xt
# 운영자가 SAP에서 후속 증거 수집 후 다시 add-evidence
/sap-session-add-evidence sess-20260411-m2p9xt ./vendor-bank-info.csv
# Verify 턴
/sap-session-next-turn sess-20260411-m2p9xt
# 다른 surface로 넘기기
/sap-session-handoff sess-20260411-m2p9xt --to web_triage --reason "end-user 재연 확인 필요"
references/turn-formats.md — 각 턴의 상세 입출력 포맷과 예시references/evidence-bundle-guide.md — 운영자가 Bundle을 준비할 때 주의점references/followup-authoring.md — AI가 Follow-up을 작성할 때 품질 기준references/session-state-lifecycle.md — 세션 상태 전이와 재개 규약references/korean-field-language.md — 한국 SAP 현장체 작성 규약 (Slice 8)../../../schemas/ — 5개 JSON Schema (계약 정의)../../../data/synonyms.yaml — 58 용어 + 10 약어 + 15 업무 시점 동의어 사전../../../CLAUDE.md — Universal Rules (#8 현장체 원칙 포함) + 응답 포맷v0.1.0 — experimental.
첫 dog-food 케이스는 /sap-session Slice 2에서 F110 지급실행 실패 시나리오로
검증합니다. 실제 케이스 3건 이상 통과 후 stage를 stable로 승격합니다.