4.0 KiB
keycloak-session-store 7단계 하네스 재검토
- 검토일: 2026-09-20
- 대상: 61 Record / 31 TechViz SVG / 63 historical run ledger
- 판정: 아직 더 봐야댐
결론
대규모 문체 재작성은 필요 없다. check_prose와 check_voice는 61/61 PASS이고, Figure Text/Overlap/Provenance도 31/31 PASS다. historical run도 63/63 PASS다.
완료 차단은 다음 네 가지다.
- command-pedagogy analyzer가
bash label=...,sh label=...fence를 읽지 못한다. - TechViz 31개 중 28개의 current SSOT context가 달라졌다.
2026-09-17 재현 — 어디까지 밟았고 무엇이 막았나절이 tree에서 미처분 상태다.reference-look-at-the-lookup-key-before-moving-the-store.md에이 기준이 선 근거.라는 깨진 문장이 남아 있다.
Command pedagogy
Record 61개를 info string의 첫 토큰 기준으로 다시 세면 shell block은 992개이고 33개 Record에 분포한다. 이 가운데 plain fence는 8개, label metadata가 붙은 fence는 984개다. 즉 현재 analyzer가 놓치는 형식이 984/992 = 99.2%다.
first-token 방식으로 기존 deterministic finding 로직을 적용했을 때 signal은 346개였다. minor 341, major 5이며 compressed-pipeline 129, command-substitution 122, hidden-stderr 48, execution-context-implicit 40, compound-remote-shell 5 등이었다.
이 346개를 모두 고치면 안 된다. label에 이미 [lab host], [kc-lab-1], [test-server], [dev], [워크스테이션], [탐침 파드] 실행 위치가 있어서 analyzer의 execution-context signal 중 상당수는 false positive가 될 수 있다. 먼저 parser가 info string 첫 토큰을 language로 해석하고 label을 execution context로 읽게 고친 뒤 33개 Record/992 block을 다시 리뷰한다.
D-4a의 printf > /tmp/reload-nginx.sh 형태는 실제 그날 친 historical command라고 문서가 밝히므로 삭제하지 않는다. 따라 하는 절차는 편집기 + 파일 listing으로 두고 historical block은 reference 성격으로 분리한다.
SVG
31개 SVG의 구조 검사는 모두 PASS지만 현재 SSOT section snapshot과 일치하는 것은 cpu-io-passthrough-paths, ghost-row-cleanup-order, guest-as-host-process 3개뿐이다.
나머지 28개는 실제 current_section도 달라졌다. Keycloak에서 봤던 parent-heading false positive가 아니다. 기존 spec이 여전히 맞는지 현재 SSOT로 다시 확인하고, 맞으면 context/evidence/render만 갱신한다. 의미가 바뀐 그림만 spec을 수정한다. SVG는 손으로 편집하지 않는다.
Tree / prose
Tree의 NEEDS_DECISION 2, NEEDS_EVIDENCE 12는 모두 CONFIRMED 이유가 있어 문제 자체가 아니다. 문제는 범위 안의 2026-09-17 재현 — 어디까지 밟았고 무엇이 막았나 절이 어떤 candidate에도 연결되지 않은 것이다. KEEP_IN_SSOT / MERGE_INTO / PROMOTE 중 실제 역할에 맞는 disposition을 남긴다.
수동 S5 finding은 이 기준이 선 근거. 한 곳이다. 자연스럽게 이 기준의 근거다. 정도로 고친다. Relation 섹션의 반복 문형은 겹치는 곳만 선별 정리하고 전면 재작성하지 않는다.
원장
historical run.json 63개는 모두 당시 schema 계약 기준 PASS다. 현재 command quality lane은 더 새 계약이므로 과거 원장을 소급 수정하지 않는다. 실제 수정한 Record만 current remediation run을 만든다.
서브에이전트 사용 불가와 /home/donghyeon/workspace/keycloak-pattern 부재는 사용자와 합의한 환경 제약으로 완료 차단에서 제외한다. source reconciliation은 UNVERIFIABLE로 명시한다.
수정 순서
- command analyzer parser + label context + regression test
- 33개 Record / 992 shell block 재분석
- high-confidence command finding만 수정
- Tree 미처분 section 1개 분류
- 깨진 문장 1곳 수정
- TechViz 28개 current SSOT 기준 재검토
- 실제 수정분만 remediation ledger
- project gates
- 전체 pipeline과 unittest를 순차 실행
keycloak-session-store = 아직 더 봐야댐