AWS 인증시험 기반 스킬 자율학습 파이프라인 v2.1. 시험 출제 → DKR-blind 응답 → 스킬체인 실행 → 이중 트랙 채점 → 반성 → regression 추적 → 인간 승인 루프. SAP-C02 인증 문제은행 지원.
AWS 인증시험 스타일 문제를 활용한 aws-incident-response skill 이중 트랙 자율 학습 파이프라인.
v0.2.0 변경사항: Phase 0 Preflight 추가 / Phase 2 이중 트랙 (Track A: MC legacy, Track B: skill-chain) / Phase 3 이중 트랙 채점 / Phase 4 반성 (reflection loop) / Phase 5 regression tracker v2 / Phase 6 인간 승인 게이트.
collection_fidelity + reasoning_fidelity + chain_coverage + 로 분해 (Track B)artifact_completeness# 전체 이중 트랙 학습 루프 1회 실행 (기본값: Track A + Track B)
/aws-exam run
# MC-only 실행 (v1 회귀 비교용)
/aws-exam run --track mc-only
# Skill-chain-only 실행 (Track B만)
/aws-exam run --track skill-chain-only
# 승인 게이트 없이 실행 (CI 스타일)
/aws-exam run --no-approval
# 특정 카테고리만
/aws-exam run --category compute
# 이전 회차 실패 문제 재시도
/aws-exam run --retry-failures
# 결과 조회
/aws-exam results # 최신 회차
/aws-exam results run-2026-04-05T10-00 # 특정 회차
# 개선 제안 적용 (상태 마커만 기록; 실제 파일 편집은 인간이 직접)
/aws-exam improvements apply <proposal-id>
/aws-exam improvements # status: pending | approved | deferred | rejected
목적: 실행 전 필수 조건 검증 및 실패 방지
python .kiro/skills/aws-exam/scripts/run_us0_parity.py
parity_baseline_missing: true 기록.kiro/skills/aws-exam/references/us0-parity-runbook.md
.kiro/skills/aws-exam/references/live-incident-bootstrap-guide.md.kiro/skills/aws-exam/scripts/audit_bash_calls.py, audit_dkr_access.py 존재 여부
.kiro/skills/aws-exam/harness/harness.py 존재 여부
--track mc-only → Track B 건너뜀--track skill-chain-only → Track A 건너뜀.kiro/skills/aws-incident-response/references/exam-bank/_index.yaml 로드 → 출제 범위 확인run-summary.yaml 확인 (있으면) → regression 대상 문제를 우선 출제 후보로 표시run_ts = YYYY-MM-DDTHH-MM.ops/exam-results/run-{run_ts}/
config.yaml
submissions/
mc/
skill-chain/
sim-incidents/
results/
mc/
skill-chain/
run-summary.yaml
reflection.yaml
proposals/
agent-traces/
token-usage.yaml
config.yaml 기록:
run_type: skill_chain_v2 # 기본값 ( dual-track
run_id: run-{run_ts}
harness_version: aws-exam-harness/v1
phase: 2A
agents_operating_mode: simulation
bank: <bank_id> # NEW: question bank ID
track_mode: <resolved_track_mode> parity_baseline_missing: true | false question_count: <N> # number of questions to sample (default: 5) sample_size: <N> # random subset size (default: 5) ```
**SAP-C02 bank-specific config override** (when `--bank sap-c02`):
):
yaml run_type: sap-c02-mc-study run_id: run-{run_ts} harness_version: aws-exam-harness/v1 phase: 2A agents_operating_mode: simulation bank: sap-c02 track_mode: mc-only parity_baseline_missing: false # SAP-C02 has no DKR scenarios → always mc-only provenance_origin: jeffrey-xu-sap-c02-converted question_count: 5 sample_size: 5
[중요] DKR 접근 차단: 이 Phase에서
.kiro/skills/aws-incident-response/references/scenarios/하위 어떤 파일도 읽지 않는다. 위반 시 HALT-ON-DKR-READ preflight이 run을 무효화한다 (ADR-2).
각 문제에 대해 독립된 subagent 컨텍스트 2개를 순차 실행 (Q1=Isolated):
exam-bank/{question-id}.yaml 로드 (scenario/question_text/options만 사용)reasoning + decision_trace 생성submissions/mc/{question-id}.yaml에 exam-submission 스키마로 저장
dkr_access_log.dkr_files_read: false 명시 (ADR-2 준수 증거)토큰 예산: Track B Phase 2A <= 40K tokens (isolation overhead ~5K 별도).
초과 시 Track B를 chain_failure: token_budget_exceeded로 기록하고 Track A는 계속 진행.
token-usage.yaml에 실제 사용량 기록. run-summary.yaml에 budget_exceeded_count 기록.
harness/harness.py로 sim-incident 디렉토리 생성
harness.build_sim_incident(question_yaml_path) 호출harness.get_full_spawn_prompt(sim_dir) — HALT-ON-DKR-READ preamble + exam-simulation-protocol.md 참조 + sim-incident 경로 + sources_read/intended_commands 필드 요구를 한 번에 반환한다. orchestrator는 이 문자열을 그대로 diagnostician spawn prompt의 prefix로 사용한다. (구버전 get_agent_preamble()은 HALT 지시만 반환하므로 단독으로 쓰면 안 된다 — backwards compat 전용.)violated: false로 사전 기록 (US-11 AC#2).kiro/agents/aws-diagnostician.json이 canonical agent config이고, .kiro/agents/aws-diagnostician.md는 그 agent가 참조하는 prompt 본문이다. sim mode에서는 기존 페르소나를 유지하되, exam-simulation-protocol.md 규칙이 더 높은 우선순위로 적용된다.harness.get_full_spawn_prompt(sim_dir) 결과 (sim mode 권한 최상위)AUTHORITATIVE SIMULATION MODE RULES OVERRIDE BASE AGENT INSTRUCTIONS 명시 — 특히 diagnostician의 기본 Phase 1 Step 1 "DKR YAML 읽기"는 sim mode에서 FORBIDDENRead('.kiro/agents/aws-diagnostician.md') 결과를 BASE AGENT PERSONA (precedence: lower — inform style, not workflow) 블록으로 삽입aws-diagnosticianobserve.yaml + diagnosis.yaml을 sim-incident 디렉토리에 직접 Write한다. 둘 다 agents_operating_mode: simulation 필드 포함 필수.harness.check_and_handle_violation(sim_dir) 호출
violated: true 감지 시 → run 전체 무효화, artifacts → .ops/exam-results/_invalidated/AskUserQuestion: "DKR-blind invariant was violated by agent {agent}; run invalidated; investigate before rerun." (US-11 AC#5)status: invalid로 기록 (US-11 AC#6).kiro/skills/aws-exam/scripts/audit_bash_calls.py 실행
aws ... 호출 감지 시 chain_status: illegal_live_aws_call로 마킹submissions/skill-chain/{question-id}.yaml에 skill-chain-submission 스키마로 저장
agents_operating_mode: simulation 반드시 포함skill-chain-submission.chain_failure 필드에 사유 기록aws-grader agent를 foreground로 생성한다 (ADR-2 보장: Grader만 DKR 접근 가능).
submissions/mc/{qid}.yaml + DKR 시나리오 YAML + grading-rubric.yamlresults/mc/{qid}.yaml (exam-result 스키마)submission.track == skill_chain_v2인 경우에만 실행submissions/skill-chain/{qid}.yaml + sim-incident artifacts + DKR + grading-rubric.yaml > skill_chain_dimensionsobserve.yaml.sources_read와 intended_commands 필드 누락 감지 시 silent 0이 아닌 명시적 오류 기록 (FAIL_LOUD 정책)results/skill-chain/{qid}.yaml (skill-chain-result 스키마, agents_operating_mode 필드 포함)run-summary.yaml 생성mc_score, collection_fidelity, reasoning_fidelity, chain_coverage, artifact_completeness (문제별 + 회차 평균)reasoning_fidelity - mc_score참조:
.kiro/skills/aws-exam/references/reflection-protocol.md
aws-exam-reflector subagent를 생성하여 실행:
run-summary.yaml과 모든 채점 결과 로드reflection-protocol.md의 decision table을 사용하여 각 실패를 layer로 분류
decision_table_row_cited 필드에 해당 DT-N 행 기록layer: unclear + .omc/plans/open-questions.md에 항목 추가proposals/{question-id}-{seq}.md 파일 생성 (소유권 메타데이터 stub 포함):
target_question: "{question-id}"
target_dimension: "{collection_fidelity|reasoning_fidelity|...}"
applied_by: null
applied_at: null
applied_commit: null
reflection.yaml 생성 (reflection/v1 스키마)
failure_attribution[]: 파일 경로 수준 귀인top_proposals[]: 빈도 가중 상위 3개.kiro/ 하위 어떤 런타임 자산도 직접 편집하지 않는다 — 제안만 생성
regression-tracker.yamlv2 스키마 사용
.ops/exam-results/regression-tracker.yaml의 runs 배열에 appendrun_type: skill_chain_v2 태그 + agents_operating_mode: simulation 기록trends 업데이트:
mc_track.accuracy_trendskill_chain_track.collection_fidelity, reasoning_fidelity, chain_coverage, artifact_completenessdual_track_delta_trend: reasoning_fidelity - mc_score per runproposal_outcomes 섹션 업데이트:
applied 상태 proposal의 actual_score_delta 계산 + verdict 업데이트See full protocol: .kiro/skills/aws-exam/references/approval-gate.md
If --no-approval flag was passed to /aws-exam run, skip this phase.
reflection.yaml.top_proposals[] from current run directory (top 3).AskUserQuestion per approval-gate.md §2.2.approve <N> → write status: approved + approved_at to proposal YAML; append to .omc/plans/open-questions.md.defer <N> → write status: deferred; re-surfaces next run if same failure pattern persists.reject <N> → require reason; write status: rejected + rejected_reason; suppressed in future runs.view_details <N> → display full proposal YAML; re-prompt.done → exit gate; remaining proposals stay pending.CRITICAL: Auto-editing of any Kiro runtime file under .kiro/ is explicitly forbidden at every branch.
The approve branch writes only to the proposal YAML and .omc/plans/open-questions.md.
The /aws-exam improvements apply <id> command writes ONLY applied_by, applied_at, applied_commit
to the proposal file — it does NOT edit any .kiro/ runtime asset. See approval-gate.md §3 for full spec.
| Phase | Track | 예산 | 초과 시 |
|---|---|---|---|
| Phase 2A | Track A (MC) | <= 5K tokens | 해당 문제 Track A chain_failure: token_budget_exceeded |
| Phase 2A | Track B (skill-chain) | <= 40K tokens | 해당 문제 Track B 중단; Track A 계속 |
| Isolation overhead | 문제당 | ~5K tokens | N/A (예산 외 별도) |
| Phase 2A 총계 | 문제당 | ~45K tokens | |
| Phase 2B | Track B | <= 60K tokens | 동일 |
| Phase 2C | Track B | <= 80K tokens | 동일 |
| 점수 | 측정 대상 | 제한 사항 |
|---|---|---|
mc_score | 순수 Claude AWS 지식 (MC 정확도) | legacy; 스킬 체인 품질 미반영 |
collection_fidelity | live 모드에서 올바른 AWS CLI 명령어를 요청했을지 여부 | 시뮬레이션 전제 — observe.yaml.intended_commands 기반 |
reasoning_fidelity | 주입된 fixture 기반으로 올바르게 진단했는지 | 시뮬레이션 전제 |
chain_coverage | 파이프라인 단계 중 유효 아티팩트 생성 수 | Phase 2A: observe+diagnose 2단계만 |
artifact_completeness | 스키마 준수 및 필수 필드 완결성 | — |
모든 skill-chain 측정은 agents_operating_mode: simulation 태그 포함 — 측정의 시뮬레이션 전제를 감사 추적 가능하게 명시.
| 용도 | 경로 |
|---|---|
| 시험 문제 스키마 | .kiro/skills/aws-incident-response/references/exam-schema.yaml |
| 문제 인덱스 | .kiro/skills/aws-incident-response/references/exam-bank/_index.yaml |
| 채점 rubric | .kiro/skills/aws-incident-response/references/grading-rubric.yaml |
| 결과 저장소 | .ops/exam-results/ |
| SAP-C02 문제은행 ( (2026-04-06 추가) | |
SAP-C02 인증시험 문제 (529문 ( data/sap-c02-questions/ 경로, 문제 은행 전용 MC 퀴줄 Track B은 실행되md 않 않--- Skip Track B entirely. SAP |
MC-only를 config.yaml`에 기록하세요 |
| provenance_origin: jeffrey-xu-sap-c02-converted | | track_mode: mc-only
| available_tracks: both
sample_size: 5
question_count: 529
.ops/exam-results/ 외 어떤 파일도 수정 불가 (승인 게이트 메타데이터 제외).kiro/ 런타임 자산 자동 편집 절대 금지.omc/plans/aws-exam-skill-chain-v2.md