증상
한 실행에서 건드리는 모든 엔티티가 payload 하나의 id를 공유한다(단일 행 키). 그 연쇄로 s1의 Stock.onHand가 어떤 성공 주문 뒤에도 차감되지 않아 과다판매를 막을 수 없다.
- s1 F-3 (blocker, expr) — 단일 id 행 키 —
qa/probe-v0.8/cases/s1-order-platform/FINDINGS.md
- s1 F-6 (blocker, F-3의 연쇄) — Stock.onHand 미갱신, 예약 합계 우회도 가드 제약으로 실패 — 같은 파일. REPORT §5 U2는 이 이슈에 종속(별도 변경 불필요)이라 여기에 합쳤다.
근인(추정)
impl/lnpl/repo_policy.py::row_key가 어떤 엔티티든 payload["id"] 하나만 사용한다.
변경안
find/create에 조회 키 필드를 지정하는 표기(예: find product by input.productId).
기대 효과
s1 R2 원자적 재고 관리가 언어 안에서 구현 가능해지고 F-6 우회 자체가 불필요해진다.
중복 확인
rfcs/에 row-key·lookup 항목 없음. docs/ROADMAP.md에 row key / lookup / natural key 언급 없음.
출처: probe-v0.8 11차 감사 qa/probe-v0.8/REPORT.md §5/§6 (로컬 브랜치 probe/v0.8-enterprise, 아직 push 전 — 경로는 그 브랜치 기준). 측정은 블랙박스(플러그인 스킬+CLI+MCP+docs)로 수행됐고 근인 칸의 impl/ 언급은 사후 읽기 추정이다. 종합 판정 Block의 P0 항목.
증상
한 실행에서 건드리는 모든 엔티티가 payload 하나의
id를 공유한다(단일 행 키). 그 연쇄로 s1의Stock.onHand가 어떤 성공 주문 뒤에도 차감되지 않아 과다판매를 막을 수 없다.qa/probe-v0.8/cases/s1-order-platform/FINDINGS.md근인(추정)
impl/lnpl/repo_policy.py::row_key가 어떤 엔티티든payload["id"]하나만 사용한다.변경안
find/create에 조회 키 필드를 지정하는 표기(예:find product by input.productId).기대 효과
s1 R2 원자적 재고 관리가 언어 안에서 구현 가능해지고 F-6 우회 자체가 불필요해진다.
중복 확인
rfcs/에 row-key·lookup 항목 없음. docs/ROADMAP.md에 row key / lookup / natural key 언급 없음.
출처: probe-v0.8 11차 감사
qa/probe-v0.8/REPORT.md§5/§6 (로컬 브랜치probe/v0.8-enterprise, 아직 push 전 — 경로는 그 브랜치 기준). 측정은 블랙박스(플러그인 스킬+CLI+MCP+docs)로 수행됐고 근인 칸의 impl/ 언급은 사후 읽기 추정이다. 종합 판정 Block의 P0 항목.