Files
company-haness/docs/superpowers/specs/2026-07-10-review-reflection-batch-design.md
T

6.1 KiB

status, supersedes, superseded-by, applies-to-version, date, author
status supersedes superseded-by applies-to-version date author
active none none registry 73 roles / 28 families / 12 lenses 2026-07-10 review-reflection session (fix/p0-execution-integrity)

Review Reflection Batch — 설계

외부 코드리뷰(21개 항목)를 현재 하네스에 반영한다. 사전 검증 결과, 이 브랜치는 이미 P0/P1 대부분(12/21 항목)을 구현한 상태였다. 이 배치는 남은 PARTIAL/OPEN 항목 중 사용자가 승인한 범위를 리뷰 처방에 충실하게 닫는다.

검증된 현재 상태 (2026-07-10)

  • DONE (12): ITEM 1,2,3,4,6,7,8,9,10,12,14,15 — 실제 코드로 확인.
  • 이 배치 범위 (PARTIAL/OPEN): ITEM 5, 11, 13, 17, 19, 20, 21.
  • 이번 세션 제외 (P2 심화, 다음 세션): ITEM 16(design-system 검증), 18(테스트/CI 재작성), 19의 전체 KPI 수집기, 11의 guard 전면 matrix 재작성.

항목별 설계

ITEM 21 — 저장소 위생 (기계적)

  • .gitignore 신설: node_modules/, dist/, __pycache__/, *.pyc, **/slack-outbox/, **/slack-inbox/, **/reports/TOKENS.md, **/state/ 런타임 원장 등.
  • git rm -r --cached로 추적 정크(node_modules 2238·dist 96·pyc 5·slack-outbox 40) 언트랙. 파일은 디스크에 보존, git 인덱스에서만 제거. 모두 제외 프로젝트 폴더 하위라 안전.

ITEM 19 — token_ledger per-wave 예산 버그

  • 결함: check()·dashboard()가 워크플로 전체 합(sum_workflow)을 per-wave 예산과 비교.
  • 수정: sum_wave(workflow, wave) 추가. check--wave로 그 wave만 합산해 비교. 대시보드는 (workflow, wave) 단위로 그룹핑해 각 wave를 per-wave 예산과 대조. --wave 미지정(단일 wave 워크플로) 시 - wave로 묶여 기존 동작 보존.
  • 회귀 테스트: 같은 워크플로 3개 wave가 각각 예산 내면 통과, 한 wave가 초과하면 그 wave만 exit 2.

ITEM 20 — 문서 버전 드리프트

  • 62 역할/26 family/11 lens73/28/12 전역 교정.
  • 신뢰도 enum 통일: 정본은 High / Med / Low(validate_report.py가 강제하는 값, 모든 fixture 사용). outlier High / Medium / Low(report-templates AIWorkReport enum)를 Med로 정렬. severity 는 별개(Low/Medium/High/Critical).
  • 외부자료 증거등급: 드리프트를 SSOT에서 정의로 해소 — 채택된 방법론(skill 근거)=E3, raw 외부자료=E2. 즉 등급 차이는 '채택 여부'로 갈린다(출처 국적 아님).
  • superseded 설계문서에 status/supersedes/superseded-by/applies-to-version 프론트매터 추가.

ITEM 17 — 낡은 Claude Code 가정 (gen_agents.py)

  • skills: 프론트매터: 디자인 계열(des-prod/platform/internal)→[design-craft], doc-visual→[design-craft, diagram-craft]. 축약 embed 대신 실제 preload.
  • "subagent가 subagent/skill 못 씀" 낡은 헤더 주석 정정.
  • tier→model/effort 차등(리뷰 처방 그대로, role-class 근사 아님): governance-tiers.yamlmodel-effort-by-tier(light/standard/heavy → model·effort) SSOT 추가. context_package.py가 선언된 tier의 model/effort를 spawn 계약(context-package)에 실어보낸다. 즉 heavy 작업은 에이전트 수뿐 아니라 추론 강도(effort/model)가 올라간다.

ITEM 11 — 권한 경계 (native primary + guard secondary)

  • settings.json permissions.deny에 보고서 불변성을 native 1차 경계로 승격: Write/Edit/NotebookEdit**/completion-records/**/*.report.yaml deny.
  • guard_tools.py 2차 하드닝: Bash 안의 언어레벨 report write (open(...report.yaml..., 'w'/'a'), shutil, Path.write_text, node fs.write*) 탐지. Read/Grep/Glob 도 PreToolUse matcher에 넣어 .env/secret 경로 접근 차단(2차).
  • 슬랙 MCP는 사용자의 승인된 브리핑 경로라 deny하지 않는다(리뷰의 "MCP slack" 우려와 사용자 실사용이 충돌 — 경로 자체를 막지 않고 문서화).

ITEM 13 — dead YAML 배선 (render_report ← report-templates.yaml)

  • 리뷰가 지목한 정확한 예: render_report의 하드코딩 TYPE_BADGE 제거.
  • report-templates.yaml human-md-renderingrender-badges(type→emoji·label) 추가.
  • render_report.py가 이를 로드해 badge를 결정. YAML 부재 시 내장 기본값으로 폴백(하드페일 없음).
  • 나머지 dead YAML(drai-matrix·scorecard·collaboration-modes·context-package-spec·execution-policy)은 이번 범위 밖 — 정직하게 "prose-only" 상태 유지(문서화).

ITEM 5 — 회사/프로젝트 문맥 스키마 + 강제

  • org-os/01-company/company-context.yaml: 필드 스키마 + populated: false 플래그(빈 템플릿). 회사 실제 사실(stack·제품·사용자·제약)은 사용자가 채운다(세션에서 알 수 없음).
  • org-os/02..07 약속된 디렉터리 stub(README) 생성.
  • 프로젝트 manifest.yaml 스키마: stack, build/test/lint/run, purpose, users, constraints, conventions, sensitivity, recent-decisions.
  • 강제: validate_report가 참조 문맥 미기재/부재를 감지하면 해당 보고서 confidence 상한을 E1/E2 근거로 캡(실제 회사 자료 없이 High 확신 방지). unpopulated면 confidence High→경고/강등.
  • workspace: .orgos-workspace 활성 기본값(test-labs-documents) 제거 → 주석만. 운영 실행은 ORGOS_WORKSPACE 명시 필수(미설정 시 _workspace.py가 이미 halt). 자동 훅(evidence_ledger· subagent_register)은 미설정 시 graceful no-op(확인됨) → 세션 안전.

감사 부작용 정리

  • 검증 에이전트가 만든 stop_validate.py 수정(루프 버그 close)은 테스트로 정합 확인 후 채택.
  • 생성된 stray report yaml·__pycache__는 .gitignore + 정리.

검증

전 항목 후: ORGOS_WORKSPACE=_sandboxdoctor.py, lint_refs.py, test_enforcement.py, test_subagent_lifecycle.py, test_state_engine.py 실행 → 초록 확인. CLAUDE.md·README.md의 관련 서술도 실제 동작과 일치하도록 갱신.

비목표

  • 실제 회사 사실 채우기(사용자 몫), design-system 검증 파이프라인 심화(ITEM 16), 테스트/CI 전면 재작성(ITEM 18), guard 전면 matrix-driven 재작성.