feat(scripts): 경고를 읽는 장치가 아니라 만드는 장치를 더한다
남은 셋은 묶음 경고가 0건이라 게이트를 아무리 조여도 지나간다. 뿌리가 하나다 — 지금 검사기는 사라진 것과 새로 생긴 보호 구간을 보고, 범위가 넓어진 것과 정본을 안 거친 것을 보는 자리가 없었다. 그림이 정본을 거쳤는지 본다. SVG 는 바뀌었는데 spec.json 은 그대로면 그 그림은 정본에서 나온 것이 아니고, 화살표 뒤집기가 그 모양이다. spec 의 간선과 SVG 의 경로를 직접 견주려면 렌더러가 id 를 어떻게 붙이는지 알아야 하는데, 정본을 거쳤는지만 보면 몰라도 된다. 작업 트리와 이력 두 자리를 본다. 정본이 없는 그림은 볼 것이 아니라 세기만 한다. 적용 범위를 넓히는 말이 새로 들어왔는지 본다. 로컬에서 확인했다에 운영 환경에서도를 더하기만 하면 유보도 보호 구간도 안 바뀐다 — 지운 것이 없기 때문이다. 유보 감소의 반대편이고, 판정하지 않고 경고로 올린다. 경고 생산자를 더하는 것이 과잉 차단이 생기는 자리라 후보마다 채택 편집 100쌍을 돌렸다. error 도 경고도 안 늘었다. 정상 편집에 경고가 붙으면 그것도 사실상 차단이다. 목록에 운영·항상 같은 흔한 말이 들어가서, 원래 있던 말을 두고 주변만 고쳐도 걸리는지 보는 대조군을 회귀에 넣었다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q4vKjQo9KKBBokzxqXLCfk
This commit is contained in:
co-authored by
Claude Opus 5
parent
16cbe141a0
commit
e3230ce5ed
@@ -204,3 +204,46 @@ class UnsourcedVoiceTest(unittest.TestCase):
|
||||
"""대조군."""
|
||||
self.assertEqual([], [w for w in cp.compare(self.BEFORE, self.BEFORE)["warnings"]
|
||||
if w["kind"] == "1인칭"])
|
||||
|
||||
|
||||
class WidenedScopeTest(unittest.TestCase):
|
||||
"""범위를 넓히는 말이 새로 들어왔나.
|
||||
|
||||
지금까지 검사기는 「사라진 것」과 「새로 생긴 보호 구간」을 봤다. **「범위가 넓어진 것」을
|
||||
보는 자리가 없었다** — 더하기만 하면 유보도 보호 구간도 안 바뀐다.
|
||||
"""
|
||||
|
||||
BEFORE = "PK 조회라 두 쿼리 모두 Index Scan으로 1건을 약 0.02 ms에 가져온다."
|
||||
|
||||
def test_adding_a_scope_word_is_surfaced_as_a_warning(self):
|
||||
after = self.BEFORE.replace("조회라 ", "조회라 운영 환경에서도 ")
|
||||
res = cp.compare(self.BEFORE, after)
|
||||
self.assertEqual([], res["errors"], "판정이 아니라 라우팅이다")
|
||||
self.assertIn("적용 범위", {w["kind"] for w in res["warnings"]})
|
||||
|
||||
def test_the_warning_points_at_the_sentence(self):
|
||||
after = "항상 그렇다.\n\n" + self.BEFORE
|
||||
w = next(x for x in cp.compare(self.BEFORE, after)["warnings"]
|
||||
if x["kind"] == "적용 범위")
|
||||
self.assertIn("항상", w["sentence"])
|
||||
|
||||
def test_narrowing_the_scope_is_not_reported(self):
|
||||
"""좁히는 것은 이 규범에서 안전한 쪽이다."""
|
||||
wide = "항상 그렇다. " + self.BEFORE
|
||||
self.assertEqual([], [w for w in cp.compare(wide, self.BEFORE)["warnings"]
|
||||
if w["kind"] == "적용 범위"])
|
||||
|
||||
def test_a_scope_word_that_was_already_there_is_not_reported(self):
|
||||
"""대조군. 원래 있던 말을 그대로 두고 주변만 고치면 조용해야 한다.
|
||||
|
||||
이게 없으면 「운영」이 든 문장을 다듬기만 해도 걸리는지 알 수 없다.
|
||||
"""
|
||||
before = "운영 환경에서 잰 값이다. " + self.BEFORE
|
||||
after = "운영 환경에서 측정한 값이다. " + self.BEFORE
|
||||
self.assertEqual([], [w for w in cp.compare(before, after)["warnings"]
|
||||
if w["kind"] == "적용 범위"])
|
||||
|
||||
def test_an_ordinary_rewrite_raises_no_scope_warning(self):
|
||||
after = self.BEFORE.replace("가져온다", "돌려준다")
|
||||
self.assertEqual([], [w for w in cp.compare(self.BEFORE, after)["warnings"]
|
||||
if w["kind"] == "적용 범위"])
|
||||
|
||||
Reference in New Issue
Block a user