init: company-haness 설계

This commit is contained in:
DongHyeonka
2026-07-23 17:49:00 +09:00
parent 57d1bab894
commit f668d6a158
962 changed files with 98989 additions and 1 deletions
@@ -0,0 +1,94 @@
---
status: active
supersedes: none
superseded-by: none
applies-to-version: registry 73 roles / 28 families / 12 lenses
date: 2026-07-10
author: 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 lens``73/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.yaml``model-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-rendering``render-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=_sandbox``doctor.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 재작성.