@soddong/agentic-domain-artifact 0.7.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 (63) hide show
  1. package/.tbls.yml +46 -0
  2. package/CHANGELOG.md +53 -0
  3. package/README.md +254 -0
  4. package/dist/database.d.ts +8 -0
  5. package/dist/database.d.ts.map +1 -0
  6. package/dist/database.js +76 -0
  7. package/dist/database.js.map +1 -0
  8. package/dist/fixtures.d.ts +7 -0
  9. package/dist/fixtures.d.ts.map +1 -0
  10. package/dist/fixtures.js +88 -0
  11. package/dist/fixtures.js.map +1 -0
  12. package/dist/index.d.ts +26 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +18 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/repositories.d.ts +29 -0
  17. package/dist/repositories.d.ts.map +1 -0
  18. package/dist/repositories.js +305 -0
  19. package/dist/repositories.js.map +1 -0
  20. package/dist/seed-apply.d.ts +22 -0
  21. package/dist/seed-apply.d.ts.map +1 -0
  22. package/dist/seed-apply.js +150 -0
  23. package/dist/seed-apply.js.map +1 -0
  24. package/dist/service.d.ts +32 -0
  25. package/dist/service.d.ts.map +1 -0
  26. package/dist/service.js +282 -0
  27. package/dist/service.js.map +1 -0
  28. package/dist/types.d.ts +264 -0
  29. package/dist/types.d.ts.map +1 -0
  30. package/dist/types.js +2 -0
  31. package/dist/types.js.map +1 -0
  32. package/docs/build.md +19 -0
  33. package/docs/configuration.md +27 -0
  34. package/docs/delivery.md +22 -0
  35. package/docs/operations.md +27 -0
  36. package/docs/publishing.md +29 -0
  37. package/docs/schema/generated/README.md +28 -0
  38. package/docs/schema/generated/artifact_code_groups.md +57 -0
  39. package/docs/schema/generated/artifact_code_groups.svg +49 -0
  40. package/docs/schema/generated/artifact_codes.md +71 -0
  41. package/docs/schema/generated/artifact_codes.svg +49 -0
  42. package/docs/schema/generated/artifact_component_instances.md +79 -0
  43. package/docs/schema/generated/artifact_component_instances.svg +177 -0
  44. package/docs/schema/generated/artifact_instances.md +79 -0
  45. package/docs/schema/generated/artifact_instances.svg +177 -0
  46. package/docs/schema/generated/artifact_resource_links.md +89 -0
  47. package/docs/schema/generated/artifact_resource_links.svg +74 -0
  48. package/docs/schema/generated/artifact_review_decision_refs.md +89 -0
  49. package/docs/schema/generated/artifact_review_decision_refs.svg +102 -0
  50. package/docs/schema/generated/artifact_schema_migrations.md +47 -0
  51. package/docs/schema/generated/artifact_schema_migrations.svg +27 -0
  52. package/docs/schema/generated/artifact_status_events.md +96 -0
  53. package/docs/schema/generated/artifact_status_events.svg +102 -0
  54. package/docs/schema/generated/artifact_trace_links.md +93 -0
  55. package/docs/schema/generated/artifact_trace_links.svg +74 -0
  56. package/docs/schema/generated/artifact_validation_result_refs.md +82 -0
  57. package/docs/schema/generated/artifact_validation_result_refs.svg +74 -0
  58. package/docs/schema/generated/schema.json +1799 -0
  59. package/docs/schema/generated/schema.mmd +132 -0
  60. package/docs/schema/generated/schema.svg +260 -0
  61. package/docs/usage.md +190 -0
  62. package/package.json +28 -0
  63. package/src/database/migrations/0001_artifact_base.sql +345 -0
@@ -0,0 +1,345 @@
1
+ PRAGMA foreign_keys = ON;
2
+
3
+ -- artifact 패키지의 migration 적용 이력을 관리한다.
4
+ CREATE TABLE IF NOT EXISTS artifact_schema_migrations (
5
+ migration_id VARCHAR(128) PRIMARY KEY,
6
+ migration_name VARCHAR(256) NOT NULL,
7
+ applied_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
8
+ );
9
+
10
+ -- 코드 그룹을 정의한다.
11
+ CREATE TABLE IF NOT EXISTS artifact_code_groups (
12
+ code_group_code VARCHAR(64) PRIMARY KEY,
13
+ code_group_name VARCHAR(128) NOT NULL,
14
+ description TEXT,
15
+ sort_order INTEGER NOT NULL DEFAULT 0,
16
+ is_active INTEGER NOT NULL DEFAULT 1
17
+ CHECK (is_active IN (0, 1)),
18
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
19
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
20
+ );
21
+
22
+ -- 코드 그룹별 코드 값을 정의한다.
23
+ CREATE TABLE IF NOT EXISTS artifact_codes (
24
+ code_group_code VARCHAR(64) NOT NULL,
25
+ code VARCHAR(128) NOT NULL,
26
+ code_name VARCHAR(128) NOT NULL,
27
+ description TEXT,
28
+ sort_order INTEGER NOT NULL DEFAULT 0,
29
+ is_active INTEGER NOT NULL DEFAULT 1
30
+ CHECK (is_active IN (0, 1)),
31
+ metadata_json JSON
32
+ CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
33
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
34
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
35
+
36
+ PRIMARY KEY (code_group_code, code),
37
+
38
+ FOREIGN KEY (code_group_code)
39
+ REFERENCES artifact_code_groups (code_group_code)
40
+ ON DELETE CASCADE
41
+ );
42
+
43
+ -- 실제 산출물 instance를 관리한다.
44
+ CREATE TABLE IF NOT EXISTS artifact_instances (
45
+ artifact_instance_id CHAR(36) PRIMARY KEY
46
+ CHECK (length(artifact_instance_id) = 36),
47
+ artifact_code VARCHAR(128) NOT NULL,
48
+ artifact_name VARCHAR(256) NOT NULL,
49
+ artifact_version VARCHAR(64) NOT NULL DEFAULT '0.1.0',
50
+ artifact_standard_code VARCHAR(128) NOT NULL,
51
+ artifact_standard_version VARCHAR(64) NOT NULL,
52
+ artifact_status_code VARCHAR(64) NOT NULL DEFAULT 'draft'
53
+ CHECK (artifact_status_code IN ('draft', 'in_review', 'approved', 'published', 'archived', 'deprecated')),
54
+ methodology_activity_id CHAR(36)
55
+ CHECK (methodology_activity_id IS NULL OR length(methodology_activity_id) = 36),
56
+ owner_role_code VARCHAR(128),
57
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
58
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
59
+ metadata_json JSON
60
+ CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
61
+
62
+ UNIQUE (artifact_code, artifact_version)
63
+ );
64
+
65
+ -- 실제 산출물 안의 본문, 부록 등 component instance를 관리한다.
66
+ CREATE TABLE IF NOT EXISTS artifact_component_instances (
67
+ artifact_component_instance_id CHAR(36) PRIMARY KEY
68
+ CHECK (length(artifact_component_instance_id) = 36),
69
+ artifact_instance_id CHAR(36) NOT NULL
70
+ CHECK (length(artifact_instance_id) = 36),
71
+ artifact_component_code VARCHAR(128) NOT NULL,
72
+ artifact_component_role_code VARCHAR(64),
73
+ component_instance_name VARCHAR(256) NOT NULL,
74
+ component_status_code VARCHAR(64) NOT NULL DEFAULT 'draft'
75
+ CHECK (component_status_code IN ('draft', 'in_review', 'approved', 'published', 'archived', 'deprecated')),
76
+ sort_order INTEGER NOT NULL DEFAULT 0,
77
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
78
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
79
+ metadata_json JSON
80
+ CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
81
+
82
+ FOREIGN KEY (artifact_instance_id)
83
+ REFERENCES artifact_instances (artifact_instance_id)
84
+ ON DELETE CASCADE,
85
+
86
+ UNIQUE (artifact_instance_id, artifact_component_code)
87
+ );
88
+
89
+ -- 산출물 instance 또는 component instance와 document/file/resource를 연결한다.
90
+ CREATE TABLE IF NOT EXISTS artifact_resource_links (
91
+ artifact_resource_link_id CHAR(36) PRIMARY KEY
92
+ CHECK (length(artifact_resource_link_id) = 36),
93
+ artifact_instance_id CHAR(36) NOT NULL
94
+ CHECK (length(artifact_instance_id) = 36),
95
+ artifact_component_instance_id CHAR(36)
96
+ CHECK (artifact_component_instance_id IS NULL OR length(artifact_component_instance_id) = 36),
97
+ resource_type_code VARCHAR(64) NOT NULL
98
+ CHECK (resource_type_code IN ('DOCUMENT_ID', 'FILE_PATH', 'URL', 'AGENT_RESOURCE_REF')),
99
+ resource_ref VARCHAR(1024) NOT NULL,
100
+ resource_role_code VARCHAR(64) NOT NULL DEFAULT 'CONTENT'
101
+ CHECK (resource_role_code IN ('CONTENT', 'RENDERED_OUTPUT', 'SOURCE', 'REFERENCE', 'ATTACHMENT')),
102
+ is_primary INTEGER NOT NULL DEFAULT 0
103
+ CHECK (is_primary IN (0, 1)),
104
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
105
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
106
+ metadata_json JSON
107
+ CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
108
+
109
+ FOREIGN KEY (artifact_instance_id)
110
+ REFERENCES artifact_instances (artifact_instance_id)
111
+ ON DELETE CASCADE,
112
+
113
+ FOREIGN KEY (artifact_component_instance_id)
114
+ REFERENCES artifact_component_instances (artifact_component_instance_id)
115
+ ON DELETE CASCADE
116
+ );
117
+
118
+ -- 실제 산출물 instance와 방법론, 산출물 표준, 외부 실행 결과 간 trace를 관리한다.
119
+ CREATE TABLE IF NOT EXISTS artifact_trace_links (
120
+ artifact_trace_link_id CHAR(36) PRIMARY KEY
121
+ CHECK (length(artifact_trace_link_id) = 36),
122
+ artifact_instance_id CHAR(36) NOT NULL
123
+ CHECK (length(artifact_instance_id) = 36),
124
+ artifact_component_instance_id CHAR(36)
125
+ CHECK (artifact_component_instance_id IS NULL OR length(artifact_component_instance_id) = 36),
126
+ source_type_code VARCHAR(128) NOT NULL,
127
+ source_ref_id VARCHAR(256) NOT NULL,
128
+ trace_type_code VARCHAR(64) NOT NULL
129
+ CHECK (trace_type_code IN ('produced_by', 'refined_by', 'reviewed_by', 'consolidated_by', 'derived_from', 'references')),
130
+ artifact_standard_code VARCHAR(128),
131
+ artifact_standard_version VARCHAR(64),
132
+ artifact_component_code VARCHAR(128),
133
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
134
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
135
+ metadata_json JSON
136
+ CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
137
+
138
+ FOREIGN KEY (artifact_instance_id)
139
+ REFERENCES artifact_instances (artifact_instance_id)
140
+ ON DELETE CASCADE,
141
+
142
+ FOREIGN KEY (artifact_component_instance_id)
143
+ REFERENCES artifact_component_instances (artifact_component_instance_id)
144
+ ON DELETE CASCADE,
145
+
146
+ CHECK (
147
+ (artifact_standard_code IS NULL AND artifact_standard_version IS NULL)
148
+ OR (artifact_standard_code IS NOT NULL AND artifact_standard_version IS NOT NULL)
149
+ )
150
+ );
151
+
152
+ -- validation 실행 결과의 외부 참조를 관리한다.
153
+ CREATE TABLE IF NOT EXISTS artifact_validation_result_refs (
154
+ artifact_validation_result_ref_id CHAR(36) PRIMARY KEY
155
+ CHECK (length(artifact_validation_result_ref_id) = 36),
156
+ artifact_instance_id CHAR(36) NOT NULL
157
+ CHECK (length(artifact_instance_id) = 36),
158
+ artifact_component_instance_id CHAR(36)
159
+ CHECK (artifact_component_instance_id IS NULL OR length(artifact_component_instance_id) = 36),
160
+ validation_provider_id VARCHAR(256) NOT NULL,
161
+ validation_profile_id VARCHAR(256) NOT NULL,
162
+ validation_result_ref VARCHAR(1024) NOT NULL,
163
+ validation_status_code VARCHAR(64) NOT NULL
164
+ CHECK (validation_status_code IN ('valid', 'invalid', 'warning', 'not_run')),
165
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
166
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
167
+ metadata_json JSON
168
+ CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
169
+
170
+ FOREIGN KEY (artifact_instance_id)
171
+ REFERENCES artifact_instances (artifact_instance_id)
172
+ ON DELETE CASCADE,
173
+
174
+ FOREIGN KEY (artifact_component_instance_id)
175
+ REFERENCES artifact_component_instances (artifact_component_instance_id)
176
+ ON DELETE CASCADE
177
+ );
178
+
179
+ -- 산출물 instance 또는 component에 대한 검토 결정 외부 참조를 관리한다.
180
+ CREATE TABLE IF NOT EXISTS artifact_review_decision_refs (
181
+ artifact_review_decision_ref_id CHAR(36) PRIMARY KEY
182
+ CHECK (length(artifact_review_decision_ref_id) = 36),
183
+ artifact_instance_id CHAR(36) NOT NULL
184
+ CHECK (length(artifact_instance_id) = 36),
185
+ artifact_component_instance_id CHAR(36)
186
+ CHECK (artifact_component_instance_id IS NULL OR length(artifact_component_instance_id) = 36),
187
+ review_scope_code VARCHAR(64) NOT NULL
188
+ CHECK (review_scope_code IN ('artifact_instance', 'artifact_component', 'stage', 'activity')),
189
+ decision_code VARCHAR(64) NOT NULL
190
+ CHECK (decision_code IN ('approved', 'changes_requested', 'rejected', 'deferred')),
191
+ reviewer_ref VARCHAR(256),
192
+ decision_reason TEXT,
193
+ decision_result_ref VARCHAR(1024) NOT NULL,
194
+ decided_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
195
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
196
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
197
+ metadata_json JSON
198
+ CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
199
+
200
+ FOREIGN KEY (artifact_instance_id)
201
+ REFERENCES artifact_instances (artifact_instance_id)
202
+ ON DELETE CASCADE,
203
+
204
+ FOREIGN KEY (artifact_component_instance_id)
205
+ REFERENCES artifact_component_instances (artifact_component_instance_id)
206
+ ON DELETE CASCADE
207
+ );
208
+
209
+ -- 산출물 instance 또는 component의 상태 전이 이력을 관리한다.
210
+ CREATE TABLE IF NOT EXISTS artifact_status_events (
211
+ artifact_status_event_id CHAR(36) PRIMARY KEY
212
+ CHECK (length(artifact_status_event_id) = 36),
213
+ artifact_instance_id CHAR(36) NOT NULL
214
+ CHECK (length(artifact_instance_id) = 36),
215
+ artifact_component_instance_id CHAR(36)
216
+ CHECK (artifact_component_instance_id IS NULL OR length(artifact_component_instance_id) = 36),
217
+ status_scope_code VARCHAR(64) NOT NULL
218
+ CHECK (status_scope_code IN ('artifact_instance', 'artifact_component')),
219
+ from_status_code VARCHAR(64) NOT NULL
220
+ CHECK (from_status_code IN ('draft', 'in_review', 'approved', 'published', 'archived', 'deprecated')),
221
+ to_status_code VARCHAR(64) NOT NULL
222
+ CHECK (to_status_code IN ('draft', 'in_review', 'approved', 'published', 'archived', 'deprecated')),
223
+ transition_reason TEXT,
224
+ actor_ref VARCHAR(256),
225
+ artifact_review_decision_ref_id CHAR(36)
226
+ CHECK (artifact_review_decision_ref_id IS NULL OR length(artifact_review_decision_ref_id) = 36),
227
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
228
+ metadata_json JSON
229
+ CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
230
+
231
+ FOREIGN KEY (artifact_instance_id)
232
+ REFERENCES artifact_instances (artifact_instance_id)
233
+ ON DELETE CASCADE,
234
+
235
+ FOREIGN KEY (artifact_component_instance_id)
236
+ REFERENCES artifact_component_instances (artifact_component_instance_id)
237
+ ON DELETE CASCADE,
238
+
239
+ FOREIGN KEY (artifact_review_decision_ref_id)
240
+ REFERENCES artifact_review_decision_refs (artifact_review_decision_ref_id)
241
+ ON DELETE SET NULL
242
+ );
243
+
244
+ CREATE INDEX IF NOT EXISTS idx_artifact_instances_standard
245
+ ON artifact_instances (artifact_standard_code, artifact_standard_version);
246
+
247
+ CREATE INDEX IF NOT EXISTS idx_artifact_instances_status
248
+ ON artifact_instances (artifact_status_code);
249
+
250
+ CREATE INDEX IF NOT EXISTS idx_artifact_component_instances_artifact
251
+ ON artifact_component_instances (artifact_instance_id);
252
+
253
+ CREATE INDEX IF NOT EXISTS idx_artifact_resource_links_artifact
254
+ ON artifact_resource_links (artifact_instance_id);
255
+
256
+ CREATE INDEX IF NOT EXISTS idx_artifact_resource_links_component
257
+ ON artifact_resource_links (artifact_component_instance_id);
258
+
259
+ CREATE UNIQUE INDEX IF NOT EXISTS ux_artifact_resource_links_primary_artifact
260
+ ON artifact_resource_links (artifact_instance_id, resource_role_code)
261
+ WHERE artifact_component_instance_id IS NULL AND is_primary = 1;
262
+
263
+ CREATE UNIQUE INDEX IF NOT EXISTS ux_artifact_resource_links_primary_component
264
+ ON artifact_resource_links (artifact_component_instance_id, resource_role_code)
265
+ WHERE artifact_component_instance_id IS NOT NULL AND is_primary = 1;
266
+
267
+ CREATE INDEX IF NOT EXISTS idx_artifact_trace_links_artifact
268
+ ON artifact_trace_links (artifact_instance_id);
269
+
270
+ CREATE INDEX IF NOT EXISTS idx_artifact_trace_links_source
271
+ ON artifact_trace_links (source_type_code, source_ref_id);
272
+
273
+ CREATE INDEX IF NOT EXISTS idx_artifact_validation_result_refs_artifact
274
+ ON artifact_validation_result_refs (artifact_instance_id);
275
+
276
+ CREATE INDEX IF NOT EXISTS idx_artifact_review_decision_refs_artifact
277
+ ON artifact_review_decision_refs (artifact_instance_id, decision_code, decided_at);
278
+
279
+ CREATE INDEX IF NOT EXISTS idx_artifact_review_decision_refs_component
280
+ ON artifact_review_decision_refs (artifact_component_instance_id, decision_code, decided_at);
281
+
282
+ CREATE INDEX IF NOT EXISTS idx_artifact_status_events_artifact
283
+ ON artifact_status_events (artifact_instance_id, created_at);
284
+
285
+ CREATE INDEX IF NOT EXISTS idx_artifact_status_events_component
286
+ ON artifact_status_events (artifact_component_instance_id, created_at);
287
+
288
+ INSERT OR IGNORE INTO artifact_schema_migrations (migration_id, migration_name)
289
+ VALUES ('0001_artifact_base', 'artifact base schema');
290
+
291
+ INSERT OR IGNORE INTO artifact_code_groups (code_group_code, code_group_name, description, sort_order)
292
+ VALUES
293
+ ('artifact_status_code', 'Artifact 상태 코드', '실제 산출물 instance lifecycle 상태를 정의한다.', 10),
294
+ ('artifact_component_status_code', 'Artifact Component 상태 코드', '실제 산출물 component instance 상태를 정의한다.', 20),
295
+ ('resource_type_code', 'Resource 유형 코드', '산출물과 연결되는 resource 유형을 정의한다.', 30),
296
+ ('resource_role_code', 'Resource 역할 코드', '산출물 resource link의 역할을 정의한다.', 40),
297
+ ('trace_type_code', 'Trace 유형 코드', '산출물 trace 관계 유형을 정의한다.', 50),
298
+ ('validation_status_code', 'Validation 상태 코드', 'validation result reference 상태를 정의한다.', 60),
299
+ ('review_scope_code', 'Review Scope 코드', '검토 결정이 적용되는 산출물 범위를 정의한다.', 70),
300
+ ('review_decision_code', 'Review Decision 코드', '검토 결정 결과를 정의한다.', 80),
301
+ ('status_scope_code', 'Status Scope 코드', '상태 전이가 적용되는 산출물 범위를 정의한다.', 90);
302
+
303
+ INSERT OR IGNORE INTO artifact_codes (code_group_code, code, code_name, description, sort_order)
304
+ VALUES
305
+ ('artifact_status_code', 'draft', '초안', '작성 중인 산출물이다.', 10),
306
+ ('artifact_status_code', 'in_review', '검토 중', '검토 중인 산출물이다.', 20),
307
+ ('artifact_status_code', 'approved', '승인', '승인된 산출물이다.', 30),
308
+ ('artifact_status_code', 'published', '게시', '게시된 산출물이다.', 40),
309
+ ('artifact_status_code', 'archived', '보관', '보관된 산출물이다.', 50),
310
+ ('artifact_status_code', 'deprecated', '폐기 예정', '후속 버전으로 대체 예정인 산출물이다.', 60),
311
+ ('artifact_component_status_code', 'draft', '초안', '작성 중인 component다.', 10),
312
+ ('artifact_component_status_code', 'in_review', '검토 중', '검토 중인 component다.', 20),
313
+ ('artifact_component_status_code', 'approved', '승인', '승인된 component다.', 30),
314
+ ('artifact_component_status_code', 'published', '게시', '게시된 component다.', 40),
315
+ ('artifact_component_status_code', 'archived', '보관', '보관된 component다.', 50),
316
+ ('artifact_component_status_code', 'deprecated', '폐기 예정', '후속 버전으로 대체 예정인 component다.', 60),
317
+ ('resource_type_code', 'DOCUMENT_ID', 'Document ID', 'agentic-domain-document document_id 참조다.', 10),
318
+ ('resource_type_code', 'FILE_PATH', 'File Path', '파일 경로 참조다.', 20),
319
+ ('resource_type_code', 'URL', 'URL', '외부 URL 참조다.', 30),
320
+ ('resource_type_code', 'AGENT_RESOURCE_REF', 'Agent Resource Ref', 'agent resource reference 참조다.', 40),
321
+ ('resource_role_code', 'CONTENT', '본문', '작성 본문 resource다.', 10),
322
+ ('resource_role_code', 'RENDERED_OUTPUT', '렌더링 결과', '렌더링된 결과 resource다.', 20),
323
+ ('resource_role_code', 'SOURCE', '원천', '작성 원천 resource다.', 30),
324
+ ('resource_role_code', 'REFERENCE', '참조', '참고 resource다.', 40),
325
+ ('resource_role_code', 'ATTACHMENT', '첨부', '첨부 resource다.', 50),
326
+ ('trace_type_code', 'produced_by', '생산됨', 'source에 의해 산출물이 생산되었다.', 10),
327
+ ('trace_type_code', 'refined_by', '정제됨', 'source에 의해 산출물이 정제되었다.', 20),
328
+ ('trace_type_code', 'reviewed_by', '검토됨', 'source에 의해 산출물이 검토되었다.', 30),
329
+ ('trace_type_code', 'consolidated_by', '종합됨', 'source에 의해 산출물이 종합되었다.', 40),
330
+ ('trace_type_code', 'derived_from', '도출됨', 'source에서 산출물이 도출되었다.', 50),
331
+ ('trace_type_code', 'references', '참조함', 'source 또는 target을 참조한다.', 60),
332
+ ('validation_status_code', 'valid', '유효', 'validation 결과가 유효하다.', 10),
333
+ ('validation_status_code', 'invalid', '유효하지 않음', 'validation 결과가 유효하지 않다.', 20),
334
+ ('validation_status_code', 'warning', '경고', 'validation 경고가 있다.', 30),
335
+ ('validation_status_code', 'not_run', '미실행', 'validation이 실행되지 않았다.', 40),
336
+ ('review_scope_code', 'artifact_instance', '산출물 Instance', '검토 결정이 산출물 instance 전체에 적용된다.', 10),
337
+ ('review_scope_code', 'artifact_component', '산출물 Component', '검토 결정이 산출물 component에 적용된다.', 20),
338
+ ('review_scope_code', 'stage', 'Stage', '검토 결정이 방법론 stage 결과에 적용된다.', 30),
339
+ ('review_scope_code', 'activity', 'Activity', '검토 결정이 방법론 activity 결과에 적용된다.', 40),
340
+ ('review_decision_code', 'approved', '승인', '검토 결과가 승인되었다.', 10),
341
+ ('review_decision_code', 'changes_requested', '보완 요청', '검토 결과 보완이 필요하다.', 20),
342
+ ('review_decision_code', 'rejected', '반려', '검토 결과가 반려되었다.', 30),
343
+ ('review_decision_code', 'deferred', '보류', '검토 결정이 보류되었다.', 40),
344
+ ('status_scope_code', 'artifact_instance', '산출물 Instance', '상태 전이가 산출물 instance 전체에 적용된다.', 10),
345
+ ('status_scope_code', 'artifact_component', '산출물 Component', '상태 전이가 산출물 component에 적용된다.', 20);