# Workspace 공통 규칙

## 절대 규칙
1. 모든 코드는 `/home/jay/workspace/` 하위에 작성
2. 테스트/검증용 임시 파일은 **pytest `tmp_path` 사용** (자동 정리됨)
3. 작업 완료 후 반드시 auto-document 기록
4. 보고서는 `/home/jay/workspace/memory/reports/` 에 저장

## QC 검증
```bash
python3 memory/code-validator.py all <파일경로>
python3 memory/red-team-auto-review.py scan <파일경로>
```

## 대시보드
```bash
python3 dashboard/server.py
# → http://localhost:8000/dashboard/
# → Tailscale: http://100.76.130.39:8000/dashboard/
```

## 모듈화 필수 규칙
1. 하드코딩 절대 금지 — 경로, ChatID, 팀명, 폰트사이즈, 색상 등 모든 설정값은 config 참조
2. config 로더 사용: `from config.loader import ConfigManager`
3. DQ 규칙 참조: `from tools.dq_rules import DQ_RULES, get_font_rule`
4. 단일 소스 목록: config/module-registry.json 확인
5. pre-commit hook이 하드코딩을 자동 차단함
6. 새로운 설정값 추가 시 반드시 module-registry.json에 등록

## 작업 완료 후 필수
```bash
python3 memory/auto-document.py log \
  --type "code" \
  --desc "작업 내용 한 줄 요약" \
  --result "success"
```

## 3문서 체계 (2유형)
- **Lv.3+ 모든 작업** → 작업 3문서 필수 (경로: `memory/plans/tasks/{task_id}/`)
- **시스템 설계/프로세스 정의** → 시스템 3문서 (경로: `memory/plans/<프로젝트명>/`)
- 구분: YAML frontmatter `scope: system | task`
- 상세: `memory/specs/3docs-schema.md`

## 위임 완결성 5대 규칙 (2026-05-02 확립)

dispatch "완료" ≠ 실제 완료. 5단계를 모두 통과해야 완결:

1. **봇 수신 확인** — dispatch 미수신 시 봇별 key로 직접 cron 전송. 상세: `memory/specs/anu-guide.md` 3.9
2. **빌드 + 배포** — PR 머지 후 `npm run build` 필수 (InsuRo dist 서빙)
3. **실 브라우저 E2E** — Playwright 스크린샷, SKIP 금지
4. **구조 선행 파악** — 위임 전 routes/navigationConfig/빌드 파이프라인/기존 컴포넌트 패턴 확인
5. **Capability 명시** (2026-05-02 추가, task-2364 P0 — 봇 scope violation 방지) —
   - 모든 task 파일에 `allowed_resources` YAML 필수 (paths/forbidden_paths/commands/merge_policy/ttl_hours)
   - `dispatch.py`가 미명시 task 거부 (legacy: `--allow-no-scope` 플래그 + audit log)
   - dispatch 시점 immutable snapshot을 `memory/capabilities/{task_id}.json`에 저장 (mutable task 파일 self-bypass 차단)
   - `scripts/finish-task.sh`가 머지 *직전* `task-scope-guard.sh`로 git diff vs allowed glob 매칭 → 위반 시 머지 차단 + `.escalate`
   - CLAUDE.md "Surgical Changes" 텍스트 룰 → **시스템 hard wall로 승격**
   - 스펙: `memory/specs/bot-capability-model.md`, 시스템 3문서: `memory/plans/bot-capability-system/`
   - 근거: task-2360 codegraph cron `CC712188` scope-out 사고 (8 페르소나 미팅 만장일치)
