[feat] 리뷰어가 소스 문자열 기반 불변식 테스트를 약한 가드로 판정하게 한다 - #596
Merged
Merged
Conversation
added 6 commits
September 10, 2026 03:03
Collaborator
Author
🔍 Fresh review of af54d44 (
|
This was referenced Sep 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
TL;DR
워커가
inspect.getsource()로 금지 토큰을 찾는 테스트를 "단방향 불변식 검증"으로 제출했고 리뷰어가 그대로 승인했다. 그 테스트는 헬퍼를 하나 끼우면 통과하고, 금지 토큰 5개 중 4개는 코드베이스에 존재하지도 않는 이름이다. 동작을 검증하지 않는 가드가 불변식으로 계상됐다.Investigation (실측)
cgf-portalapps/pipelines/tests/test_a3_notion_job.py(PR #163,AX-1013):실측 3가지:
A3SheetClient의 공개 메서드는read_values·append_rows둘뿐append_rows만 실재.write_values·update_values·append_values·import_notion은 코드베이스에 없는 이름a3_notion_cards본문 텍스트만 검사하므로, 쓰기를 헬퍼 함수로 한 단계 옮기면 그대로 통과리뷰어 판정은 이랬다:
관측은 맞다. 다만 그것이 무엇을 보장하지 못하는지가 판정에 없다. 이번 건은 직접 호출을 잡으므로 무해했지만, 이 형태가 "불변식을 테스트로 고정했다"로 보고되면 사람은 실제보다 강한 보장을 가정한다.
참고로 같은 PR 의 나머지 테스트는 강했다 — 뮤테이션 3종(preserve 제거·created 단락 제거·재시도→격리 전환)을 전부 잡았다. 문제는 이 한 형태다.
Approach
리뷰어 체크리스트에 항목을 하나 넣는다: 테스트가 동작이 아니라 소스 텍스트를 검사하면 약한 가드로 표시한다.
탐지 신호(언어별로 이름만 다르다):
inspect.getsource·__code__·readFile(__filename)· 자기 소스에 대한 정규식/부분문자열 검사.승인을 막자는 게 아니다 — 이런 테스트도 쓸모가 있다(직접 호출 금지, 린트 성격). 요구하는 것은 판정에 한계를 적는 것이다:
append_rows를 두고 호출되면 실패시키기)Completion criteria
inspect.getsource기반 테스트가 든 diff 를 리뷰시키면 판정에 한계 문장이 나온다DoD
"불변식을 테스트로 고정했다"는 보고를 사람이 액면가로 읽어도 안전하다.
메타데이터 검토
근거: 2026-08-28 cgf-portal PR #163 감사. 같은 PR 의 다른 테스트 3종은 뮤테이션을 전부 잡았다.
This branch changes files that other open PRs / active branches also touch. Coordinate before merging to avoid divergent parallel edits (INT-2388 #3):
package-lock.jsonpackage-lock.json,package.jsonpackage-lock.jsonpackage-lock.jsonpackage-lock.jsonpackage-lock.jsonpackage-lock.jsonpackage-lock.jsonpackage-lock.jsonpackage-lock.json,package.jsonpackage-lock.jsonpackage-lock.jsonpackage-lock.json,package.jsonpackage-lock.jsonLinear
Closes AGT-4045
🤖 Generated with OpenSwarm