사람이 사인오프 때 읽는 증거맵 생성기를 테스트로 고정해 PM 결정 산출물을 보호
문제 (Context)
가정이 아니라 확인한 실제 공백이다. 15회차와 20회차에서 만든 증거맵 생성기는 사람이 종료와 사인오프를 판단할 때 읽는 행별 감사를 렌더한다. 그런데 이 생성기에 테스트가 전혀 없었다. 원래 pytest 안에서 pytest를 돌리는 상황을 피하려고 테스트 하나를 건너뛴 탓이다.
시도한 해결 (Decision)
데이터 수집부는 외부 프로세스를 호출하지만, 행 분류 체계와 render()는 순수 함수라 서브프로세스 없이 테스트할 수 있다. 조용히 깨지면 감사 문서를 틀리게 만들 부분을 고정하는 테스트 6건을 더했다. 모든 행에는 알려진 종류가 있어야 하고(맵 전체를 무너뜨릴 _KIND_STATUS KeyError를 막는다), 행 id는 유일하며, 루프가 아닌 행은 커밋 문구를 달지 않고(GUI 행이 어떤 커밋으로 닫혔다고 주장하면 안 된다), 루프 행은 커밋 문구를 달며, render()는 루프 행과 바깥 행을 나누고 바깥 행은 테스트 수 대신 줄표로 표시한다. 86건이 통과한다.
근거·결과 (Consequences)
이 변경은 이어받기 표면 자체를 단단하게 한다. 테스트 없던 산출물을 정직하게 덮은 것이지, 새 수용 행이 아니다.
노드 계약 (contract)
| 필드 | 값 |
|---|---|
| type | 결정(decision) |
| Status | superseded |
| source_count | 1 |
| confidence | 미설정: 구 엔진 격차 |
| confidence_reason_codes | 미설정: 구 엔진 격차 |
| stale | fresh |
| 이슈(feature) | 검증·증거·회귀 |
시행착오 타임라인 (supersede)
- 이후 수정: 증거맵 생성기 테스트 보강: PM 결정 산출물 보호 (대체됨)
상호참조
이슈 수용·증거맵 사인오프 · Status superseded · 2026-06-25