@soddong/agentic-domain-methodology 0.11.1
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.
- package/.tbls.yml +64 -0
- package/CHANGELOG.md +97 -0
- package/README.md +501 -0
- package/dist/database.d.ts +8 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +76 -0
- package/dist/database.js.map +1 -0
- package/dist/fixtures.d.ts +13 -0
- package/dist/fixtures.d.ts.map +1 -0
- package/dist/fixtures.js +413 -0
- package/dist/fixtures.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories.d.ts +54 -0
- package/dist/repositories.d.ts.map +1 -0
- package/dist/repositories.js +652 -0
- package/dist/repositories.js.map +1 -0
- package/dist/seed-apply.d.ts +20 -0
- package/dist/seed-apply.d.ts.map +1 -0
- package/dist/seed-apply.js +728 -0
- package/dist/seed-apply.js.map +1 -0
- package/dist/service.d.ts +107 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +225 -0
- package/dist/service.js.map +1 -0
- package/dist/types.d.ts +356 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/validators.d.ts +17 -0
- package/dist/validators.d.ts.map +1 -0
- package/dist/validators.js +297 -0
- package/dist/validators.js.map +1 -0
- package/docs/build.md +47 -0
- package/docs/configuration.md +33 -0
- package/docs/delivery.md +52 -0
- package/docs/operations.md +55 -0
- package/docs/publishing.md +84 -0
- package/docs/schema/generated/README.md +39 -0
- package/docs/schema/generated/methodology_activities.md +121 -0
- package/docs/schema/generated/methodology_activities.svg +143 -0
- package/docs/schema/generated/methodology_activity_artifact_requirements.md +129 -0
- package/docs/schema/generated/methodology_activity_artifact_requirements.svg +52 -0
- package/docs/schema/generated/methodology_activity_criteria.md +112 -0
- package/docs/schema/generated/methodology_activity_criteria.svg +52 -0
- package/docs/schema/generated/methodology_baseline_requirements.md +103 -0
- package/docs/schema/generated/methodology_baseline_requirements.svg +27 -0
- package/docs/schema/generated/methodology_code_groups.md +70 -0
- package/docs/schema/generated/methodology_code_groups.svg +49 -0
- package/docs/schema/generated/methodology_codes.md +88 -0
- package/docs/schema/generated/methodology_codes.svg +49 -0
- package/docs/schema/generated/methodology_common_blueprint_policies.md +104 -0
- package/docs/schema/generated/methodology_common_blueprint_policies.svg +72 -0
- package/docs/schema/generated/methodology_common_blueprint_policy_nodes.md +118 -0
- package/docs/schema/generated/methodology_common_blueprint_policy_nodes.svg +59 -0
- package/docs/schema/generated/methodology_handoff_requirements.md +130 -0
- package/docs/schema/generated/methodology_handoff_requirements.svg +27 -0
- package/docs/schema/generated/methodology_lifecycles.md +105 -0
- package/docs/schema/generated/methodology_lifecycles.svg +71 -0
- package/docs/schema/generated/methodology_methodologies.md +92 -0
- package/docs/schema/generated/methodology_methodologies.svg +92 -0
- package/docs/schema/generated/methodology_phase_processes.md +106 -0
- package/docs/schema/generated/methodology_phase_processes.svg +77 -0
- package/docs/schema/generated/methodology_phases.md +107 -0
- package/docs/schema/generated/methodology_phases.svg +77 -0
- package/docs/schema/generated/methodology_processes.md +98 -0
- package/docs/schema/generated/methodology_processes.svg +118 -0
- package/docs/schema/generated/methodology_schema_migrations.md +52 -0
- package/docs/schema/generated/methodology_schema_migrations.svg +27 -0
- package/docs/schema/generated/methodology_stage_activities.md +106 -0
- package/docs/schema/generated/methodology_stage_activities.svg +77 -0
- package/docs/schema/generated/methodology_stage_artifact_requirements.md +109 -0
- package/docs/schema/generated/methodology_stage_artifact_requirements.svg +52 -0
- package/docs/schema/generated/methodology_stage_criteria.md +112 -0
- package/docs/schema/generated/methodology_stage_criteria.svg +52 -0
- package/docs/schema/generated/methodology_stages.md +117 -0
- package/docs/schema/generated/methodology_stages.svg +121 -0
- package/docs/schema/generated/methodology_steps.md +105 -0
- package/docs/schema/generated/methodology_steps.svg +52 -0
- package/docs/schema/generated/methodology_trace_policies.md +121 -0
- package/docs/schema/generated/methodology_trace_policies.svg +27 -0
- package/docs/schema/generated/schema.json +4253 -0
- package/docs/schema/generated/schema.mmd +296 -0
- package/docs/schema/generated/schema.svg +446 -0
- package/docs/schema/migrations.md +24 -0
- package/docs/usage.md +39 -0
- package/package.json +29 -0
- package/src/database/migrations/0001_methodology_base.sql +1190 -0
package/.tbls.yml
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
name: agentic-domain-methodology
|
|
2
|
+
desc: Agentic Platform methodology domain database.
|
|
3
|
+
|
|
4
|
+
dsn: ${AGENTIC_DOMAIN_METHODOLOGY_SCHEMA_DSN}
|
|
5
|
+
docPath: ${AGENTIC_DOMAIN_METHODOLOGY_SCHEMA_DOC_PATH}
|
|
6
|
+
|
|
7
|
+
format:
|
|
8
|
+
adjust: true
|
|
9
|
+
sort: false
|
|
10
|
+
number: false
|
|
11
|
+
hideColumnsWithoutValues: true
|
|
12
|
+
|
|
13
|
+
er:
|
|
14
|
+
skip: false
|
|
15
|
+
format: svg
|
|
16
|
+
comment: true
|
|
17
|
+
hideDef: true
|
|
18
|
+
showColumnTypes:
|
|
19
|
+
related: true
|
|
20
|
+
primary: true
|
|
21
|
+
distance: 1
|
|
22
|
+
|
|
23
|
+
include:
|
|
24
|
+
- methodology_*
|
|
25
|
+
|
|
26
|
+
comments:
|
|
27
|
+
- table: methodology_schema_migrations
|
|
28
|
+
tableComment: methodology ํจํค์ง์ migration ์ ์ฉ ์ด๋ ฅ์ ๊ด๋ฆฌํ๋ค.
|
|
29
|
+
- table: methodology_code_groups
|
|
30
|
+
tableComment: ์ฝ๋ ๊ทธ๋ฃน์ ์ ์ํ๋ค.
|
|
31
|
+
- table: methodology_codes
|
|
32
|
+
tableComment: ์ฝ๋ ๊ทธ๋ฃน๋ณ ์ฝ๋ ๊ฐ์ ์ ์ํ๋ค.
|
|
33
|
+
- table: methodology_methodologies
|
|
34
|
+
tableComment: ๋ฐฉ๋ฒ๋ก ์ ์์ ์ต์์ versioned definition์ ๊ด๋ฆฌํ๋ค.
|
|
35
|
+
- table: methodology_lifecycles
|
|
36
|
+
tableComment: ๋ฐฉ๋ฒ๋ก ์๋ช
์ฃผ๊ธฐ ๋ชจ๋ธ์ ๊ด๋ฆฌํ๋ค.
|
|
37
|
+
- table: methodology_phases
|
|
38
|
+
tableComment: lifecycle ๋ด ํฐ ๊ตฌ๊ฐ์ ๊ด๋ฆฌํ๋ค.
|
|
39
|
+
- table: methodology_processes
|
|
40
|
+
tableComment: ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ ์ ์ฐจ๋ฅผ ๊ด๋ฆฌํ๋ค.
|
|
41
|
+
- table: methodology_phase_processes
|
|
42
|
+
tableComment: phase์์ ์ด๋ค process๋ฅผ ์ด๋ค ์์๋ก ์ฌ์ฉํ ์ง ๊ด๋ฆฌํ๋ค.
|
|
43
|
+
- table: methodology_activities
|
|
44
|
+
tableComment: process ๋ด๋ถ์ ๊ธฐ๋ณธ ์ํ ํ๋์ ๊ด๋ฆฌํ๋ค.
|
|
45
|
+
- table: methodology_steps
|
|
46
|
+
tableComment: activity ํ์ ์์ฐจ ์ ์ฐจ๋ฅผ ๊ด๋ฆฌํ๋ค.
|
|
47
|
+
- table: methodology_stages
|
|
48
|
+
tableComment: process ๋ด๋ถ activity grouping, gate, ๊ธฐ์ค์ , ์ ํ ๊ตฌ๊ฐ์ ๊ด๋ฆฌํ๋ค.
|
|
49
|
+
- table: methodology_stage_activities
|
|
50
|
+
tableComment: stage์ activity์ ํฌํจ ๊ด๊ณ๋ฅผ ๊ด๋ฆฌํ๋ค.
|
|
51
|
+
- table: methodology_activity_artifact_requirements
|
|
52
|
+
tableComment: activity์ input/output/supporting ์ฐ์ถ๋ฌผ ์๊ตฌ๋ฅผ ๊ด๋ฆฌํ๋ค.
|
|
53
|
+
- table: methodology_stage_artifact_requirements
|
|
54
|
+
tableComment: stage gate, baseline, handoff, approval์ ํ์ํ ์ถ๊ฐ ์ฐ์ถ๋ฌผ ์๊ตฌ๋ฅผ ๊ด๋ฆฌํ๋ค.
|
|
55
|
+
- table: methodology_stage_criteria
|
|
56
|
+
tableComment: stage์ entry, exit, gate ํ๋จ ๊ธฐ์ค์ ๊ด๋ฆฌํ๋ค.
|
|
57
|
+
- table: methodology_activity_criteria
|
|
58
|
+
tableComment: activity์ completion ํ๋จ ๊ธฐ์ค์ ๊ด๋ฆฌํ๋ค.
|
|
59
|
+
- table: methodology_handoff_requirements
|
|
60
|
+
tableComment: phase, process, stage, activity ๊ฐ ์ ๋ฌ ์๊ตฌ๋ฅผ ๊ด๋ฆฌํ๋ค.
|
|
61
|
+
- table: methodology_baseline_requirements
|
|
62
|
+
tableComment: baseline์ด ํ์ํ scope์ trigger๋ฅผ ๊ด๋ฆฌํ๋ค.
|
|
63
|
+
- table: methodology_trace_policies
|
|
64
|
+
tableComment: ์ค์ trace link๊ฐ ์๋๋ผ trace ํ์ ๊ด๊ณ ์ ์ฑ
์ ๊ด๋ฆฌํ๋ค.
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.11.1
|
|
4
|
+
|
|
5
|
+
- `applyAgenticSeed()`์ `criteria` section ์ฒ๋ฆฌ์์ `scopeTypeCode = activity`๋ฅผ ์ง์ํ๋ค.
|
|
6
|
+
- Activity completion criteria seed๋ฅผ `methodology_activity_criteria`์ ์ ์ฅํ ์ ์๊ฒ ํ๋ค.
|
|
7
|
+
- Stage criteria์ Activity criteria๋ฅผ ํจ๊ป ํฌํจํ๋ AI-Agent SDLC Build Planning seed ์ ์ฉ์ ์ง์ํ๋ค.
|
|
8
|
+
|
|
9
|
+
## 0.11.0
|
|
10
|
+
|
|
11
|
+
- `applyAgenticSeed()` runtime seed apply handler๋ฅผ ์ถ๊ฐํ๋ค.
|
|
12
|
+
- `methodology`, `lifecycle`, `phases`, `processes`, `stages`, `activities`, `activityArtifactRequirements`, `criteria`, `handoffs` seed section์ methodology DB์ ์ ์ฉํ ์ ์๊ฒ ํ๋ค.
|
|
13
|
+
- AI-Agent SDLC seed์ `stage_gate` handoff type์ methodology ๊ณตํต handoff type `context`๋ก ์ ์ฅํ๊ณ ์๋ณธ payload๋ metadata์ ๋ณด์กดํ๋ค.
|
|
14
|
+
- seed apply dev-test๋ฅผ ์ถ๊ฐํด runtime์ด ํธ์ถํ๋ section ๋จ์ handler ๋์์ ๊ฒ์ฆํ๋ค.
|
|
15
|
+
|
|
16
|
+
## 0.10.0
|
|
17
|
+
|
|
18
|
+
- Handoff Requirement public API๋ฅผ ์ถ๊ฐํ๋ค.
|
|
19
|
+
- `createHandoffRequirement()`, `listHandoffRequirementsBySource()`, `listHandoffRequirementsByTarget()`๋ก Phase/Process/Stage/Activity ๊ฐ ์ ๋ฌ ๊ณ์ฝ์ ์์ฑ/์กฐํํ ์ ์๊ฒ ํ๋ค.
|
|
20
|
+
- Handoff 1๊ฑด์ด ๋ค์ ์ ํ ์ฐ์ถ๋ฌผ component ์ธํธ๋ฅผ ํํ Stage ๋๋ Activity์ ์ ๋ฌํ๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๊ฒ์ฆํ๋ค.
|
|
21
|
+
- 4๋ชจ๋ ํตํฉ ๊ฒ์ฆ์์ Stage Handoff๊ฐ artifact instance scope, required component codes, validation/review result refs๋ฅผ ํฌํจํ๋์ง ํ์ธํ๋ค.
|
|
22
|
+
|
|
23
|
+
## 0.9.0
|
|
24
|
+
|
|
25
|
+
- Stage Criteria public API๋ฅผ ์ถ๊ฐํ๋ค.
|
|
26
|
+
- `createStageCriteria()`์ `listStageCriteriaByStage()`๋ก Stage entry, exit, gate ๊ธฐ์ค์ ์์ฑ/์กฐํํ ์ ์๊ฒ ํ๋ค.
|
|
27
|
+
- `getMethodologyStructure()`์ Stage read model์ criteria ๋ชฉ๋ก์ ํฌํจํ๋ค.
|
|
28
|
+
- 4๋ชจ๋ ํตํฉ ๊ฒ์ฆ์์ Stage Criteria๊ฐ entry/exit/gate ๊ธฐ์ค์ ๋ชจ๋ ํฌํจํ๋์ง ํ์ธํ๋ค.
|
|
29
|
+
|
|
30
|
+
## 0.8.0
|
|
31
|
+
|
|
32
|
+
- Activity Artifact Requirement์ `artifactComponentCode`, `artifactComponentRoleCode`, `outputUsageCode`๋ฅผ ์ถ๊ฐํ๋ค.
|
|
33
|
+
- Methodology Activity๊ฐ ์ฐ์ถ๋ฌผ ํ์ค ์ ์ฒด๋ฟ ์๋๋ผ artifact-standard์ ํน์ `DocumentComponent`๊น์ง ์ฐธ์กฐํ ์ ์๊ฒ ํ๋ค.
|
|
34
|
+
- output usage code ํ๋ณด๋ก `produces`, `refines`, `reviews`, `consolidates`๋ฅผ ์ถ๊ฐํ๋ค.
|
|
35
|
+
- Build Planning fixture์์ `component_business_process_definition` Activity๊ฐ `appendix_l3_process` component๋ฅผ ์ฐ์ถํ๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๊ฒ์ฆํ๋ค.
|
|
36
|
+
|
|
37
|
+
## 0.7.0
|
|
38
|
+
|
|
39
|
+
- Methodology Common Blueprint Policy ์ต์ ๋ชจ๋ธ์ ์ถ๊ฐํ๋ค.
|
|
40
|
+
- `methodology_common_blueprint_policies`, `methodology_common_blueprint_policy_nodes` ํ
์ด๋ธ์ ์ถ๊ฐํ๋ค.
|
|
41
|
+
- ๋ฐฉ๋ฒ๋ก ์ฐจ์์ Front Matter, Back Matter, Body Policy ๊ณตํต ๊ตฌ์กฐ ์ ์ฑ
์ ์ ์ํ ์ ์๊ฒ ํ๋ค.
|
|
42
|
+
- ์ค์ ์ฐ์ถ๋ฌผ๋ณ Document Blueprint, Template Slot, Table Schema, Validation Rule์ ๊ณ์ `@soddong/agentic-domain-artifact-standard` ์ฑ
์์ผ๋ก ์ ์งํ๋ค.
|
|
43
|
+
|
|
44
|
+
## 0.6.0
|
|
45
|
+
|
|
46
|
+
- Artifact Standard ์ฉ์ด ๊ธฐ์ค์ ๋ง์ถฐ Methodology ์ฐ์ถ๋ฌผ ์๊ตฌ์ handoff์ public API/DDL ๋ช
๋ช
์ ์ ๋ฆฌํ๋ค.
|
|
47
|
+
- `artifactStandardPackageCode` ์
๋ ฅ/์ถ๋ ฅ ์์ฑ์ `artifactStandardCode`๋ก ๋ณ๊ฒฝํ๋ค.
|
|
48
|
+
- SQLite ์ปฌ๋ผ `artifact_standard_package_code`๋ฅผ `artifact_standard_code`๋ก ๋ณ๊ฒฝํ๋ค.
|
|
49
|
+
- npm package ์๋ฏธ์ ๋๋ฉ์ธ Artifact Standard ์๋ฏธ๊ฐ ํผ๋๋์ง ์๋๋ก README์ schema ๋ฌธ์๋ฅผ ์ ๋ ฌํ๋ค.
|
|
50
|
+
|
|
51
|
+
## 0.5.1
|
|
52
|
+
|
|
53
|
+
- `@soddong/agentic-capability-validation` dependency๋ฅผ `^0.3.0`์ผ๋ก ์ ๋ ฌํ๋ค.
|
|
54
|
+
- ๊ธฐ์กด methodology validator helper API๋ ์ ์งํ๋ค.
|
|
55
|
+
|
|
56
|
+
## 0.5.0
|
|
57
|
+
|
|
58
|
+
- `validateMethodologyDefinition()`๊ณผ ๊ฐ๋ณ methodology validator์ scoped validation option์ ์ถ๊ฐํ๋ค.
|
|
59
|
+
- `methodologyId` ๋๋ `methodologyCode + methodologyVersion` ๊ธฐ์ค์ผ๋ก ํน์ ๋ฐฉ๋ฒ๋ก ๋ง ๊ฒ์ฆํ ์ ์๊ฒ ํ๋ค.
|
|
60
|
+
- ํ๋์ SQLite DB์ fixture, ํ
์คํธ ๋ฐ์ดํฐ, ์ฌ๋ฌ ๋ฐฉ๋ฒ๋ก ์ด ํจ๊ป ์์ ๋ ๊ฒ์ฆ ๊ฒฐ๊ณผ๊ฐ ์์ด๋ ๋ฌธ์ ๋ฅผ ์ค์ธ๋ค.
|
|
61
|
+
- README์ Validation Scope ์ฌ์ฉ ์์๋ฅผ ์ถ๊ฐํ๋ค.
|
|
62
|
+
|
|
63
|
+
## 0.4.0
|
|
64
|
+
|
|
65
|
+
- `temp/` ์๋ Build Planning ๋ฐฉ๋ฒ๋ก ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ `seedBuildPlanningExample()` fixture API๋ฅผ ์ถ๊ฐํ๋ค.
|
|
66
|
+
- Build Planning Phase/Process, 4๊ฐ Stage, ๋ํ Activity, Step, primary output artifact requirement seed๋ฅผ ์ ๊ณตํ๋ค.
|
|
67
|
+
- Cross-cutting Governance Activity๋ฅผ Stage์ ์ข
์๋์ง ์๋ Process-level Activity๋ก seedํ๋ค.
|
|
68
|
+
- seed ์ฌ์คํ ์ ์ค๋ณต ์์ฑํ์ง ์๊ณ ๊ธฐ์กด Methodology ๊ตฌ์กฐ๋ฅผ ๋ฐํํ๋๋ก idempotency๋ฅผ ๋ณด์ฅํ๋ค.
|
|
69
|
+
- README์ fixture/seed ์ฌ์ฉ ์์๋ฅผ ์ถ๊ฐํ๋ค.
|
|
70
|
+
|
|
71
|
+
## 0.3.0
|
|
72
|
+
|
|
73
|
+
- Methodology ๋ชฉ๋ก, Lifecycle/Phase/Process/Activity/Stage/Step/Artifact Requirement ์กฐํ API๋ฅผ ์ถ๊ฐํ๋ค.
|
|
74
|
+
- Phase ๊ธฐ์ค Process ์กฐํ์ Stage ๊ธฐ์ค Activity ์กฐํ API๋ฅผ ์ถ๊ฐํ๋ค.
|
|
75
|
+
- Methodology ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ์ฝ๋ `getMethodologyStructure()` read model API๋ฅผ ์ถ๊ฐํ๋ค.
|
|
76
|
+
- README์ ์กฐํ/ํ์ API ์ฌ์ฉ ์์๋ฅผ ์ถ๊ฐํ๋ค.
|
|
77
|
+
|
|
78
|
+
## 0.2.1
|
|
79
|
+
|
|
80
|
+
- Consumer ์ฌ์ฉ์ฑ ๊ฐ์ ์ ์ํด `createProcessForLifecycle()` helper๋ฅผ ์ถ๊ฐํ๋ค.
|
|
81
|
+
- Phase ๊ธฐ์ค Process ์์ฑ๊ณผ Phase ๋ฐฐ์ ์ ํจ๊ป ์ฒ๋ฆฌํ๋ `createProcessForPhase()` helper๋ฅผ ์ถ๊ฐํ๋ค.
|
|
82
|
+
- `createProcess()` ํธ์ถ ์ `methodologyId` ๋๋ฝ ์ค๋ฅ๋ฅผ DB ์ ์ฝ ์ค๋ฅ๊ฐ ์๋ service ์
๋ ฅ ์ค๋ฅ๋ก ์๋ดํ๋ค.
|
|
83
|
+
- Process ์ถ๊ฐ API ์ฌ์ฉ ๊ธฐ์ค๊ณผ ์๋ชป๋ ์์๋ฅผ README์ ๋ณด๊ฐํ๋ค.
|
|
84
|
+
|
|
85
|
+
## 0.2.0
|
|
86
|
+
|
|
87
|
+
- Methodology SQLite migration DDL๊ณผ schema ๋ฌธ์๋ฅผ ์ถ๊ฐํ๋ค.
|
|
88
|
+
- Methodology/Lifecycle/Phase/Process/Stage/Activity/Step repository์ service API๋ฅผ ์ถ๊ฐํ๋ค.
|
|
89
|
+
- Activity ์ฐ์ถ๋ฌผ ์๊ตฌ์ฌํญ, Stage criteria, handoff, baseline, trace policy ๋ชจ๋ธ ๊ธฐ๋ฐ์ ์ถ๊ฐํ๋ค.
|
|
90
|
+
- `@soddong/agentic-capability-validation` ๊ธฐ๋ฐ methodology validator๋ฅผ ์ถ๊ฐํ๋ค.
|
|
91
|
+
|
|
92
|
+
## 0.1.0
|
|
93
|
+
|
|
94
|
+
- `@soddong/agentic-domain-methodology` npm ํจํค์ง skeleton ์ถ๊ฐ
|
|
95
|
+
- Methodology ๋๋ฉ์ธ ํจํค์ง ๊ธฐ๋ณธ metadata์ ์ต์ public API ์ถ๊ฐ
|
|
96
|
+
- README ๋ฐ docs ๊ธฐ๋ณธ ๋ฌธ์ ์ถ๊ฐ
|
|
97
|
+
- build/typecheck/dev-test/pack dry-run ๊ฒ์ฆ ๊ฒฝ๋ก ์ถ๊ฐ
|
package/README.md
ADDED
|
@@ -0,0 +1,501 @@
|
|
|
1
|
+
# @soddong/agentic-domain-methodology
|
|
2
|
+
|
|
3
|
+
`@soddong/agentic-domain-methodology`๋ Agentic Platform์ ๋ฐฉ๋ฒ๋ก ๋๋ฉ์ธ ํจํค์ง์
๋๋ค.
|
|
4
|
+
|
|
5
|
+
์ด ํจํค์ง๋ Methodology, Lifecycle, Phase, Process, Stage, Activity, Step, Gate, Handoff, Artifact Requirement, Common Blueprint Policy ๊ฐ์ ๋ฐฉ๋ฒ๋ก ๊ตฌ์กฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํ์ ๋๋ฉ์ธ ํจํค์ง์
๋๋ค.
|
|
6
|
+
|
|
7
|
+
## ํ์ฌ ๋ฒ์
|
|
8
|
+
|
|
9
|
+
ํ์ฌ๋ ํจํค์ง skeleton, Continuous Publish/Delivery ๊ธฐ๋ฐ, methodology SQLite schema migration, database helper, ํต์ฌ Repository/Service API, Common Blueprint Policy, Activity Artifact Requirement์ artifact component ์ฐธ์กฐ, Stage Criteria API, Handoff Requirement API, Build Planning fixture/seed, runtime seed apply handler, ์ต์ validator, scoped validation์ ์ ๊ณตํฉ๋๋ค. Agent contribution์ ํ์ iteration์์ ๊ตฌ์ฒดํํฉ๋๋ค.
|
|
10
|
+
|
|
11
|
+
| ๊ตฌ๋ถ | ์ํ |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| ํจํค์ง skeleton | ํฌํจ |
|
|
14
|
+
| ๊ธฐ๋ณธ ๋ฌธ์ | ํฌํจ |
|
|
15
|
+
| build/typecheck | ํฌํจ |
|
|
16
|
+
| pack dry-run | ํฌํจ |
|
|
17
|
+
| ์ต์ public API | ํฌํจ |
|
|
18
|
+
| Methodology DB migration | ํฌํจ |
|
|
19
|
+
| Methodology database helper | ํฌํจ |
|
|
20
|
+
| Repository/Service | ํต์ฌ ์์ฑ/์กฐํ API ํฌํจ |
|
|
21
|
+
| Common Blueprint Policy | ๊ณตํต Front/Back Matter ์ ์ฑ
ํฌํจ |
|
|
22
|
+
| Activity Artifact Component Reference | Activity ์ฐ์ถ๋ฌผ ์๊ตฌ๊ฐ artifact-standard์ ํน์ document component๋ฅผ ์ฐธ์กฐ ๊ฐ๋ฅ |
|
|
23
|
+
| Stage Criteria API | Stage entry/exit/gate ๊ธฐ์ค ์์ฑ/์กฐํ ๊ฐ๋ฅ |
|
|
24
|
+
| Handoff Requirement API | ์ํ ๋จ์ ๊ฐ ์ ๋ฌ ๊ณ์ฝ ์์ฑ/์กฐํ ๊ฐ๋ฅ |
|
|
25
|
+
| Runtime Seed Apply Handler | AI-Agent SDLC seed์ methodology section ์ ์ฉ ๊ฐ๋ฅ |
|
|
26
|
+
| Validator | ์ต์ ๊ตฌ์กฐ ์ ํฉ์ฑ ๊ฒ์ฆ ํฌํจ |
|
|
27
|
+
| Fixture/Seed | Build Planning ์์ ํฌํจ |
|
|
28
|
+
| Agent contribution | ํ์ iteration |
|
|
29
|
+
| CLI | 1์ฐจ ๊ตฌํ ์ ์ธ |
|
|
30
|
+
| Adapter | 1์ฐจ ๊ตฌํ ์ ์ธ |
|
|
31
|
+
|
|
32
|
+
## ๋๋ฉ์ธ ์ฑ
์
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
@soddong/agentic-domain-methodology
|
|
36
|
+
- Methodology
|
|
37
|
+
- Lifecycle
|
|
38
|
+
- Phase
|
|
39
|
+
- Process
|
|
40
|
+
- Stage
|
|
41
|
+
- Activity
|
|
42
|
+
- Step
|
|
43
|
+
- Gate
|
|
44
|
+
- Entry/Exit Criteria
|
|
45
|
+
- Handoff
|
|
46
|
+
- Baseline
|
|
47
|
+
- Artifact Requirement
|
|
48
|
+
- Common Blueprint Policy
|
|
49
|
+
- Trace Policy
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Activity Artifact Requirement์ Document Component ์ฐธ์กฐ
|
|
53
|
+
|
|
54
|
+
`methodology`๋ ์ฐ์ถ๋ฌผ ํ์ค ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ์ง์ ์์ ํ์ง ์์ต๋๋ค. ๋ณธ๋ฌธ, ๋ถ๋ก, ํ์ ๋ถ๋ก ๊ฐ์ ์ฐ์ถ๋ฌผ ๊ตฌ์ฑ ๋จ์๋ `@soddong/agentic-domain-artifact-standard`์ `DocumentComponent`๊ฐ ์ ์ํฉ๋๋ค.
|
|
55
|
+
|
|
56
|
+
๋ค๋ง Activity๊ฐ ์ฐ์ถ๋ฌผ ์ ์ฒด๊ฐ ์๋๋ผ ํน์ ๊ตฌ์ฑ ๋จ์๋ฅผ ์์ฑ, ๊ฒํ , ์ ์ , ์ข
ํฉํ๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฏ๋ก Activity Artifact Requirement๋ optional component ์ฐธ์กฐ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
service.addActivityArtifactRequirement({
|
|
60
|
+
activityId: activity.activityId,
|
|
61
|
+
artifactStandardCode: "business_process_definition",
|
|
62
|
+
artifactStandardVersion: "1.0.0",
|
|
63
|
+
artifactComponentCode: "appendix_l3_process",
|
|
64
|
+
artifactComponentRoleCode: "APPENDIX",
|
|
65
|
+
requirementRoleCode: "output",
|
|
66
|
+
outputUsageCode: "produces",
|
|
67
|
+
isPrimary: true
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
Activity: L3 ํ๋ก์ธ์ค ๋ถ๋ก ์์ฑ
|
|
75
|
+
output artifact standard: business_process_definition@1.0.0
|
|
76
|
+
output component: appendix_l3_process
|
|
77
|
+
usage: produces
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
์ด ๊ตฌ์กฐ์์ `methodology`๋ "์ธ์ , ์ด๋ค Activity๊ฐ ์ด๋ค ์ฐ์ถ๋ฌผ/component๋ฅผ ๋ค๋ฃจ๋๊ฐ"๋ง ์ ์ํฉ๋๋ค. ์ฐ์ถ๋ฌผ ๋ด๋ถ component ๊ตฌ์กฐ์ ๋ฌผ๋ฆฌ ํ์ผ ์ ์ฑ
์ `artifact-standard`, ์ค์ ์ฐ์ถ๋ฌผ instance ์ฐ๊ฒฐ์ ํ์ `artifact` ์ฑ
์์
๋๋ค.
|
|
81
|
+
|
|
82
|
+
ํ๋์ Stage์์ ์ฌ๋ฌ ์ฐ์ถ๋ฌผ ๊ตฌ์ฑ ์์๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ์๋ component๋ณ Activity output์ผ๋ก ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
Planning Phase
|
|
86
|
+
Business Architecture Planning Process
|
|
87
|
+
Stage: component_business_process_definition
|
|
88
|
+
Activity: business_process_main_document_authoring
|
|
89
|
+
output: business_process_definition@1.0.0 / main_document
|
|
90
|
+
Activity: l3_process_appendix_authoring
|
|
91
|
+
output: business_process_definition@1.0.0 / appendix_l3_process
|
|
92
|
+
Activity: scenario_appendix_authoring
|
|
93
|
+
output: business_process_definition@1.0.0 / appendix_scenario
|
|
94
|
+
Activity: l4_detail_appendix_authoring
|
|
95
|
+
output: business_process_definition@1.0.0 / appendix_l4_detail
|
|
96
|
+
Activity: business_process_definition_consolidation
|
|
97
|
+
input: main_document, appendix_l3_process, appendix_scenario, appendix_l4_detail
|
|
98
|
+
output: business_process_definition@1.0.0 / main_document
|
|
99
|
+
usage: refines
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
์ข
ํฉ/์ ์ ์ฒ๋ผ ์ฌ๋ฌ component๋ฅผ ์ฝ๊ณ MAIN ๋ฌธ์๋ฅผ ์ ์ ํ๋ ์์
๋ Activity๋ก ๋ ์ ์์ต๋๋ค. Stage gate/criterion์ ์ด Activity๊ฐ ์๋ฃ๋๋์ง ํ๋จํ๋ ๊ธฐ์ค์ด๊ณ , handoff๋ ๋ค์ Stage๋ Process๋ก ๋๊ธฐ๋ ๊ด๊ณ์
๋๋ค.
|
|
103
|
+
|
|
104
|
+
ํ ์ฐ์ถ๋ฌผ ๊ตฌ์ฑ ์์๋ฅผ ์์ฑํ๋ ๋ด๋ถ ์ ์ฐจ๋ Step์ผ๋ก ํํํ ์ ์์ง๋ง, ํ์ฌ ์กฐ๋ฆฝ ๊ฒ์ฆ์์๋ Step๊น์ง ์ธ๋ถํํ์ง ์์ต๋๋ค.
|
|
105
|
+
|
|
106
|
+
## Stage Criteria API
|
|
107
|
+
|
|
108
|
+
Stage์ ์์, ์ข
๋ฃ, ์ ํ ํ๋จ ๊ธฐ์ค์ `methodology_stage_criteria`์ Service API๋ก ๊ด๋ฆฌํฉ๋๋ค.
|
|
109
|
+
|
|
110
|
+
```ts
|
|
111
|
+
const exitCriteria = service.createStageCriteria({
|
|
112
|
+
stageId: stage.stageId,
|
|
113
|
+
criteriaTypeCode: "exit",
|
|
114
|
+
criteriaName: "ํ์ component ์์ฑ",
|
|
115
|
+
criteriaText: "MAIN, L3 ๋ถ๋ก, ์๋๋ฆฌ์ค ๋ถ๋ก, L4 ์์ธ ๋ถ๋ก component๊ฐ ๋ชจ๋ ์์ฑ๋์ด์ผ ํ๋ค.",
|
|
116
|
+
validationRequired: true,
|
|
117
|
+
severityCode: "error",
|
|
118
|
+
sortOrder: 20,
|
|
119
|
+
metadata: {
|
|
120
|
+
criteriaCode: "exit_required_components_created"
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
const criteria = service.listStageCriteriaByStage(stage.stageId);
|
|
125
|
+
console.log(criteria.map((item) => item.criteriaTypeCode));
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
๊ตฌ๋ถ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
|
|
129
|
+
|
|
130
|
+
| criteriaTypeCode | ์๋ฏธ |
|
|
131
|
+
| --- | --- |
|
|
132
|
+
| `entry` | Stage ์์ ์ ์ค๋น ์กฐ๊ฑด |
|
|
133
|
+
| `exit` | Stage ์ข
๋ฃ๋ฅผ ์ํ ์ฐ์ถ๋ฌผ/๊ตฌ์กฐ ์์ฑ ์กฐ๊ฑด |
|
|
134
|
+
| `gate` | ๋ค์ Stage ๋๋ ์น์ธ ์ ํ ํ๋จ ์กฐ๊ฑด |
|
|
135
|
+
|
|
136
|
+
## Handoff Requirement API
|
|
137
|
+
|
|
138
|
+
Handoff๋ ์ค์ ํ์ผ์ ๋ณต์ฌํ๊ฑฐ๋ ์ด๋ํ๋ ๊ธฐ๋ฅ์ด ์๋๋ผ, ํ์ Phase/Process/Stage/Activity๊ฐ ์
๋ ฅ์ผ๋ก ๋ฐ์์ผ ํ๋ ์ฐ์ถ๋ฌผ, ์ด์, ๊ฒฐ์ , ์ ์ฝ ์กฐ๊ฑด ๋ฑ์ ์ ๋ฌ ๊ณ์ฝ์
๋๋ค.
|
|
139
|
+
|
|
140
|
+
๋ค์์ ์ ํ ์ฐ์ถ๋ฌผ component๋ฅผ ํ๋์ artifact instance ๋ฌถ์์ผ๋ก ํํ Stage์ ๋๊ธฐ๋ ๊ฒฝ์ฐ์๋ Handoff 1๊ฑด์ ํ์ component ๋ชฉ๋ก์ metadata๋ก ๋ก๋๋ค.
|
|
141
|
+
|
|
142
|
+
```ts
|
|
143
|
+
const handoff = service.createHandoffRequirement({
|
|
144
|
+
sourceScopeCode: "stage",
|
|
145
|
+
sourceRefId: businessProcessStage.stageId,
|
|
146
|
+
targetScopeCode: "stage",
|
|
147
|
+
targetRefId: informationObjectStage.stageId,
|
|
148
|
+
handoffTypeCode: "artifact",
|
|
149
|
+
handoffItemName: "A์ปดํฌ๋ํธ ๋น์ฆ๋์ค ํ๋ก์ธ์ค ์ ์์",
|
|
150
|
+
handoffDescription: "์ปดํฌ๋ํธ ์ ๋ณด ๊ฐ์ฒด ์ ์ Stage์์ ์ฐธ์กฐํ ๋น์ฆ๋์ค ํ๋ก์ธ์ค ์ ์์ ์ฐ์ถ๋ฌผ ๋ฌถ์์ด๋ค.",
|
|
151
|
+
artifactStandardCode: "business_process_definition",
|
|
152
|
+
artifactStandardVersion: "1.0.0",
|
|
153
|
+
validationRequired: true,
|
|
154
|
+
sortOrder: 10,
|
|
155
|
+
metadata: {
|
|
156
|
+
handoffItemScope: "artifact_instance",
|
|
157
|
+
requiredComponentCodes: [
|
|
158
|
+
"main_document",
|
|
159
|
+
"appendix_l3_process",
|
|
160
|
+
"appendix_scenario",
|
|
161
|
+
"appendix_l4_detail"
|
|
162
|
+
],
|
|
163
|
+
requiredResultRefs: [
|
|
164
|
+
"validation_result",
|
|
165
|
+
"review_decision"
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
ํํ ์ฐ์ถ๋ฌผ์ LLM์ด ์์ฑํ๋ ๊ฒฝ์ฐ application ๋๋ runtime ์กฐ๋ฆฝ ๊ณ์ธต์ ๋ค์ ์์๋ก context๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
|
|
172
|
+
|
|
173
|
+
```text
|
|
174
|
+
1. ํํ Activity ๋๋ Stage ์๋ณ
|
|
175
|
+
2. target ๊ธฐ์ค Handoff Requirement ์กฐํ
|
|
176
|
+
3. handoff metadata์ required component set ํ์ธ
|
|
177
|
+
4. artifact instance์ component resource link ์กฐํ
|
|
178
|
+
5. ADoc document ๋ด์ฉ ์กฐํ
|
|
179
|
+
6. ํํ ์ฐ์ถ๋ฌผ์ artifact-standard ์กฐํ
|
|
180
|
+
7. ์ ํ ์ฐ์ถ๋ฌผ context + ํํ ์ฐ์ถ๋ฌผ ํ์ค์ LLM prompt/resource context๋ก ์กฐ๋ฆฝ
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
์กฐํ ์:
|
|
184
|
+
|
|
185
|
+
```ts
|
|
186
|
+
const inboundHandoffs = service.listHandoffRequirementsByTarget(
|
|
187
|
+
"stage",
|
|
188
|
+
informationObjectStage.stageId
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
const outboundHandoffs = service.listHandoffRequirementsBySource(
|
|
192
|
+
"stage",
|
|
193
|
+
businessProcessStage.stageId
|
|
194
|
+
);
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## ์ ์ธ ๋ฒ์
|
|
198
|
+
|
|
199
|
+
| ์ ์ธ ํญ๋ชฉ | ๋ด๋น ํ๋ณด |
|
|
200
|
+
| --- | --- |
|
|
201
|
+
| Document ๋ด๋ถ ๊ตฌ์กฐ | `@soddong/agentic-domain-document` |
|
|
202
|
+
| Artifact Standard ๋ณธ๋ฌธ ๊ตฌ์กฐ | `@soddong/agentic-domain-artifact-standard` |
|
|
203
|
+
| Artifact instance | `@soddong/agentic-domain-artifact` |
|
|
204
|
+
| AI-Agent SDLC seed | `@soddong/agentic-methodology-ai-agent-sdlc` |
|
|
205
|
+
| Runner | `@soddong/agentic-runtime` ๋๋ application package |
|
|
206
|
+
| Render | render capability |
|
|
207
|
+
| Adapter | `@soddong/agentic-runtime` |
|
|
208
|
+
|
|
209
|
+
## ๋ช
๋ช
๊ธฐ์ค
|
|
210
|
+
|
|
211
|
+
| ๊ตฌ๋ถ | ๊ธฐ์ค |
|
|
212
|
+
| --- | --- |
|
|
213
|
+
| logical schema | `methodology` |
|
|
214
|
+
| SQLite table prefix | `methodology_` |
|
|
215
|
+
| PostgreSQL mapping | ํฅํ ์ค์ DB ํ์ฉ ์ `methodology.*` ํ๋ณด |
|
|
216
|
+
|
|
217
|
+
## ๊ฐ๋ฐ ๊ฒ์ฆ
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
npm run build --workspace @soddong/agentic-domain-methodology
|
|
221
|
+
npm run typecheck --workspace @soddong/agentic-domain-methodology
|
|
222
|
+
npm run dev:test:agentic-domain-methodology
|
|
223
|
+
npm pack --workspace @soddong/agentic-domain-methodology --dry-run --cache /private/tmp/agentic-npm-cache
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## ๊ธฐ๋ณธ API ์์
|
|
227
|
+
|
|
228
|
+
```ts
|
|
229
|
+
import {
|
|
230
|
+
applyAgenticSeed,
|
|
231
|
+
getMethodologyPackageInfo,
|
|
232
|
+
initializeMethodologyDatabase,
|
|
233
|
+
openMethodologyDatabase,
|
|
234
|
+
MethodologyService,
|
|
235
|
+
seedBuildPlanningExample,
|
|
236
|
+
validateMethodologyDefinition
|
|
237
|
+
} from "@soddong/agentic-domain-methodology";
|
|
238
|
+
|
|
239
|
+
console.log(getMethodologyPackageInfo());
|
|
240
|
+
|
|
241
|
+
const result = initializeMethodologyDatabase({
|
|
242
|
+
projectRoot: process.cwd()
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
console.log(result.tables);
|
|
246
|
+
|
|
247
|
+
const db = openMethodologyDatabase({ projectRoot: process.cwd() });
|
|
248
|
+
const service = new MethodologyService(db);
|
|
249
|
+
|
|
250
|
+
const scenario = service.createDefinitionScenario({
|
|
251
|
+
methodology: {
|
|
252
|
+
methodologyCode: "sdlc_default",
|
|
253
|
+
methodologyName: "๊ธฐ๋ณธ SDLC ๋ฐฉ๋ฒ๋ก ",
|
|
254
|
+
methodologyVersion: "1.0.0"
|
|
255
|
+
},
|
|
256
|
+
lifecycle: {
|
|
257
|
+
lifecycleCode: "default_lifecycle",
|
|
258
|
+
lifecycleName: "๊ธฐ๋ณธ Lifecycle"
|
|
259
|
+
},
|
|
260
|
+
phase: {
|
|
261
|
+
phaseCode: "analysis",
|
|
262
|
+
phaseName: "๋ถ์"
|
|
263
|
+
},
|
|
264
|
+
process: {
|
|
265
|
+
processCode: "requirements_management",
|
|
266
|
+
processName: "์๊ตฌ์ฌํญ ๊ด๋ฆฌ"
|
|
267
|
+
},
|
|
268
|
+
activity: {
|
|
269
|
+
activityCode: "requirements_definition",
|
|
270
|
+
activityName: "์๊ตฌ์ฌํญ ์ ์"
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
console.log(scenario.activity.activityId);
|
|
275
|
+
|
|
276
|
+
const validation = validateMethodologyDefinition(db);
|
|
277
|
+
console.log(validation.valid);
|
|
278
|
+
db.close();
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Process ์ถ๊ฐ API ์ฌ์ฉ ๊ธฐ์ค
|
|
282
|
+
|
|
283
|
+
Process๋ ํน์ Lifecycle์ ์ง์ ์ข
์๋๋ ๋ฐ์ดํฐ๊ฐ ์๋๋ผ Methodology์ ์ข
์๋ฉ๋๋ค. Phase์ Process์ ๊ด๊ณ๋ `methodology_phase_processes` ์ฐ๊ฒฐ ํ
์ด๋ธ๋ก ํํํฉ๋๋ค.
|
|
284
|
+
|
|
285
|
+
๋ฐ๋ผ์ ์ด๋ฏธ ์์ฑ๋ Lifecycle ๋๋ Phase๋ฅผ ๊ธฐ์ค์ผ๋ก Process๋ฅผ ์ถ๊ฐํ ๋๋ `createProcess()`์ `lifecycleId`๋ฅผ ๋๊ธฐ์ง ์์ต๋๋ค.
|
|
286
|
+
|
|
287
|
+
์๋ชป๋ ์:
|
|
288
|
+
|
|
289
|
+
```ts
|
|
290
|
+
service.createProcess({
|
|
291
|
+
lifecycleId: scenario.lifecycle.lifecycleId,
|
|
292
|
+
processCode: "architecture_design",
|
|
293
|
+
processName: "์ํคํ
์ฒ ์ค๊ณ"
|
|
294
|
+
});
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
`createProcess()`๋ `methodologyId`๋ฅผ ์ง์ ๋ฐ๋ ์ ์์ค API์
๋๋ค.
|
|
298
|
+
|
|
299
|
+
```ts
|
|
300
|
+
service.createProcess({
|
|
301
|
+
methodologyId: scenario.methodology.methodologyId,
|
|
302
|
+
processCode: "architecture_design",
|
|
303
|
+
processName: "์ํคํ
์ฒ ์ค๊ณ"
|
|
304
|
+
});
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
consumer ์ฝ๋์์ Lifecycle ๊ธฐ์ค์ผ๋ก Process๋ฅผ ์ถ๊ฐํ๊ณ ์ถ๋ค๋ฉด `createProcessForLifecycle()`์ ์ฌ์ฉํฉ๋๋ค.
|
|
308
|
+
|
|
309
|
+
```ts
|
|
310
|
+
const process = service.createProcessForLifecycle({
|
|
311
|
+
lifecycleId: scenario.lifecycle.lifecycleId,
|
|
312
|
+
processCode: "architecture_design",
|
|
313
|
+
processName: "์ํคํ
์ฒ ์ค๊ณ"
|
|
314
|
+
});
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
Phase ๊ธฐ์ค์ผ๋ก Process๋ฅผ ๋ง๋ค๊ณ Phase์ ๋ฐ๋ก ๋ฐฐ์ ํ๋ ค๋ฉด `createProcessForPhase()`๋ฅผ ์ฌ์ฉํฉ๋๋ค.
|
|
318
|
+
|
|
319
|
+
```ts
|
|
320
|
+
const result = service.createProcessForPhase({
|
|
321
|
+
phaseId: scenario.phase.phaseId,
|
|
322
|
+
processCode: "architecture_design",
|
|
323
|
+
processName: "์ํคํ
์ฒ ์ค๊ณ",
|
|
324
|
+
phaseProcess: {
|
|
325
|
+
sortOrder: 20
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
|
|
329
|
+
console.log(result.process.processId);
|
|
330
|
+
console.log(result.phaseProcess.phaseProcessId);
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
## ์กฐํ/ํ์ API ์์
|
|
334
|
+
|
|
335
|
+
์์ฑ๋ ๋ฐฉ๋ฒ๋ก ๊ตฌ์กฐ๋ฅผ ํ์ธํ ๋๋ ์ง์ SQL์ ์์ฑํ๊ธฐ๋ณด๋ค Service ์กฐํ API๋ฅผ ์ฐ์ ์ฌ์ฉํฉ๋๋ค.
|
|
336
|
+
|
|
337
|
+
๋จ์ ๋ชฉ๋ก ์กฐํ:
|
|
338
|
+
|
|
339
|
+
```ts
|
|
340
|
+
const lifecycles = service.listLifecyclesByMethodology(scenario.methodology.methodologyId);
|
|
341
|
+
const phases = service.listPhasesByLifecycle(scenario.lifecycle.lifecycleId);
|
|
342
|
+
const processes = service.listProcessesByPhase(scenario.phase.phaseId);
|
|
343
|
+
const activities = service.listActivitiesByProcess(scenario.process.processId);
|
|
344
|
+
const stages = service.listStagesByProcess(scenario.process.processId);
|
|
345
|
+
const steps = service.listStepsByActivity(scenario.activity.activityId);
|
|
346
|
+
const outputs = service.listActivityArtifactRequirements(scenario.activity.activityId);
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
์ ์ฒด ๊ตฌ์กฐ ์กฐํ:
|
|
350
|
+
|
|
351
|
+
```ts
|
|
352
|
+
const structure = service.getMethodologyStructure(scenario.methodology.methodologyId);
|
|
353
|
+
|
|
354
|
+
for (const lifecycle of structure.lifecycles) {
|
|
355
|
+
for (const phase of lifecycle.phases) {
|
|
356
|
+
for (const process of phase.processes) {
|
|
357
|
+
console.log(process.process.processName);
|
|
358
|
+
console.log(process.activities.map((item) => item.activity.activityName));
|
|
359
|
+
console.log(process.stages.map((item) => item.stage.stageName));
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
`getMethodologyStructure()`๋ Methodology -> Lifecycle -> Phase -> Process -> Activity/Stage ๊ตฌ์กฐ๋ฅผ ์ฝ๊ธฐ ์ํ ํธ์ read model์
๋๋ค. Stage ํ์ Activity๋ `methodology_stage_activities` ์ฐ๊ฒฐ ๊ธฐ์ค์ผ๋ก ์กฐํ๋ฉ๋๋ค.
|
|
366
|
+
|
|
367
|
+
## Fixture/Seed ์ฌ์ฉ ์์
|
|
368
|
+
|
|
369
|
+
`seedBuildPlanningExample()`์ `temp/` ์๋ Build Planning ๋ฐฉ๋ฒ๋ก ์ ๋ฆฌ ๋ด์ฉ์ ๊ธฐ์ค์ผ๋ก ๊ตฌ์ฑํ ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํฉ๋๋ค.
|
|
370
|
+
|
|
371
|
+
ํฌํจ ๋ฒ์:
|
|
372
|
+
|
|
373
|
+
- `Build Planning Phase`
|
|
374
|
+
- `Build Planning Process`
|
|
375
|
+
- `Analysis Stage`
|
|
376
|
+
- `Interface Design Stage`
|
|
377
|
+
- `Structure Design Stage`
|
|
378
|
+
- `Build Scope Planning Stage`
|
|
379
|
+
- Stage๋ณ ๋ํ Activity, Step, primary output artifact requirement
|
|
380
|
+
- ํน์ Stage์ ์ข
์๋์ง ์๋ Cross-cutting Governance Activity
|
|
381
|
+
|
|
382
|
+
์ฌ์ฉ ์:
|
|
383
|
+
|
|
384
|
+
```ts
|
|
385
|
+
const seedResult = seedBuildPlanningExample(db);
|
|
386
|
+
|
|
387
|
+
console.log(seedResult.seeded);
|
|
388
|
+
console.log(seedResult.structure.methodology.methodologyName);
|
|
389
|
+
console.log(seedResult.structure.lifecycles[0].phases[0].processes[0].stages.length);
|
|
390
|
+
console.log(seedResult.structure.lifecycles[0].phases[0].processes[0].activities.length);
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
๋์ผํ `methodologyCode + methodologyVersion`์ด ์ด๋ฏธ ์กด์ฌํ๋ฉด ์ค๋ณต ์์ฑํ์ง ์๊ณ ๊ธฐ์กด ๊ตฌ์กฐ๋ฅผ ๋ฐํํฉ๋๋ค.
|
|
394
|
+
|
|
395
|
+
```ts
|
|
396
|
+
const first = seedBuildPlanningExample(db);
|
|
397
|
+
const second = seedBuildPlanningExample(db);
|
|
398
|
+
|
|
399
|
+
console.log(first.seeded); // true
|
|
400
|
+
console.log(second.seeded); // false
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
## Runtime Seed Apply Handler
|
|
404
|
+
|
|
405
|
+
`applyAgenticSeed()`๋ `@soddong/agentic-runtime seed apply`๊ฐ target package๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ๋ handler์
๋๋ค.
|
|
406
|
+
|
|
407
|
+
์ด handler๋ methodology ๋๋ฉ์ธ์ด ์์ ํ๋ section๋ง ์ฒ๋ฆฌํฉ๋๋ค.
|
|
408
|
+
|
|
409
|
+
| sourceSection | ์ฒ๋ฆฌ |
|
|
410
|
+
| --- | --- |
|
|
411
|
+
| `methodology` | Methodology ์์ฑ ๋๋ ๊ธฐ์กด ํญ๋ชฉ skip |
|
|
412
|
+
| `lifecycle` | Lifecycle ์์ฑ ๋๋ ๊ธฐ์กด ํญ๋ชฉ skip |
|
|
413
|
+
| `phases` | Phase ๋ชฉ๋ก ์์ฑ |
|
|
414
|
+
| `processes` | Process ์์ฑ ๋ฐ Phase ์ฐ๊ฒฐ |
|
|
415
|
+
| `stages` | Stage ๋ชฉ๋ก ์์ฑ |
|
|
416
|
+
| `activities` | Activity ์์ฑ ๋ฐ Stage ์ฐ๊ฒฐ |
|
|
417
|
+
| `activityArtifactRequirements` | Activity output/input/supporting artifact requirement ์์ฑ |
|
|
418
|
+
| `criteria` | Stage criteria ์์ฑ |
|
|
419
|
+
| `handoffs` | Stage ๊ฐ handoff requirement ์์ฑ |
|
|
420
|
+
|
|
421
|
+
`generatedOutputLinks`, `validationProfiles`, `sampleExecution`์ ๊ฐ๊ฐ `artifact-standard`, `validation`, `artifact` ๊ณ์ด ํจํค์ง์ ์ฑ
์์
๋๋ค.
|
|
422
|
+
|
|
423
|
+
์์:
|
|
424
|
+
|
|
425
|
+
```ts
|
|
426
|
+
await applyAgenticSeed({
|
|
427
|
+
sourcePackageName: "@soddong/agentic-methodology-ai-agent-sdlc",
|
|
428
|
+
sourcePackageVersion: "0.2.0",
|
|
429
|
+
bundleCode: "ai-agent-sdlc-build-planning",
|
|
430
|
+
bundleVersion: "0.2.0",
|
|
431
|
+
methodologyCode: "ai_agent_sdlc",
|
|
432
|
+
sourceSection: "stages",
|
|
433
|
+
targetOperation: "upsert_stages",
|
|
434
|
+
mode: "apply",
|
|
435
|
+
itemPayload: [
|
|
436
|
+
{
|
|
437
|
+
processCode: "build_planning_process",
|
|
438
|
+
stageCode: "analysis_stage",
|
|
439
|
+
stageName: "Analysis Stage",
|
|
440
|
+
stageTypeCode: "analysis",
|
|
441
|
+
stageOrder: 10
|
|
442
|
+
}
|
|
443
|
+
]
|
|
444
|
+
});
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
์ ์ฉ ๊ฒฐ๊ณผ๋ ๋ค์ ์ค ํ๋๋ฅผ ๋ฐํํฉ๋๋ค.
|
|
448
|
+
|
|
449
|
+
| status | ์๋ฏธ |
|
|
450
|
+
| --- | --- |
|
|
451
|
+
| `applied` | ์ ๊ท methodology ๋ฐ์ดํฐ๊ฐ ์์ฑ๋จ |
|
|
452
|
+
| `skipped` | ๋์ผ ๊ธฐ์ค์ ๋ฐ์ดํฐ๊ฐ ์ด๋ฏธ ์์ด ์ค๋ณต ์์ฑํ์ง ์์ |
|
|
453
|
+
| `blocked` | ์ ํ methodology, lifecycle, phase, process, stage, activity ๋ฑ์ด ์์ด ์ ์ฉํ ์ ์์ |
|
|
454
|
+
| `failed` | payload ํ์๊ฐ ๋๋ฝ ๋๋ DB ์ ์ฝ ์ค๋ฅ |
|
|
455
|
+
|
|
456
|
+
AI-Agent SDLC seed์ `handoffTypeCode: "stage_gate"`๋ ํ์ฌ methodology DB์ ๊ณตํต handoff type์ ์ง์ ํฌํจ๋์ง ์์ผ๋ฏ๋ก `context`๋ก ์ ์ฅํฉ๋๋ค. ์๋ณธ `stage_gate` ๊ฐ์ metadata์ `seedPayload`์ ๋ณด์กดํฉ๋๋ค.
|
|
457
|
+
|
|
458
|
+
## Validation Scope ์ฌ์ฉ ์์
|
|
459
|
+
|
|
460
|
+
`validateMethodologyDefinition(db)`๋ ๊ธฐ๋ณธ์ ์ผ๋ก methodology DB ์ ์ฒด๋ฅผ ๊ฒ์ฆํฉ๋๋ค. ํ๋์ consumer ํ๋ก์ ํธ ์์ ์ฌ๋ฌ ๋ฐฉ๋ฒ๋ก , ํ
์คํธ ๋ฐ์ดํฐ, ์๋์ ์ผ๋ก ๋ง๋ ์ค๋ฅ ๋ฐ์ดํฐ๊ฐ ํจ๊ป ์์ ์ ์์ผ๋ฏ๋ก ํน์ ๋ฐฉ๋ฒ๋ก ๋ง ๊ฒ์ฆํด์ผ ํ ๋๋ scope๋ฅผ ์ง์ ํฉ๋๋ค.
|
|
461
|
+
|
|
462
|
+
๋ฐฉ๋ฒ๋ก ID ๊ธฐ์ค:
|
|
463
|
+
|
|
464
|
+
```ts
|
|
465
|
+
const result = validateMethodologyDefinition(db, {
|
|
466
|
+
scope: {
|
|
467
|
+
methodologyId: seedResult.methodologyId
|
|
468
|
+
}
|
|
469
|
+
});
|
|
470
|
+
|
|
471
|
+
console.log(result.valid);
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
๋ฐฉ๋ฒ๋ก ์ฝ๋์ ๋ฒ์ ๊ธฐ์ค:
|
|
475
|
+
|
|
476
|
+
```ts
|
|
477
|
+
const result = validateMethodologyDefinition(db, {
|
|
478
|
+
scope: {
|
|
479
|
+
methodologyCode: "build_planning_example",
|
|
480
|
+
methodologyVersion: "1.0.0"
|
|
481
|
+
}
|
|
482
|
+
});
|
|
483
|
+
|
|
484
|
+
console.log(result.valid);
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
์ ์ฒด validation์ DB ์์ ๋ชจ๋ ๋ฐฉ๋ฒ๋ก ๊ณผ ํ
์คํธ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ๊ฒ์ฆํฉ๋๋ค. ํน์ fixture๋ ํน์ ๋ฐฉ๋ฒ๋ก ์ ํ์ง๋ง ํ์ธํ๋ ค๋ฉด scoped validation์ ์ฌ์ฉํฉ๋๋ค.
|
|
488
|
+
|
|
489
|
+
๊ธฐ๋ ๊ฒฐ๊ณผ:
|
|
490
|
+
|
|
491
|
+
```json
|
|
492
|
+
{
|
|
493
|
+
"name": "@soddong/agentic-domain-methodology",
|
|
494
|
+
"version": "0.11.1",
|
|
495
|
+
"layer": "domain",
|
|
496
|
+
"logicalSchema": "methodology",
|
|
497
|
+
"sqliteTablePrefix": "methodology_",
|
|
498
|
+
"cli": "not-provided",
|
|
499
|
+
"adapter": "not-provided"
|
|
500
|
+
}
|
|
501
|
+
```
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Database from "better-sqlite3";
|
|
2
|
+
import type { MethodologyDatabaseInitResult, MethodologyDatabaseOptions } from "./types.js";
|
|
3
|
+
export declare function resolveMethodologyDatabasePath(options?: MethodologyDatabaseOptions): string;
|
|
4
|
+
export declare function listMethodologyTables(db: Database.Database): string[];
|
|
5
|
+
export declare function applyMethodologyBaseMigration(db: Database.Database): void;
|
|
6
|
+
export declare function openMethodologyDatabase(options?: MethodologyDatabaseOptions): Database.Database;
|
|
7
|
+
export declare function initializeMethodologyDatabase(options?: MethodologyDatabaseOptions): MethodologyDatabaseInitResult;
|
|
8
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAuB5F,wBAAgB,8BAA8B,CAAC,OAAO,GAAE,0BAA+B,GAAG,MAAM,CAiB/F;AAOD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,EAAE,CAYrE;AAED,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAEzE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,0BAA+B,GAAG,QAAQ,CAAC,QAAQ,CAkBnG;AAED,wBAAgB,6BAA6B,CAAC,OAAO,GAAE,0BAA+B,GAAG,6BAA6B,CAcrH"}
|