# 맥락노트: Absorption 중복 기능 4건 분석

**task_id**: task-1640.1
**작성일**: 2026-04-11

---

## 결정 근거

### Item 1: Git Worktree → A (경량 병합)
- **왜 A인가**: superpowers의 안전 게이트와 gstack의 CLI는 레이어가 다름(검증 vs 오케스트레이션). 현재 SKILL.md 455줄에 혼재 — 모듈 경계 없이 공존하면 검증 우회 경로 발생 가능(로키 보안 분석).
- **왜 C가 아닌가**: 헤르메스가 C를 주장했으나, 로키의 "CLI 밖 직접 호출 시 검증 우회" 논거와 야누스의 "실행 순서 비결정론적" 논거에 수렴. 조건부 A로 전환.
- **왜 경량인가**: 로키 DA의 "데코레이터 한 줄" 대안이 전면 리팩터링 대비 비용 효율적.
- **기각된 대안**: 컨테이너 기반 격리(오딘) — 현재 규모 대비 도입 비용 과도. Makefile target(야누스) — 쉘 의존성이 추가됨.

### Item 2: 주간 회고 → B (pm-a6 아카이브)
- **왜 B인가**: pm-a6는 추상 방법론("잘된 것/개선점/행동항목"), gstack-retro는 구체 구현(7개 소스, 메트릭, 트렌드). 추상이 구체에 완전 포섭. retro SKILL.md가 이미 gstack 전면 채택. 전원 합의.
- **주의**: pm-a6의 정성적 관점(팀 감정, 프로세스 마찰)이 gstack의 정량 분석에서 누락될 수 있음 — 정성 입력 섹션 보완 검토 필요(오딘 지적).
- **기각된 대안**: 이벤트 소싱 기반 회고(오딘) — 마이크로 회고 실시간 수집은 매력적이나 구현 복잡도 과도.

### Item 3: Progressive Disclosure → A (병합)
- **왜 A인가**: taste-lazyload(개념)와 moai-p1-1(구현)이 같은 문제의 단순/정교 버전. 둘 다 미완성 상태에서 병합이 완성 경로(헤르메스). feature flag를 on/off 스위치, 3레벨을 실제 로딩 로직으로 결합.
- **주의**: 81% 절감 수치는 cold start 벤치마크 미검증. 한국어-영어 혼용 환경에서 키워드 트리거 정확도 미검증(오딘). 보안 스킬 always-loaded 필수(로키).
- **기각된 대안**: 스펙큘레이티브 프리로딩(오딘) — 캐시 적중률 불확실. lazy-unload(야누스) — 초기 로딩 비용 과도.

### Item 4: 에러 감지/수정 → A (병합)
- **왜 A인가**: circuit breaker(fireauto, 자동수정)와 escalation(gstack, 보고)은 파이프라인의 서로 다른 단계. 현재 pyright_check에만 부분 구현 — 범용화 시급. 에러 카운터 이중 관리 시 상태 불일치(야누스).
- **주의**: 자동수정 부작용 누적 위험 — 각 시도 전 상태 스냅샷/롤백 필수(오딘). hook 체인 exit code 의미 변경 — 점진적 롤아웃 필수(야누스). 카운터 리셋 시 인증 필수(로키).
- **기각된 대안**: 에러 예산 모델(오딘) — 개념적으로 매력적이나 "예산" 정의가 모호. 별도 데몬(야누스) — 아키텍처 복잡도 과도.

## 주의사항
- Item 3/4 구현 시 기존 테스트 회귀 방지 필수
- Registry YAML 업데이트 시 health_check 필드도 함께 갱신
- 경량 병합(Item 1)은 전면 리팩터링 전 과도기적 조치 — 로드맵에 모듈 분리 포함

## Temporal Interrogation 미해결 항목
- [OPEN] Item 1 데코레이터 구현 시점 결정
- [OPEN] Item 3 skill_loader.py 존재 여부 확인
- [OPEN] Item 4 범용 circuit_breaker 인터페이스 설계
