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>
755 lines
17 KiB
Plaintext
755 lines
17 KiB
Plaintext
{
|
|
"type": "excalidraw",
|
|
"version": 2,
|
|
"source": "techviz-harness",
|
|
"elements": [
|
|
{
|
|
"id": "edge-l-cl",
|
|
"type": "arrow",
|
|
"x": 160.5,
|
|
"y": 291.0,
|
|
"width": 104.5,
|
|
"height": 96.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": null,
|
|
"seed": 417114022,
|
|
"version": 1,
|
|
"versionNonce": 417951526,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"points": [
|
|
[
|
|
104.5,
|
|
0.0
|
|
],
|
|
[
|
|
104.5,
|
|
48.0
|
|
],
|
|
[
|
|
0.0,
|
|
48.0
|
|
],
|
|
[
|
|
0.0,
|
|
96.0
|
|
]
|
|
],
|
|
"lastCommittedPoint": null,
|
|
"startBinding": {
|
|
"elementId": "node-liquibase",
|
|
"focus": 0,
|
|
"gap": 4
|
|
},
|
|
"endBinding": {
|
|
"elementId": "node-changelog",
|
|
"focus": 0,
|
|
"gap": 4
|
|
},
|
|
"startArrowhead": null,
|
|
"endArrowhead": "arrow",
|
|
"elbowed": true
|
|
},
|
|
{
|
|
"id": "edge-label-l-cl",
|
|
"type": "text",
|
|
"x": 167.75,
|
|
"y": 299.0,
|
|
"width": 90,
|
|
"height": 24,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 1,
|
|
"strokeStyle": "solid",
|
|
"roughness": 0,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 927744910,
|
|
"version": 1,
|
|
"versionNonce": 1746507351,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"fontSize": 13,
|
|
"fontFamily": 5,
|
|
"text": "판단 기준",
|
|
"textAlign": "center",
|
|
"verticalAlign": "middle",
|
|
"containerId": null,
|
|
"originalText": "판단 기준",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "edge-l-ro",
|
|
"type": "arrow",
|
|
"x": 283.0,
|
|
"y": 291.0,
|
|
"width": 111.5,
|
|
"height": 109.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": null,
|
|
"seed": 383387180,
|
|
"version": 1,
|
|
"versionNonce": 79738608,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"points": [
|
|
[
|
|
0.0,
|
|
0.0
|
|
],
|
|
[
|
|
0.0,
|
|
54.5
|
|
],
|
|
[
|
|
111.5,
|
|
54.5
|
|
],
|
|
[
|
|
111.5,
|
|
109.0
|
|
]
|
|
],
|
|
"lastCommittedPoint": null,
|
|
"startBinding": {
|
|
"elementId": "node-liquibase",
|
|
"focus": 0,
|
|
"gap": 4
|
|
},
|
|
"endBinding": {
|
|
"elementId": "node-rolling",
|
|
"focus": 0,
|
|
"gap": 4
|
|
},
|
|
"startArrowhead": null,
|
|
"endArrowhead": "arrow",
|
|
"elbowed": true
|
|
},
|
|
{
|
|
"id": "edge-label-l-ro",
|
|
"type": "text",
|
|
"x": 293.75,
|
|
"y": 305.5,
|
|
"width": 90,
|
|
"height": 24,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 1,
|
|
"strokeStyle": "solid",
|
|
"roughness": 0,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 203307058,
|
|
"version": 1,
|
|
"versionNonce": 518380451,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"fontSize": 13,
|
|
"fontFamily": 5,
|
|
"text": "중단 지점",
|
|
"textAlign": "center",
|
|
"verticalAlign": "middle",
|
|
"containerId": null,
|
|
"originalText": "중단 지점",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "edge-r-l",
|
|
"type": "arrow",
|
|
"x": 274.0,
|
|
"y": 124.0,
|
|
"width": 0.0,
|
|
"height": 96.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": null,
|
|
"seed": 365871980,
|
|
"version": 1,
|
|
"versionNonce": 1230363411,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"points": [
|
|
[
|
|
0.0,
|
|
0.0
|
|
],
|
|
[
|
|
0.0,
|
|
48.0
|
|
],
|
|
[
|
|
0.0,
|
|
48.0
|
|
],
|
|
[
|
|
0.0,
|
|
96.0
|
|
]
|
|
],
|
|
"lastCommittedPoint": null,
|
|
"startBinding": {
|
|
"elementId": "node-rollback",
|
|
"focus": 0,
|
|
"gap": 4
|
|
},
|
|
"endBinding": {
|
|
"elementId": "node-liquibase",
|
|
"focus": 0,
|
|
"gap": 4
|
|
},
|
|
"startArrowhead": null,
|
|
"endArrowhead": "arrow",
|
|
"elbowed": true
|
|
},
|
|
{
|
|
"id": "edge-label-r-l",
|
|
"type": "text",
|
|
"x": 253.0,
|
|
"y": 160.0,
|
|
"width": 90,
|
|
"height": 24,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 1,
|
|
"strokeStyle": "solid",
|
|
"roughness": 0,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 403610727,
|
|
"version": 1,
|
|
"versionNonce": 1279300050,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"fontSize": 13,
|
|
"fontFamily": 5,
|
|
"text": "기동 시 검증",
|
|
"textAlign": "center",
|
|
"verticalAlign": "middle",
|
|
"containerId": null,
|
|
"originalText": "기동 시 검증",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "edge-ro-s",
|
|
"type": "arrow",
|
|
"x": 274.0,
|
|
"y": 471.0,
|
|
"width": 120.5,
|
|
"height": 109.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": null,
|
|
"seed": 1207881606,
|
|
"version": 1,
|
|
"versionNonce": 455117194,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"points": [
|
|
[
|
|
120.5,
|
|
0.0
|
|
],
|
|
[
|
|
120.5,
|
|
54.5
|
|
],
|
|
[
|
|
0.0,
|
|
54.5
|
|
],
|
|
[
|
|
0.0,
|
|
109.0
|
|
]
|
|
],
|
|
"lastCommittedPoint": null,
|
|
"startBinding": {
|
|
"elementId": "node-rolling",
|
|
"focus": 0,
|
|
"gap": 4
|
|
},
|
|
"endBinding": {
|
|
"elementId": "node-service",
|
|
"focus": 0,
|
|
"gap": 4
|
|
},
|
|
"startArrowhead": null,
|
|
"endArrowhead": "arrow",
|
|
"elbowed": true
|
|
},
|
|
{
|
|
"id": "edge-label-ro-s",
|
|
"type": "text",
|
|
"x": 289.25,
|
|
"y": 485.5,
|
|
"width": 90,
|
|
"height": 24,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 1,
|
|
"strokeStyle": "solid",
|
|
"roughness": 0,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 900557432,
|
|
"version": 1,
|
|
"versionNonce": 552667501,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"fontSize": 13,
|
|
"fontFamily": 5,
|
|
"text": "잔여 파드 응답",
|
|
"textAlign": "center",
|
|
"verticalAlign": "middle",
|
|
"containerId": null,
|
|
"originalText": "잔여 파드 응답",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "node-rollback",
|
|
"type": "rectangle",
|
|
"x": 199.0,
|
|
"y": 60.0,
|
|
"width": 150.0,
|
|
"height": 64.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "#ffffff",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 860780826,
|
|
"version": 1,
|
|
"versionNonce": 1667969784,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false
|
|
},
|
|
{
|
|
"id": "node-label-rollback",
|
|
"type": "text",
|
|
"x": 209.0,
|
|
"y": 70.0,
|
|
"width": 130.0,
|
|
"height": 44.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 1,
|
|
"strokeStyle": "solid",
|
|
"roughness": 0,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 1555979348,
|
|
"version": 1,
|
|
"versionNonce": 640255252,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"fontSize": 15,
|
|
"fontFamily": 5,
|
|
"text": "옛 버전으로 되돌리기",
|
|
"textAlign": "center",
|
|
"verticalAlign": "middle",
|
|
"containerId": null,
|
|
"originalText": "옛 버전으로 되돌리기",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "node-liquibase",
|
|
"type": "rectangle",
|
|
"x": 124.0,
|
|
"y": 220.0,
|
|
"width": 300.0,
|
|
"height": 71.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "#ffffff",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 1141244519,
|
|
"version": 1,
|
|
"versionNonce": 1693830728,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false
|
|
},
|
|
{
|
|
"id": "node-label-liquibase",
|
|
"type": "text",
|
|
"x": 134.0,
|
|
"y": 230.0,
|
|
"width": 280.0,
|
|
"height": 51.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 1,
|
|
"strokeStyle": "solid",
|
|
"roughness": 0,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 860083864,
|
|
"version": 1,
|
|
"versionNonce": 527868087,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"fontSize": 15,
|
|
"fontFamily": 5,
|
|
"text": "Liquibase 검증\nValidationFailedException: 1 changesets check sum",
|
|
"textAlign": "center",
|
|
"verticalAlign": "middle",
|
|
"containerId": null,
|
|
"originalText": "Liquibase 검증\nValidationFailedException: 1 changesets check sum",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "node-changelog",
|
|
"type": "rectangle",
|
|
"x": 70.0,
|
|
"y": 387.0,
|
|
"width": 181.0,
|
|
"height": 97.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "#e7f5ff",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 118557854,
|
|
"version": 1,
|
|
"versionNonce": 419589167,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false
|
|
},
|
|
{
|
|
"id": "node-label-changelog",
|
|
"type": "text",
|
|
"x": 80.0,
|
|
"y": 397.0,
|
|
"width": 161.0,
|
|
"height": 77.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 1,
|
|
"strokeStyle": "solid",
|
|
"roughness": 0,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 656588475,
|
|
"version": 1,
|
|
"versionNonce": 1944113786,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"fontSize": 15,
|
|
"fontFamily": 5,
|
|
"text": "databasechangelog 행 수\n전후 행 수 비교",
|
|
"textAlign": "center",
|
|
"verticalAlign": "middle",
|
|
"containerId": null,
|
|
"originalText": "databasechangelog 행 수\n전후 행 수 비교",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "node-rolling",
|
|
"type": "rectangle",
|
|
"x": 311.0,
|
|
"y": 400.0,
|
|
"width": 167.0,
|
|
"height": 71.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "#ffffff",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 564674954,
|
|
"version": 1,
|
|
"versionNonce": 565935337,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false
|
|
},
|
|
{
|
|
"id": "node-label-rolling",
|
|
"type": "text",
|
|
"x": 321.0,
|
|
"y": 410.0,
|
|
"width": 147.0,
|
|
"height": 51.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 1,
|
|
"strokeStyle": "solid",
|
|
"roughness": 0,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 749722027,
|
|
"version": 1,
|
|
"versionNonce": 1585714182,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"fontSize": 15,
|
|
"fontFamily": 5,
|
|
"text": "StatefulSet 롤링 업데이트\n나머지 파드 유지",
|
|
"textAlign": "center",
|
|
"verticalAlign": "middle",
|
|
"containerId": null,
|
|
"originalText": "StatefulSet 롤링 업데이트\n나머지 파드 유지",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
},
|
|
{
|
|
"id": "node-service",
|
|
"type": "rectangle",
|
|
"x": 199.0,
|
|
"y": 580.0,
|
|
"width": 150.0,
|
|
"height": 64.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "#ffffff",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 2,
|
|
"strokeStyle": "solid",
|
|
"roughness": 1,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 730729362,
|
|
"version": 1,
|
|
"versionNonce": 1977234944,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false
|
|
},
|
|
{
|
|
"id": "node-label-service",
|
|
"type": "text",
|
|
"x": 209.0,
|
|
"y": 590.0,
|
|
"width": 130.0,
|
|
"height": 44.0,
|
|
"angle": 0,
|
|
"strokeColor": "#1e1e1e",
|
|
"backgroundColor": "transparent",
|
|
"fillStyle": "solid",
|
|
"strokeWidth": 1,
|
|
"strokeStyle": "solid",
|
|
"roughness": 0,
|
|
"opacity": 100,
|
|
"groupIds": [],
|
|
"frameId": null,
|
|
"index": null,
|
|
"roundness": {
|
|
"type": 3
|
|
},
|
|
"seed": 247193971,
|
|
"version": 1,
|
|
"versionNonce": 1117674851,
|
|
"isDeleted": false,
|
|
"boundElements": [],
|
|
"updated": 0,
|
|
"link": null,
|
|
"locked": false,
|
|
"fontSize": 15,
|
|
"fontFamily": 5,
|
|
"text": "외부 서비스",
|
|
"textAlign": "center",
|
|
"verticalAlign": "middle",
|
|
"containerId": null,
|
|
"originalText": "외부 서비스",
|
|
"autoResize": true,
|
|
"lineHeight": 1.25
|
|
}
|
|
],
|
|
"appState": {
|
|
"gridSize": 10,
|
|
"viewBackgroundColor": "#ffffff",
|
|
"currentItemFontFamily": 5
|
|
},
|
|
"files": {}
|
|
}
|