agentic-dev 0.2.4 → 0.2.6

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 (72) hide show
  1. package/.agent/prd.json +1 -1
  2. package/.agent/prompt.md +1 -1
  3. package/.claude/agents/db-dev.md +1 -1
  4. package/.claude/agents/frontend-dev.md +1 -1
  5. package/.claude/agents/test-dev.md +1 -1
  6. package/.claude/skills/sdd/SKILL.md +9 -9
  7. package/.claude/skills/sdd/references/section-map.md +5 -5
  8. package/.codex/skills/sdd/SKILL.md +9 -9
  9. package/.codex/skills/sdd/references/section-map.md +5 -5
  10. package/AGENTS.md +4 -4
  11. package/README.md +45 -12
  12. package/SDD_SKILL.md +7 -7
  13. package/bin/agentic-dev.mjs +53 -18
  14. package/client/admin/scripts/ui-parity-admin-adapter.mjs +1 -1
  15. package/client/landing/scripts/ui-parity-landing-adapter.mjs +1 -1
  16. package/client/mobile/scripts/ui-parity-mobile-adapter.mjs +1 -1
  17. package/client/web/scripts/ui-parity-web-adapter.mjs +1 -1
  18. package/lib/scaffold.mjs +254 -279
  19. package/package.json +2 -2
  20. package/sdd/02_plan/03_architecture/repository_governance.md +1 -1
  21. package/sdd/02_plan/03_architecture/runtime_and_structure_governance.md +1 -1
  22. package/sdd/02_plan/03_architecture/toolchain_governance.md +2 -2
  23. package/sdd/02_plan/06_iac/dev_runtime_delivery.md +1 -1
  24. package/sdd/02_plan/10_test/regression_verification.md +2 -2
  25. package/sdd/02_plan/10_test/templates/ui_parity_web_contract.template.yaml +1 -1
  26. package/sdd/02_plan/10_test/verification_strategy.md +2 -2
  27. package/sdd/03_build/03_architecture/toolchain_governance.md +1 -1
  28. package/sdd/{04_verify → 03_verify}/01_feature/service_verification.md +1 -1
  29. package/sdd/{04_verify → 03_verify}/02_screen/README.md +1 -1
  30. package/sdd/{04_verify → 03_verify}/03_architecture/toolchain_governance.md +2 -2
  31. package/sdd/{04_verify → 03_verify}/06_iac/dev_runtime_delivery.md +1 -1
  32. package/sdd/{04_verify → 03_verify}/06_iac/template_runtime_delivery.md +1 -1
  33. package/sdd/{04_verify → 03_verify}/README.md +3 -3
  34. package/sdd/99_toolchain/01_automation/README.md +2 -2
  35. package/sdd/99_toolchain/01_automation/agentic-dev/assets/repo-contract.template.json +5 -5
  36. package/sdd/99_toolchain/01_automation/agentic-dev/bootstrap_frontend_parity.sh +1 -1
  37. package/sdd/99_toolchain/01_automation/agentic-dev/repo-contract.json +6 -6
  38. package/sdd/99_toolchain/01_automation/agentic-parity-harness-design.md +4 -4
  39. package/sdd/99_toolchain/01_automation/parity-execution-tooling-design.md +3 -3
  40. package/sdd/99_toolchain/01_automation/ui-parity/README.md +1 -1
  41. package/sdd/99_toolchain/01_automation/ui-parity/cli/materialize-reference-assets.mjs +1 -1
  42. package/sdd/99_toolchain/01_automation/ui-parity/cli/scaffold-contract.mjs +2 -2
  43. package/sdd/99_toolchain/01_automation/ui-parity/core/proof-runner.mjs +1 -1
  44. package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-artifact-layout.md +1 -1
  45. package/sdd/99_toolchain/02_policies/build-ast-governance-policy.md +2 -2
  46. package/sdd/99_toolchain/02_policies/compose-runtime-baseline-policy.md +2 -2
  47. package/sdd/99_toolchain/02_policies/regression-verification-policy.md +1 -1
  48. package/sdd/99_toolchain/README.md +1 -1
  49. package/sdd/README.md +1 -1
  50. /package/sdd/{04_verify → 03_verify}/01_feature/README.md +0 -0
  51. /package/sdd/{04_verify → 03_verify}/01_feature/domain_verification.md +0 -0
  52. /package/sdd/{04_verify → 03_verify}/02_screen/_screen_verify_template.md +0 -0
  53. /package/sdd/{04_verify → 03_verify}/02_screen/admin/README.md +0 -0
  54. /package/sdd/{04_verify → 03_verify}/02_screen/landing/README.md +0 -0
  55. /package/sdd/{04_verify → 03_verify}/02_screen/mobile/README.md +0 -0
  56. /package/sdd/{04_verify → 03_verify}/02_screen/web/README.md +0 -0
  57. /package/sdd/{04_verify → 03_verify}/03_architecture/README.md +0 -0
  58. /package/sdd/{04_verify → 03_verify}/03_architecture/architecture_document_governance.md +0 -0
  59. /package/sdd/{04_verify → 03_verify}/03_architecture/build_ast_runtime_tree_governance.md +0 -0
  60. /package/sdd/{04_verify → 03_verify}/03_architecture/repository_governance.md +0 -0
  61. /package/sdd/{04_verify → 03_verify}/06_iac/README.md +0 -0
  62. /package/sdd/{04_verify → 03_verify}/07_integration/README.md +0 -0
  63. /package/sdd/{04_verify → 03_verify}/07_integration/frontend_live_integration.md +0 -0
  64. /package/sdd/{04_verify → 03_verify}/08_nonfunctional/README.md +0 -0
  65. /package/sdd/{04_verify → 03_verify}/08_nonfunctional/repository_hygiene.md +0 -0
  66. /package/sdd/{04_verify → 03_verify}/10_test/README.md +0 -0
  67. /package/sdd/{04_verify → 03_verify}/10_test/regression_verification.md +0 -0
  68. /package/sdd/{04_verify → 03_verify}/10_test/ui_parity/README.md +0 -0
  69. /package/sdd/{04_verify → 03_verify}/10_test/ui_parity/loop_runs/.gitkeep +0 -0
  70. /package/sdd/{04_verify → 03_verify}/10_test/ui_parity/reference/.gitkeep +0 -0
  71. /package/sdd/{04_verify → 03_verify}/10_test/ui_parity/staged_runs/.gitkeep +0 -0
  72. /package/sdd/{04_verify → 03_verify}/10_test/verification_harness.md +0 -0
package/.agent/prd.json CHANGED
@@ -13,7 +13,7 @@
13
13
  ".agent/prompt.md",
14
14
  "sdd/02_plan",
15
15
  "sdd/03_build",
16
- "sdd/04_verify"
16
+ "sdd/03_verify"
17
17
  ],
18
18
  "validation": [
19
19
  "jq . .agent/prd.json"
package/.agent/prompt.md CHANGED
@@ -6,7 +6,7 @@ Rules:
6
6
  3. Lock one reproduction or validation command before editing.
7
7
  4. Make one focused change set toward the requested story.
8
8
  5. Re-run the requested validation commands immediately.
9
- 6. Update the matching `sdd/02_plan`, `sdd/03_build`, and `sdd/04_verify` current-state artifacts when scope changes.
9
+ 6. Update the matching `sdd/02_plan`, `sdd/03_build`, and `sdd/03_verify` current-state artifacts when scope changes.
10
10
  7. Update `.agent/prd.json` story status and append one short line to `.agent/progress.txt`.
11
11
  8. Stop after this iteration and report:
12
12
  - story id
@@ -23,4 +23,4 @@ Focus:
23
23
  Rules:
24
24
  - Keep template defaults generic.
25
25
  - Separate persistence concerns from domain logic.
26
- - Document backend data surface changes in `sdd/04_data`, `06_iac`, `04_verify`.
26
+ - Document backend data surface changes in `sdd/04_data`, `06_iac`, `03_verify`.
@@ -22,4 +22,4 @@ Focus:
22
22
  Rules:
23
23
  - Preserve runtime tree readability from `main.tsx` down to route leaves.
24
24
  - Prefer product-grade patterns over placeholder scaffolds.
25
- - Record UI structure changes in `sdd/03_build` and `04_verify`.
25
+ - Record UI structure changes in `sdd/03_build` and `03_verify`.
@@ -22,5 +22,5 @@ Focus:
22
22
 
23
23
  Rules:
24
24
  - Verify direct, upstream, downstream, and shared surfaces when applicable.
25
- - Keep validation evidence in `sdd/04_verify`.
25
+ - Keep validation evidence in `sdd/03_verify`.
26
26
  - Treat missing automation as a documented gap, not a silent skip.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sdd
3
- description: "Use for any software development request in a repository that treats `sdd/` as the canonical delivery system. Trigger on requests like develop, implement, build, code, work on, modify, fix, patch, refactor, test, verify, deploy, monitor, or screen/UI-driven prompts such as 화면명세서, 화면설계서, 화면 설계, 화면, 화면 스펙, UI, 디자인, 디자인 가이드, screen spec, screen design, or design guide. The workflow is always SDD-first: inspect and update `sdd/01_planning`, create or update the task plan under `sdd/02_plan`, implement the change, record execution in `sdd/03_build`, capture validation in `sdd/04_verify`, and record deployment or monitoring in `sdd/05_operate` when rollout happens."
3
+ description: "Use for any software development request in a repository that treats `sdd/` as the canonical delivery system. Trigger on requests like develop, implement, build, code, work on, modify, fix, patch, refactor, test, verify, deploy, monitor, or screen/UI-driven prompts such as 화면명세서, 화면설계서, 화면 설계, 화면, 화면 스펙, UI, 디자인, 디자인 가이드, screen spec, screen design, or design guide. The workflow is always SDD-first: inspect and update `sdd/01_planning`, create or update the task plan under `sdd/02_plan`, implement the change, record execution in `sdd/03_build`, capture validation in `sdd/03_verify`, and record deployment or monitoring in `sdd/05_operate` when rollout happens."
4
4
  ---
5
5
 
6
6
  # SDD Development
@@ -14,7 +14,7 @@ This skill enforces one workflow:
14
14
  2. create or update the task plan under `sdd/02_plan/<section>/`,
15
15
  3. perform the code work,
16
16
  4. record the current implementation summary in `sdd/03_build`,
17
- 5. record the current retained verification summary in `sdd/04_verify`,
17
+ 5. record the current retained verification summary in `sdd/03_verify`,
18
18
  6. record deployment and monitoring outcomes in `sdd/05_operate` when rollout happens.
19
19
 
20
20
  When rollout is explicitly in scope, and the repository has separate DEV and PROD environments, this skill enforces a staged release rule: deploy to DEV first, complete the retained full-layer validation surface there, promote to PROD only after DEV passes, then rerun the same retained validation surface in PROD. If PROD validation fails, rollback is required unless the user explicitly redirects and that risk is recorded.
@@ -24,14 +24,14 @@ Read [references/section-map.md](references/section-map.md) when you need the ex
24
24
  For screen-spec-driven UI work, reusable static assets from the spec must be extracted through the repo's canonical asset builder before being used in code.
25
25
  For screen-spec-driven layout work, inspect the repo's canonical design guide builder first when one exists.
26
26
  For local screen exactness, treat the repo's Playwright exactness runner and suite registry as the canonical automation gate when they exist.
27
- For verification work, treat regression scope selection as a required retained artifact and carry it through `sdd/02_plan`, `sdd/03_build`, and `sdd/04_verify`.
27
+ For verification work, treat regression scope selection as a required retained artifact and carry it through `sdd/02_plan`, `sdd/03_build`, and `sdd/03_verify`.
28
28
  Do not infer rollout scope from the existence of `sdd/05_operate` alone; require rollout only when the user asks for deployment or the repo's current policy/plan makes rollout part of completion.
29
29
  When a repo or team treats DEV deployment from `main` as the completion bar, temporary branches or worktrees are only working space. Before calling the task deployed, land the final retained change on `main` and push `origin/main`.
30
30
 
31
31
  ## When To Use
32
32
 
33
33
  Use this skill when:
34
- - the repository has `sdd/01_planning`, `02_plan`, `03_build`, `04_verify`, `05_operate`,
34
+ - the repository has `sdd/01_planning`, `02_plan`, `03_build`, `03_verify`, `05_operate`,
35
35
  - the user gives a development instruction such as `개발해`, `작업해`, `구현해`, `수정해`, `고쳐`, `리팩토링해`, `테스트해`, `배포해`,
36
36
  - the user asks for screen/UI work with prompts such as `화면명세서`, `화면설계서`, `화면 설계`, `화면`, `화면 스펙`, `UI`, `디자인`, `디자인 가이드`, `screen spec`, `screen design`, or `design guide`,
37
37
  - the user wants work to be traceable through those folders,
@@ -91,7 +91,7 @@ Do not use this skill for:
91
91
  - Reusable asset planning records belong under `sdd/01_planning/02_screen/assets/`.
92
92
  - Build the runtime asset from the approved PDF/image source instead of hand-tracing or screenshot-cropping it.
93
93
  - Use exact verification such as `--verify-exact` when the asset is expected to match the source crop exactly.
94
- - Record the source, manifest, generated asset path, and any exception in `sdd/03_build` and `sdd/04_verify`.
94
+ - Record the source, manifest, generated asset path, and any exception in `sdd/03_build` and `sdd/03_verify`.
95
95
  - Only fall back to manual recreation when the builder cannot express the asset, and explicitly document that exception in the plan/build/verify trail.
96
96
  - When the task depends on spacing, layout density, typography, color rhythm, or component hierarchy derived from a screen spec, inspect the repo's canonical design guide builder first.
97
97
  - In repos created from this template, inspect `sdd/99_toolchain/01_automation/README.md` and use the actual builder, wrapper, or manifest that exists in the repo.
@@ -117,11 +117,11 @@ Do not use this skill for:
117
117
 
118
118
  ### 5. Record Verification
119
119
 
120
- - Record retained verification status in `sdd/04_verify`.
120
+ - Record retained verification status in `sdd/03_verify`.
121
121
  - Use:
122
- - `04_verify/01_feature` for feature verification summaries
123
- - `04_verify/02_screen` for screen verification summaries
124
- - `04_verify/03_architecture`, `06_iac`, `10_test` for current retained checks and residual risk
122
+ - `03_verify/01_feature` for feature verification summaries
123
+ - `03_verify/02_screen` for screen verification summaries
124
+ - `03_verify/03_architecture`, `06_iac`, `10_test` for current retained checks and residual risk
125
125
  - Never claim completion without command-level validation evidence.
126
126
  - For staged DEV -> PROD rollout, verification must use the same retained full-layer validation surface in both environments.
127
127
  - Run the full-layer validation in DEV after deployment and treat it as a hard gate before PROD promotion.
@@ -43,15 +43,15 @@
43
43
 
44
44
  ## Verify
45
45
 
46
- - `sdd/04_verify/01_feature`
46
+ - `sdd/03_verify/01_feature`
47
47
  - feature verification summaries
48
- - `sdd/04_verify/02_screen`
48
+ - `sdd/03_verify/02_screen`
49
49
  - screen verification summaries
50
- - `sdd/04_verify/03_architecture`
50
+ - `sdd/03_verify/03_architecture`
51
51
  - governance and structure verification summaries
52
- - `sdd/04_verify/06_iac`
52
+ - `sdd/03_verify/06_iac`
53
53
  - delivery/runtime verification summaries
54
- - `sdd/04_verify/10_test`
54
+ - `sdd/03_verify/10_test`
55
55
  - current harness outputs and retained validation references
56
56
 
57
57
  ## Operate
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sdd
3
- description: "Use for any software development request in a repository that treats `sdd/` as the canonical delivery system. Trigger on requests like develop, implement, build, code, work on, modify, fix, patch, refactor, test, verify, deploy, monitor, or screen/UI-driven prompts such as 화면명세서, 화면설계서, 화면 설계, 화면, 화면 스펙, UI, 디자인, 디자인 가이드, screen spec, screen design, or design guide. The workflow is always SDD-first: inspect and update `sdd/01_planning`, create or update the task plan under `sdd/02_plan`, implement the change, record execution in `sdd/03_build`, capture validation in `sdd/04_verify`, and record deployment or monitoring in `sdd/05_operate` when rollout happens."
3
+ description: "Use for any software development request in a repository that treats `sdd/` as the canonical delivery system. Trigger on requests like develop, implement, build, code, work on, modify, fix, patch, refactor, test, verify, deploy, monitor, or screen/UI-driven prompts such as 화면명세서, 화면설계서, 화면 설계, 화면, 화면 스펙, UI, 디자인, 디자인 가이드, screen spec, screen design, or design guide. The workflow is always SDD-first: inspect and update `sdd/01_planning`, create or update the task plan under `sdd/02_plan`, implement the change, record execution in `sdd/03_build`, capture validation in `sdd/03_verify`, and record deployment or monitoring in `sdd/05_operate` when rollout happens."
4
4
  ---
5
5
 
6
6
  # SDD Development
@@ -14,7 +14,7 @@ This skill enforces one workflow:
14
14
  2. create or update the task plan under `sdd/02_plan/<section>/`,
15
15
  3. perform the code work,
16
16
  4. record the current implementation summary in `sdd/03_build`,
17
- 5. record the current retained verification summary in `sdd/04_verify`,
17
+ 5. record the current retained verification summary in `sdd/03_verify`,
18
18
  6. record deployment and monitoring outcomes in `sdd/05_operate` when rollout happens.
19
19
 
20
20
  When rollout is explicitly in scope, and the repository has separate DEV and PROD environments, this skill enforces a staged release rule: deploy to DEV first, complete the retained full-layer validation surface there, promote to PROD only after DEV passes, then rerun the same retained validation surface in PROD. If PROD validation fails, rollback is required unless the user explicitly redirects and that risk is recorded.
@@ -24,14 +24,14 @@ Read [references/section-map.md](references/section-map.md) when you need the ex
24
24
  For screen-spec-driven UI work, reusable static assets from the spec must be extracted through the repo's canonical asset builder before being used in code.
25
25
  For screen-spec-driven layout work, inspect the repo's canonical design guide builder first when one exists.
26
26
  For local screen exactness, treat the repo's Playwright exactness runner and suite registry as the canonical automation gate when they exist.
27
- For verification work, treat regression scope selection as a required retained artifact and carry it through `sdd/02_plan`, `sdd/03_build`, and `sdd/04_verify`.
27
+ For verification work, treat regression scope selection as a required retained artifact and carry it through `sdd/02_plan`, `sdd/03_build`, and `sdd/03_verify`.
28
28
  Do not infer rollout scope from the existence of `sdd/05_operate` alone; require rollout only when the user asks for deployment or the repo's current policy/plan makes rollout part of completion.
29
29
  When a repo or team treats DEV deployment from `main` as the completion bar, temporary branches or worktrees are only working space. Before calling the task deployed, land the final retained change on `main` and push `origin/main`.
30
30
 
31
31
  ## When To Use
32
32
 
33
33
  Use this skill when:
34
- - the repository has `sdd/01_planning`, `02_plan`, `03_build`, `04_verify`, `05_operate`,
34
+ - the repository has `sdd/01_planning`, `02_plan`, `03_build`, `03_verify`, `05_operate`,
35
35
  - the user gives a development instruction such as `개발해`, `작업해`, `구현해`, `수정해`, `고쳐`, `리팩토링해`, `테스트해`, `배포해`,
36
36
  - the user asks for screen/UI work with prompts such as `화면명세서`, `화면설계서`, `화면 설계`, `화면`, `화면 스펙`, `UI`, `디자인`, `디자인 가이드`, `screen spec`, `screen design`, or `design guide`,
37
37
  - the user wants work to be traceable through those folders,
@@ -91,7 +91,7 @@ Do not use this skill for:
91
91
  - Reusable asset planning records belong under `sdd/01_planning/02_screen/assets/`.
92
92
  - Build the runtime asset from the approved PDF/image source instead of hand-tracing or screenshot-cropping it.
93
93
  - Use exact verification such as `--verify-exact` when the asset is expected to match the source crop exactly.
94
- - Record the source, manifest, generated asset path, and any exception in `sdd/03_build` and `sdd/04_verify`.
94
+ - Record the source, manifest, generated asset path, and any exception in `sdd/03_build` and `sdd/03_verify`.
95
95
  - Only fall back to manual recreation when the builder cannot express the asset, and explicitly document that exception in the plan/build/verify trail.
96
96
  - When the task depends on spacing, layout density, typography, color rhythm, or component hierarchy derived from a screen spec, inspect the repo's canonical design guide builder first.
97
97
  - In repos created from this template, inspect `sdd/99_toolchain/01_automation/README.md` and use the actual builder, wrapper, or manifest that exists in the repo.
@@ -117,11 +117,11 @@ Do not use this skill for:
117
117
 
118
118
  ### 5. Record Verification
119
119
 
120
- - Record retained verification status in `sdd/04_verify`.
120
+ - Record retained verification status in `sdd/03_verify`.
121
121
  - Use:
122
- - `04_verify/01_feature` for feature verification summaries
123
- - `04_verify/02_screen` for screen verification summaries
124
- - `04_verify/03_architecture`, `06_iac`, `10_test` for current retained checks and residual risk
122
+ - `03_verify/01_feature` for feature verification summaries
123
+ - `03_verify/02_screen` for screen verification summaries
124
+ - `03_verify/03_architecture`, `06_iac`, `10_test` for current retained checks and residual risk
125
125
  - Never claim completion without command-level validation evidence.
126
126
  - For staged DEV -> PROD rollout, verification must use the same retained full-layer validation surface in both environments.
127
127
  - Run the full-layer validation in DEV after deployment and treat it as a hard gate before PROD promotion.
@@ -43,15 +43,15 @@
43
43
 
44
44
  ## Verify
45
45
 
46
- - `sdd/04_verify/01_feature`
46
+ - `sdd/03_verify/01_feature`
47
47
  - feature verification summaries
48
- - `sdd/04_verify/02_screen`
48
+ - `sdd/03_verify/02_screen`
49
49
  - screen verification summaries
50
- - `sdd/04_verify/03_architecture`
50
+ - `sdd/03_verify/03_architecture`
51
51
  - governance and structure verification summaries
52
- - `sdd/04_verify/06_iac`
52
+ - `sdd/03_verify/06_iac`
53
53
  - delivery/runtime verification summaries
54
- - `sdd/04_verify/10_test`
54
+ - `sdd/03_verify/10_test`
55
55
  - current harness outputs and retained validation references
56
56
 
57
57
  ## Operate
package/AGENTS.md CHANGED
@@ -11,7 +11,7 @@
11
11
  - 회귀 검수 범위는 `sdd/02_plan/10_test/regression_verification.md` 기준으로 direct, upstream, downstream, shared surface까지 선택한다.
12
12
  - Playwright exactness suite가 있는 UI surface는 `sdd/99_toolchain/01_automation/run_playwright_exactness.py`를 canonical local gate로 사용한다.
13
13
  - shared route, shell, auth/session, component, data contract, generated asset, builder output 변경은 adjacent consumer까지 검수 범위를 넓힌다.
14
- - 선택한 회귀 범위, 생략 사유, residual risk는 `sdd/02_plan`, `sdd/03_build`, `sdd/04_verify`에 current-state로 남긴다.
14
+ - 선택한 회귀 범위, 생략 사유, residual risk는 `sdd/02_plan`, `sdd/03_build`, `sdd/03_verify`에 current-state로 남긴다.
15
15
 
16
16
  ## Branch And Deploy Policy
17
17
 
@@ -57,8 +57,8 @@
57
57
 
58
58
  ## SDD Verify Governance
59
59
 
60
- - `sdd/04_verify`는 feature/screen/architecture/IAC/test별 current verification summary만 유지한다.
61
- - screen verification summary는 `sdd/04_verify/02_screen/<service>/` 아래 screen-specific 파일로 유지한다.
60
+ - `sdd/03_verify`는 feature/screen/architecture/IAC/test별 current verification summary만 유지한다.
61
+ - screen verification summary는 `sdd/03_verify/02_screen/<service>/` 아래 screen-specific 파일로 유지한다.
62
62
  - dated gate result나 test evidence log는 남기지 않는다.
63
63
 
64
64
  ## SDD Operate Governance
@@ -75,4 +75,4 @@
75
75
  - `sdd/03_build`는 실행 이력 요약이 아니라 runtime assembly current-state 문서다.
76
76
  - service/screen build summary는 `entry -> provider/router -> auth/session gate -> shell -> route leaf -> backend contract leaf` 순서를 우선 유지한다.
77
77
  - `sdd/03_build`에는 dated history, Ralph iteration narrative, run id memo를 남기지 않는다.
78
- - AST 기반 current-state 적합성은 `scripts/dev/audit_sdd_build_ast.py`와 `sdd/04_verify/03_architecture/build_ast_runtime_tree_governance.md`를 기준으로 관리한다.
78
+ - AST 기반 current-state 적합성은 `scripts/dev/audit_sdd_build_ast.py`와 `sdd/03_verify/03_architecture/build_ast_runtime_tree_governance.md`를 기준으로 관리한다.
package/README.md CHANGED
@@ -27,6 +27,7 @@ SDD / delivery 원칙:
27
27
  - 설계, 계획, 구현, 검증, 운영 문서는 모두 `sdd/`가 canonical root다.
28
28
  - `sdd/`는 history 누적이 아니라 current-state durable 문서만 유지한다.
29
29
  - `02_plan`은 에이전트의 현재 개발 계획을 관리하고, feature는 `<domain>_todos.md`, screen은 `<service>_todos.md`로 유지한다.
30
+ - retained verification summary는 `sdd/03_verify`를 canonical root로 사용한다.
30
31
  - 템플릿 runtime baseline은 root `compose.yml` dev-focused stack이고, dedicated host용 DEV(개발계)/PROD compose overlay는 `infra/compose/`에 둔다.
31
32
  - current canonical delivery split은 `AWS edge/domain -> OpenStack backend compute -> AWS data plane`이다.
32
33
  - DEV(개발계) 반영이 필요한 작업은 `build -> main push -> DEV deploy -> DEV verify` 순서를 기본으로 사용한다.
@@ -42,20 +43,52 @@ SDD / delivery 원칙:
42
43
  설치형 scaffold:
43
44
 
44
45
  ```bash
45
- npx agentic-dev init my-app --template web
46
- cd my-app
47
- cp .env.example .env
48
- npm install -g pnpm
49
- pnpm install
50
- cd client/web
51
- npm run ui:parity:bootstrap
46
+ npx agentic-dev
47
+ ```
48
+
49
+ 또는 비대화형으로:
50
+
51
+ ```bash
52
+ npx agentic-dev init my-app --template template-web
53
+ npx agentic-dev init my-app --template template-web --skip-bootstrap
52
54
  ```
53
55
 
56
+ 설치 프로세스:
57
+
58
+ 1. `npx agentic-dev` 또는 `npx agentic-dev init <dir>`
59
+ - 프로젝트 디렉터리를 입력받는다.
60
+ 2. 공개 `say828/template-*` 레포 목록에서 템플릿을 선택한다.
61
+ - repo name 또는 숫자 선택을 모두 지원한다.
62
+ 3. 선택한 template repo를 새 폴더로 clone/copy 한다.
63
+ - `template-*` 패턴이 아닌 값은 거부한다.
64
+ 4. `.env.example`이 있으면 `.env`를 자동 생성한다.
65
+ 5. `pnpm install`과 `pnpm exec playwright install chromium`을 자동 실행한다.
66
+ 6. `npm run ui:parity:bootstrap`을 자동 실행한다.
67
+ - `--skip-bootstrap`을 주면 이 단계만 건너뛴다.
68
+
54
69
  CLI가 하는 일:
55
70
 
56
- - 선택한 frontend template 하나를 `client/<template>`로 설치
57
- - `server`, `.claude`, `.codex`, `.agent`, `sdd`, `infra`, `scripts`를 함께 설치
58
- - 선택한 template맞게 `compose.yml`, `pnpm-workspace.yaml`, `repo-contract.json`을 정렬
71
+ - 공개 `say828/template-*` 레포를 GitHub API로 조회한다.
72
+ - 사용자 입력을 받아 template repo를 선택한다.
73
+ - 선택된 repo를 target directory설치하고 `.env`, dependencies, Chromium, bootstrap까지 자동 처리한다.
74
+ - invalid repo name이나 `template-*`가 아닌 값은 즉시 거부한다.
75
+ - `--skip-bootstrap`을 주면 설치까지만 하고 bootstrap은 멈춘다.
76
+
77
+ Parity 명령:
78
+
79
+ - `npm run ui:parity:init`
80
+ - repo contract alias, parity contract, route-gap 산출물을 초기화한다.
81
+ - `npm run ui:parity:bootstrap`
82
+ - `init -> build -> preview -> materialize reference -> plan_audit gate -> proof gate`를 한 번에 실행한다.
83
+ - `npm run ui:parity:proof`
84
+ - 기존 parity contract를 기준으로 proof만 다시 실행한다.
85
+
86
+ 주요 parity 산출물:
87
+
88
+ - contract: `sdd/02_plan/10_test/templates/ui_parity_web_contract.yaml`
89
+ - route-gap report: `sdd/02_plan/99_generated/from_planning/ui_parity/`
90
+ - verification summary: `sdd/03_verify/10_test/ui_parity/`
91
+ - preview log: `sdd/03_verify/10_test/ui_parity/web-preview.log`
59
92
 
60
93
  GitHub token 운영:
61
94
 
@@ -96,7 +129,7 @@ DB adapter 전환:
96
129
  Agentic baseline:
97
130
 
98
131
  - `.claude/agents/`: Claude role agent prompt surface
99
- - `.claude/skills/sdd`, `.claude/skills/sdd-development`: SDD skill surface
100
- - `.codex/skills/SKILL.md`: OTRO root alias
132
+ - `.claude/skills/sdd`: Claude SDD canonical skill
133
+ - `.codex/skills/SKILL.md`: Codex root skill index
101
134
  - `.codex/skills/sdd/`: Codex SDD canonical skill
102
135
  - `.agent/ralph.sh`, `.agent/ralph-supervisor.sh`: bounded Ralph loop runner
package/SDD_SKILL.md CHANGED
@@ -21,7 +21,7 @@
21
21
  - 요구사항과 설계는 `sdd/01_planning`에서 확인한다.
22
22
  - 지금 당장 수행 중인 작업 계획은 `sdd/02_plan`에 적는다.
23
23
  - 실제 구현 결과는 `sdd/03_build`에 남긴다.
24
- - 검증 근거와 residual risk는 `sdd/04_verify`에 남긴다.
24
+ - 검증 근거와 residual risk는 `sdd/03_verify`에 남긴다.
25
25
  - 실제 배포와 운영 결과가 있었을 때만 `sdd/05_operate`를 갱신한다.
26
26
 
27
27
  즉, 이 스킬의 핵심은 "코드 변경" 자체가 아니라 "코드 변경을 설명하고 검증 가능한 current-state trail"을 같이 만드는 것이다.
@@ -30,7 +30,7 @@
30
30
 
31
31
  다음 조건이면 기본적으로 `sdd` 스킬 대상이다.
32
32
 
33
- - 저장소가 `sdd/01_planning`, `02_plan`, `03_build`, `04_verify`, `05_operate` 구조를 사용한다.
33
+ - 저장소가 `sdd/01_planning`, `02_plan`, `03_build`, `03_verify`, `05_operate` 구조를 사용한다.
34
34
  - 사용자가 구현, 수정, 리팩토링, 테스트, 배포, 화면 작업처럼 실제 개발 지시를 한다.
35
35
  - 결과물이 코드 변경만으로 끝나면 안 되고, durable plan/build/verify 기록이 남아야 한다.
36
36
 
@@ -150,7 +150,7 @@
150
150
 
151
151
  ### 5. Verify 기록
152
152
 
153
- `sdd/04_verify`는 단순히 "테스트 통과"를 적는 곳이 아니다. 어떤 검증을 했는지, 어떤 범위를 확인했는지, 무엇이 아직 residual risk인지 명확하게 남겨야 한다.
153
+ `sdd/03_verify`는 단순히 "테스트 통과"를 적는 곳이 아니다. 어떤 검증을 했는지, 어떤 범위를 확인했는지, 무엇이 아직 residual risk인지 명확하게 남겨야 한다.
154
154
 
155
155
  중요한 검증 규칙은 다음과 같다.
156
156
 
@@ -259,7 +259,7 @@
259
259
 
260
260
  이 폴더의 역할은 "지금 구현이 어떤 상태인가"를 설명하는 것이다.
261
261
 
262
- ### `sdd/04_verify`
262
+ ### `sdd/03_verify`
263
263
 
264
264
  검증 근거와 residual risk를 current-state로 남긴다.
265
265
 
@@ -297,7 +297,7 @@ section map은 단순 참고표가 아니라 "이번 작업이 어디에 기록
297
297
  예를 들면 다음과 같다.
298
298
 
299
299
  - 기능 요구사항이 바뀌면 `01_planning/01_feature`와 `02_plan/01_feature`를 본다.
300
- - 화면 정렬이 핵심이면 `01_planning/02_screen`, `02_plan/02_screen`, `03_build/02_screen`, `04_verify/02_screen` 축으로 간다.
300
+ - 화면 정렬이 핵심이면 `01_planning/02_screen`, `02_plan/02_screen`, `03_build/02_screen`, `03_verify/02_screen` 축으로 간다.
301
301
  - shared governance나 skill rule 정리는 `03_architecture` 축으로 간다.
302
302
  - schema/API/integration 변화가 크면 data/api/integration planning과 verify를 함께 본다.
303
303
  - rollout이 실제 범위면 `05_operate`까지 completion trail에 들어온다.
@@ -479,7 +479,7 @@ rollout이 범위일 때 보통 필요한 것은 다음이다.
479
479
  - 관련 planning을 확인했음
480
480
  - `sdd/02_plan`이 현재 작업 기준으로 갱신됨
481
481
  - `sdd/03_build`가 구현 결과를 설명함
482
- - `sdd/04_verify`가 검증 근거와 residual risk를 설명함
482
+ - `sdd/03_verify`가 검증 근거와 residual risk를 설명함
483
483
  - rollout이 실제로 있었다면 `sdd/05_operate`도 갱신됨
484
484
 
485
485
  추가로 아래 조건이 붙을 수 있다.
@@ -508,7 +508,7 @@ rollout이 범위일 때 보통 필요한 것은 다음이다.
508
508
  - asset recipe wrapper: `sdd/99_toolchain/01_automation/build_asset_recipes.py`
509
509
  - screen spec generator: `sdd/99_toolchain/01_automation/build_screen_spec_pdf.py`
510
510
  - capture tooling: `sdd/99_toolchain/01_automation/capture_screen_assets.mjs`
511
- - verification harness baseline: `sdd/04_verify/10_test/verification_harness.md`
511
+ - verification harness baseline: `sdd/03_verify/10_test/verification_harness.md`
512
512
  - verification strategy baseline: `sdd/02_plan/10_test/verification_strategy.md`
513
513
  - regression scope baseline: `sdd/02_plan/10_test/regression_verification.md`
514
514
 
@@ -4,17 +4,19 @@ import process from "node:process";
4
4
  import { createInterface } from "node:readline/promises";
5
5
  import {
6
6
  ensureTargetDir,
7
- listTemplates,
7
+ fetchTemplateRepos,
8
+ installTemplateRepo,
8
9
  parseArgs,
9
- scaffoldTemplate,
10
+ resolveTemplateRepo,
11
+ selectTemplateRepo,
10
12
  usage,
11
- validateTemplate,
12
13
  } from "../lib/scaffold.mjs";
13
14
 
14
- async function promptForMissing(options) {
15
+ async function promptForMissing(options, repos) {
15
16
  if (options.yes && (!options.targetDir || !options.template)) {
16
- throw new Error("`--yes` requires both target directory and template.");
17
+ throw new Error("`--yes` requires both target directory and template repo.");
17
18
  }
19
+
18
20
  if (options.targetDir && options.template) {
19
21
  return options;
20
22
  }
@@ -25,12 +27,31 @@ async function promptForMissing(options) {
25
27
  });
26
28
 
27
29
  try {
28
- if (!options.targetDir) {
29
- options.targetDir = (await rl.question("Target directory: ")).trim();
30
+ while (!options.targetDir) {
31
+ const answer = await rl.question("Project directory: ");
32
+ options.targetDir = answer.trim();
33
+ if (!options.targetDir) {
34
+ console.log("Project directory cannot be empty.");
35
+ }
30
36
  }
37
+
31
38
  if (!options.template) {
32
- const templates = listTemplates().join(", ");
33
- options.template = (await rl.question(`Template (${templates}): `)).trim();
39
+ console.log("");
40
+ console.log(`Public template repos from ${options.owner}:`);
41
+ repos.forEach((repo, index) => {
42
+ const summary = repo.description ? ` - ${repo.description}` : "";
43
+ console.log(` ${index + 1}. ${repo.name}${summary}`);
44
+ });
45
+ console.log("");
46
+ while (!options.template) {
47
+ const answer = await rl.question("Select template repo (number or repo name): ");
48
+ try {
49
+ options.template = selectTemplateRepo(answer, repos).name;
50
+ } catch (error) {
51
+ console.log(error.message);
52
+ options.template = "";
53
+ }
54
+ }
34
55
  }
35
56
  } finally {
36
57
  rl.close();
@@ -40,12 +61,20 @@ async function promptForMissing(options) {
40
61
  }
41
62
 
42
63
  function printSuccess(result) {
43
- console.log(`Scaffolded agentic-dev template: ${result.template}`);
44
- console.log(`Destination: ${result.destinationRoot}`);
45
64
  console.log("");
46
- console.log("Next steps:");
47
- for (const step of result.nextSteps) {
48
- console.log(` ${step}`);
65
+ console.log(`Initialized template repo: ${result.templateRepo}`);
66
+ console.log(`Destination: ${result.destinationRoot}`);
67
+ if (result.executedSteps.length > 0) {
68
+ console.log("Completed:");
69
+ for (const step of result.executedSteps) {
70
+ console.log(` ${step}`);
71
+ }
72
+ }
73
+ if (result.nextSteps.length > 0) {
74
+ console.log("Next steps:");
75
+ for (const step of result.nextSteps) {
76
+ console.log(` ${step}`);
77
+ }
49
78
  }
50
79
  }
51
80
 
@@ -80,12 +109,18 @@ async function main() {
80
109
  }
81
110
 
82
111
  try {
83
- options = await promptForMissing(options);
84
- validateTemplate(options.template);
112
+ const repos = await fetchTemplateRepos({ owner: options.owner });
113
+ if (repos.length === 0) {
114
+ throw new Error(`No public template-* repos found for ${options.owner}.`);
115
+ }
116
+
117
+ options = await promptForMissing(options, repos);
118
+ const selectedRepo = resolveTemplateRepo(options.template, repos);
85
119
  const destinationRoot = ensureTargetDir(options.targetDir, { force: options.force });
86
- const result = scaffoldTemplate({
120
+ const result = installTemplateRepo({
87
121
  destinationRoot: path.resolve(destinationRoot),
88
- template: options.template,
122
+ templateRepo: selectedRepo,
123
+ skipBootstrap: options.skipBootstrap,
89
124
  });
90
125
  printSuccess(result);
91
126
  } catch (error) {
@@ -23,7 +23,7 @@ export default {
23
23
  id: screen.id,
24
24
  title: screen.title,
25
25
  route: routeMap.get(screen.id) ?? "/",
26
- referenceImage: `sdd/04_verify/10_test/ui_parity/reference/${screen.id}.png`,
26
+ referenceImage: `sdd/03_verify/10_test/ui_parity/reference/${screen.id}.png`,
27
27
  readySelector: "body",
28
28
  readyTimeoutMs: 10000,
29
29
  tags: ["template", "admin"],
@@ -23,7 +23,7 @@ export default {
23
23
  id: screen.id,
24
24
  title: screen.title,
25
25
  route: routeMap.get(screen.id) ?? "/",
26
- referenceImage: `sdd/04_verify/10_test/ui_parity/reference/${screen.id}.png`,
26
+ referenceImage: `sdd/03_verify/10_test/ui_parity/reference/${screen.id}.png`,
27
27
  readySelector: "body",
28
28
  readyTimeoutMs: 10000,
29
29
  tags: ["template", "landing"],
@@ -23,7 +23,7 @@ export default {
23
23
  id: screen.id,
24
24
  title: screen.title,
25
25
  route: routeMap.get(screen.id) ?? "/",
26
- referenceImage: `sdd/04_verify/10_test/ui_parity/reference/${screen.id}.png`,
26
+ referenceImage: `sdd/03_verify/10_test/ui_parity/reference/${screen.id}.png`,
27
27
  readySelector: "body",
28
28
  readyTimeoutMs: 10000,
29
29
  tags: ["template", "mobile"],
@@ -23,7 +23,7 @@ export default {
23
23
  id: screen.id,
24
24
  title: screen.title,
25
25
  route: routeMap.get(screen.id) ?? "/",
26
- referenceImage: `sdd/04_verify/10_test/ui_parity/reference/${screen.id}.png`,
26
+ referenceImage: `sdd/03_verify/10_test/ui_parity/reference/${screen.id}.png`,
27
27
  readySelector: "body",
28
28
  readyTimeoutMs: 10000,
29
29
  tags: ["template", "web"],