agentic-dev 0.2.11 → 0.2.12
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/README.md +53 -46
- package/package.json +8 -22
- package/.agent/prd.json +0 -29
- package/.agent/progress.txt +0 -1
- package/.agent/prompt.md +0 -21
- package/.agent/ralph-loop-state.json +0 -13
- package/.agent/ralph-supervisor-state.json +0 -12
- package/.agent/ralph-supervisor.sh +0 -238
- package/.agent/ralph.sh +0 -305
- package/.agent/runs/README.md +0 -7
- package/.agent/sdd-build-ast-audit.json +0 -13
- package/.claude/CLAUDE.md +0 -44
- package/.claude/agentic-dev.json +0 -3
- package/.claude/agents/ai-dev.md +0 -27
- package/.claude/agents/backend-dev.md +0 -26
- package/.claude/agents/db-dev.md +0 -26
- package/.claude/agents/devops.md +0 -27
- package/.claude/agents/frontend-dev.md +0 -25
- package/.claude/agents/github-ops.md +0 -25
- package/.claude/agents/test-dev.md +0 -26
- package/.claude/agents/uiux-designer.md +0 -25
- package/.claude/settings.json +0 -49
- package/.claude/settings.local.json +0 -8
- package/.claude/skills/sdd/SKILL.md +0 -189
- package/.claude/skills/sdd/agents/openai.yaml +0 -4
- package/.claude/skills/sdd/references/section-map.md +0 -67
- package/.claude/workspace-config.json +0 -3
- package/.codex/agentic-dev.json +0 -3
- package/.codex/agents/README.md +0 -22
- package/.codex/agents/api.toml +0 -11
- package/.codex/agents/architecture.toml +0 -11
- package/.codex/agents/ci.toml +0 -11
- package/.codex/agents/gitops.toml +0 -11
- package/.codex/agents/orchestrator.toml +0 -11
- package/.codex/agents/quality.toml +0 -11
- package/.codex/agents/runtime.toml +0 -11
- package/.codex/agents/security.toml +0 -11
- package/.codex/agents/specs.toml +0 -11
- package/.codex/agents/ui.toml +0 -11
- package/.codex/config.toml +0 -46
- package/.codex/skills/SKILL.md +0 -13
- package/.codex/skills/sdd/SKILL.md +0 -189
- package/.codex/skills/sdd/agents/openai.yaml +0 -4
- package/.codex/skills/sdd/references/section-map.md +0 -67
- package/.dockerignore +0 -8
- package/.env.example +0 -50
- package/.gitignore +0 -16
- package/AGENTS.md +0 -86
- package/SDD_SKILL.md +0 -589
- package/compose.yml +0 -206
- package/infra/compose/.env.dev.example +0 -28
- package/infra/compose/.env.prod.example +0 -29
- package/infra/compose/README.md +0 -35
- package/infra/compose/dev.yml +0 -125
- package/infra/compose/prod.yml +0 -126
- package/infra/terraform/README.md +0 -34
- package/infra/terraform/aws/data/.terraform.lock.hcl +0 -25
- package/infra/terraform/aws/data/README.md +0 -18
- package/infra/terraform/aws/data/main.tf +0 -147
- package/infra/terraform/aws/data/outputs.tf +0 -14
- package/infra/terraform/aws/data/variables.tf +0 -57
- package/infra/terraform/aws/data/versions.tf +0 -10
- package/infra/terraform/aws/domain/.terraform.lock.hcl +0 -25
- package/infra/terraform/aws/domain/README.md +0 -20
- package/infra/terraform/aws/domain/env/dev.tfvars.example +0 -6
- package/infra/terraform/aws/domain/env/prod.tfvars.example +0 -7
- package/infra/terraform/aws/domain/main.tf +0 -149
- package/infra/terraform/aws/domain/outputs.tf +0 -29
- package/infra/terraform/aws/domain/variables.tf +0 -58
- package/infra/terraform/aws/domain/versions.tf +0 -10
- package/infra/terraform/openstack/README.md +0 -38
- package/infra/terraform/openstack/dev/.terraform.lock.hcl +0 -24
- package/infra/terraform/openstack/dev/README.md +0 -18
- package/infra/terraform/openstack/dev/main.tf +0 -49
- package/infra/terraform/openstack/dev/providers.tf +0 -15
- package/infra/terraform/openstack/dev/terraform.tfvars.example +0 -54
- package/infra/terraform/openstack/dev/variables.tf +0 -210
- package/infra/terraform/openstack/dev/versions.tf +0 -10
- package/infra/terraform/openstack/modules/environment_host/main.tf +0 -143
- package/infra/terraform/openstack/modules/environment_host/outputs.tf +0 -25
- package/infra/terraform/openstack/modules/environment_host/templates/docker-host-user-data.sh.tftpl +0 -40
- package/infra/terraform/openstack/modules/environment_host/variables.tf +0 -145
- package/infra/terraform/openstack/modules/environment_host/versions.tf +0 -7
- package/infra/terraform/openstack/prod/.terraform.lock.hcl +0 -24
- package/infra/terraform/openstack/prod/README.md +0 -18
- package/infra/terraform/openstack/prod/main.tf +0 -49
- package/infra/terraform/openstack/prod/providers.tf +0 -15
- package/infra/terraform/openstack/prod/terraform.tfvars.example +0 -55
- package/infra/terraform/openstack/prod/variables.tf +0 -210
- package/infra/terraform/openstack/prod/versions.tf +0 -10
- package/infra/terraform/openstack/server/.terraform.lock.hcl +0 -45
- package/infra/terraform/openstack/server/README.md +0 -47
- package/infra/terraform/openstack/server/main.tf +0 -161
- package/infra/terraform/openstack/server/outputs.tf +0 -30
- package/infra/terraform/openstack/server/providers.tf +0 -30
- package/infra/terraform/openstack/server/templates/server-user-data.sh.tftpl +0 -50
- package/infra/terraform/openstack/server/variables.tf +0 -233
- package/infra/terraform/openstack/server/zz_aspace.auto.tfvars.example.json +0 -29
- package/pnpm-workspace.yaml +0 -2
- package/scripts/dev/audit_sdd_build_ast.py +0 -277
- package/sdd/01_planning/01_feature/INDEX.md +0 -16
- package/sdd/01_planning/01_feature/README.md +0 -76
- package/sdd/01_planning/01_feature/alerts_feature_spec.md +0 -55
- package/sdd/01_planning/01_feature/auth_feature_spec.md +0 -57
- package/sdd/01_planning/01_feature/catalog_feature_spec.md +0 -61
- package/sdd/01_planning/01_feature/fulfillment_feature_spec.md +0 -58
- package/sdd/01_planning/01_feature/health_feature_spec.md +0 -52
- package/sdd/01_planning/01_feature/inventory_feature_spec.md +0 -60
- package/sdd/01_planning/01_feature/order_feature_spec.md +0 -63
- package/sdd/01_planning/01_feature/shipping_feature_spec.md +0 -55
- package/sdd/01_planning/01_feature/support_feature_spec.md +0 -53
- package/sdd/01_planning/01_feature/user_feature_spec.md +0 -54
- package/sdd/01_planning/02_screen/INDEX.md +0 -13
- package/sdd/01_planning/02_screen/README.md +0 -41
- package/sdd/01_planning/02_screen/admin_screen_spec.pdf +0 -0
- package/sdd/01_planning/02_screen/assets/README.md +0 -16
- package/sdd/01_planning/02_screen/assets/example/README.md +0 -13
- package/sdd/01_planning/02_screen/landing_screen_spec.pdf +0 -0
- package/sdd/01_planning/02_screen/mobile_screen_spec.pdf +0 -0
- package/sdd/01_planning/02_screen/web_screen_spec.pdf +0 -0
- package/sdd/01_planning/03_architecture/INDEX.md +0 -9
- package/sdd/01_planning/03_architecture/README.md +0 -25
- package/sdd/01_planning/03_architecture/architecture_document_structure.md +0 -77
- package/sdd/01_planning/03_architecture/backend/README.md +0 -10
- package/sdd/01_planning/03_architecture/frontend/README.md +0 -12
- package/sdd/01_planning/03_architecture/infra/README.md +0 -10
- package/sdd/01_planning/03_architecture/tech-research/README.md +0 -4
- package/sdd/01_planning/03_architecture/templates_system_architecture.md +0 -84
- package/sdd/01_planning/04_data/INDEX.md +0 -4
- package/sdd/01_planning/04_data/README.md +0 -10
- package/sdd/01_planning/04_data/templates_data_modeling.md +0 -119
- package/sdd/01_planning/05_api/README.md +0 -12
- package/sdd/01_planning/05_api/templates_api_contract.md +0 -90
- package/sdd/01_planning/06_iac/README.md +0 -11
- package/sdd/01_planning/06_iac/templates_runtime_and_cicd_baseline.md +0 -46
- package/sdd/01_planning/07_integration/README.md +0 -11
- package/sdd/01_planning/07_integration/templates_frontend_api_integration.md +0 -46
- package/sdd/01_planning/08_nonfunctional/README.md +0 -7
- package/sdd/01_planning/09_security/README.md +0 -7
- package/sdd/01_planning/10_test/README.md +0 -12
- package/sdd/01_planning/10_test/templates_test_strategy.md +0 -60
- package/sdd/01_planning/INDEX.md +0 -19
- package/sdd/01_planning/README.md +0 -17
- package/sdd/02_plan/01_feature/README.md +0 -34
- package/sdd/02_plan/01_feature/_feature_todo_template.md +0 -29
- package/sdd/02_plan/02_screen/INDEX.md +0 -19
- package/sdd/02_plan/02_screen/README.md +0 -39
- package/sdd/02_plan/02_screen/_screen_todo_template.md +0 -60
- package/sdd/02_plan/03_architecture/README.md +0 -23
- package/sdd/02_plan/03_architecture/architecture_document_governance.md +0 -40
- package/sdd/02_plan/03_architecture/build_ast_runtime_tree_governance.md +0 -53
- package/sdd/02_plan/03_architecture/repository_governance.md +0 -39
- package/sdd/02_plan/03_architecture/runtime_and_structure_governance.md +0 -38
- package/sdd/02_plan/03_architecture/templates-hexagonal-template-architecture.md +0 -9
- package/sdd/02_plan/03_architecture/toolchain_governance.md +0 -98
- package/sdd/02_plan/04_data/README.md +0 -5
- package/sdd/02_plan/05_api/README.md +0 -5
- package/sdd/02_plan/06_iac/README.md +0 -11
- package/sdd/02_plan/06_iac/dev_runtime_delivery.md +0 -36
- package/sdd/02_plan/06_iac/template_runtime_delivery.md +0 -50
- package/sdd/02_plan/07_integration/README.md +0 -5
- package/sdd/02_plan/07_integration/frontend_live_integration.md +0 -31
- package/sdd/02_plan/08_nonfunctional/README.md +0 -5
- package/sdd/02_plan/08_nonfunctional/repository_hygiene.md +0 -26
- package/sdd/02_plan/09_security/README.md +0 -5
- package/sdd/02_plan/10_test/README.md +0 -11
- package/sdd/02_plan/10_test/regression_verification.md +0 -39
- package/sdd/02_plan/10_test/templates/README.md +0 -8
- package/sdd/02_plan/10_test/templates/ui_parity_web_contract.template.yaml +0 -23
- package/sdd/02_plan/10_test/verification_strategy.md +0 -43
- package/sdd/02_plan/99_generated/from_planning/ui_parity/.gitkeep +0 -1
- package/sdd/02_plan/README.md +0 -40
- package/sdd/03_build/01_feature/README.md +0 -20
- package/sdd/03_build/01_feature/domain/README.md +0 -3
- package/sdd/03_build/01_feature/domain/account_and_access.md +0 -20
- package/sdd/03_build/01_feature/domain/catalog_and_inventory.md +0 -20
- package/sdd/03_build/01_feature/domain/ordering_and_fulfillment.md +0 -21
- package/sdd/03_build/01_feature/domain/support_and_observability.md +0 -21
- package/sdd/03_build/01_feature/domain_surfaces.md +0 -28
- package/sdd/03_build/01_feature/service/README.md +0 -3
- package/sdd/03_build/01_feature/service/admin_surface.md +0 -15
- package/sdd/03_build/01_feature/service/landing_surface.md +0 -13
- package/sdd/03_build/01_feature/service/mobile_surface.md +0 -14
- package/sdd/03_build/01_feature/service/web_surface.md +0 -14
- package/sdd/03_build/02_screen/README.md +0 -25
- package/sdd/03_build/02_screen/_screen_build_template.md +0 -26
- package/sdd/03_build/02_screen/admin/README.md +0 -5
- package/sdd/03_build/02_screen/landing/README.md +0 -5
- package/sdd/03_build/02_screen/mobile/README.md +0 -5
- package/sdd/03_build/02_screen/web/README.md +0 -5
- package/sdd/03_build/03_architecture/README.md +0 -10
- package/sdd/03_build/03_architecture/architecture_document_governance.md +0 -30
- package/sdd/03_build/03_architecture/build_ast_runtime_tree_governance.md +0 -24
- package/sdd/03_build/03_architecture/repository_governance.md +0 -18
- package/sdd/03_build/03_architecture/toolchain_governance.md +0 -36
- package/sdd/03_build/06_iac/README.md +0 -3
- package/sdd/03_build/06_iac/dev_runtime_delivery.md +0 -10
- package/sdd/03_build/06_iac/template_runtime_delivery.md +0 -49
- package/sdd/03_build/07_integration/README.md +0 -3
- package/sdd/03_build/07_integration/frontend_live_integration.md +0 -11
- package/sdd/03_build/08_nonfunctional/README.md +0 -3
- package/sdd/03_build/08_nonfunctional/repository_hygiene.md +0 -10
- package/sdd/03_build/10_test/README.md +0 -9
- package/sdd/03_build/10_test/regression_verification.md +0 -16
- package/sdd/03_build/10_test/verification_harness.md +0 -11
- package/sdd/03_build/README.md +0 -35
- package/sdd/03_verify/01_feature/README.md +0 -5
- package/sdd/03_verify/01_feature/domain_verification.md +0 -14
- package/sdd/03_verify/01_feature/service_verification.md +0 -22
- package/sdd/03_verify/02_screen/README.md +0 -6
- package/sdd/03_verify/02_screen/_screen_verify_template.md +0 -20
- package/sdd/03_verify/02_screen/admin/README.md +0 -4
- package/sdd/03_verify/02_screen/landing/README.md +0 -4
- package/sdd/03_verify/02_screen/mobile/README.md +0 -4
- package/sdd/03_verify/02_screen/web/README.md +0 -4
- package/sdd/03_verify/03_architecture/README.md +0 -10
- package/sdd/03_verify/03_architecture/architecture_document_governance.md +0 -15
- package/sdd/03_verify/03_architecture/build_ast_runtime_tree_governance.md +0 -28
- package/sdd/03_verify/03_architecture/repository_governance.md +0 -16
- package/sdd/03_verify/03_architecture/toolchain_governance.md +0 -58
- package/sdd/03_verify/06_iac/README.md +0 -3
- package/sdd/03_verify/06_iac/dev_runtime_delivery.md +0 -10
- package/sdd/03_verify/06_iac/template_runtime_delivery.md +0 -42
- package/sdd/03_verify/07_integration/README.md +0 -3
- package/sdd/03_verify/07_integration/frontend_live_integration.md +0 -16
- package/sdd/03_verify/08_nonfunctional/README.md +0 -3
- package/sdd/03_verify/08_nonfunctional/repository_hygiene.md +0 -14
- package/sdd/03_verify/10_test/README.md +0 -9
- package/sdd/03_verify/10_test/regression_verification.md +0 -16
- package/sdd/03_verify/10_test/ui_parity/README.md +0 -4
- package/sdd/03_verify/10_test/ui_parity/loop_runs/.gitkeep +0 -0
- package/sdd/03_verify/10_test/ui_parity/reference/.gitkeep +0 -0
- package/sdd/03_verify/10_test/ui_parity/staged_runs/.gitkeep +0 -0
- package/sdd/03_verify/10_test/verification_harness.md +0 -17
- package/sdd/03_verify/README.md +0 -22
- package/sdd/05_operate/01_runbooks/.gitkeep +0 -1
- package/sdd/05_operate/01_runbooks/README.md +0 -4
- package/sdd/05_operate/02_delivery_status/README.md +0 -4
- package/sdd/05_operate/02_delivery_status/service_status.md +0 -16
- package/sdd/05_operate/README.md +0 -12
- package/sdd/99_toolchain/01_automation/.gitkeep +0 -1
- package/sdd/99_toolchain/01_automation/README.md +0 -76
- package/sdd/99_toolchain/01_automation/agentic-dev/analyze_proof_results.py +0 -132
- package/sdd/99_toolchain/01_automation/agentic-dev/analyze_route_gap.py +0 -85
- package/sdd/99_toolchain/01_automation/agentic-dev/assets/repo-contract.template.json +0 -75
- package/sdd/99_toolchain/01_automation/agentic-dev/bootstrap_frontend_parity.sh +0 -84
- package/sdd/99_toolchain/01_automation/agentic-dev/init_frontend_parity.sh +0 -33
- package/sdd/99_toolchain/01_automation/agentic-dev/init_repo_contract.sh +0 -51
- package/sdd/99_toolchain/01_automation/agentic-dev/repo-contract.json +0 -76
- package/sdd/99_toolchain/01_automation/agentic-dev/resolve_frontend_target.py +0 -52
- package/sdd/99_toolchain/01_automation/agentic-dev/resolve_repo_contract.py +0 -56
- package/sdd/99_toolchain/01_automation/agentic-dev/run_frontend_target.sh +0 -100
- package/sdd/99_toolchain/01_automation/agentic-dev/run_repo_phase.sh +0 -140
- package/sdd/99_toolchain/01_automation/agentic-dev/validate_json_schema.py +0 -39
- package/sdd/99_toolchain/01_automation/agentic-parity-harness-design.md +0 -291
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/dashboard.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/queue.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/support.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/home.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/workspace.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/dashboard.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/fulfillment.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/web_screen_capture/dashboard.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/web_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/web_screen_capture/orders.png +0 -0
- package/sdd/99_toolchain/01_automation/build_asset_recipes.py +0 -10
- package/sdd/99_toolchain/01_automation/build_screen_spec_pdf.py +0 -427
- package/sdd/99_toolchain/01_automation/capture_screen_assets.mjs +0 -148
- package/sdd/99_toolchain/01_automation/harness-layout.md +0 -34
- package/sdd/99_toolchain/01_automation/parity-execution-tooling-design.md +0 -319
- package/sdd/99_toolchain/01_automation/playwright_exactness_manifest.py +0 -21
- package/sdd/99_toolchain/01_automation/run_playwright_exactness.py +0 -87
- package/sdd/99_toolchain/01_automation/screen_spec_manifest.py +0 -321
- package/sdd/99_toolchain/01_automation/spec_asset_builder.py +0 -274
- package/sdd/99_toolchain/01_automation/ui-contract-projection.md +0 -79
- package/sdd/99_toolchain/01_automation/ui-parity/README.md +0 -60
- package/sdd/99_toolchain/01_automation/ui-parity/cli/extract-reference-pages.mjs +0 -2
- package/sdd/99_toolchain/01_automation/ui-parity/cli/materialize-reference-assets.mjs +0 -58
- package/sdd/99_toolchain/01_automation/ui-parity/cli/normalize-reference-assets.mjs +0 -2
- package/sdd/99_toolchain/01_automation/ui-parity/cli/route-gap-report.mjs +0 -187
- package/sdd/99_toolchain/01_automation/ui-parity/cli/run-proof.mjs +0 -50
- package/sdd/99_toolchain/01_automation/ui-parity/cli/scaffold-contract.mjs +0 -62
- package/sdd/99_toolchain/01_automation/ui-parity/cli/upload-parity1.mjs +0 -2
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/collector-metadata.schema.json +0 -33
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/proof-result.schema.json +0 -76
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/route-gap-report.schema.json +0 -95
- package/sdd/99_toolchain/01_automation/ui-parity/core/capture-runner.mjs +0 -55
- package/sdd/99_toolchain/01_automation/ui-parity/core/load-adapter.mjs +0 -25
- package/sdd/99_toolchain/01_automation/ui-parity/core/load-contract.mjs +0 -81
- package/sdd/99_toolchain/01_automation/ui-parity/core/paths.mjs +0 -23
- package/sdd/99_toolchain/01_automation/ui-parity/core/proof-runner.mjs +0 -255
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-artifact-layout.md +0 -23
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-proof-interface.md +0 -60
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-route-gap-interface.md +0 -82
- package/sdd/99_toolchain/01_automation/ui-parity/runtime/playwright-runtime.mjs +0 -16
- package/sdd/99_toolchain/01_automation/ui-parity/runtime/static-runtime.mjs +0 -6
- package/sdd/99_toolchain/02_policies/.gitkeep +0 -1
- package/sdd/99_toolchain/02_policies/build-ast-governance-policy.md +0 -22
- package/sdd/99_toolchain/02_policies/compose-runtime-baseline-policy.md +0 -24
- package/sdd/99_toolchain/02_policies/convention-storage-policy.md +0 -26
- package/sdd/99_toolchain/02_policies/main-push-before-dev-deploy-policy.md +0 -27
- package/sdd/99_toolchain/02_policies/regression-verification-policy.md +0 -22
- package/sdd/99_toolchain/03_templates/.gitkeep +0 -1
- package/sdd/99_toolchain/03_templates/asset_recipe_manifest.example.py +0 -38
- package/sdd/99_toolchain/03_templates/generated_assets/README.md +0 -11
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-lockup.svg +0 -3
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-mark.svg +0 -3
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-wordmark.svg +0 -3
- package/sdd/99_toolchain/03_templates/playwright_exactness_manifest.example.py +0 -21
- package/sdd/99_toolchain/README.md +0 -23
- package/sdd/README.md +0 -21
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# Assets
|
|
2
|
-
|
|
3
|
-
## Role
|
|
4
|
-
|
|
5
|
-
- `assets/`는 screen planning에서 파생되는 reusable asset의 planning 산출물을 둔다.
|
|
6
|
-
- 여기에는 inventory, source reference, crop rationale, naming rule 같은 문서성 산출물을 저장한다.
|
|
7
|
-
|
|
8
|
-
## Storage Rule
|
|
9
|
-
|
|
10
|
-
- project/service별 하위 폴더를 만든다.
|
|
11
|
-
- generator와 manifest는 `sdd/99_toolchain/01_automation/`에 둔다.
|
|
12
|
-
- runtime asset output은 각 구현 repo 경로에 둔다.
|
|
13
|
-
|
|
14
|
-
## Example
|
|
15
|
-
|
|
16
|
-
- [example/README.md](example/README.md)
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Example Assets
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
|
|
5
|
-
- 이 폴더는 템플릿 사용자가 project-specific asset inventory를 어떻게 남겨야 하는지 보여주는 예시다.
|
|
6
|
-
|
|
7
|
-
## Recommended Contents
|
|
8
|
-
|
|
9
|
-
- reusable asset inventory
|
|
10
|
-
- source page / source file reference
|
|
11
|
-
- crop rationale
|
|
12
|
-
- naming convention
|
|
13
|
-
- approval note
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Architecture Planning
|
|
2
|
-
|
|
3
|
-
- [README.md](./README.md)
|
|
4
|
-
- [architecture_document_structure.md](./architecture_document_structure.md)
|
|
5
|
-
- [templates_system_architecture.md](./templates_system_architecture.md)
|
|
6
|
-
- [frontend](./frontend)
|
|
7
|
-
- [backend](./backend)
|
|
8
|
-
- [infra](./infra)
|
|
9
|
-
- [tech-research](./tech-research)
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Architecture Planning
|
|
2
|
-
|
|
3
|
-
- 범위: 서비스별 세부 화면보다 시스템 공통 구조와 구현 선택을 우선 기록한다.
|
|
4
|
-
- architecture 문서는 공통/일반화된 기준을 먼저 두고, 필요할 때만 특화 문서를 추가한다.
|
|
5
|
-
- 주요 축:
|
|
6
|
-
- frontend architecture
|
|
7
|
-
- backend architecture
|
|
8
|
-
- infra architecture
|
|
9
|
-
- auth/session
|
|
10
|
-
- deployment topology
|
|
11
|
-
- migration
|
|
12
|
-
- frontend architecture 문서는 모듈화, 컴포넌트, store/state, domain/use case, UI/UX, storage, API adapter 패턴을 다룬다.
|
|
13
|
-
- backend architecture 문서는 DDD context 구조, context 내부 계층, 3-layer, hexagonal, monolithic, EDA, MSA, CQRS와 실제 구현체 선택을 다룬다.
|
|
14
|
-
- infra architecture 문서는 container, orchestration, database, network, redundancy, multi-region 같은 서비스 기반 구조를 다룬다.
|
|
15
|
-
- 데이터 모델링은 architecture 범위에 포함하지 않고 `sdd/01_planning/04_data/`에서 다룬다.
|
|
16
|
-
|
|
17
|
-
## Canonical Docs
|
|
18
|
-
|
|
19
|
-
- [INDEX.md](./INDEX.md)
|
|
20
|
-
- [architecture_document_structure.md](./architecture_document_structure.md)
|
|
21
|
-
- [templates_system_architecture.md](./templates_system_architecture.md)
|
|
22
|
-
- [frontend/README.md](./frontend/README.md)
|
|
23
|
-
- [backend/README.md](./backend/README.md)
|
|
24
|
-
- [infra/README.md](./infra/README.md)
|
|
25
|
-
- [tech-research/README.md](./tech-research/README.md)
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
# Architecture Document Structure
|
|
2
|
-
|
|
3
|
-
## 1. Purpose
|
|
4
|
-
|
|
5
|
-
- `sdd/01_planning/03_architecture`는 프론트엔드, 백엔드, 인프라를 아우르는 공통 구조와 구현 선택을 기록한다.
|
|
6
|
-
- architecture 문서는 주로 일반화/공통화된 기준을 설명한다.
|
|
7
|
-
- 특정 기술, 인증, 배포, 런타임처럼 개별 주제가 독립 가치가 있으면 특화 문서를 함께 둔다.
|
|
8
|
-
|
|
9
|
-
## 2. Boundary
|
|
10
|
-
|
|
11
|
-
### Included In Architecture
|
|
12
|
-
|
|
13
|
-
- frontend architecture
|
|
14
|
-
- module composition
|
|
15
|
-
- component structure
|
|
16
|
-
- store/state management
|
|
17
|
-
- domain / use case / adapter structure
|
|
18
|
-
- UI/UX patterns
|
|
19
|
-
- local storage / session storage / cache
|
|
20
|
-
- API client / facade / contract adapter
|
|
21
|
-
- backend architecture
|
|
22
|
-
- DDD bounded context structure
|
|
23
|
-
- domain / application / infrastructure / contracts layers
|
|
24
|
-
- structural choices such as 3-layer, hexagonal, monolithic
|
|
25
|
-
- pattern adoption such as EDA, MSA, CQRS and the selected implementation
|
|
26
|
-
- runtime composition and service boundaries
|
|
27
|
-
- infra architecture
|
|
28
|
-
- container runtime
|
|
29
|
-
- orchestration
|
|
30
|
-
- database runtime
|
|
31
|
-
- network / domain / routing
|
|
32
|
-
- redundancy / HA
|
|
33
|
-
- multi-region / deployment topology
|
|
34
|
-
|
|
35
|
-
### Excluded From Architecture
|
|
36
|
-
|
|
37
|
-
- entity, schema, relationship, key policy 같은 데이터 모델링 상세
|
|
38
|
-
- table/column 수준 ERD 정의
|
|
39
|
-
- above items belong to [`sdd/01_planning/04_data/README.md`](../04_data/README.md)
|
|
40
|
-
|
|
41
|
-
## 3. Document Structure
|
|
42
|
-
|
|
43
|
-
### Root
|
|
44
|
-
|
|
45
|
-
- 공통/횡단 아키텍처 문서를 둔다.
|
|
46
|
-
- 예:
|
|
47
|
-
- structure principle
|
|
48
|
-
- document boundary
|
|
49
|
-
- migration guide
|
|
50
|
-
- runtime alignment rule
|
|
51
|
-
|
|
52
|
-
### frontend/
|
|
53
|
-
|
|
54
|
-
- 프런트엔드 특화 아키텍처 문서를 둔다.
|
|
55
|
-
- 특정 surface에 종속되더라도 재사용 가능한 구조 원칙이면 여기에 둔다.
|
|
56
|
-
|
|
57
|
-
### backend/
|
|
58
|
-
|
|
59
|
-
- 백엔드 특화 아키텍처 문서를 둔다.
|
|
60
|
-
- context structure, layering, pattern, runtime composition을 기록한다.
|
|
61
|
-
|
|
62
|
-
### infra/
|
|
63
|
-
|
|
64
|
-
- 인프라 특화 아키텍처 문서를 둔다.
|
|
65
|
-
- deployment topology, networking, orchestration, runtime platform을 기록한다.
|
|
66
|
-
|
|
67
|
-
### tech-research/
|
|
68
|
-
|
|
69
|
-
- 인증, 외부 provider, 실험 기술 같은 특정 주제 리서치를 둔다.
|
|
70
|
-
- research는 architecture 하위에 두되 공통 구조 문서와 분리한다.
|
|
71
|
-
|
|
72
|
-
## 4. Writing Rule
|
|
73
|
-
|
|
74
|
-
- 공통 문서를 먼저 작성하고, 특화 문서는 필요할 때만 추가한다.
|
|
75
|
-
- 이론 자체보다 현재 repo가 어떤 구조와 구현체를 채택했는지를 우선 기록한다.
|
|
76
|
-
- 여러 대안이 있을 때는 후보 나열로 끝내지 않고 현재 권장안과 이유를 적는다.
|
|
77
|
-
- feature, screen, data 문서가 맡아야 할 내용을 architecture에 중복 기록하지 않는다.
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Backend Architecture Planning
|
|
2
|
-
|
|
3
|
-
- 범위: 백엔드의 공통 구조와 구현 패턴
|
|
4
|
-
- 주요 축:
|
|
5
|
-
- DDD bounded context
|
|
6
|
-
- domain/application/infrastructure/contracts layering
|
|
7
|
-
- 3-layer / hexagonal / monolithic structure
|
|
8
|
-
- adoption of patterns such as EDA, MSA, CQRS
|
|
9
|
-
- actual runtime composition and implementation choices
|
|
10
|
-
- entity/schema/relationship 정의는 `04_data`에서 다룬다.
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Frontend Architecture Planning
|
|
2
|
-
|
|
3
|
-
- 범위: 프런트엔드의 공통 구조와 구현 패턴
|
|
4
|
-
- 주요 축:
|
|
5
|
-
- 모듈화
|
|
6
|
-
- 컴포넌트 구조
|
|
7
|
-
- store/state
|
|
8
|
-
- domain/use case
|
|
9
|
-
- UI/UX 패턴
|
|
10
|
-
- storage/session/cache
|
|
11
|
-
- API client / facade / adapter
|
|
12
|
-
- 화면별 route/CTA/전이는 `02_screen`에서 다루고, 기능별 business rule은 `01_feature`에서 다룬다.
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Infra Architecture Planning
|
|
2
|
-
|
|
3
|
-
- 범위: 프런트엔드, 백엔드, supporting service를 올리는 기반 구조
|
|
4
|
-
- 주요 축:
|
|
5
|
-
- docker / compose / kubernetes
|
|
6
|
-
- container runtime / orchestration
|
|
7
|
-
- database / storage / secret / network
|
|
8
|
-
- redundancy / HA / multi-region
|
|
9
|
-
- deployment topology / runtime boundary
|
|
10
|
-
- 운영 절차 자체는 필요 시 `05_operate` runbook과 분리해 기록한다.
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# templates system architecture
|
|
2
|
-
|
|
3
|
-
- 작성 버전: 1.0.0
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
`templates` 레포의 현재 runtime 구조와 bounded context 경계를 구현 기준으로 정리한다.
|
|
8
|
-
|
|
9
|
-
## Document Boundary
|
|
10
|
-
|
|
11
|
-
- frontend, backend, infra 공통 구조와 구현 선택을 이 문서에서 다룬다.
|
|
12
|
-
- entity/schema/relationship/key policy 같은 데이터 모델링 상세는 `sdd/01_planning/04_data/`에서 다룬다.
|
|
13
|
-
|
|
14
|
-
## 1. Runtime Topology
|
|
15
|
-
|
|
16
|
-
| Layer | Owner | Responsibility |
|
|
17
|
-
| --- | --- | --- |
|
|
18
|
-
| `server` | HTTP backend | auth, user, catalog, inventory, orders, fulfillment, shipping, alerts, support, health를 HTTP API surface로 제공 |
|
|
19
|
-
| `client/web` | React + Vite frontend | 보호된 web shell과 dashboard/orders surface |
|
|
20
|
-
| `client/admin` | React + Vite frontend | 보호된 관리자 shell과 overview/queue/support surface |
|
|
21
|
-
| `client/mobile` | React + Vite frontend | 보호된 모바일 shell과 dashboard/fulfillment surface |
|
|
22
|
-
| `client/landing` | React + Vite frontend | public landing + protected workspace surface |
|
|
23
|
-
| `infra/compose` | container runtime | root compose baseline + dedicated DEV(개발계)/PROD overlay 레이아웃 |
|
|
24
|
-
|
|
25
|
-
## 2. Transport Topology
|
|
26
|
-
|
|
27
|
-
| Surface | Module | Responsibility |
|
|
28
|
-
| --- | --- | --- |
|
|
29
|
-
| HTTP | `server/api/http` | FastAPI app, router aggregation, `/health`, `/api/v1/*` 제공 |
|
|
30
|
-
|
|
31
|
-
## 3. Backend Context Map
|
|
32
|
-
|
|
33
|
-
| Bounded Context | Module | Role |
|
|
34
|
-
| --- | --- | --- |
|
|
35
|
-
| Authentication & Session | `server/contexts/auth` | login, bearer token 해석, 인증 계정 저장 |
|
|
36
|
-
| User Directory | `server/contexts/user` | 사용자 profile 목록/상세/상태 관리 |
|
|
37
|
-
| Product Catalog | `server/contexts/catalog` | public catalog read와 admin catalog write |
|
|
38
|
-
| Inventory Availability | `server/contexts/inventory` | SKU/거점 재고 조회와 운영 mutation |
|
|
39
|
-
| Order Operations | `server/contexts/orders` | web/admin 주문 overview, 목록, 생성, 상태 전이 |
|
|
40
|
-
| Fulfillment Operations | `server/contexts/fulfillment` | mobile overview, board, task 상태 전이 |
|
|
41
|
-
| Shipping Operations | `server/contexts/shipping` | mobile 배송 overview, shipment 목록, 배송 상태 전이 |
|
|
42
|
-
| Alert Center | `server/contexts/alerts` | admin 운영 알람 feed, 읽음 처리 |
|
|
43
|
-
| Support Content | `server/contexts/support` | 관리자 FAQ 목록/작성/노출 상태 변경 |
|
|
44
|
-
| Health | `server/contexts/health` | technical health/status contract |
|
|
45
|
-
|
|
46
|
-
## 4. Context Relationship
|
|
47
|
-
|
|
48
|
-
- `auth`는 `user`와 분리된 인증 계정 bootstrap을 사용한다.
|
|
49
|
-
- `user`는 profile directory만 소유하고 credential hash를 저장하지 않는다.
|
|
50
|
-
- `catalog`는 landing/public read와 admin write surface를 함께 소유한다.
|
|
51
|
-
- `inventory`는 현재 admin 운영 surface를 통해 직접 조정되고, `orders`와 `fulfillment`의 참조 도메인으로 연결된다.
|
|
52
|
-
- `orders`는 web read model과 admin read model을 동시에 노출한다.
|
|
53
|
-
- `fulfillment`는 mobile 서비스의 canonical backend surface다.
|
|
54
|
-
- `shipping`은 `fulfillment`의 downstream delivery 상태를 분리해 mobile/operator surface에 제공한다.
|
|
55
|
-
- `alerts`는 admin이 소비하는 운영 알람 표현과 읽음 상태를 별도 context로 소유한다.
|
|
56
|
-
|
|
57
|
-
## 5. Layering Rule
|
|
58
|
-
|
|
59
|
-
- context 외부 진입점은 `contexts/*/contracts/http`에 둔다.
|
|
60
|
-
- application layer는 use case orchestration만 담당한다.
|
|
61
|
-
- domain layer는 request/response model과 aggregate/read model을 가진다.
|
|
62
|
-
- infrastructure layer는 adapter, repository factory, shared gateway binding을 담당한다.
|
|
63
|
-
- shared logic는 `shared/application`, `shared/infrastructure`에 두되, 특정 domain 소유물이 되면 context 내부로 이동한다.
|
|
64
|
-
- transport wiring은 `api/http`에 두고 domain 로직은 `contexts/*`에만 둔다.
|
|
65
|
-
|
|
66
|
-
## 6. Runtime Component Baseline
|
|
67
|
-
|
|
68
|
-
| Component | Current Baseline | Next Step |
|
|
69
|
-
| --- | --- | --- |
|
|
70
|
-
| HTTP server | `FastAPI + Uvicorn` | authz, rate limit, observability middleware 추가 |
|
|
71
|
-
| Persistence | bootstrap JSON + selectable DB adapter | transaction boundary와 repository parity 강화 |
|
|
72
|
-
| Frontend runtime | `React 18 + Vite 5 + pnpm workspace` | contract-driven env injection 자동화 |
|
|
73
|
-
|
|
74
|
-
## 7. Current Known Gaps
|
|
75
|
-
|
|
76
|
-
- persistence baseline은 여전히 bootstrap JSON + in-memory mutation 중심이다.
|
|
77
|
-
- order 생성과 fulfillment/shipping 전이가 inventory 자동 연동까지는 아직 확장되지 않았다.
|
|
78
|
-
- support는 FAQ 관리 중심이고 ticket/workflow 도메인까지는 아직 포함하지 않는다.
|
|
79
|
-
|
|
80
|
-
## 8. Next Refactoring Direction
|
|
81
|
-
|
|
82
|
-
- catalog/inventory/order/fulfillment/shipping 간의 orchestration을 application service 수준으로 확장한다.
|
|
83
|
-
- auth account와 user profile 사이의 provisioning 흐름을 별도 domain service로 일반화한다.
|
|
84
|
-
- admin surface에서 alerts/support/catalog/inventory command를 직접 소비하도록 frontend scope를 넓힌다.
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Data Planning
|
|
2
|
-
|
|
3
|
-
- 범위: 공통 데이터 모델과 엔티티 관계 정의
|
|
4
|
-
- architecture 문서에서 다루지 않는 entity/schema/relationship/key policy는 이 루트에서 다룬다.
|
|
5
|
-
- 데이터 모델링은 current canonical 기준만 남기고, 구조 문서와 중복 기록하지 않는다.
|
|
6
|
-
|
|
7
|
-
## Canonical Docs
|
|
8
|
-
|
|
9
|
-
- [INDEX.md](./INDEX.md)
|
|
10
|
-
- [templates_data_modeling.md](./templates_data_modeling.md)
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
# templates data modeling
|
|
2
|
-
|
|
3
|
-
- 작성 버전: 1.0.0
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
현재 구현된 backend domain model과 저장 관점을 entity 수준으로 요약한다.
|
|
8
|
-
|
|
9
|
-
## 1. Auth Account
|
|
10
|
-
|
|
11
|
-
| Field | Type | Meaning |
|
|
12
|
-
| --- | --- | --- |
|
|
13
|
-
| `id` | `str` | 인증 계정 식별자 |
|
|
14
|
-
| `name` | `str` | 표시 이름 |
|
|
15
|
-
| `email` | `EmailStr` | 로그인 이메일 |
|
|
16
|
-
| `role` | `str` | `admin`, `operator` 등 인증 역할 |
|
|
17
|
-
| `status` | `str` | 인증 가능 상태 |
|
|
18
|
-
| `password_hash` | `str` | credential hash |
|
|
19
|
-
|
|
20
|
-
## 2. User Profile
|
|
21
|
-
|
|
22
|
-
| Field | Type | Meaning |
|
|
23
|
-
| --- | --- | --- |
|
|
24
|
-
| `id` | `str` | 사용자 식별자 |
|
|
25
|
-
| `name` | `str` | 사용자 이름 |
|
|
26
|
-
| `email` | `EmailStr` | 연락/표시 이메일 |
|
|
27
|
-
| `role` | `str` | 운영 역할 |
|
|
28
|
-
| `status` | `str` | 활성 상태 |
|
|
29
|
-
| `timezone` | `str` | 지역/표시용 timezone |
|
|
30
|
-
| `last_login_at` | `str` | 최근 로그인 시각 |
|
|
31
|
-
|
|
32
|
-
## 3. Catalog Product
|
|
33
|
-
|
|
34
|
-
| Field | Type | Meaning |
|
|
35
|
-
| --- | --- | --- |
|
|
36
|
-
| `id` | `str` | 상품 식별자 |
|
|
37
|
-
| `slug` | `str` | URL/업무용 유니크 slug |
|
|
38
|
-
| `name` | `str` | 상품명 |
|
|
39
|
-
| `brand` | `str` | 브랜드명 |
|
|
40
|
-
| `category` | `str` | 카테고리 |
|
|
41
|
-
| `status` | `draft|active|archived` | 카탈로그 노출 상태 |
|
|
42
|
-
| `short_description` | `str` | 카드용 요약 문구 |
|
|
43
|
-
| `description` | `str` | 상세 설명 |
|
|
44
|
-
| `hero_image` | `MediaAsset` | 대표 이미지 |
|
|
45
|
-
| `gallery` | `list[MediaAsset]` | 추가 이미지 |
|
|
46
|
-
| `price` | `Money` | 판매가 |
|
|
47
|
-
| `compare_at_price` | `Money?` | 비교가 |
|
|
48
|
-
| `tags` | `list[str]` | 태그 |
|
|
49
|
-
| `attributes` | `list[ProductAttribute]` | 속성 리스트 |
|
|
50
|
-
| `variants` | `list[ProductVariant]` | SKU variant 리스트 |
|
|
51
|
-
| `created_at` | `str` | 생성 시각 |
|
|
52
|
-
| `updated_at` | `str` | 수정 시각 |
|
|
53
|
-
|
|
54
|
-
## 4. Inventory Level
|
|
55
|
-
|
|
56
|
-
| Field | Type | Meaning |
|
|
57
|
-
| --- | --- | --- |
|
|
58
|
-
| `sku` | `str` | 재고 식별 단위 |
|
|
59
|
-
| `product_id` | `str` | catalog product 참조 |
|
|
60
|
-
| `product_name` | `str` | 표시용 상품명 |
|
|
61
|
-
| `variant_name` | `str` | variant 이름 |
|
|
62
|
-
| `location_id` | `str` | 물류 거점 식별자 |
|
|
63
|
-
| `location_name` | `str` | 거점 이름 |
|
|
64
|
-
| `on_hand` | `int` | 실재고 |
|
|
65
|
-
| `reserved` | `int` | 선점 재고 |
|
|
66
|
-
| `safety_stock` | `int` | 안전 재고 |
|
|
67
|
-
| `reorder_point` | `int` | 재주문 기준점 |
|
|
68
|
-
| `updated_at` | `str` | 수정 시각 |
|
|
69
|
-
|
|
70
|
-
## 5. Order
|
|
71
|
-
|
|
72
|
-
| Field | Type | Meaning |
|
|
73
|
-
| --- | --- | --- |
|
|
74
|
-
| `id` | `str` | 주문 식별자 |
|
|
75
|
-
| `product_id` | `str` | 상품 참조 |
|
|
76
|
-
| `product_name` | `str` | 표시용 상품명 |
|
|
77
|
-
| `customer_name` | `str` | 고객명 |
|
|
78
|
-
| `seller_name` | `str` | 판매자/셀러명 |
|
|
79
|
-
| `status` | `str` | 결제/주문 상태 |
|
|
80
|
-
| `fulfillment_status` | `str` | 이행 상태 |
|
|
81
|
-
| `created_at` | `str` | 생성 시각 |
|
|
82
|
-
| `amount_krw` | `int` | 주문 금액 |
|
|
83
|
-
| `risk` | `str` | 운영 위험도 |
|
|
84
|
-
| `stage` | `str` | 운영 단계 |
|
|
85
|
-
| `sla` | `str` | SLA 표시 |
|
|
86
|
-
| `is_new_today` | `bool` | 당일 신규 여부 |
|
|
87
|
-
|
|
88
|
-
## 6. Fulfillment Task
|
|
89
|
-
|
|
90
|
-
| Field | Type | Meaning |
|
|
91
|
-
| --- | --- | --- |
|
|
92
|
-
| `id` | `str` | task 식별자 |
|
|
93
|
-
| `order_id` | `str` | 주문 참조 |
|
|
94
|
-
| `title` | `str` | 작업 제목 |
|
|
95
|
-
| `assignee` | `str` | 담당자 |
|
|
96
|
-
| `stage` | `str` | 이행 단계 |
|
|
97
|
-
| `status` | `str` | task 상태 |
|
|
98
|
-
| `priority` | `str` | 우선순위 |
|
|
99
|
-
| `channel` | `str` | 유입 채널 |
|
|
100
|
-
| `sla_minutes` | `int` | SLA 분 단위 |
|
|
101
|
-
| `units` | `int` | 처리 수량 |
|
|
102
|
-
|
|
103
|
-
## 7. Support FAQ
|
|
104
|
-
|
|
105
|
-
| Field | Type | Meaning |
|
|
106
|
-
| --- | --- | --- |
|
|
107
|
-
| `id` | `str` | FAQ 식별자 |
|
|
108
|
-
| `question` | `str` | 질문 |
|
|
109
|
-
| `answer` | `str` | 답변 |
|
|
110
|
-
| `category` | `str` | FAQ 카테고리 |
|
|
111
|
-
| `visibility` | `str` | 노출 여부 |
|
|
112
|
-
| `updated_at` | `str` | 수정 시각 |
|
|
113
|
-
|
|
114
|
-
## 8. Key Policy
|
|
115
|
-
|
|
116
|
-
- 현재 템플릿은 string id를 사용한다.
|
|
117
|
-
- 실제 서비스 구현 시 time-ordered UUID v7을 기본 식별자로 채택한다.
|
|
118
|
-
- legacy numeric id는 새 이커머스 baseline에서 사용하지 않는다.
|
|
119
|
-
- `auth`와 `user`는 같은 사람을 표현하더라도 저장 목적이 다르므로 독립 레코드로 유지한다.
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
# templates server contract
|
|
2
|
-
|
|
3
|
-
- 작성 버전: 1.0.0
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
현재 server runtime이 제공하는 HTTP contract를 구현 기준으로 정리한다.
|
|
8
|
-
|
|
9
|
-
## 1. HTTP Endpoint Matrix
|
|
10
|
-
|
|
11
|
-
| Method | Path | Domain | Purpose | Response |
|
|
12
|
-
| --- | --- | --- | --- | --- |
|
|
13
|
-
| `GET` | `/health` | health | root health probe | `{"status":"ok"}` |
|
|
14
|
-
| `GET` | `/api/v1/status` | health | API health/status probe | `{"service":"template-server","status":"healthy"}` |
|
|
15
|
-
| `POST` | `/api/v1/auth/login` | auth | credential 로그인과 token 발급 | `AuthToken` |
|
|
16
|
-
| `GET` | `/api/v1/auth/me` | auth | bearer token 기반 현재 사용자 조회 | `AuthenticatedUser` |
|
|
17
|
-
| `GET` | `/api/v1/users` | user | 사용자 summary 목록 조회 | `list[UserSummary]` |
|
|
18
|
-
| `GET` | `/api/v1/users/{user_id}` | user | 단일 사용자 상세 조회 | `UserDetail` |
|
|
19
|
-
| `PATCH` | `/api/v1/users/{user_id}/status` | user | 사용자 상태 변경 | `UserDetail` |
|
|
20
|
-
| `GET` | `/api/v1/catalog/products` | catalog | 공개/운영 상품 목록 조회 | `list[ProductSummary]` |
|
|
21
|
-
| `GET` | `/api/v1/catalog/products/{product_id}` | catalog | 단일 상품 상세 조회 | `ProductDetail` |
|
|
22
|
-
| `POST` | `/api/v1/catalog/products` | catalog | 상품 생성 | `ProductDetail` |
|
|
23
|
-
| `PUT` | `/api/v1/catalog/products/{product_id}` | catalog | 상품 수정 | `ProductDetail` |
|
|
24
|
-
| `PATCH` | `/api/v1/catalog/products/{product_id}/status` | catalog | 상품 상태 변경 | `ProductDetail` |
|
|
25
|
-
| `GET` | `/api/v1/inventory/levels` | inventory | 재고 레벨 목록 조회 | `list[InventoryLevel]` |
|
|
26
|
-
| `GET` | `/api/v1/inventory/levels/{sku}/{location_id}` | inventory | 단일 재고 레벨 조회 | `InventoryLevel` |
|
|
27
|
-
| `POST` | `/api/v1/inventory/levels/{sku}/{location_id}/adjustments` | inventory | 재고 증감 조정 | `InventoryMutationReceipt` |
|
|
28
|
-
| `POST` | `/api/v1/inventory/levels/{sku}/{location_id}/reservations` | inventory | 재고 선점 | `InventoryMutationReceipt` |
|
|
29
|
-
| `POST` | `/api/v1/inventory/levels/{sku}/{location_id}/releases` | inventory | 재고 선점 해제 | `InventoryMutationReceipt` |
|
|
30
|
-
| `PUT` | `/api/v1/inventory/levels/{sku}/{location_id}` | inventory | 재고 절대값 재설정 | `InventoryMutationReceipt` |
|
|
31
|
-
| `GET` | `/api/v1/orders/overview` | orders | web dashboard overview 조회 | `OrderOverview` |
|
|
32
|
-
| `GET` | `/api/v1/orders` | orders | web order table row 조회 | `list[OrderSummary]` |
|
|
33
|
-
| `POST` | `/api/v1/orders` | orders | 주문 생성 | `OrderRecord` |
|
|
34
|
-
| `PATCH` | `/api/v1/orders/{order_id}/status` | orders | 주문 상태 전이 | `OrderStatusTransition` |
|
|
35
|
-
| `GET` | `/api/v1/orders/admin/overview` | orders | admin dashboard 운영 overview 조회 | `AdminOrderOverview` |
|
|
36
|
-
| `GET` | `/api/v1/orders/admin/queue` | orders | admin queue table row 조회 | `list[AdminQueueItem]` |
|
|
37
|
-
| `GET` | `/api/v1/shipping/overview` | shipping | mobile 배송 overview 조회 | `ShippingOverview` |
|
|
38
|
-
| `GET` | `/api/v1/shipping/shipments` | shipping | shipment 목록 조회 | `list[ShipmentSummary]` |
|
|
39
|
-
| `PATCH` | `/api/v1/shipping/shipments/{shipment_id}/status` | shipping | 배송 상태 전이 | `ShipmentStatusTransition` |
|
|
40
|
-
| `GET` | `/api/v1/alerts` | alerts | admin 운영 알람 feed 조회 | `AlertsPayload` |
|
|
41
|
-
| `POST` | `/api/v1/alerts/{alert_id}/read` | alerts | 운영 알람 1건 읽음 처리 | `AlertReadResult` |
|
|
42
|
-
| `POST` | `/api/v1/alerts/read-all` | alerts | 운영 알람 전체 읽음 처리 | `AlertsReadAllResult` |
|
|
43
|
-
| `GET` | `/api/v1/support/faqs` | support | admin FAQ 목록 조회 | `list[SupportFaq]` |
|
|
44
|
-
| `POST` | `/api/v1/support/faqs` | support | FAQ 생성 | `SupportFaqRecord` |
|
|
45
|
-
| `PATCH` | `/api/v1/support/faqs/{faq_id}/visibility` | support | FAQ visibility 변경 | `SupportFaqRecord` |
|
|
46
|
-
| `GET` | `/api/v1/fulfillment/overview` | fulfillment | mobile dashboard 운영 overview 조회 | `FulfillmentOverview` |
|
|
47
|
-
| `GET` | `/api/v1/fulfillment/board` | fulfillment | mobile fulfillment board 조회 | `FulfillmentBoardPayload` |
|
|
48
|
-
| `PATCH` | `/api/v1/fulfillment/tasks/{task_id}/status` | fulfillment | fulfillment task 상태 전이 | `FulfillmentTaskStatusTransition` |
|
|
49
|
-
|
|
50
|
-
## 2. Auth Contract
|
|
51
|
-
|
|
52
|
-
- 인증 방식: `Authorization: Bearer <token>`
|
|
53
|
-
- login 입력: `email`, `password`
|
|
54
|
-
- login 성공 시 `access_token`, `token_type`, `user_id` 반환
|
|
55
|
-
- `auth/me`는 유효 token subject를 `AuthenticatedUser`로 해석
|
|
56
|
-
- `users`, `catalog` command, `inventory`, `orders`, `shipping`, `alerts`, `support`, `fulfillment`는 보호된 contract다
|
|
57
|
-
|
|
58
|
-
## 3. Error Baseline
|
|
59
|
-
|
|
60
|
-
- invalid credential: `401 Invalid credentials`
|
|
61
|
-
- invalid token: `401 Invalid token`
|
|
62
|
-
- forbidden role: `403 Forbidden`
|
|
63
|
-
- missing resource:
|
|
64
|
-
- HTTP: `404 ... not found`
|
|
65
|
-
- conflict:
|
|
66
|
-
- duplicate catalog slug: `409 Catalog product slug already exists`
|
|
67
|
-
- invalid inventory mutation: `409 ...`
|
|
68
|
-
|
|
69
|
-
## 4. Frontend Binding Notes
|
|
70
|
-
|
|
71
|
-
- `client/web`
|
|
72
|
-
- `/`는 `GET /api/v1/orders/overview`를 소비한다.
|
|
73
|
-
- `/orders`는 `GET /api/v1/orders`를 소비한다.
|
|
74
|
-
- `client/admin`
|
|
75
|
-
- `/`는 `GET /api/v1/orders/admin/overview`를 소비한다.
|
|
76
|
-
- admin shell과 dashboard는 `GET /api/v1/alerts`를 운영 알람 source로 사용한다.
|
|
77
|
-
- `/queue`는 `GET /api/v1/orders/admin/queue`를 소비한다.
|
|
78
|
-
- `/support`는 `GET /api/v1/support/faqs`를 소비한다.
|
|
79
|
-
- `client/mobile`
|
|
80
|
-
- `/`는 `GET /api/v1/fulfillment/overview`를 소비한다.
|
|
81
|
-
- `/fulfillment`는 `GET /api/v1/fulfillment/board`를 소비한다.
|
|
82
|
-
- `/shipping`은 `GET /api/v1/shipping/overview`, `GET /api/v1/shipping/shipments`를 소비한다.
|
|
83
|
-
- `client/landing`
|
|
84
|
-
- `/`와 `/workspace`는 `GET /api/v1/catalog/products`를 live catalog surface로 사용한다.
|
|
85
|
-
- auth flow는 네 app 모두 `POST /api/v1/auth/login`과 `GET /api/v1/auth/me`를 유지한다.
|
|
86
|
-
|
|
87
|
-
## 5. Stack Notes
|
|
88
|
-
|
|
89
|
-
- HTTP: `FastAPI 0.116.x + Uvicorn 0.35.x`
|
|
90
|
-
- Compose runtime: `server`
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# templates runtime and cicd baseline
|
|
2
|
-
|
|
3
|
-
- 작성 버전: 1.0.0
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
템플릿 저장소의 root compose runtime baseline과 CI baseline을 정리한다.
|
|
8
|
-
|
|
9
|
-
## 1. Compose Runtime Baseline
|
|
10
|
-
|
|
11
|
-
| Surface | Default Port |
|
|
12
|
-
| --- | --- |
|
|
13
|
-
| landing | `3000` |
|
|
14
|
-
| web | `3001` |
|
|
15
|
-
| mobile | `3002` |
|
|
16
|
-
| admin | `4000` |
|
|
17
|
-
| api | `8000` |
|
|
18
|
-
|
|
19
|
-
## 2. Compose Rule
|
|
20
|
-
|
|
21
|
-
- root `compose.yml`이 canonical dev-focused runtime baseline이다.
|
|
22
|
-
- dedicated host용 DEV(개발계)/PROD overlay는 `infra/compose/dev.yml`, `infra/compose/prod.yml`을 사용한다.
|
|
23
|
-
- 환경변수 contract는 `.env.example`을 source-of-truth로 유지한다.
|
|
24
|
-
|
|
25
|
-
## 3. CI/CD Rule
|
|
26
|
-
|
|
27
|
-
- 이 레포는 템플릿 저장소이므로 실제 배포를 수행하지 않는다.
|
|
28
|
-
- `.github/workflows`는 다음만 책임진다.
|
|
29
|
-
- root compose/overlay config validation
|
|
30
|
-
- backend test
|
|
31
|
-
- frontend build matrix
|
|
32
|
-
- AST build audit와 parity target resolution
|
|
33
|
-
- canonical Terraform skeleton validate
|
|
34
|
-
|
|
35
|
-
## 4. Delivery Note
|
|
36
|
-
|
|
37
|
-
- 실제 서비스 레포로 clone된 뒤 DEV/PROD deploy workflow를 추가한다.
|
|
38
|
-
- template repo의 workflow는 `검증용 CI`만 유지한다.
|
|
39
|
-
|
|
40
|
-
## 5. Remote Infra Template Layout
|
|
41
|
-
|
|
42
|
-
- canonical Terraform split은 `infra/terraform/aws/data`, `infra/terraform/aws/domain`, `infra/terraform/openstack/server`다.
|
|
43
|
-
- `infra/terraform/openstack/dev`, `infra/terraform/openstack/prod`는 lower-level starter root로 유지한다.
|
|
44
|
-
- 공통 OpenStack host/network/security group 로직은 `infra/terraform/openstack/modules/environment_host`에 둔다.
|
|
45
|
-
- DEV(개발계)와 PROD는 별도 Terraform state를 사용한다.
|
|
46
|
-
- cloud-init compose 자동 기동은 각 환경 root의 `compose_env_content`와 `deploy_compose_on_boot`로 제어한다.
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# templates frontend api integration
|
|
2
|
-
|
|
3
|
-
- 작성 버전: 1.0.0
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
현재 frontend와 backend의 실제 연결 지점을 정리한다.
|
|
8
|
-
|
|
9
|
-
## 1. Shared Integration Rule
|
|
10
|
-
|
|
11
|
-
- 네 개의 frontend 모두 공통 `auth` contract를 사용한다.
|
|
12
|
-
- `POST /api/v1/auth/login`으로 access token을 발급받고 로컬 storage에 저장한다.
|
|
13
|
-
- `GET /api/v1/auth/me`로 초기 세션을 복원한다.
|
|
14
|
-
|
|
15
|
-
## 2. Service Coupling Summary
|
|
16
|
-
|
|
17
|
-
| Service | Real Backend Coupling | Note |
|
|
18
|
-
| --- | --- | --- |
|
|
19
|
-
| web | `auth`, `orders` | dashboard overview와 orders table을 live contract에 연결 |
|
|
20
|
-
| admin | `auth`, `orders`, `alerts`, `support` | overview/queue/support surface와 alerts drawer를 live contract에 연결 |
|
|
21
|
-
| mobile | `auth`, `fulfillment`, `shipping` | dashboard overview와 fulfillment/shipping surface를 live contract에 연결 |
|
|
22
|
-
| landing | `auth`, `catalog` | home/workspace에서 catalog products를 읽어 public/protected surface를 구성 |
|
|
23
|
-
|
|
24
|
-
## 3. Coupling Detail
|
|
25
|
-
|
|
26
|
-
- web
|
|
27
|
-
- bearer session은 기존 `AuthProvider`가 유지한다.
|
|
28
|
-
- page load 시 `orders/overview`, `orders`를 fetch하고 search는 client-side filter로 처리한다.
|
|
29
|
-
- admin
|
|
30
|
-
- protected route는 그대로 유지한다.
|
|
31
|
-
- dashboard는 `orders/admin/overview`와 `alerts`를 병렬 fetch한다.
|
|
32
|
-
- queue, support, alerts drawer는 개별 page-level effect로 fetch한다.
|
|
33
|
-
- mobile
|
|
34
|
-
- overview와 board payload는 mobile shell 진입 후 fetch한다.
|
|
35
|
-
- status/tone badge는 response의 string field를 frontend palette에 매핑한다.
|
|
36
|
-
- board route는 `/fulfillment`다.
|
|
37
|
-
- shipping route는 `/shipping`이고 shipment status feed를 별도 fetch한다.
|
|
38
|
-
- landing
|
|
39
|
-
- public home에서도 `catalog/products`를 읽어 live catalog proof를 보여준다.
|
|
40
|
-
- protected workspace는 auth user summary와 catalog product grid를 함께 노출한다.
|
|
41
|
-
|
|
42
|
-
## 4. Known Gaps
|
|
43
|
-
|
|
44
|
-
- web/admin은 아직 catalog/inventory command surface를 직접 소비하지 않는다.
|
|
45
|
-
- order 생성, fulfillment 전이, shipping 전이, support create/update, alerts read는 backend contract로 존재하지만 frontend action UI는 baseline 최소 액션 중심이다.
|
|
46
|
-
- landing은 catalog read를 public/protected दोनों surface에 재사용하지만 category/detail 분해까지는 아직 없다.
|