Files
document-haness/docs/keycloak-session-store/final/assets/reproducibility-gap/reproducibility-gap.drawio
T
DongHyeonkaandClaude Opus 5 73026cada6 docs(keycloak-session-store): rewrite the prose and the diagram labels out of AI register
Two things read as machine-written and both are now fixed with the
repository's own tooling.

The diagram labels counted abstractions instead of naming things —
"틀린 예측 5건", "조용한 실패 9건", "로컬 아티팩트 76건". Replaced with what
those actually were, which is also more useful in a drawing:

  틀린 예측 5건        -> A-1 · A-2 · A-6 · B-4 · B-6
  조용한 실패 9건      -> NetworkPolicy · tc · kill · iptables
  로컬 아티팩트 76건   -> 연결수 0 · 50µs
  A층 결론 3건 반전    -> A-1 · A-2 · A-8

The prose was staccato: 30.7 characters average against a 48-75 reference,
45% of sentences under 25 characters, and causal connectives at 4.9 per 100
against a floor of 6. check_prose reported an error for closing six
sentences with 「~것이 ~이다」.

Roughly ninety sentences were rewritten — joining pairs that carry a real
causal or contrastive relation, and varying the joins. The first pass
overcorrected into a new monotony (는데 at 47 occurrences, connectives up to
31.9, above the ceiling), so twenty-three of those were varied into 지만,
-고, em-dashes, or split back apart.

  check_prose      FAIL error 1  ->  OK error 0
  평균 문장 길이    30.7  ->  43.1
  25자 미만 비율    45.4% ->  23.4%
  이유 연결어미     4.9   ->  within range

Two style_profile numbers still read outside the band, and the reason is
worth writing down rather than editing around: the tool counts each image
caption as a sentence, and this document carries 28 diagrams. Excluding
captions and separators the prose is 46.4 characters average with 14.3%
short — inside the reference range. Padding sentences to move the remaining
gap is what CLAUDE.md forbids, so it stops here.

Protected values were checked against source and are unchanged: 153건/149건,
1,872 ms, 20,000 ms, 22.2 초, 2305초, 845361바이트, 8856건, 205.7ms, 106초.
All 28 diagrams still lint clean with no sentence left on any canvas.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-05 12:05:52 +09:00

39 lines
3.4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2026-07-23T00:00:00.000Z" agent="techviz-harness" version="24.7.17" type="device">
<diagram id="reproducibility-gap" name="명령으로 적는 것과 도는 것">
<mxGraphModel dx="680" dy="670" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="n_prose" value="산문 상태의 측정 장치&lt;br/&gt;A-6 부하 생성기" tooltip="괄호와 설명으로 남아 있었다. | Evidence: L598-L610" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;strokeColor=#d97706;fillColor=#fffdf5;" vertex="1" parent="1">
<mxGeometry x="70.0" y="60.0" width="150.0" height="71.0" as="geometry"/>
</mxCell>
<mxCell id="n_command" value="셸 표현식" tooltip="붙여넣으면 도는 형태. | Evidence: L598-L614" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="70.0" y="227.0" width="150.0" height="64.0" as="geometry"/>
</mxCell>
<mxCell id="n_execute" value="실제 실행 확인&lt;br/&gt;일회성 파드의 출력 유실" tooltip="여기서 한 건이 깨졌다. | Evidence: L615-L622" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;strokeColor=#2563eb;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="70.0" y="387.0" width="150.0" height="71.0" as="geometry"/>
</mxCell>
<mxCell id="n_verified" value="재현 가능&lt;br/&gt;상주 탐침 20/20" tooltip="실행까지 확인된 것만. | Evidence: L615-L622" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;strokeColor=#2563eb;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="70.0" y="554.0" width="150.0" height="71.0" as="geometry"/>
</mxCell>
<mxCell id="e_c-e" value="실행" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_command" target="n_execute">
<mxGeometry relative="1" as="geometry">
<mxPoint x="169.0" y="339.0" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_e-v" value="통과분 채택" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_execute" target="n_verified">
<mxGeometry relative="1" as="geometry">
<mxPoint x="169.0" y="506.0" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_p-c" value="명령화" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_prose" target="n_command">
<mxGeometry relative="1" as="geometry">
<mxPoint x="169.0" y="179.0" as="offset"/>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>