agentic-dev 0.2.4 → 0.2.7
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/.agent/prd.json +1 -1
- package/.agent/prompt.md +1 -1
- package/.claude/agents/db-dev.md +1 -1
- package/.claude/agents/frontend-dev.md +1 -1
- package/.claude/agents/test-dev.md +1 -1
- package/.claude/skills/sdd/SKILL.md +15 -10
- package/.claude/skills/sdd/references/section-map.md +5 -5
- package/.codex/skills/sdd/SKILL.md +15 -10
- package/.codex/skills/sdd/references/section-map.md +5 -5
- package/AGENTS.md +12 -4
- package/README.md +45 -12
- package/SDD_SKILL.md +7 -7
- package/bin/agentic-dev.mjs +53 -18
- package/client/admin/scripts/ui-parity-admin-adapter.mjs +1 -1
- package/client/landing/scripts/ui-parity-landing-adapter.mjs +1 -1
- package/client/mobile/scripts/ui-parity-mobile-adapter.mjs +1 -1
- package/client/web/scripts/ui-parity-web-adapter.mjs +1 -1
- package/lib/scaffold.mjs +254 -279
- package/package.json +2 -2
- package/sdd/02_plan/03_architecture/repository_governance.md +1 -1
- package/sdd/02_plan/03_architecture/runtime_and_structure_governance.md +1 -1
- package/sdd/02_plan/03_architecture/toolchain_governance.md +2 -2
- package/sdd/02_plan/06_iac/dev_runtime_delivery.md +1 -1
- package/sdd/02_plan/10_test/regression_verification.md +2 -2
- package/sdd/02_plan/10_test/templates/ui_parity_web_contract.template.yaml +1 -1
- package/sdd/02_plan/10_test/verification_strategy.md +2 -2
- package/sdd/03_build/03_architecture/toolchain_governance.md +1 -1
- package/sdd/{04_verify → 03_verify}/01_feature/service_verification.md +1 -1
- package/sdd/{04_verify → 03_verify}/02_screen/README.md +1 -1
- package/sdd/{04_verify → 03_verify}/03_architecture/toolchain_governance.md +2 -2
- package/sdd/{04_verify → 03_verify}/06_iac/dev_runtime_delivery.md +1 -1
- package/sdd/{04_verify → 03_verify}/06_iac/template_runtime_delivery.md +1 -1
- package/sdd/{04_verify → 03_verify}/README.md +3 -3
- package/sdd/99_toolchain/01_automation/README.md +2 -2
- package/sdd/99_toolchain/01_automation/agentic-dev/assets/repo-contract.template.json +5 -5
- package/sdd/99_toolchain/01_automation/agentic-dev/bootstrap_frontend_parity.sh +1 -1
- package/sdd/99_toolchain/01_automation/agentic-dev/repo-contract.json +6 -6
- package/sdd/99_toolchain/01_automation/agentic-parity-harness-design.md +4 -4
- package/sdd/99_toolchain/01_automation/parity-execution-tooling-design.md +3 -3
- package/sdd/99_toolchain/01_automation/ui-parity/README.md +1 -1
- package/sdd/99_toolchain/01_automation/ui-parity/cli/materialize-reference-assets.mjs +1 -1
- package/sdd/99_toolchain/01_automation/ui-parity/cli/scaffold-contract.mjs +2 -2
- package/sdd/99_toolchain/01_automation/ui-parity/core/proof-runner.mjs +1 -1
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-artifact-layout.md +1 -1
- package/sdd/99_toolchain/02_policies/build-ast-governance-policy.md +2 -2
- package/sdd/99_toolchain/02_policies/compose-runtime-baseline-policy.md +2 -2
- package/sdd/99_toolchain/02_policies/regression-verification-policy.md +1 -1
- package/sdd/99_toolchain/README.md +1 -1
- package/sdd/README.md +1 -1
- /package/sdd/{04_verify → 03_verify}/01_feature/README.md +0 -0
- /package/sdd/{04_verify → 03_verify}/01_feature/domain_verification.md +0 -0
- /package/sdd/{04_verify → 03_verify}/02_screen/_screen_verify_template.md +0 -0
- /package/sdd/{04_verify → 03_verify}/02_screen/admin/README.md +0 -0
- /package/sdd/{04_verify → 03_verify}/02_screen/landing/README.md +0 -0
- /package/sdd/{04_verify → 03_verify}/02_screen/mobile/README.md +0 -0
- /package/sdd/{04_verify → 03_verify}/02_screen/web/README.md +0 -0
- /package/sdd/{04_verify → 03_verify}/03_architecture/README.md +0 -0
- /package/sdd/{04_verify → 03_verify}/03_architecture/architecture_document_governance.md +0 -0
- /package/sdd/{04_verify → 03_verify}/03_architecture/build_ast_runtime_tree_governance.md +0 -0
- /package/sdd/{04_verify → 03_verify}/03_architecture/repository_governance.md +0 -0
- /package/sdd/{04_verify → 03_verify}/06_iac/README.md +0 -0
- /package/sdd/{04_verify → 03_verify}/07_integration/README.md +0 -0
- /package/sdd/{04_verify → 03_verify}/07_integration/frontend_live_integration.md +0 -0
- /package/sdd/{04_verify → 03_verify}/08_nonfunctional/README.md +0 -0
- /package/sdd/{04_verify → 03_verify}/08_nonfunctional/repository_hygiene.md +0 -0
- /package/sdd/{04_verify → 03_verify}/10_test/README.md +0 -0
- /package/sdd/{04_verify → 03_verify}/10_test/regression_verification.md +0 -0
- /package/sdd/{04_verify → 03_verify}/10_test/ui_parity/README.md +0 -0
- /package/sdd/{04_verify → 03_verify}/10_test/ui_parity/loop_runs/.gitkeep +0 -0
- /package/sdd/{04_verify → 03_verify}/10_test/ui_parity/reference/.gitkeep +0 -0
- /package/sdd/{04_verify → 03_verify}/10_test/ui_parity/staged_runs/.gitkeep +0 -0
- /package/sdd/{04_verify → 03_verify}/10_test/verification_harness.md +0 -0
|
@@ -9,7 +9,7 @@ spec:
|
|
|
9
9
|
screens:
|
|
10
10
|
- id: TMP_001
|
|
11
11
|
route: /
|
|
12
|
-
reference_image: sdd/
|
|
12
|
+
reference_image: sdd/03_verify/10_test/ui_parity/reference/TMP_001.png
|
|
13
13
|
max_diff_ratio: 0
|
|
14
14
|
allow_resize: false
|
|
15
15
|
pixelmatch_threshold: 0.1
|
|
@@ -38,6 +38,6 @@
|
|
|
38
38
|
## Validation
|
|
39
39
|
|
|
40
40
|
- current references:
|
|
41
|
-
- `sdd/
|
|
42
|
-
- `sdd/
|
|
41
|
+
- `sdd/03_verify/README.md`
|
|
42
|
+
- `sdd/03_verify/10_test/verification_harness.md`
|
|
43
43
|
- `sdd/02_plan/10_test/regression_verification.md`
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
- Playwright exactness runner/manifest를 local screen exactness의 canonical toolchain entrypoint로 추가했다.
|
|
11
11
|
- `AGENTS.md`, `.codex/skills/sdd/SKILL.md`, `sdd/99_toolchain/01_automation/README.md`가 같은 회귀 검수 기준을 공유한다.
|
|
12
12
|
- reusable asset planning root를 `sdd/01_planning/02_screen/assets/`로 정리하고, local Codex/Claude `sdd` skill에 같은 path를 반영했다.
|
|
13
|
-
- `sdd/02_plan/10_test`, `sdd/03_build/10_test`, `sdd/
|
|
13
|
+
- `sdd/02_plan/10_test`, `sdd/03_build/10_test`, `sdd/03_verify/10_test`에 regression verification current-state 문서를 추가했다.
|
|
14
14
|
- `.claude/skills/sdd-dev/SKILL.md`의 stale Codex canonical path를 현재 `.codex/skills/sdd/` 구조로 교체했다.
|
|
15
15
|
- `.codex/skills/sdd/SKILL.md`와 `.claude/skills/sdd-dev/SKILL.md`에서 DEV/PROD rollout gate를 explicit deployment scope 조건으로 제한했다.
|
|
16
16
|
- 디자인 가이드 builder 안내는 고정 file path 대신 `sdd/99_toolchain/01_automation/README.md`와 실제 존재하는 builder inventory 기준으로 정리했다.
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
- service별 frontend build가 current baseline 검증 surface다.
|
|
17
17
|
- typed API contract와 backend domain contract 정합성은 domain verification을 상속한다.
|
|
18
|
-
- screen surface 상세는 `
|
|
18
|
+
- screen surface 상세는 `03_verify/02_screen/` 기준으로 읽는다.
|
|
19
19
|
|
|
20
20
|
## Residual Risk
|
|
21
21
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Screen Verification
|
|
2
2
|
|
|
3
3
|
- 이 폴더는 screen별 현재 retained verification 상태를 유지한다.
|
|
4
|
-
- service split을 따라 `
|
|
4
|
+
- service split을 따라 `03_verify/02_screen/<service>/` 아래에 둔다.
|
|
5
5
|
- dated gate/test log를 쌓지 않고, current retained checks와 residual risk만 남긴다.
|
|
6
6
|
- 새 verify section을 추가할 때는 `_screen_verify_template.md`를 기준으로 runtime tree, Playwright suite id, canonical runner command, artifact path를 함께 남긴다.
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
- `rg -n "brand_assets|brand asset|Brand Asset|브랜드 자산|브랜드 에셋|build_mobile_brand_assets|mobile_brand_asset_manifest|BRAND_ASSET_RECIPES" sdd/01_planning/02_screen sdd/02_plan/03_architecture sdd/03_build/03_architecture sdd/99_toolchain .codex/skills/sdd .claude/skills/sdd`
|
|
37
37
|
- pass
|
|
38
38
|
- template repo planning/toolchain/local skill에서 legacy brand asset naming이 제거됐다
|
|
39
|
-
- `git diff --check -- SDD_SKILL.md sdd/02_plan/03_architecture/toolchain_governance.md sdd/03_build/03_architecture/toolchain_governance.md sdd/
|
|
39
|
+
- `git diff --check -- SDD_SKILL.md sdd/02_plan/03_architecture/toolchain_governance.md sdd/03_build/03_architecture/toolchain_governance.md sdd/03_verify/03_architecture/toolchain_governance.md .codex/skills/sdd/SKILL.md .claude/skills/sdd-dev/SKILL.md`
|
|
40
40
|
- pass
|
|
41
41
|
- `sdd/99_toolchain/02_policies/regression-verification-policy.md`가 회귀 검수 규칙의 정본으로 추가됐다.
|
|
42
42
|
- `AGENTS.md`, `.codex/skills/sdd/SKILL.md`, `sdd/99_toolchain/01_automation/README.md`가 direct-only verification 금지와 selected regression surface 기록 규칙을 함께 설명한다.
|
|
43
43
|
- `sdd/01_planning/02_screen/assets/README.md`, `.codex/skills/sdd/SKILL.md`, `.claude/skills/sdd/SKILL.md`, `sdd/99_toolchain/01_automation/README.md`가 reusable asset planning root를 `assets/`로 일치시킨다.
|
|
44
|
-
- `sdd/02_plan/10_test/regression_verification.md`, `sdd/03_build/10_test/regression_verification.md`, `sdd/
|
|
44
|
+
- `sdd/02_plan/10_test/regression_verification.md`, `sdd/03_build/10_test/regression_verification.md`, `sdd/03_verify/10_test/regression_verification.md`가 current-state trail을 이룬다.
|
|
45
45
|
- `.claude/skills/sdd-dev/SKILL.md`가 현재 Codex canonical path와 section map path를 직접 가리킨다.
|
|
46
46
|
- `.codex/skills/sdd/SKILL.md`는 rollout scope를 `sdd/05_operate` 존재 여부가 아니라 explicit deployment scope 또는 completion policy로 해석한다.
|
|
47
47
|
- `.codex/skills/sdd/SKILL.md`, `sdd/99_toolchain/01_automation/README.md`, `sdd/99_toolchain/02_policies/regression-verification-policy.md`가 Playwright exactness wrapper/manifest를 canonical local gate로 함께 설명한다.
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
## Retained Checks
|
|
8
8
|
|
|
9
9
|
- current delivery baseline은 frontend build, backend test, screen capture/PDF generation 조합으로 유지된다.
|
|
10
|
-
- proof/output path는 current `sdd/
|
|
10
|
+
- proof/output path는 current `sdd/03_verify/10_test/ui_parity/` 구조를 따른다.
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
- pass
|
|
35
35
|
- `terraform -chdir=infra/terraform/openstack/server init -backend=false && terraform -chdir=infra/terraform/openstack/server validate`
|
|
36
36
|
- pass
|
|
37
|
-
- `git diff --check -- README.md infra/compose/README.md sdd/02_plan/06_iac/template_runtime_delivery.md sdd/03_build/06_iac/template_runtime_delivery.md sdd/
|
|
37
|
+
- `git diff --check -- README.md infra/compose/README.md sdd/02_plan/06_iac/template_runtime_delivery.md sdd/03_build/06_iac/template_runtime_delivery.md sdd/03_verify/06_iac/template_runtime_delivery.md sdd/99_toolchain/README.md sdd/99_toolchain/02_policies/compose-runtime-baseline-policy.md sdd/99_toolchain/02_policies/convention-storage-policy.md`
|
|
38
38
|
- pass
|
|
39
39
|
|
|
40
40
|
## Residual Risk
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
## Purpose
|
|
4
4
|
|
|
5
|
-
- `sdd/
|
|
5
|
+
- `sdd/03_verify/`는 현재 구현 상태에 대한 retained verification을 durable 문서로 유지하는 루트다.
|
|
6
6
|
- 날짜별 gate/test log를 쌓지 않고, 현재 기준의 pass/fail 상태와 residual risk만 남긴다.
|
|
7
7
|
|
|
8
8
|
## Canonical Rule
|
|
9
9
|
|
|
10
|
-
- `
|
|
10
|
+
- `03_verify`는 `02_plan`, `03_build`와 같은 section 축을 따른다.
|
|
11
11
|
- feature, screen, architecture, IAC, test surface별 verification summary를 같은 파일에서 갱신한다.
|
|
12
|
-
- history성 gate/test 로그는 `
|
|
12
|
+
- history성 gate/test 로그는 `03_verify`에 두지 않는다.
|
|
13
13
|
|
|
14
14
|
## Sections
|
|
15
15
|
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
- parity harness나 build check는 회귀 검수의 일부일 뿐이고, 실제 완료 기준은 선택한 regression surface 전체에 대한 retained evidence다.
|
|
45
45
|
- Playwright exactness suite가 있는 surface는 `run_playwright_exactness.py`를 canonical local gate로 사용한다.
|
|
46
46
|
- shared route, shell, auth/session, shared component, API/data contract, generated asset, builder output 변경은 adjacent consumer까지 검수 범위를 넓힌다.
|
|
47
|
-
- 아직 자동화가 없는 회귀 surface는 command/manual verification으로 메우고, automation gap은 `sdd/03_build`, `sdd/
|
|
47
|
+
- 아직 자동화가 없는 회귀 surface는 command/manual verification으로 메우고, automation gap은 `sdd/03_build`, `sdd/03_verify`에 residual risk로 남긴다.
|
|
48
48
|
- Browser Use나 수동 시각 점검은 Playwright exactness gate를 대체하지 않고 보강/진단 용도로만 사용한다.
|
|
49
49
|
|
|
50
50
|
## Asset Recipe Rule
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
- design guide / asset / screen spec baseline 확인
|
|
73
73
|
- `python3 sdd/99_toolchain/01_automation/run_playwright_exactness.py --suite <suite-id> --base-url <url>`
|
|
74
74
|
- 필요하면 `--api-base-url`, `--browser`, `--grep`를 추가한다.
|
|
75
|
-
- 실행 결과와 artifact path를 `sdd/
|
|
75
|
+
- 실행 결과와 artifact path를 `sdd/03_verify` current summary에 기록한다.
|
|
76
76
|
- 시작점 예시는 [`../03_templates/playwright_exactness_manifest.example.py`](../03_templates/playwright_exactness_manifest.example.py)를 따른다.
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"parity_contract_path": "sdd/02_plan/10_test/templates/ui_parity_web_contract.yaml",
|
|
21
21
|
"route_gap_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_web_route_gap_report.json",
|
|
22
22
|
"route_gap_markdown_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_web_route_gap_report.md",
|
|
23
|
-
"proof_output": "sdd/
|
|
23
|
+
"proof_output": "sdd/03_verify/10_test/ui_parity/templates_web_agentic_dev_latest.json"
|
|
24
24
|
},
|
|
25
25
|
"mobile": {
|
|
26
26
|
"dir": "client/mobile",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"parity_contract_path": "sdd/02_plan/10_test/templates/ui_parity_mobile_contract.yaml",
|
|
32
32
|
"route_gap_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_mobile_route_gap_report.json",
|
|
33
33
|
"route_gap_markdown_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_mobile_route_gap_report.md",
|
|
34
|
-
"proof_output": "sdd/
|
|
34
|
+
"proof_output": "sdd/03_verify/10_test/ui_parity/templates_mobile_agentic_dev_latest.json"
|
|
35
35
|
},
|
|
36
36
|
"admin": {
|
|
37
37
|
"dir": "client/admin",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"parity_contract_path": "sdd/02_plan/10_test/templates/ui_parity_admin_contract.yaml",
|
|
43
43
|
"route_gap_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_admin_route_gap_report.json",
|
|
44
44
|
"route_gap_markdown_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_admin_route_gap_report.md",
|
|
45
|
-
"proof_output": "sdd/
|
|
45
|
+
"proof_output": "sdd/03_verify/10_test/ui_parity/templates_admin_agentic_dev_latest.json"
|
|
46
46
|
},
|
|
47
47
|
"landing": {
|
|
48
48
|
"dir": "client/landing",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"parity_contract_path": "sdd/02_plan/10_test/templates/ui_parity_landing_contract.yaml",
|
|
54
54
|
"route_gap_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_landing_route_gap_report.json",
|
|
55
55
|
"route_gap_markdown_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_landing_route_gap_report.md",
|
|
56
|
-
"proof_output": "sdd/
|
|
56
|
+
"proof_output": "sdd/03_verify/10_test/ui_parity/templates_landing_agentic_dev_latest.json"
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
},
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
},
|
|
67
67
|
"artifacts": {
|
|
68
68
|
"route_gap_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_web_route_gap_report.json",
|
|
69
|
-
"proof_output": "sdd/
|
|
69
|
+
"proof_output": "sdd/03_verify/10_test/ui_parity/replace_agentic_dev_latest.json"
|
|
70
70
|
},
|
|
71
71
|
"notes": [
|
|
72
72
|
"Replace the commands and proof output path after cloning the template.",
|
|
@@ -47,7 +47,7 @@ PY
|
|
|
47
47
|
target_name="$(read_target_value "name")"
|
|
48
48
|
target_dir="$(read_target_value "target.dir")"
|
|
49
49
|
preview_url="$(read_target_value "target.preview_url")"
|
|
50
|
-
preview_log="${repo_root}/sdd/
|
|
50
|
+
preview_log="${repo_root}/sdd/03_verify/10_test/ui_parity/${target_name}-preview.log"
|
|
51
51
|
preview_pid=""
|
|
52
52
|
|
|
53
53
|
cleanup() {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"parity_contract_path": "sdd/02_plan/10_test/templates/ui_parity_web_contract.yaml",
|
|
21
21
|
"route_gap_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_web_route_gap_report.json",
|
|
22
22
|
"route_gap_markdown_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_web_route_gap_report.md",
|
|
23
|
-
"proof_output": "sdd/
|
|
23
|
+
"proof_output": "sdd/03_verify/10_test/ui_parity/templates_web_agentic_dev_latest.json"
|
|
24
24
|
},
|
|
25
25
|
"mobile": {
|
|
26
26
|
"dir": "client/mobile",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"parity_contract_path": "sdd/02_plan/10_test/templates/ui_parity_mobile_contract.yaml",
|
|
32
32
|
"route_gap_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_mobile_route_gap_report.json",
|
|
33
33
|
"route_gap_markdown_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_mobile_route_gap_report.md",
|
|
34
|
-
"proof_output": "sdd/
|
|
34
|
+
"proof_output": "sdd/03_verify/10_test/ui_parity/templates_mobile_agentic_dev_latest.json"
|
|
35
35
|
},
|
|
36
36
|
"admin": {
|
|
37
37
|
"dir": "client/admin",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"parity_contract_path": "sdd/02_plan/10_test/templates/ui_parity_admin_contract.yaml",
|
|
43
43
|
"route_gap_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_admin_route_gap_report.json",
|
|
44
44
|
"route_gap_markdown_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_admin_route_gap_report.md",
|
|
45
|
-
"proof_output": "sdd/
|
|
45
|
+
"proof_output": "sdd/03_verify/10_test/ui_parity/templates_admin_agentic_dev_latest.json"
|
|
46
46
|
},
|
|
47
47
|
"landing": {
|
|
48
48
|
"dir": "client/landing",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"parity_contract_path": "sdd/02_plan/10_test/templates/ui_parity_landing_contract.yaml",
|
|
54
54
|
"route_gap_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_landing_route_gap_report.json",
|
|
55
55
|
"route_gap_markdown_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_landing_route_gap_report.md",
|
|
56
|
-
"proof_output": "sdd/
|
|
56
|
+
"proof_output": "sdd/03_verify/10_test/ui_parity/templates_landing_agentic_dev_latest.json"
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
},
|
|
@@ -62,11 +62,11 @@
|
|
|
62
62
|
"build": "bash sdd/99_toolchain/01_automation/agentic-dev/run_frontend_target.sh build .",
|
|
63
63
|
"proof": "bash sdd/99_toolchain/01_automation/agentic-dev/run_frontend_target.sh proof .",
|
|
64
64
|
"deploy_dev": "echo 'configure deploy_dev command in sdd/99_toolchain/01_automation/agentic-dev/repo-contract.json for the cloned service' >&2",
|
|
65
|
-
"verify_dev": "test -f \"$PWD/sdd/
|
|
65
|
+
"verify_dev": "test -f \"$PWD/sdd/03_verify/10_test/ui_parity/templates_web_agentic_dev_latest.json\" && echo verify-dev-placeholder-ok"
|
|
66
66
|
},
|
|
67
67
|
"artifacts": {
|
|
68
68
|
"route_gap_output": "sdd/02_plan/99_generated/from_planning/ui_parity/ui_parity_web_route_gap_report.json",
|
|
69
|
-
"proof_output": "sdd/
|
|
69
|
+
"proof_output": "sdd/03_verify/10_test/ui_parity/templates_web_agentic_dev_latest.json"
|
|
70
70
|
},
|
|
71
71
|
"notes": [
|
|
72
72
|
"This template contract is intentionally self-contained and points at repo-local 99_toolchain automation.",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
- deterministic proof:
|
|
47
47
|
- `proof`는 strict parity 또는 동등한 결정적 UI 증거를 남겨야 한다.
|
|
48
48
|
- evidence-first:
|
|
49
|
-
- 성공/실패는 콘솔 로그가 아니라 `sdd/
|
|
49
|
+
- 성공/실패는 콘솔 로그가 아니라 `sdd/03_verify/...` 산출물로 판단한다.
|
|
50
50
|
- deploy discipline:
|
|
51
51
|
- DEV 반영이 필요한 작업은 `main push -> DEV deploy -> DEV verify`를 따른다.
|
|
52
52
|
- external integration boundary:
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"verify_dev": "<repo-local DEV verify command>"
|
|
97
97
|
},
|
|
98
98
|
"artifacts": {
|
|
99
|
-
"proof_output": "sdd/
|
|
99
|
+
"proof_output": "sdd/03_verify/10_test/<tool>/<latest>.json"
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
```
|
|
@@ -161,7 +161,7 @@ Frontend-capable template에는 다음 두 층이 있어야 한다.
|
|
|
161
161
|
|
|
162
162
|
- `sdd/02_plan/10_test/<service>/ui_parity_<target>_contract.yaml`
|
|
163
163
|
- `sdd/02_plan/99_generated/from_planning/ui_parity/`
|
|
164
|
-
- `sdd/
|
|
164
|
+
- `sdd/03_verify/10_test/ui_parity/`
|
|
165
165
|
|
|
166
166
|
권장 evidence 구조:
|
|
167
167
|
|
|
@@ -262,7 +262,7 @@ Frontend-capable template에는 다음 두 층이 있어야 한다.
|
|
|
262
262
|
- optional `scripts/dev/` parity orchestration wrappers
|
|
263
263
|
- `sdd/02_plan/10_test/templates/ui_parity_web_contract.template.yaml`
|
|
264
264
|
- `sdd/02_plan/99_generated/from_planning/ui_parity/.gitkeep`
|
|
265
|
-
- `sdd/
|
|
265
|
+
- `sdd/03_verify/10_test/ui_parity/.gitkeep`
|
|
266
266
|
|
|
267
267
|
### Frontend template
|
|
268
268
|
|
|
@@ -162,7 +162,7 @@ sdd/
|
|
|
162
162
|
99_generated/
|
|
163
163
|
from_planning/
|
|
164
164
|
ui_parity/
|
|
165
|
-
|
|
165
|
+
03_verify/
|
|
166
166
|
10_test/
|
|
167
167
|
ui_parity/
|
|
168
168
|
99_toolchain/
|
|
@@ -209,12 +209,12 @@ frontend/
|
|
|
209
209
|
- `sdd/99_toolchain/01_automation/agentic-dev/run_repo_phase.sh`가 contract를 읽는다.
|
|
210
210
|
- contract의 `proof`는 `sdd/99_toolchain/01_automation/ui-parity/cli/run-proof`를 호출한다.
|
|
211
211
|
- `run-proof`는 app adapter를 읽고 strict parity를 실행한다.
|
|
212
|
-
- 결과는 `sdd/
|
|
212
|
+
- 결과는 `sdd/03_verify/10_test/ui_parity/...`에 저장한다.
|
|
213
213
|
|
|
214
214
|
예시 shape:
|
|
215
215
|
|
|
216
216
|
```json
|
|
217
|
-
"proof": "node sdd/99_toolchain/01_automation/ui-parity/cli/run-proof.mjs --adapter frontend/scripts/ui-parity-web-adapter.mjs --contract sdd/02_plan/10_test/<service>/ui_parity_web_contract.yaml --out sdd/
|
|
217
|
+
"proof": "node sdd/99_toolchain/01_automation/ui-parity/cli/run-proof.mjs --adapter frontend/scripts/ui-parity-web-adapter.mjs --contract sdd/02_plan/10_test/<service>/ui_parity_web_contract.yaml --out sdd/03_verify/10_test/ui_parity/<service>_agentic_dev_latest.json"
|
|
218
218
|
```
|
|
219
219
|
|
|
220
220
|
### deploy_dev
|
|
@@ -51,7 +51,7 @@ node sdd/99_toolchain/01_automation/ui-parity/cli/scaffold-contract.mjs \
|
|
|
51
51
|
node sdd/99_toolchain/01_automation/ui-parity/cli/run-proof.mjs \
|
|
52
52
|
--adapter client/web/scripts/ui-parity-web-adapter.mjs \
|
|
53
53
|
--contract sdd/02_plan/10_test/templates/ui_parity_web_contract.yaml \
|
|
54
|
-
--out sdd/
|
|
54
|
+
--out sdd/03_verify/10_test/ui_parity/templates_web_agentic_dev_latest.json
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
관련 계약:
|
|
@@ -40,7 +40,7 @@ let generated = 0;
|
|
|
40
40
|
for (const screen of contract.screens) {
|
|
41
41
|
const targetPath = path.resolve(
|
|
42
42
|
repoRoot,
|
|
43
|
-
screen.referenceImage ?? `sdd/
|
|
43
|
+
screen.referenceImage ?? `sdd/03_verify/10_test/ui_parity/reference/${sanitizeFileName(screen.id)}.png`,
|
|
44
44
|
);
|
|
45
45
|
await captureScreen({
|
|
46
46
|
browser: runtime.browser,
|
|
@@ -38,13 +38,13 @@ function renderYaml(adapterPath, adapter) {
|
|
|
38
38
|
if (screens.length === 0) {
|
|
39
39
|
lines.push(" - id: TMP_001");
|
|
40
40
|
lines.push(" route: /");
|
|
41
|
-
lines.push(" reference_image: sdd/
|
|
41
|
+
lines.push(" reference_image: sdd/03_verify/10_test/ui_parity/reference/TMP_001.png");
|
|
42
42
|
} else {
|
|
43
43
|
for (const screen of screens) {
|
|
44
44
|
lines.push(` - id: ${screen.id}`);
|
|
45
45
|
lines.push(` route: ${screen.route}`);
|
|
46
46
|
lines.push(
|
|
47
|
-
` reference_image: ${screen.referenceImage ?? `sdd/
|
|
47
|
+
` reference_image: ${screen.referenceImage ?? `sdd/03_verify/10_test/ui_parity/reference/${screen.id}.png`}`,
|
|
48
48
|
);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -147,7 +147,7 @@ export async function runProof({
|
|
|
147
147
|
referenceImage:
|
|
148
148
|
configuredScreen.referenceImage ??
|
|
149
149
|
configuredScreen.reference_image ??
|
|
150
|
-
`sdd/
|
|
150
|
+
`sdd/03_verify/10_test/ui_parity/reference/${configuredScreen.id}.png`,
|
|
151
151
|
};
|
|
152
152
|
const stem = sanitizeFileName(screen.id || screen.route);
|
|
153
153
|
const actualPath = path.join(actualRoot, `${stem}.png`);
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
- 기본 설명 순서는 `entry -> provider/router -> auth/session gate -> shell -> route leaf -> backend contract leaf`다.
|
|
11
11
|
- shared shell, auth/session, data contract, transport split은 route leaf 이후 cross-cutting link로 연결한다.
|
|
12
12
|
- `sdd/03_build`에는 dated memo, Ralph iteration narrative, run id, turn-specific 회고를 남기지 않는다.
|
|
13
|
-
- 구조 current-state 적합성은 `scripts/dev/audit_sdd_build_ast.py`로 검증하고 결과는 `sdd/
|
|
13
|
+
- 구조 current-state 적합성은 `scripts/dev/audit_sdd_build_ast.py`로 검증하고 결과는 `sdd/03_verify/03_architecture`에 유지한다.
|
|
14
14
|
- downstream 저장소는 이 정책과 audit script를 함께 복제해야 한다.
|
|
15
15
|
|
|
16
16
|
## Canonical References
|
|
@@ -19,4 +19,4 @@
|
|
|
19
19
|
- `scripts/dev/audit_sdd_build_ast.py`
|
|
20
20
|
- `sdd/02_plan/03_architecture/build_ast_runtime_tree_governance.md`
|
|
21
21
|
- `sdd/03_build/03_architecture/build_ast_runtime_tree_governance.md`
|
|
22
|
-
- `sdd/
|
|
22
|
+
- `sdd/03_verify/03_architecture/build_ast_runtime_tree_governance.md`
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
- compose 문서는 root compose baseline과 dedicated overlay를 혼동하지 않고 current-state 역할로만 설명한다.
|
|
13
13
|
- browser-facing 환경 변수(`VITE_API_BASE_URL` 등)는 컨테이너 내부 DNS가 아니라 실제 브라우저가 도달 가능한 URL을 사용한다.
|
|
14
14
|
- remote delivery topology는 `AWS edge/domain -> OpenStack backend compute -> AWS data plane` current split을 기준으로 설명한다.
|
|
15
|
-
- compose baseline이나 topology가 바뀌면 `README.md`, `infra/compose/README.md`, `sdd/02_plan/06_iac`, `sdd/03_build/06_iac`, `sdd/
|
|
15
|
+
- compose baseline이나 topology가 바뀌면 `README.md`, `infra/compose/README.md`, `sdd/02_plan/06_iac`, `sdd/03_build/06_iac`, `sdd/03_verify/06_iac`를 같은 변경 단위로 동기화한다.
|
|
16
16
|
|
|
17
17
|
## Canonical References
|
|
18
18
|
|
|
@@ -21,4 +21,4 @@
|
|
|
21
21
|
- `infra/terraform/README.md`
|
|
22
22
|
- `sdd/02_plan/06_iac/template_runtime_delivery.md`
|
|
23
23
|
- `sdd/03_build/06_iac/template_runtime_delivery.md`
|
|
24
|
-
- `sdd/
|
|
24
|
+
- `sdd/03_verify/06_iac/template_runtime_delivery.md`
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
- Playwright exactness suite가 있는 screen/local UI surface는 `sdd/99_toolchain/01_automation/run_playwright_exactness.py`를 canonical local gate로 사용한다.
|
|
13
13
|
- direct `npx playwright test ...` 호출은 디버깅 예외로만 쓰고, retained verification command는 toolchain wrapper 기준으로 남긴다.
|
|
14
14
|
- 자동화가 없는 회귀 surface는 가능한 command/manual verification으로 대체하고, automation gap은 residual risk로 남긴다.
|
|
15
|
-
- 선택한 회귀 검수 범위, 실행한 check, 생략 사유, residual risk는 `sdd/02_plan`, `sdd/03_build`, `sdd/
|
|
15
|
+
- 선택한 회귀 검수 범위, 실행한 check, 생략 사유, residual risk는 `sdd/02_plan`, `sdd/03_build`, `sdd/03_verify`에 current-state로 유지한다.
|
|
16
16
|
|
|
17
17
|
## Canonical References
|
|
18
18
|
|
|
@@ -20,4 +20,4 @@
|
|
|
20
20
|
- compose/runtime 기준선은 `02_policies/compose-runtime-baseline-policy.md`를 정본으로 사용한다.
|
|
21
21
|
- 현재 canonical screen toolchain은 `build_screen_spec_pdf.py`, `capture_screen_assets.mjs`, `screen_spec_manifest.py`다.
|
|
22
22
|
- Claude/Codex/Ralph 하네스는 저장소 루트 `.claude`, `.codex`, `.agent`에 두고, 그 계약 설명은 `01_automation`과 `02_policies`에 둔다.
|
|
23
|
-
- `sdd/03_build`는 AST-style runtime tree current-state를 유지하고, 관련 gate는 `scripts/dev/audit_sdd_build_ast.py`와 `
|
|
23
|
+
- `sdd/03_build`는 AST-style runtime tree current-state를 유지하고, 관련 gate는 `scripts/dev/audit_sdd_build_ast.py`와 `03_verify` summary로 관리한다.
|
package/sdd/README.md
CHANGED
|
@@ -16,6 +16,6 @@
|
|
|
16
16
|
- `01_planning/`: 현재 canonical spec과 source reference
|
|
17
17
|
- `02_plan/`: 에이전트의 current executable plan
|
|
18
18
|
- `03_build/`: 현재 구현 요약
|
|
19
|
-
- `
|
|
19
|
+
- `03_verify/`: 현재 retained verification summary
|
|
20
20
|
- `05_operate/`: 현재 delivery status와 runbook
|
|
21
21
|
- `99_toolchain/`: SDD를 유지하는 생성기, 자동화, 정책 문서
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|