fix(harness): 루프 검증으로 찾은 bash_guard 미탐 9건 수정 + 커밋 게이트 사유 정리

1회차(31건 중 미탐 8, 오탐 0) → 2회차(새 31건 중 미탐 1, 오탐 0) → 3회차 0/0
- 변수 확장($C compose up), eval, bash -lc 등 묶인 -c 플래그, python -c 안의 uvicorn.run 재귀 검사
- compose up|start|restart|run|exec 를 실행 파일명과 무관하게 deny
- make dev|deploy|restart|install, scripts/(dev|deploy|restart|start*).sh deny
- main 삭제 푸시(:main, --delete) deny, find <repo> -delete / -exec rm deny
- 커밋 게이트 deny 사유는 FAILED/ERROR·요약 줄만(경고 잡음 제거)
- 훅 테스트 106 passed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 09:21:51 +09:00
parent ea644a37f3
commit 0f89a9d678
3 changed files with 103 additions and 13 deletions

View File

@@ -381,7 +381,7 @@ DX(0~100)에 합산형 평활을 적용한 버그. 측정: `up 1361 vs 97 / flat
- **배포**: `/deploy` 스킬 → `.claude/scripts/deploy.sh`(worktree 테스트 → push dev → 임시 worktree 에서 `--no-ff` 병합·push main → 재기동 감시 → 스모크). `--watch-only`, `--dry-run`, `--no-test`(경고). 스모크 단독: `.claude/scripts/prod_smoke.sh`.
- **우회**: 훅이 막은 것을 에이전트가 환경변수·명령 변형으로 피하지 말 것. 정당한 예외는 **사용자가 직접** 훅을 끄거나 명령을 실행한다(`ask` 는 사용자 승인 프롬프트). 규칙 자체가 틀렸으면 훅과 이 절을 함께 고친다.
- **훅 테스트**: `.venv/bin/python -m pytest .claude/hooks/tests -q` (backend 테스트와 분리, DB 불필요).
- 한계: 공휴일은 장 상태 판정에 반영되지 않는다(`market_schedule` 과 동일).
- 한계: 커밋 게이트는 **현재 워킹트리**를 테스트하므로 스테이징 내용과 워킹트리가 다르면(`git add -p` 등) 실제 커밋 내용과 어긋날 수 있다. 공휴일은 장 상태 판정에 반영되지 않는다(`market_schedule` 과 동일).
*마지막 업데이트: 2026-09-27 — 죽은 코드 2,695줄 제거 / 지표·사이징 단일화(수치 무변경 증명) / 파라미터 3중 소스 정합 + alembic 0012 / 섹터 매핑 44→747종목 / 백테스트를 실전 로직에 정합(ADX 14배 발산·RSI SMA↔Wilder·1봉 지연) / 미국 상수 13개 config 편입 / 테스트 실 KIS 호출 차단(conftest 신설) / 유닛 스위트 559 passed·0 failed*