agentic-domain-document 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/.tbls.yml +201 -0
  2. package/CHANGELOG.md +68 -0
  3. package/README.md +313 -0
  4. package/agent/agent.manifest.json +8 -0
  5. package/agent/capabilities/document-authoring.json +21 -0
  6. package/agent/capabilities/document-block.json +22 -0
  7. package/agent/capabilities/document-toc.json +21 -0
  8. package/agent/capabilities/document-validation.json +21 -0
  9. package/agent/examples/document-quality-examples.md +153 -0
  10. package/agent/examples/examples.md +172 -0
  11. package/agent/guides/10-document-authoring-guide.md +28 -0
  12. package/agent/guides/20-domain-boundary-guide.md +41 -0
  13. package/agent/guides/30-authoring-policy-guide.md +40 -0
  14. package/agent/guides/40-toc-authoring-guide.md +73 -0
  15. package/agent/guides/50-content-block-guide.md +57 -0
  16. package/agent/guides/51-paragraph-authoring-guide.md +68 -0
  17. package/agent/guides/52-table-authoring-guide.md +73 -0
  18. package/agent/guides/53-diagram-figure-authoring-guide.md +75 -0
  19. package/agent/guides/70-korean-writing-style-guide.md +65 -0
  20. package/agent/instructions/00-runtime-behavior.md +17 -0
  21. package/agent/instructions/10-scope-and-boundary.md +27 -0
  22. package/agent/instructions/20-task-procedures.md +69 -0
  23. package/agent/instructions/30-must-and-must-not.md +34 -0
  24. package/agent/resource-index.json +185 -0
  25. package/agent/resource-selection.json +205 -0
  26. package/agent/routing.json +34 -0
  27. package/agent/sources/reference-mapping.md +53 -0
  28. package/agent/validation/document-validation-rules.md +73 -0
  29. package/dist/agent/document-agent-contribution.d.ts +15 -0
  30. package/dist/agent/document-agent-contribution.d.ts.map +1 -0
  31. package/dist/agent/document-agent-contribution.js +39 -0
  32. package/dist/agent/document-agent-contribution.js.map +1 -0
  33. package/dist/agent/index.d.ts +2 -0
  34. package/dist/agent/index.d.ts.map +1 -0
  35. package/dist/agent/index.js +2 -0
  36. package/dist/agent/index.js.map +1 -0
  37. package/dist/database.d.ts +8 -0
  38. package/dist/database.d.ts.map +1 -0
  39. package/dist/database.js +76 -0
  40. package/dist/database.js.map +1 -0
  41. package/dist/index.d.ts +15 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +14 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/markdown-importer.d.ts +14 -0
  46. package/dist/markdown-importer.d.ts.map +1 -0
  47. package/dist/markdown-importer.js +386 -0
  48. package/dist/markdown-importer.js.map +1 -0
  49. package/dist/reader.d.ts +17 -0
  50. package/dist/reader.d.ts.map +1 -0
  51. package/dist/reader.js +332 -0
  52. package/dist/reader.js.map +1 -0
  53. package/dist/repositories.d.ts +118 -0
  54. package/dist/repositories.d.ts.map +1 -0
  55. package/dist/repositories.js +388 -0
  56. package/dist/repositories.js.map +1 -0
  57. package/dist/service.d.ts +35 -0
  58. package/dist/service.d.ts.map +1 -0
  59. package/dist/service.js +327 -0
  60. package/dist/service.js.map +1 -0
  61. package/dist/types.d.ts +276 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +2 -0
  64. package/dist/types.js.map +1 -0
  65. package/dist/validators.d.ts +4 -0
  66. package/dist/validators.d.ts.map +1 -0
  67. package/dist/validators.js +255 -0
  68. package/dist/validators.js.map +1 -0
  69. package/docs/build.md +55 -0
  70. package/docs/configuration.md +34 -0
  71. package/docs/delivery.md +50 -0
  72. package/docs/operations.md +50 -0
  73. package/docs/publishing.md +69 -0
  74. package/docs/schema/generated/README.md +30 -0
  75. package/docs/schema/generated/document_annotations.md +119 -0
  76. package/docs/schema/generated/document_annotations.svg +60 -0
  77. package/docs/schema/generated/document_blocks.md +97 -0
  78. package/docs/schema/generated/document_blocks.svg +60 -0
  79. package/docs/schema/generated/document_change_events.md +135 -0
  80. package/docs/schema/generated/document_change_events.svg +88 -0
  81. package/docs/schema/generated/document_code_groups.md +70 -0
  82. package/docs/schema/generated/document_code_groups.svg +52 -0
  83. package/docs/schema/generated/document_codes.md +88 -0
  84. package/docs/schema/generated/document_codes.svg +52 -0
  85. package/docs/schema/generated/document_contents.md +87 -0
  86. package/docs/schema/generated/document_contents.svg +116 -0
  87. package/docs/schema/generated/document_documents.md +126 -0
  88. package/docs/schema/generated/document_documents.svg +222 -0
  89. package/docs/schema/generated/document_node_taxonomies.md +84 -0
  90. package/docs/schema/generated/document_node_taxonomies.svg +80 -0
  91. package/docs/schema/generated/document_node_taxonomy_levels.md +91 -0
  92. package/docs/schema/generated/document_node_taxonomy_levels.svg +52 -0
  93. package/docs/schema/generated/document_nodes.md +120 -0
  94. package/docs/schema/generated/document_nodes.svg +98 -0
  95. package/docs/schema/generated/document_revisions.md +107 -0
  96. package/docs/schema/generated/document_revisions.svg +116 -0
  97. package/docs/schema/generated/document_versions.md +126 -0
  98. package/docs/schema/generated/document_versions.svg +88 -0
  99. package/docs/schema/generated/schema.json +2534 -0
  100. package/docs/schema/generated/schema.mmd +170 -0
  101. package/docs/schema/generated/schema.svg +331 -0
  102. package/docs/schema/migrations.md +40 -0
  103. package/docs/usage.md +332 -0
  104. package/docs/validation-rules.md +69 -0
  105. package/package.json +30 -0
  106. package/src/database/migrations/0001_document_base.sql +753 -0
@@ -0,0 +1,170 @@
1
+ erDiagram
2
+
3
+ "document_codes" |o--|| "document_code_groups" : ""
4
+ "document_node_taxonomy_levels" }o--|| "document_node_taxonomies" : ""
5
+ "document_documents" }o--o| "document_documents" : ""
6
+ "document_documents" }o--|| "document_node_taxonomies" : ""
7
+ "document_nodes" }o--o| "document_nodes" : ""
8
+ "document_nodes" }o--|| "document_documents" : ""
9
+ "document_contents" |o--|| "document_nodes" : ""
10
+ "document_contents" }o--|| "document_documents" : ""
11
+ "document_blocks" }o--|| "document_contents" : ""
12
+ "document_annotations" }o--|| "document_documents" : ""
13
+ "document_revisions" }o--|| "document_documents" : ""
14
+ "document_change_events" }o--|| "document_documents" : ""
15
+ "document_change_events" }o--|| "document_revisions" : ""
16
+ "document_versions" }o--|| "document_revisions" : ""
17
+ "document_versions" }o--|| "document_documents" : ""
18
+
19
+ "document_code_groups" {
20
+ VARCHAR_64_ code_group_code "코드 그룹 식별자"
21
+ VARCHAR_128_ code_group_name "코드 그룹 한글명"
22
+ TEXT description "코드 그룹 설명"
23
+ INTEGER sort_order "표시 정렬 순서"
24
+ INTEGER is_active "활성 여부"
25
+ DATETIME created_at "생성 시각"
26
+ DATETIME updated_at "수정 시각"
27
+ }
28
+ "document_codes" {
29
+ VARCHAR_64_ code_group_code "코드 그룹 식별자"
30
+ VARCHAR_128_ code "코드 값"
31
+ VARCHAR_128_ code_name "코드 한글명"
32
+ TEXT description "코드 설명"
33
+ INTEGER sort_order "표시 정렬 순서"
34
+ INTEGER is_active "활성 여부"
35
+ JSON metadata_json "확장 메타데이터"
36
+ DATETIME created_at "생성 시각"
37
+ DATETIME updated_at "수정 시각"
38
+ }
39
+ "document_node_taxonomies" {
40
+ CHAR_36_ taxonomy_id "taxonomy 식별자"
41
+ VARCHAR_128_ taxonomy_code "taxonomy 코드"
42
+ VARCHAR_128_ taxonomy_name "taxonomy 이름"
43
+ VARCHAR_128_ document_type_code "문서 유형 코드"
44
+ INTEGER default_toc_level_limit "기본 TOC 포함 level"
45
+ TEXT description "설명"
46
+ INTEGER is_active "활성 여부"
47
+ DATETIME created_at "생성 시각"
48
+ DATETIME updated_at "수정 시각"
49
+ }
50
+ "document_node_taxonomy_levels" {
51
+ CHAR_36_ taxonomy_level_id "taxonomy level 식별자"
52
+ CHAR_36_ taxonomy_id "taxonomy 식별자"
53
+ INTEGER node_level "node level"
54
+ VARCHAR_128_ node_label_code "node label 코드"
55
+ VARCHAR_64_ numbering_policy_code "번호 정책 코드"
56
+ VARCHAR_64_ counter_scope_code "번호 카운터 범위 코드"
57
+ INTEGER sort_order "표시 정렬 순서"
58
+ DATETIME created_at "생성 시각"
59
+ DATETIME updated_at "수정 시각"
60
+ }
61
+ "document_documents" {
62
+ CHAR_36_ document_id "문서 식별자"
63
+ VARCHAR_128_ document_type_code "문서 유형 코드"
64
+ CHAR_36_ taxonomy_id "적용 taxonomy 식별자"
65
+ VARCHAR_512_ title "문서 제목"
66
+ CHAR_36_ source_document_id "파생 원본 문서 식별자"
67
+ VARCHAR_64_ version_label "표시 버전"
68
+ VARCHAR_32_ author_type_code "작성자 유형"
69
+ VARCHAR_128_ author_id "작성자 식별자"
70
+ VARCHAR_128_ author_name "작성자 표시명"
71
+ VARCHAR_32_ status_code "문서 상태"
72
+ INTEGER toc_level_limit "TOC로 취급할 level limit"
73
+ DATETIME published_at "published 상태 전환 시각"
74
+ DATETIME created_at "생성 시각"
75
+ DATETIME updated_at "수정 시각"
76
+ JSON metadata_json "확장 메타데이터"
77
+ }
78
+ "document_nodes" {
79
+ CHAR_36_ node_id "노드 식별자"
80
+ CHAR_36_ document_id "소속 문서 식별자"
81
+ CHAR_36_ parent_node_id "상위 노드 식별자"
82
+ INTEGER node_level "node level"
83
+ VARCHAR_64_ node_role_code "노드 역할 코드"
84
+ VARCHAR_512_ title "노드 제목"
85
+ VARCHAR_16_ toc_visibility "TOC 표시 정책"
86
+ VARCHAR_64_ numbering_policy_code "번호 정책 코드"
87
+ VARCHAR_64_ numbering_override "수동 번호 override"
88
+ INTEGER sort_order "형제 노드 내 정렬 순서"
89
+ DATETIME created_at "생성 시각"
90
+ DATETIME updated_at "수정 시각"
91
+ JSON metadata_json "확장 메타데이터"
92
+ }
93
+ "document_contents" {
94
+ CHAR_36_ content_id "content 식별자"
95
+ CHAR_36_ document_id "소속 문서 식별자"
96
+ CHAR_36_ node_id "소속 노드 식별자"
97
+ DATETIME created_at "생성 시각"
98
+ DATETIME updated_at "수정 시각"
99
+ JSON metadata_json "확장 메타데이터"
100
+ }
101
+ "document_blocks" {
102
+ CHAR_36_ block_id "block 식별자"
103
+ CHAR_36_ content_id "소속 content 식별자"
104
+ VARCHAR_32_ block_type_code "block 유형 코드"
105
+ INTEGER sort_order "content 안에서의 순서"
106
+ TEXT content_text "텍스트 중심 block 본문"
107
+ JSON content_json "구조형 block payload"
108
+ DATETIME created_at "생성 시각"
109
+ DATETIME updated_at "수정 시각"
110
+ JSON metadata_json "확장 메타데이터"
111
+ }
112
+ "document_annotations" {
113
+ CHAR_36_ annotation_id "annotation 식별자"
114
+ CHAR_36_ document_id "소속 문서 식별자"
115
+ VARCHAR_32_ target_type_code "annotation 대상 유형"
116
+ CHAR_36_ target_id "annotation 대상 식별자"
117
+ VARCHAR_32_ annotation_type_code "annotation 유형"
118
+ VARCHAR_32_ status_code "annotation 상태"
119
+ TEXT note_text "note 내용"
120
+ VARCHAR_32_ author_type_code "작성자 유형"
121
+ VARCHAR_128_ author_id "작성자 식별자"
122
+ VARCHAR_128_ author_name "작성자 표시명"
123
+ DATETIME resolved_at "해결 시각"
124
+ DATETIME created_at "생성 시각"
125
+ DATETIME updated_at "수정 시각"
126
+ JSON metadata_json "확장 메타데이터"
127
+ }
128
+ "document_revisions" {
129
+ CHAR_36_ revision_id "revision 식별자"
130
+ CHAR_36_ document_id "소속 문서 식별자"
131
+ INTEGER revision_no "문서별 revision 순번"
132
+ VARCHAR_256_ revision_title "revision 제목"
133
+ TEXT revision_reason "revision 사유"
134
+ VARCHAR_32_ document_status_code "revision 생성 당시 문서 상태"
135
+ VARCHAR_32_ created_by_type_code "revision 생성자 유형"
136
+ VARCHAR_128_ created_by_id "revision 생성자 식별자"
137
+ VARCHAR_128_ created_by_name "revision 생성자 표시명"
138
+ DATETIME created_at "생성 시각"
139
+ JSON metadata_json "revision 요약/확장 메타데이터"
140
+ }
141
+ "document_change_events" {
142
+ CHAR_36_ event_id "event 식별자"
143
+ CHAR_36_ revision_id "소속 revision 식별자"
144
+ CHAR_36_ document_id "소속 문서 식별자"
145
+ INTEGER sequence_no "revision 안에서의 event 순서"
146
+ VARCHAR_32_ target_type_code "변경 대상 유형"
147
+ CHAR_36_ target_id "변경 대상 식별자"
148
+ VARCHAR_64_ change_type_code "변경 유형"
149
+ TEXT change_reason "개별 변경 사유"
150
+ VARCHAR_32_ changed_by_type_code "변경자 유형"
151
+ VARCHAR_128_ changed_by_id "변경자 식별자"
152
+ VARCHAR_128_ changed_by_name "변경자 표시명"
153
+ DATETIME changed_at "변경 시각"
154
+ JSON metadata_json "이벤트 메타데이터"
155
+ }
156
+ "document_versions" {
157
+ CHAR_36_ version_id "version 식별자"
158
+ CHAR_36_ document_id "소속 문서 식별자"
159
+ CHAR_36_ revision_id "기준 revision 식별자"
160
+ INTEGER version_no "문서별 version 순번"
161
+ VARCHAR_64_ version_label "표시 버전"
162
+ VARCHAR_32_ snapshot_type_code "snapshot 유형"
163
+ VARCHAR_32_ document_status_code "snapshot 당시 문서 상태"
164
+ JSON snapshot_json "작은 snapshot 또는 manifest"
165
+ CHAR_64_ checksum "snapshot checksum"
166
+ VARCHAR_32_ created_by_type_code "생성자 유형"
167
+ VARCHAR_128_ created_by_id "생성자 식별자"
168
+ VARCHAR_128_ created_by_name "생성자 표시명"
169
+ DATETIME created_at "생성 시각"
170
+ }
@@ -0,0 +1,331 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <!-- Generated by graphviz version 12.1.2 (20240928.0832)
5
+ -->
6
+ <!-- Title: agentic&#45;domain&#45;document Pages: 1 -->
7
+ <svg width="2030pt" height="1184pt"
8
+ viewBox="0.00 0.00 2030.11 1183.60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+ <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1179.6)">
10
+ <title>agentic&#45;domain&#45;document</title>
11
+ <polygon fill="white" stroke="none" points="-4,4 -4,-1179.6 2026.11,-1179.6 2026.11,4 -4,4"/>
12
+ <!-- document_code_groups -->
13
+ <g id="node1" class="node">
14
+ <title>document_code_groups</title>
15
+ <polygon fill="#efefef" stroke="none" points="43.2,-825.6 43.2,-871.6 367.67,-871.6 367.67,-825.6 43.2,-825.6"/>
16
+ <polygon fill="none" stroke="black" points="43.2,-825.6 43.2,-871.6 367.67,-871.6 367.67,-825.6 43.2,-825.6"/>
17
+ <text text-anchor="start" x="84.83" y="-849.4" font-family="Arial Bold" font-size="18.00">document_code_groups</text>
18
+ <text text-anchor="start" x="256.79" y="-849.4" font-family="Arial" font-size="14.00">    </text>
19
+ <text text-anchor="start" x="287.9" y="-849.4" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
20
+ <text text-anchor="start" x="147.09" y="-835" font-family="Arial" font-size="14.00" fill="#333333">코드 그룹을 정의한다.</text>
21
+ <polygon fill="none" stroke="black" points="43.2,-794.8 43.2,-825.6 367.67,-825.6 367.67,-794.8 43.2,-794.8"/>
22
+ <text text-anchor="start" x="50.2" y="-807" font-family="Arial" font-size="14.00">code_group_code </text>
23
+ <text text-anchor="start" x="166.19" y="-807" font-family="Arial" font-size="14.00" fill="#666666">[VARCHAR(64)]</text>
24
+ <text text-anchor="start" x="267.32" y="-807" font-family="Arial" font-size="14.00"> 코드 그룹 식별자</text>
25
+ </g>
26
+ <!-- document_codes -->
27
+ <g id="node2" class="node">
28
+ <title>document_codes</title>
29
+ <polygon fill="#efefef" stroke="none" points="43.2,-1086.4 43.2,-1132.4 367.67,-1132.4 367.67,-1086.4 43.2,-1086.4"/>
30
+ <polygon fill="none" stroke="black" points="43.2,-1086.4 43.2,-1132.4 367.67,-1132.4 367.67,-1086.4 43.2,-1086.4"/>
31
+ <text text-anchor="start" x="110.32" y="-1110.2" font-family="Arial Bold" font-size="18.00">document_codes</text>
32
+ <text text-anchor="start" x="231.29" y="-1110.2" font-family="Arial" font-size="14.00">    </text>
33
+ <text text-anchor="start" x="262.41" y="-1110.2" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
34
+ <text text-anchor="start" x="119.86" y="-1095.8" font-family="Arial" font-size="14.00" fill="#333333">코드 그룹별 코드 값을 정의한다.</text>
35
+ <polygon fill="none" stroke="black" points="43.2,-1055.6 43.2,-1086.4 367.67,-1086.4 367.67,-1055.6 43.2,-1055.6"/>
36
+ <text text-anchor="start" x="50.2" y="-1067.8" font-family="Arial" font-size="14.00">code_group_code </text>
37
+ <text text-anchor="start" x="166.19" y="-1067.8" font-family="Arial" font-size="14.00" fill="#666666">[VARCHAR(64)]</text>
38
+ <text text-anchor="start" x="267.32" y="-1067.8" font-family="Arial" font-size="14.00"> 코드 그룹 식별자</text>
39
+ <polygon fill="none" stroke="black" points="43.2,-1024.8 43.2,-1055.6 367.67,-1055.6 367.67,-1024.8 43.2,-1024.8"/>
40
+ <text text-anchor="start" x="50.2" y="-1037" font-family="Arial" font-size="14.00">code </text>
41
+ <text text-anchor="start" x="84.45" y="-1037" font-family="Arial" font-size="14.00" fill="#666666">[VARCHAR(128)]</text>
42
+ <text text-anchor="start" x="193.37" y="-1037" font-family="Arial" font-size="14.00"> 코드 값</text>
43
+ </g>
44
+ <!-- document_codes&#45;&gt;document_code_groups -->
45
+ <g id="edge1" class="edge">
46
+ <title>document_codes:code_group_code&#45;&gt;document_code_groups:code_group_code</title>
47
+ <path fill="none" stroke="black" d="M377.04,-1065.2C405.21,-1027.2 430.8,-814.83 410.87,-794.8 346.46,-730.08 205.43,-702.49 205.43,-793.8"/>
48
+ <polygon fill="black" stroke="black" points="377.16,-1065.11 366.38,-1067.11 372.78,-1068.15 369.22,-1070.62 369.22,-1070.62 369.22,-1070.62 372.78,-1068.15 371.51,-1074.51 377.16,-1065.11"/>
49
+ </g>
50
+ <!-- document_node_taxonomies -->
51
+ <g id="node3" class="node">
52
+ <title>document_node_taxonomies</title>
53
+ <polygon fill="#efefef" stroke="none" points="857.33,-74 857.33,-120 1147.54,-120 1147.54,-74 857.33,-74"/>
54
+ <polygon fill="none" stroke="black" points="857.33,-74 857.33,-120 1147.54,-120 1147.54,-74 857.33,-74"/>
55
+ <text text-anchor="start" x="864.33" y="-97.8" font-family="Arial Bold" font-size="18.00">document_node_taxonomies</text>
56
+ <text text-anchor="start" x="1071.28" y="-97.8" font-family="Arial" font-size="14.00">    </text>
57
+ <text text-anchor="start" x="1102.4" y="-97.8" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
58
+ <text text-anchor="start" x="877.17" y="-83.4" font-family="Arial" font-size="14.00" fill="#333333">문서 유형별 node level 해석 정책을 정의한다.</text>
59
+ <polygon fill="none" stroke="black" points="857.33,-43.2 857.33,-74 1147.54,-74 1147.54,-43.2 857.33,-43.2"/>
60
+ <text text-anchor="start" x="864.33" y="-55.4" font-family="Arial" font-size="14.00">taxonomy_id </text>
61
+ <text text-anchor="start" x="947.6" y="-55.4" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
62
+ <text text-anchor="start" x="1019.94" y="-55.4" font-family="Arial" font-size="14.00"> taxonomy 식별자</text>
63
+ </g>
64
+ <!-- document_node_taxonomy_levels -->
65
+ <g id="node4" class="node">
66
+ <title>document_node_taxonomy_levels</title>
67
+ <polygon fill="#efefef" stroke="none" points="563.68,-319.4 563.68,-365.4 965.18,-365.4 965.18,-319.4 563.68,-319.4"/>
68
+ <polygon fill="none" stroke="black" points="563.68,-319.4 563.68,-365.4 965.18,-365.4 965.18,-319.4 563.68,-319.4"/>
69
+ <text text-anchor="start" x="606.33" y="-343.2" font-family="Arial Bold" font-size="18.00">document_node_taxonomy_levels</text>
70
+ <text text-anchor="start" x="853.28" y="-343.2" font-family="Arial" font-size="14.00">    </text>
71
+ <text text-anchor="start" x="884.4" y="-343.2" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
72
+ <text text-anchor="start" x="570.68" y="-328.8" font-family="Arial" font-size="14.00" fill="#333333">taxonomy별 node level 라벨, 번호 정책, counter scope를 정의한다.</text>
73
+ <polygon fill="none" stroke="black" points="563.68,-288.6 563.68,-319.4 965.18,-319.4 965.18,-288.6 563.68,-288.6"/>
74
+ <text text-anchor="start" x="570.68" y="-300.8" font-family="Arial" font-size="14.00">taxonomy_level_id </text>
75
+ <text text-anchor="start" x="690.53" y="-300.8" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
76
+ <text text-anchor="start" x="762.88" y="-300.8" font-family="Arial" font-size="14.00"> taxonomy level 식별자</text>
77
+ <polygon fill="none" stroke="black" points="563.68,-257.8 563.68,-288.6 965.18,-288.6 965.18,-257.8 563.68,-257.8"/>
78
+ <text text-anchor="start" x="570.68" y="-270" font-family="Arial" font-size="14.00">taxonomy_id </text>
79
+ <text text-anchor="start" x="653.95" y="-270" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
80
+ <text text-anchor="start" x="726.3" y="-270" font-family="Arial" font-size="14.00"> taxonomy 식별자</text>
81
+ </g>
82
+ <!-- document_node_taxonomy_levels&#45;&gt;document_node_taxonomies -->
83
+ <g id="edge2" class="edge">
84
+ <title>document_node_taxonomy_levels:taxonomy_id&#45;&gt;document_node_taxonomies:taxonomy_id</title>
85
+ <path fill="none" stroke="black" d="M976.02,-270.46C987.95,-261.56 976.96,-232.91 965.18,-214.6 936.46,-169.94 885.89,-207.97 857.33,-163.2 832.33,-124 809.84,-58.6 856.33,-58.6"/>
86
+ <polygon fill="black" stroke="black" points="976.14,-270.43 965.3,-268.77 971,-271.86 966.83,-273.02 966.83,-273.02 966.83,-273.02 971,-271.86 967.71,-277.45 976.14,-270.43"/>
87
+ </g>
88
+ <!-- document_documents -->
89
+ <g id="node5" class="node">
90
+ <title>document_documents</title>
91
+ <polygon fill="#efefef" stroke="none" points="1070.04,-334.8 1070.04,-380.8 1410.83,-380.8 1410.83,-334.8 1070.04,-334.8"/>
92
+ <polygon fill="none" stroke="black" points="1070.04,-334.8 1070.04,-380.8 1410.83,-380.8 1410.83,-334.8 1070.04,-334.8"/>
93
+ <text text-anchor="start" x="1126.82" y="-358.6" font-family="Arial Bold" font-size="18.00">document_documents</text>
94
+ <text text-anchor="start" x="1284.79" y="-358.6" font-family="Arial" font-size="14.00">    </text>
95
+ <text text-anchor="start" x="1315.91" y="-358.6" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
96
+ <text text-anchor="start" x="1079.78" y="-344.2" font-family="Arial" font-size="14.00" fill="#333333">문서 단위 메타데이터, 작성자, taxonomy, 상태를 관리한다.</text>
97
+ <polygon fill="none" stroke="black" points="1070.04,-304 1070.04,-334.8 1410.83,-334.8 1410.83,-304 1070.04,-304"/>
98
+ <text text-anchor="start" x="1077.04" y="-316.2" font-family="Arial" font-size="14.00">document_id </text>
99
+ <text text-anchor="start" x="1161.1" y="-316.2" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
100
+ <text text-anchor="start" x="1233.44" y="-316.2" font-family="Arial" font-size="14.00"> 문서 식별자</text>
101
+ <polygon fill="none" stroke="black" points="1070.04,-273.2 1070.04,-304 1410.83,-304 1410.83,-273.2 1070.04,-273.2"/>
102
+ <text text-anchor="start" x="1077.04" y="-285.4" font-family="Arial" font-size="14.00">taxonomy_id </text>
103
+ <text text-anchor="start" x="1160.31" y="-285.4" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
104
+ <text text-anchor="start" x="1232.65" y="-285.4" font-family="Arial" font-size="14.00"> 적용 taxonomy 식별자</text>
105
+ <polygon fill="none" stroke="black" points="1070.04,-242.4 1070.04,-273.2 1410.83,-273.2 1410.83,-242.4 1070.04,-242.4"/>
106
+ <text text-anchor="start" x="1077.04" y="-254.6" font-family="Arial" font-size="14.00">source_document_id </text>
107
+ <text text-anchor="start" x="1210.9" y="-254.6" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
108
+ <text text-anchor="start" x="1283.25" y="-254.6" font-family="Arial" font-size="14.00"> 파생 원본 문서 식별자</text>
109
+ </g>
110
+ <!-- document_documents&#45;&gt;document_node_taxonomies -->
111
+ <g id="edge4" class="edge">
112
+ <title>document_documents:taxonomy_id&#45;&gt;document_node_taxonomies:taxonomy_id</title>
113
+ <path fill="none" stroke="black" d="M1059.03,-287.07C1033.07,-277.87 1050.59,-229.32 1070.04,-199.2 1090.65,-167.3 1126.96,-195.12 1147.54,-163.2 1172.73,-124.13 1195.03,-58.6 1148.54,-58.6"/>
114
+ <polygon fill="black" stroke="black" points="1058.83,-287.04 1068.03,-293 1064.1,-287.84 1068.38,-288.5 1068.38,-288.5 1068.38,-288.5 1064.1,-287.84 1069.39,-284.1 1058.83,-287.04"/>
115
+ </g>
116
+ <!-- document_documents&#45;&gt;document_documents -->
117
+ <g id="edge3" class="edge">
118
+ <title>document_documents:source_document_id&#45;&gt;document_documents:document_id</title>
119
+ <path fill="none" stroke="black" d="M1242.82,-283.56C1249.35,-371.95 1248.55,-539 1240.43,-539 1232,-539 1231.47,-412.61 1238.85,-334.36"/>
120
+ <polygon fill="black" stroke="black" points="1242.82,-283.49 1246.51,-273.16 1242.39,-278.17 1242.05,-273.85 1242.05,-273.85 1242.05,-273.85 1242.39,-278.17 1237.53,-273.88 1242.82,-283.49"/>
121
+ </g>
122
+ <!-- document_nodes -->
123
+ <g id="node6" class="node">
124
+ <title>document_nodes</title>
125
+ <polygon fill="#efefef" stroke="none" points="607.99,-595.6 607.99,-641.6 888.88,-641.6 888.88,-595.6 607.99,-595.6"/>
126
+ <polygon fill="none" stroke="black" points="607.99,-595.6 607.99,-641.6 888.88,-641.6 888.88,-595.6 607.99,-595.6"/>
127
+ <text text-anchor="start" x="652.82" y="-619.4" font-family="Arial Bold" font-size="18.00">document_nodes</text>
128
+ <text text-anchor="start" x="774.79" y="-619.4" font-family="Arial" font-size="14.00">    </text>
129
+ <text text-anchor="start" x="805.91" y="-619.4" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
130
+ <text text-anchor="start" x="652.73" y="-605" font-family="Arial" font-size="14.00" fill="#333333">문서의 계층 node tree를 관리한다.</text>
131
+ <polygon fill="none" stroke="black" points="607.99,-564.8 607.99,-595.6 888.88,-595.6 888.88,-564.8 607.99,-564.8"/>
132
+ <text text-anchor="start" x="614.99" y="-577" font-family="Arial" font-size="14.00">node_id </text>
133
+ <text text-anchor="start" x="668.7" y="-577" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
134
+ <text text-anchor="start" x="741.05" y="-577" font-family="Arial" font-size="14.00"> 노드 식별자</text>
135
+ <polygon fill="none" stroke="black" points="607.99,-534 607.99,-564.8 888.88,-564.8 888.88,-534 607.99,-534"/>
136
+ <text text-anchor="start" x="614.99" y="-546.2" font-family="Arial" font-size="14.00">document_id </text>
137
+ <text text-anchor="start" x="699.04" y="-546.2" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
138
+ <text text-anchor="start" x="771.39" y="-546.2" font-family="Arial" font-size="14.00"> 소속 문서 식별자</text>
139
+ <polygon fill="none" stroke="black" points="607.99,-503.2 607.99,-534 888.88,-534 888.88,-503.2 607.99,-503.2"/>
140
+ <text text-anchor="start" x="614.99" y="-515.4" font-family="Arial" font-size="14.00">parent_node_id </text>
141
+ <text text-anchor="start" x="716.19" y="-515.4" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
142
+ <text text-anchor="start" x="788.53" y="-515.4" font-family="Arial" font-size="14.00"> 상위 노드 식별자</text>
143
+ </g>
144
+ <!-- document_nodes&#45;&gt;document_documents -->
145
+ <g id="edge6" class="edge">
146
+ <title>document_nodes:document_id&#45;&gt;document_documents:document_id</title>
147
+ <path fill="none" stroke="black" d="M900.16,-548.16C931.39,-539.58 910.62,-488.43 941.43,-460 968.91,-434.66 990.8,-450.22 1017.43,-424 1054.38,-387.64 1017.2,-319.4 1069.04,-319.4"/>
148
+ <polygon fill="black" stroke="black" points="900.14,-548.16 889.68,-544.89 894.85,-548.8 890.55,-549.32 890.55,-549.32 890.55,-549.32 894.85,-548.8 890.75,-553.83 900.14,-548.16"/>
149
+ </g>
150
+ <!-- document_nodes&#45;&gt;document_nodes -->
151
+ <g id="edge5" class="edge">
152
+ <title>document_nodes:parent_node_id&#45;&gt;document_nodes:node_id</title>
153
+ <path fill="none" stroke="black" d="M750.7,-544.27C757.36,-637.62 756.6,-815.2 748.43,-815.2 739.97,-815.2 739.47,-678.94 746.92,-595.39"/>
154
+ <polygon fill="black" stroke="black" points="750.69,-544.17 754.41,-533.85 750.28,-538.85 749.95,-534.53 749.95,-534.53 749.95,-534.53 750.28,-538.85 745.44,-534.54 750.69,-544.17"/>
155
+ </g>
156
+ <!-- document_contents -->
157
+ <g id="node7" class="node">
158
+ <title>document_contents</title>
159
+ <polygon fill="#efefef" stroke="none" points="471.64,-856.4 471.64,-902.4 813.23,-902.4 813.23,-856.4 471.64,-856.4"/>
160
+ <polygon fill="none" stroke="black" points="471.64,-856.4 471.64,-902.4 813.23,-902.4 813.23,-856.4 471.64,-856.4"/>
161
+ <text text-anchor="start" x="537.82" y="-880.2" font-family="Arial Bold" font-size="18.00">document_contents</text>
162
+ <text text-anchor="start" x="677.79" y="-880.2" font-family="Arial" font-size="14.00">    </text>
163
+ <text text-anchor="start" x="708.91" y="-880.2" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
164
+ <text text-anchor="start" x="478.64" y="-865.8" font-family="Arial" font-size="14.00" fill="#333333">특정 document node에 붙는 block collection을 관리한다.</text>
165
+ <polygon fill="none" stroke="black" points="471.64,-825.6 471.64,-856.4 813.23,-856.4 813.23,-825.6 471.64,-825.6"/>
166
+ <text text-anchor="start" x="478.64" y="-837.8" font-family="Arial" font-size="14.00">content_id </text>
167
+ <text text-anchor="start" x="547.13" y="-837.8" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
168
+ <text text-anchor="start" x="619.48" y="-837.8" font-family="Arial" font-size="14.00"> content 식별자</text>
169
+ <polygon fill="none" stroke="black" points="471.64,-794.8 471.64,-825.6 813.23,-825.6 813.23,-794.8 471.64,-794.8"/>
170
+ <text text-anchor="start" x="478.64" y="-807" font-family="Arial" font-size="14.00">document_id </text>
171
+ <text text-anchor="start" x="562.69" y="-807" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
172
+ <text text-anchor="start" x="635.04" y="-807" font-family="Arial" font-size="14.00"> 소속 문서 식별자</text>
173
+ <polygon fill="none" stroke="black" points="471.64,-764 471.64,-794.8 813.23,-794.8 813.23,-764 471.64,-764"/>
174
+ <text text-anchor="start" x="478.64" y="-776.2" font-family="Arial" font-size="14.00">node_id </text>
175
+ <text text-anchor="start" x="532.35" y="-776.2" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
176
+ <text text-anchor="start" x="604.7" y="-776.2" font-family="Arial" font-size="14.00"> 소속 노드 식별자</text>
177
+ </g>
178
+ <!-- document_contents&#45;&gt;document_documents -->
179
+ <g id="edge8" class="edge">
180
+ <title>document_contents:document_id&#45;&gt;document_documents:document_id</title>
181
+ <path fill="none" stroke="black" d="M461.52,-806.05C428.14,-772.26 452.16,-541.62 555.43,-460 636.22,-396.15 932.16,-481.73 1017.43,-424 1060.36,-394.94 1017.2,-319.4 1069.04,-319.4"/>
182
+ <polygon fill="black" stroke="black" points="461.23,-805.92 468.47,-814.16 466.09,-808.13 470.03,-809.92 470.03,-809.92 470.03,-809.92 466.09,-808.13 472.2,-805.97 461.23,-805.92"/>
183
+ </g>
184
+ <!-- document_contents&#45;&gt;document_nodes -->
185
+ <g id="edge7" class="edge">
186
+ <title>document_contents:node_id&#45;&gt;document_nodes:node_id</title>
187
+ <path fill="none" stroke="black" d="M824.26,-776.52C836.77,-767.18 827.38,-737.35 813.23,-720.8 753.07,-650.39 667.89,-755.43 607.99,-684.8 577.92,-649.34 560.5,-580.2 606.99,-580.2"/>
188
+ <polygon fill="black" stroke="black" points="824.16,-776.55 813.31,-774.98 819.04,-778.02 814.87,-779.22 814.87,-779.22 814.87,-779.22 819.04,-778.02 815.79,-783.63 824.16,-776.55"/>
189
+ </g>
190
+ <!-- document_blocks -->
191
+ <g id="node8" class="node">
192
+ <title>document_blocks</title>
193
+ <polygon fill="#efefef" stroke="none" points="507.04,-1086.4 507.04,-1132.4 777.82,-1132.4 777.82,-1086.4 507.04,-1086.4"/>
194
+ <polygon fill="none" stroke="black" points="507.04,-1086.4 507.04,-1132.4 777.82,-1132.4 777.82,-1086.4 507.04,-1086.4"/>
195
+ <text text-anchor="start" x="544.32" y="-1110.2" font-family="Arial Bold" font-size="18.00">document_blocks</text>
196
+ <text text-anchor="start" x="671.29" y="-1110.2" font-family="Arial" font-size="14.00">    </text>
197
+ <text text-anchor="start" x="702.41" y="-1110.2" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
198
+ <text text-anchor="start" x="552.19" y="-1095.8" font-family="Arial" font-size="14.00" fill="#333333">문서 본문 표현 block을 관리한다.</text>
199
+ <polygon fill="none" stroke="black" points="507.04,-1055.6 507.04,-1086.4 777.82,-1086.4 777.82,-1055.6 507.04,-1055.6"/>
200
+ <text text-anchor="start" x="514.04" y="-1067.8" font-family="Arial" font-size="14.00">block_id </text>
201
+ <text text-anchor="start" x="569.3" y="-1067.8" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
202
+ <text text-anchor="start" x="641.64" y="-1067.8" font-family="Arial" font-size="14.00"> block 식별자</text>
203
+ <polygon fill="none" stroke="black" points="507.04,-1024.8 507.04,-1055.6 777.82,-1055.6 777.82,-1024.8 507.04,-1024.8"/>
204
+ <text text-anchor="start" x="514.04" y="-1037" font-family="Arial" font-size="14.00">content_id </text>
205
+ <text text-anchor="start" x="582.54" y="-1037" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
206
+ <text text-anchor="start" x="654.89" y="-1037" font-family="Arial" font-size="14.00"> 소속 content 식별자</text>
207
+ </g>
208
+ <!-- document_blocks&#45;&gt;document_contents -->
209
+ <g id="edge9" class="edge">
210
+ <title>document_blocks:content_id&#45;&gt;document_contents:content_id</title>
211
+ <path fill="none" stroke="black" d="M643.17,-1013.48C653.54,-946.79 769.83,-1012.49 813.23,-945.6 838.53,-906.6 860.72,-841 814.23,-841"/>
212
+ <polygon fill="black" stroke="black" points="643.17,-1013.49 637.97,-1023.14 642.79,-1018.81 642.48,-1023.13 642.48,-1023.13 642.48,-1023.13 642.79,-1018.81 646.95,-1023.79 643.17,-1013.49"/>
213
+ </g>
214
+ <!-- document_annotations -->
215
+ <g id="node9" class="node">
216
+ <title>document_annotations</title>
217
+ <polygon fill="#efefef" stroke="none" points="993.19,-580.2 993.19,-626.2 1275.68,-626.2 1275.68,-580.2 993.19,-580.2"/>
218
+ <polygon fill="none" stroke="black" points="993.19,-580.2 993.19,-626.2 1275.68,-626.2 1275.68,-580.2 993.19,-580.2"/>
219
+ <text text-anchor="start" x="1018.32" y="-604" font-family="Arial Bold" font-size="18.00">document_annotations</text>
220
+ <text text-anchor="start" x="1181.29" y="-604" font-family="Arial" font-size="14.00">    </text>
221
+ <text text-anchor="start" x="1212.41" y="-604" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
222
+ <text text-anchor="start" x="1012.27" y="-589.6" font-family="Arial" font-size="14.00" fill="#333333">문서 본문 밖의 note annotation을 관리한다.</text>
223
+ <polygon fill="none" stroke="black" points="993.19,-549.4 993.19,-580.2 1275.68,-580.2 1275.68,-549.4 993.19,-549.4"/>
224
+ <text text-anchor="start" x="1000.19" y="-561.6" font-family="Arial" font-size="14.00">annotation_id </text>
225
+ <text text-anchor="start" x="1088.15" y="-561.6" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
226
+ <text text-anchor="start" x="1160.5" y="-561.6" font-family="Arial" font-size="14.00"> annotation 식별자</text>
227
+ <polygon fill="none" stroke="black" points="993.19,-518.6 993.19,-549.4 1275.68,-549.4 1275.68,-518.6 993.19,-518.6"/>
228
+ <text text-anchor="start" x="1000.19" y="-530.8" font-family="Arial" font-size="14.00">document_id </text>
229
+ <text text-anchor="start" x="1084.24" y="-530.8" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
230
+ <text text-anchor="start" x="1156.59" y="-530.8" font-family="Arial" font-size="14.00"> 소속 문서 식별자</text>
231
+ </g>
232
+ <!-- document_annotations&#45;&gt;document_documents -->
233
+ <g id="edge10" class="edge">
234
+ <title>document_annotations:document_id&#45;&gt;document_documents:document_id</title>
235
+ <path fill="none" stroke="black" d="M1286.66,-531.16C1299.02,-521.94 1289.22,-492.45 1275.68,-475.4 1217.07,-401.64 1128.37,-497.97 1070.04,-424 1041.25,-387.49 1022.55,-319.4 1069.04,-319.4"/>
236
+ <polygon fill="black" stroke="black" points="1286.62,-531.17 1275.77,-529.58 1281.49,-532.63 1277.32,-533.82 1277.32,-533.82 1277.32,-533.82 1281.49,-532.63 1278.23,-538.24 1286.62,-531.17"/>
237
+ </g>
238
+ <!-- document_revisions -->
239
+ <g id="node10" class="node">
240
+ <title>document_revisions</title>
241
+ <polygon fill="#efefef" stroke="none" points="1417.29,-580.2 1417.29,-626.2 1773.58,-626.2 1773.58,-580.2 1417.29,-580.2"/>
242
+ <polygon fill="none" stroke="black" points="1417.29,-580.2 1417.29,-626.2 1773.58,-626.2 1773.58,-580.2 1417.29,-580.2"/>
243
+ <text text-anchor="start" x="1488.32" y="-604" font-family="Arial Bold" font-size="18.00">document_revisions</text>
244
+ <text text-anchor="start" x="1633.29" y="-604" font-family="Arial" font-size="14.00">    </text>
245
+ <text text-anchor="start" x="1664.41" y="-604" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
246
+ <text text-anchor="start" x="1424.29" y="-589.6" font-family="Arial" font-size="14.00" fill="#333333">하나 이상의 변경 이벤트를 묶는 의미 있는 변경 단위를 관리한다.</text>
247
+ <polygon fill="none" stroke="black" points="1417.29,-549.4 1417.29,-580.2 1773.58,-580.2 1773.58,-549.4 1417.29,-549.4"/>
248
+ <text text-anchor="start" x="1424.29" y="-561.6" font-family="Arial" font-size="14.00">revision_id </text>
249
+ <text text-anchor="start" x="1495.1" y="-561.6" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
250
+ <text text-anchor="start" x="1567.45" y="-561.6" font-family="Arial" font-size="14.00"> revision 식별자</text>
251
+ <polygon fill="none" stroke="black" points="1417.29,-518.6 1417.29,-549.4 1773.58,-549.4 1773.58,-518.6 1417.29,-518.6"/>
252
+ <text text-anchor="start" x="1424.29" y="-530.8" font-family="Arial" font-size="14.00">document_id </text>
253
+ <text text-anchor="start" x="1508.34" y="-530.8" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
254
+ <text text-anchor="start" x="1580.69" y="-530.8" font-family="Arial" font-size="14.00"> 소속 문서 식별자</text>
255
+ </g>
256
+ <!-- document_revisions&#45;&gt;document_documents -->
257
+ <g id="edge11" class="edge">
258
+ <title>document_revisions:document_id&#45;&gt;document_documents:document_id</title>
259
+ <path fill="none" stroke="black" d="M1405.93,-532.95C1335.7,-516.76 1503.31,-319.4 1411.83,-319.4"/>
260
+ <polygon fill="black" stroke="black" points="1406.01,-532.95 1415.5,-538.44 1411.32,-533.49 1415.62,-533.93 1415.62,-533.93 1415.62,-533.93 1411.32,-533.49 1416.41,-529.49 1406.01,-532.95"/>
261
+ </g>
262
+ <!-- document_change_events -->
263
+ <g id="node11" class="node">
264
+ <title>document_change_events</title>
265
+ <polygon fill="#efefef" stroke="none" points="1232.46,-856.4 1232.46,-902.4 1516.41,-902.4 1516.41,-856.4 1232.46,-856.4"/>
266
+ <polygon fill="none" stroke="black" points="1232.46,-856.4 1232.46,-902.4 1516.41,-902.4 1516.41,-856.4 1232.46,-856.4"/>
267
+ <text text-anchor="start" x="1246.84" y="-880.2" font-family="Arial Bold" font-size="18.00">document_change_events</text>
268
+ <text text-anchor="start" x="1432.77" y="-880.2" font-family="Arial" font-size="14.00">    </text>
269
+ <text text-anchor="start" x="1463.89" y="-880.2" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
270
+ <text text-anchor="start" x="1239.46" y="-865.8" font-family="Arial" font-size="14.00" fill="#333333">revision에 속하는 로그성 변경 이벤트를 관리한다.</text>
271
+ <polygon fill="none" stroke="black" points="1232.46,-825.6 1232.46,-856.4 1516.41,-856.4 1516.41,-825.6 1232.46,-825.6"/>
272
+ <text text-anchor="start" x="1239.46" y="-837.8" font-family="Arial" font-size="14.00">event_id </text>
273
+ <text text-anchor="start" x="1296.28" y="-837.8" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
274
+ <text text-anchor="start" x="1368.62" y="-837.8" font-family="Arial" font-size="14.00"> event 식별자</text>
275
+ <polygon fill="none" stroke="black" points="1232.46,-794.8 1232.46,-825.6 1516.41,-825.6 1516.41,-794.8 1232.46,-794.8"/>
276
+ <text text-anchor="start" x="1239.46" y="-807" font-family="Arial" font-size="14.00">revision_id </text>
277
+ <text text-anchor="start" x="1310.27" y="-807" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
278
+ <text text-anchor="start" x="1382.62" y="-807" font-family="Arial" font-size="14.00"> 소속 revision 식별자</text>
279
+ <polygon fill="none" stroke="black" points="1232.46,-764 1232.46,-794.8 1516.41,-794.8 1516.41,-764 1232.46,-764"/>
280
+ <text text-anchor="start" x="1239.46" y="-776.2" font-family="Arial" font-size="14.00">document_id </text>
281
+ <text text-anchor="start" x="1323.51" y="-776.2" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
282
+ <text text-anchor="start" x="1395.86" y="-776.2" font-family="Arial" font-size="14.00"> 소속 문서 식별자</text>
283
+ </g>
284
+ <!-- document_change_events&#45;&gt;document_documents -->
285
+ <g id="edge12" class="edge">
286
+ <title>document_change_events:document_id&#45;&gt;document_documents:document_id</title>
287
+ <path fill="none" stroke="black" d="M1374.21,-752.76C1373.01,-725.97 1367.23,-716.04 1365.43,-684.8 1359.71,-585.05 1321.96,-549.96 1365.43,-460 1376.64,-436.82 1399.51,-447.13 1410.83,-424 1431.25,-382.24 1458.32,-319.4 1411.83,-319.4"/>
288
+ <polygon fill="black" stroke="black" points="1374.21,-752.67 1369.93,-762.76 1374.33,-758 1374.42,-762.33 1374.42,-762.33 1374.42,-762.33 1374.33,-758 1378.93,-762.57 1374.21,-752.67"/>
289
+ </g>
290
+ <!-- document_change_events&#45;&gt;document_revisions -->
291
+ <g id="edge13" class="edge">
292
+ <title>document_change_events:revision_id&#45;&gt;document_revisions:revision_id</title>
293
+ <path fill="none" stroke="black" d="M1527.4,-808.68C1553.25,-799.56 1535.21,-751.33 1516.41,-720.8 1490.4,-678.54 1443.27,-711.68 1417.29,-669.4 1392.95,-629.79 1369.8,-564.8 1416.29,-564.8"/>
294
+ <polygon fill="black" stroke="black" points="1527.63,-808.65 1517.06,-805.7 1522.35,-809.45 1518.07,-810.1 1518.07,-810.1 1518.07,-810.1 1522.35,-809.45 1518.42,-814.6 1527.63,-808.65"/>
295
+ </g>
296
+ <!-- document_versions -->
297
+ <g id="node12" class="node">
298
+ <title>document_versions</title>
299
+ <polygon fill="#efefef" stroke="none" points="1677.73,-856.4 1677.73,-902.4 1953.14,-902.4 1953.14,-856.4 1677.73,-856.4"/>
300
+ <polygon fill="none" stroke="black" points="1677.73,-856.4 1677.73,-902.4 1953.14,-902.4 1953.14,-856.4 1677.73,-856.4"/>
301
+ <text text-anchor="start" x="1710.82" y="-880.2" font-family="Arial Bold" font-size="18.00">document_versions</text>
302
+ <text text-anchor="start" x="1850.79" y="-880.2" font-family="Arial" font-size="14.00">    </text>
303
+ <text text-anchor="start" x="1881.91" y="-880.2" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
304
+ <text text-anchor="start" x="1693.67" y="-865.8" font-family="Arial" font-size="14.00" fill="#333333">검토/승인/배포 기준본 snapshot을 관리한다.</text>
305
+ <polygon fill="none" stroke="black" points="1677.73,-825.6 1677.73,-856.4 1953.14,-856.4 1953.14,-825.6 1677.73,-825.6"/>
306
+ <text text-anchor="start" x="1684.73" y="-837.8" font-family="Arial" font-size="14.00">version_id </text>
307
+ <text text-anchor="start" x="1752.43" y="-837.8" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
308
+ <text text-anchor="start" x="1824.78" y="-837.8" font-family="Arial" font-size="14.00"> version 식별자</text>
309
+ <polygon fill="none" stroke="black" points="1677.73,-794.8 1677.73,-825.6 1953.14,-825.6 1953.14,-794.8 1677.73,-794.8"/>
310
+ <text text-anchor="start" x="1684.73" y="-807" font-family="Arial" font-size="14.00">document_id </text>
311
+ <text text-anchor="start" x="1768.78" y="-807" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
312
+ <text text-anchor="start" x="1841.13" y="-807" font-family="Arial" font-size="14.00"> 소속 문서 식별자</text>
313
+ <polygon fill="none" stroke="black" points="1677.73,-764 1677.73,-794.8 1953.14,-794.8 1953.14,-764 1677.73,-764"/>
314
+ <text text-anchor="start" x="1684.73" y="-776.2" font-family="Arial" font-size="14.00">revision_id </text>
315
+ <text text-anchor="start" x="1755.54" y="-776.2" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
316
+ <text text-anchor="start" x="1827.89" y="-776.2" font-family="Arial" font-size="14.00"> 기준 revision 식별자</text>
317
+ </g>
318
+ <!-- document_versions&#45;&gt;document_documents -->
319
+ <g id="edge15" class="edge">
320
+ <title>document_versions:document_id&#45;&gt;document_documents:document_id</title>
321
+ <path fill="none" stroke="black" d="M1964.5,-809.69C2056.05,-800.35 2057.32,-664.02 1825.43,-460 1679.67,-331.75 1605.98,-319.4 1411.83,-319.4"/>
322
+ <polygon fill="black" stroke="black" points="1964.46,-809.69 1954.25,-805.69 1959.13,-809.95 1954.81,-810.17 1954.81,-810.17 1954.81,-810.17 1959.13,-809.95 1954.7,-814.68 1964.46,-809.69"/>
323
+ </g>
324
+ <!-- document_versions&#45;&gt;document_revisions -->
325
+ <g id="edge14" class="edge">
326
+ <title>document_versions:revision_id&#45;&gt;document_revisions:revision_id</title>
327
+ <path fill="none" stroke="black" d="M1666.92,-776.69C1655.11,-767.85 1666.39,-739.39 1677.73,-720.8 1702.9,-679.53 1748.56,-710.76 1773.58,-669.4 1797.64,-629.62 1821.07,-564.8 1774.58,-564.8"/>
328
+ <polygon fill="black" stroke="black" points="1666.77,-776.64 1675.2,-783.65 1671.91,-778.07 1676.08,-779.22 1676.08,-779.22 1676.08,-779.22 1671.91,-778.07 1677.61,-774.97 1666.77,-776.64"/>
329
+ </g>
330
+ </g>
331
+ </svg>
@@ -0,0 +1,40 @@
1
+ # agentic-domain-document Migration 계획
2
+
3
+ ## 1. 목적
4
+
5
+ 본 문서는 `agentic-domain-document` 패키지의 SQLite migration 적용 순서와 변경 의도를 기록합니다.
6
+
7
+ ## 2. Iteration 0
8
+
9
+ Iteration 0에서는 패키지 skeleton과 Continuous Publish/Delivery 기반만 구축합니다.
10
+
11
+ ```text
12
+ Migration 없음
13
+ ```
14
+
15
+ ## 3. Iteration 1
16
+
17
+ Iteration 1에서 다음 migration을 추가합니다.
18
+
19
+ ```text
20
+ src/database/migrations/0001_document_base.sql
21
+ ```
22
+
23
+ 초기 테이블:
24
+
25
+ ```text
26
+ document_documents
27
+ document_nodes
28
+ document_contents
29
+ document_blocks
30
+ document_annotations
31
+ document_revisions
32
+ document_change_events
33
+ document_versions
34
+ document_code_groups
35
+ document_codes
36
+ document_node_taxonomies
37
+ document_node_taxonomy_levels
38
+ ```
39
+
40
+ `document_schema_migrations`는 생성하지 않습니다. schema 적용 이력은 `agentic-runtime`의 공통 schema/migration 관리 영역에서 확인합니다.