fix(studio-save): 확인 없이 옮긴 문장을 고치고, 안 닿는 가지에 유효 범위를 적는다

「Decision 은 계약에 삭제 경로가 없다」고 적었는데 틀렸다. ManagementDocumentController
:123 에 DELETE /v1/studio/projects/{id}/decisions/{decisionId} 가 있다. 스킬의 문장을
확인 없이 옮겼다. 시험 초안을 CASE 로 고른 이유는 삭제 경로 때문이 아니라 그 기록이 이
배치가 만든 것이라 남의 것이 아니어서다.

멱등 키 길이 검사는 지금 정책에서 안 닿는다. 키가 studio-{op}-{32자}(+{32자})라 길이가
사실상 고정이고 저장 키가 77자다. 죽은 코드가 아니라 키 정책이 바뀌면 살아나는 방어선이라
지우지 않고, 언제 살아나는지를 주석에 적었다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4vKjQo9KKBBokzxqXLCfk
This commit is contained in:
DongHyeonka
2026-09-10 19:16:55 +09:00
co-authored by Claude Opus 5
parent c66eee6cb2
commit 4e9226a57d
2 changed files with 13 additions and 3 deletions
+5 -2
View File
@@ -504,8 +504,11 @@ class HarnessTestPlanTest(unittest.TestCase):
def test_the_cleanup_path_is_the_case_delete_endpoint(self):
"""`DELETE /api/v1/studio/cases/{id}` 는 실재한다
(`ManagementDocumentController.java:72`). Decision 은 삭제 경로가 없어서
시험 초안의 종류를 CASE 로 고른다."""
(`ManagementDocumentController.java:72`).
시험 초안을 CASE 로 고른 이유는 삭제 경로 때문이 아니다 — Decision 에도
`DELETE /v1/studio/projects/{id}/decisions/{decisionId}` 가 있다(`:123`).
고른 이유는 그 기록이 이 배치가 만든 것이라 남의 것이 아니어서다."""
steps = ss.plan_requests("docs/p/t/case/x.md", dict(SENT), None, None,
harness_test=True)
cleanup = next(s for s in steps if s["op"] == "cleanup")