docs(keycloak-session-store): take the sentences out of the diagram canvases
The skill says drawings carry names and sentences go in <desc> and the paragraph beside the figure. I put sentences in node details and edge labels instead, and 27 of the 28 diagrams shipped with prose inside the canvas — "예측 다섯 개가 틀렸다", "아홉 번 조용히 실패했다", "막혀서 닿지 않는다". Only label and details render on the canvas; description does not. So every sentence moved to a noun phrase and the meaning stays in description, which was already carrying it. 막혀서 닿지 않는다 -> 차단 아홉 번 조용히 실패했다 -> 조용한 실패 9건 예측 다섯 개가 틀렸다 -> 틀린 예측 5건 로그아웃이 정리하지 않는다 -> 로그아웃 미정리 볼륨이 없으면 여기까지다 -> 볼륨 없음 Three node labels were sentences too and became names: 세션 스냅샷, 예측 선기록, 대조군 확보. What stays is what the rules protect — identifiers, commands and measured values: PRIMARY KEY (client_registration_id, principal_name), ValidationFailedException: 1 changesets check sum, nginx -t && nginx -s reload, SET LOCAL synchronous_commit TO OFF. Those are names of things, not prose about them. 294 canvas strings across 28 diagrams, none matching a sentence ending, average 11 characters. All 28 still lint clean and re-rendered. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
75bed382c8
commit
95c0e680b5
@@ -10,13 +10,13 @@
|
||||
|
||||
## Elements and evidence
|
||||
|
||||
- **예측을 먼저 적는다** (process): 결과를 보고 나면 정직하게 쓸 수 없다. Evidence: L744–L752.
|
||||
- **주입이 걸렸는지 확인** (process): 아무 일도 없었다와 영향이 없다를 가른다. Evidence: L744–L752.
|
||||
- **대조군을 잡는다** (process): 가장 자주 어겨졌고 가장 비쌌다. Evidence: L744–L753.
|
||||
- **예측 선기록** (process): 결과를 보고 나면 정직하게 쓸 수 없다. Evidence: L744–L752.
|
||||
- **주입 검증** (process): 아무 일도 없었다와 영향이 없다를 가른다. Evidence: L744–L752.
|
||||
- **대조군 확보** (process): 가장 자주 어겨졌고 가장 비쌌다. Evidence: L744–L753.
|
||||
- **결론** (component): 세 단계를 거친 것만 남긴다. Evidence: L744–L753.
|
||||
|
||||
## Relationships
|
||||
|
||||
- **대조군을 잡는다 → 결론:** 귀속. Evidence: L744–L753.
|
||||
- **예측을 먼저 적는다 → 주입이 걸렸는지 확인:** 주입 뒤. Evidence: L744–L752.
|
||||
- **주입이 걸렸는지 확인 → 대조군을 잡는다:** 관측 전. Evidence: L744–L752.
|
||||
- **대조군 확보 → 결론:** 귀속. Evidence: L744–L753.
|
||||
- **예측 선기록 → 주입 검증:** 주입 뒤. Evidence: L744–L752.
|
||||
- **주입 검증 → 대조군 확보:** 관측 전. Evidence: L744–L752.
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# 틀린 예측이 남긴 것
|
||||
# Question: 예측을 지우지 않고 남기면 무엇이 달라지는가
|
||||
direction: down
|
||||
n0: "예측을 먼저 적는다" {
|
||||
n0: "예측 선기록" {
|
||||
shape: rectangle
|
||||
}
|
||||
n1: "주입이 걸렸는지 확인" {
|
||||
n1: "주입 검증" {
|
||||
shape: rectangle
|
||||
}
|
||||
n2: "대조군을 잡는다" {
|
||||
n2: "대조군 확보" {
|
||||
shape: rectangle
|
||||
}
|
||||
n3: "결론" {
|
||||
|
||||
@@ -2,9 +2,9 @@ digraph techviz {
|
||||
graph [rankdir=TB, splines=ortho, nodesep=0.55, ranksep=0.85];
|
||||
node [fontname=Helvetica, fontsize=11, margin="0.18,0.12", style="rounded,filled", fillcolor=white, color="#2d4357", penwidth=1.5];
|
||||
edge [fontname=Helvetica, fontsize=10, color="#364b5f", penwidth=1.4, arrowsize=0.75];
|
||||
n0 [label="예측을 먼저 적는다", shape=box, style="rounded,filled"];
|
||||
n1 [label="주입이 걸렸는지 확인", shape=box, style="rounded,filled"];
|
||||
n2 [label="대조군을 잡는다", shape=box, style="rounded,filled"];
|
||||
n0 [label="예측 선기록", shape=box, style="rounded,filled"];
|
||||
n1 [label="주입 검증", shape=box, style="rounded,filled"];
|
||||
n2 [label="대조군 확보", shape=box, style="rounded,filled"];
|
||||
n3 [label="결론", shape=box, style="rounded,filled"];
|
||||
n0 -> n1 [label="주입 뒤", style=solid];
|
||||
n1 -> n2 [label="관측 전", style=solid];
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="n_predict" value="예측을 먼저 적는다<br/>예측 다섯 개가 틀렸다" tooltip="결과를 보고 나면 정직하게 쓸 수 없다. | Evidence: L744-L752" 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">
|
||||
<mxCell id="n_predict" value="예측 선기록<br/>틀린 예측 5건" tooltip="결과를 보고 나면 정직하게 쓸 수 없다. | Evidence: L744-L752" 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="60.0" width="150.0" height="71.0" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="n_verify" value="주입이 걸렸는지 확인<br/>아홉 번 조용히 실패했다" tooltip="아무 일도 없었다와 영향이 없다를 가른다. | Evidence: L744-L752" 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">
|
||||
<mxCell id="n_verify" value="주입 검증<br/>조용한 실패 9건" tooltip="아무 일도 없었다와 영향이 없다를 가른다. | Evidence: L744-L752" 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="227.0" width="150.0" height="71.0" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="n_control" value="대조군을 잡는다" tooltip="가장 자주 어겨졌고 가장 비쌌다. | Evidence: L744-L753" 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">
|
||||
<mxCell id="n_control" value="대조군 확보" tooltip="가장 자주 어겨졌고 가장 비쌌다. | Evidence: L744-L753" 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="394.0" width="150.0" height="64.0" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="n_conclusion" value="결론" tooltip="세 단계를 거친 것만 남긴다. | Evidence: L744-L753" 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">
|
||||
|
||||
+6
-6
@@ -361,11 +361,11 @@
|
||||
"locked": false,
|
||||
"fontSize": 15,
|
||||
"fontFamily": 5,
|
||||
"text": "예측을 먼저 적는다\n예측 다섯 개가 틀렸다",
|
||||
"text": "예측 선기록\n틀린 예측 5건",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": null,
|
||||
"originalText": "예측을 먼저 적는다\n예측 다섯 개가 틀렸다",
|
||||
"originalText": "예측 선기록\n틀린 예측 5건",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
@@ -430,11 +430,11 @@
|
||||
"locked": false,
|
||||
"fontSize": 15,
|
||||
"fontFamily": 5,
|
||||
"text": "주입이 걸렸는지 확인\n아홉 번 조용히 실패했다",
|
||||
"text": "주입 검증\n조용한 실패 9건",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": null,
|
||||
"originalText": "주입이 걸렸는지 확인\n아홉 번 조용히 실패했다",
|
||||
"originalText": "주입 검증\n조용한 실패 9건",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
@@ -499,11 +499,11 @@
|
||||
"locked": false,
|
||||
"fontSize": 15,
|
||||
"fontFamily": 5,
|
||||
"text": "대조군을 잡는다",
|
||||
"text": "대조군 확보",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": null,
|
||||
"originalText": "대조군을 잡는다",
|
||||
"originalText": "대조군 확보",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"harness_version": "0.2.0",
|
||||
"spec_id": "wrong-predictions",
|
||||
"spec_version": "1.1",
|
||||
"spec_sha256": "1e7e2e947e2590ba086c056c82cf6d3fe4455c4c4137eb380c05c2495396ae8e",
|
||||
"spec_sha256": "9afb114a63c78ec63e9c3dbafe7c902ccca77be9b9745ddebaf832f1ea2842cd",
|
||||
"source_context": {
|
||||
"document": "docs/keycloak-session-store/final/document.md",
|
||||
"document_sha256": "1d44cba1905544d92f1d26ae36a8deb64a3db3914d6b488fd30d6ae7f8cfbabe",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
%% 틀린 예측이 남긴 것
|
||||
%% question: 예측을 지우지 않고 남기면 무엇이 달라지는가
|
||||
flowchart TB
|
||||
n0["예측을 먼저 적는다"]
|
||||
n1["주입이 걸렸는지 확인"]
|
||||
n2["대조군을 잡는다"]
|
||||
n0["예측 선기록"]
|
||||
n1["주입 검증"]
|
||||
n2["대조군 확보"]
|
||||
n3["결론"]
|
||||
n0 -->|"주입 뒤"| n1
|
||||
n1 -->|"관측 전"| n2
|
||||
|
||||
@@ -61,19 +61,19 @@
|
||||
<text class="edge-label" x="169.0" y="347.0">관측 전</text>
|
||||
<g id="node-predict">
|
||||
<rect class="node-shape kind-process emphasis-primary role-source" data-evidence="744-752" x="70.0" y="60.0" width="150.0" height="71.0" rx="7" />
|
||||
<text class="node-label" x="145.0" y="87.0">예측을 먼저 적는다</text>
|
||||
<text class="node-label" x="145.0" y="87.0">예측 선기록</text>
|
||||
<line class="node-detail-divider" x1="84.0" y1="108.0" x2="206.0" y2="108.0" />
|
||||
<text class="node-detail" x="86.0" y="125.0">예측 다섯 개가 틀렸다</text>
|
||||
<text class="node-detail" x="86.0" y="125.0">틀린 예측 5건</text>
|
||||
</g>
|
||||
<g id="node-verify">
|
||||
<rect class="node-shape kind-process emphasis-primary role-control" data-evidence="744-752" x="70.0" y="227.0" width="150.0" height="71.0" rx="7" />
|
||||
<text class="node-label" x="145.0" y="254.0">주입이 걸렸는지 확인</text>
|
||||
<text class="node-label" x="145.0" y="254.0">주입 검증</text>
|
||||
<line class="node-detail-divider" x1="84.0" y1="275.0" x2="206.0" y2="275.0" />
|
||||
<text class="node-detail" x="86.0" y="292.0">아홉 번 조용히 실패했다</text>
|
||||
<text class="node-detail" x="86.0" y="292.0">조용한 실패 9건</text>
|
||||
</g>
|
||||
<g id="node-control">
|
||||
<rect class="node-shape kind-process emphasis-warning role-control" data-evidence="744-753" x="70.0" y="394.0" width="150.0" height="64.0" rx="7" />
|
||||
<text class="node-label" x="145.0" y="424.0">대조군을 잡는다</text>
|
||||
<text class="node-label" x="145.0" y="424.0">대조군 확보</text>
|
||||
</g>
|
||||
<g id="node-conclusion">
|
||||
<rect class="node-shape kind-component emphasis-primary role-target" data-evidence="744-753" x="70.0" y="554.0" width="150.0" height="64.0" rx="7" />
|
||||
|
||||
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
Reference in New Issue
Block a user