agentic-dev 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/prd.json +29 -0
- package/.agent/progress.txt +1 -0
- package/.agent/prompt.md +21 -0
- package/.agent/ralph-loop-state.json +13 -0
- package/.agent/ralph-supervisor-state.json +12 -0
- package/.agent/ralph-supervisor.sh +238 -0
- package/.agent/ralph.sh +305 -0
- package/.agent/runs/README.md +7 -0
- package/.agent/sdd-build-ast-audit.json +13 -0
- package/.claude/CLAUDE.md +44 -0
- package/.claude/agentic-dev.json +3 -0
- package/.claude/agents/ai-dev.md +27 -0
- package/.claude/agents/backend-dev.md +26 -0
- package/.claude/agents/db-dev.md +26 -0
- package/.claude/agents/devops.md +27 -0
- package/.claude/agents/frontend-dev.md +25 -0
- package/.claude/agents/github-ops.md +25 -0
- package/.claude/agents/test-dev.md +26 -0
- package/.claude/agents/uiux-designer.md +25 -0
- package/.claude/settings.json +49 -0
- package/.claude/settings.local.json +8 -0
- package/.claude/skills/commit/SKILL.md +37 -0
- package/.claude/skills/dev-browser/SKILL.md +30 -0
- package/.claude/skills/otro/SKILL.md +43 -0
- package/.claude/skills/planning-with-files/SKILL.md +37 -0
- package/.claude/skills/prd/SKILL.md +27 -0
- package/.claude/skills/ralph-loop/SKILL.md +42 -0
- package/.claude/skills/sdd/SKILL.md +13 -0
- package/.claude/skills/sdd-dev/SKILL.md +71 -0
- package/.claude/skills/sdd-development/SKILL.md +13 -0
- package/.claude/workspace-config.json +3 -0
- package/.codex/agentic-dev.json +3 -0
- package/.codex/agents/README.md +22 -0
- package/.codex/agents/api.toml +11 -0
- package/.codex/agents/architecture.toml +11 -0
- package/.codex/agents/ci.toml +11 -0
- package/.codex/agents/gitops.toml +11 -0
- package/.codex/agents/orchestrator.toml +11 -0
- package/.codex/agents/quality.toml +11 -0
- package/.codex/agents/runtime.toml +11 -0
- package/.codex/agents/security.toml +11 -0
- package/.codex/agents/specs.toml +11 -0
- package/.codex/agents/ui.toml +11 -0
- package/.codex/config.toml +46 -0
- package/.codex/skills/SKILL.md +13 -0
- package/.codex/skills/agents/openai.yaml +4 -0
- package/.codex/skills/commit/SKILL.md +219 -0
- package/.codex/skills/commit/references/commit_examples.md +292 -0
- package/.codex/skills/dev-browser/SKILL.md +211 -0
- package/.codex/skills/dev-browser/bun.lock +443 -0
- package/.codex/skills/dev-browser/package-lock.json +2988 -0
- package/.codex/skills/dev-browser/package.json +31 -0
- package/.codex/skills/dev-browser/references/scraping.md +155 -0
- package/.codex/skills/dev-browser/scripts/start-relay.ts +32 -0
- package/.codex/skills/dev-browser/scripts/start-server.ts +117 -0
- package/.codex/skills/dev-browser/server.sh +24 -0
- package/.codex/skills/dev-browser/src/client.ts +474 -0
- package/.codex/skills/dev-browser/src/index.ts +287 -0
- package/.codex/skills/dev-browser/src/relay.ts +731 -0
- package/.codex/skills/dev-browser/src/snapshot/__tests__/snapshot.test.ts +223 -0
- package/.codex/skills/dev-browser/src/snapshot/browser-script.ts +877 -0
- package/.codex/skills/dev-browser/src/snapshot/index.ts +14 -0
- package/.codex/skills/dev-browser/src/snapshot/inject.ts +13 -0
- package/.codex/skills/dev-browser/src/types.ts +34 -0
- package/.codex/skills/dev-browser/tsconfig.json +36 -0
- package/.codex/skills/dev-browser/vitest.config.ts +12 -0
- package/.codex/skills/otro/SKILL.md +74 -0
- package/.codex/skills/otro/agents/openai.yaml +4 -0
- package/.codex/skills/otro/references/agent-prompts.md +61 -0
- package/.codex/skills/otro/references/contracts.md +146 -0
- package/.codex/skills/otro/references/orchestration-loop.md +51 -0
- package/.codex/skills/otro/references/runtime.md +79 -0
- package/.codex/skills/otro/runs/README.md +11 -0
- package/.codex/skills/otro/schemas/step_plan.schema.json +289 -0
- package/.codex/skills/otro/schemas/task_result.schema.json +142 -0
- package/.codex/skills/otro/schemas/wave_plan.schema.json +4 -0
- package/.codex/skills/otro/scripts/README.md +38 -0
- package/.codex/skills/otro/scripts/bump_validation_header.py +179 -0
- package/.codex/skills/otro/scripts/check_validation_header.py +84 -0
- package/.codex/skills/otro/scripts/common.py +303 -0
- package/.codex/skills/otro/scripts/init_run.sh +68 -0
- package/.codex/skills/otro/scripts/plan_loop.py +8 -0
- package/.codex/skills/otro/scripts/plan_step.py +367 -0
- package/.codex/skills/otro/scripts/plan_wave.py +8 -0
- package/.codex/skills/otro/scripts/reconcile_loop.py +8 -0
- package/.codex/skills/otro/scripts/reconcile_step.py +37 -0
- package/.codex/skills/otro/scripts/reconcile_wave.py +8 -0
- package/.codex/skills/otro/scripts/run_loop.py +300 -0
- package/.codex/skills/otro/scripts/run_loop_step.py +8 -0
- package/.codex/skills/otro/scripts/run_step.py +246 -0
- package/.codex/skills/otro/scripts/run_wave.py +8 -0
- package/.codex/skills/otro/validation/validation.md +15 -0
- package/.codex/skills/planning-with-files/SKILL.md +42 -0
- package/.codex/skills/planning-with-files/agents/openai.yaml +4 -0
- package/.codex/skills/planning-with-files/assets/plan-template.md +37 -0
- package/.codex/skills/planning-with-files/references/plan-rules.md +35 -0
- package/.codex/skills/planning-with-files/scripts/new_plan.sh +65 -0
- package/.codex/skills/prd/SKILL.md +235 -0
- package/.codex/skills/ralph-loop/SKILL.md +46 -0
- package/.codex/skills/ralph-loop/agents/openai.yaml +4 -0
- package/.codex/skills/ralph-loop/references/failure-triage.md +32 -0
- package/.codex/skills/ralph-loop/scripts/loop_until_success.sh +97 -0
- package/.codex/skills/sdd/SKILL.md +184 -0
- package/.codex/skills/sdd/agents/openai.yaml +4 -0
- package/.codex/skills/sdd/references/section-map.md +67 -0
- package/.dockerignore +8 -0
- package/.env.example +50 -0
- package/.gitignore +16 -0
- package/AGENTS.md +78 -0
- package/README.md +83 -47
- package/SDD_SKILL.md +589 -0
- package/bin/agentic-dev.mjs +97 -0
- package/client/admin/.dockerignore +3 -0
- package/client/admin/.env.example +1 -0
- package/client/admin/Dockerfile +16 -0
- package/client/admin/Dockerfile.dev +18 -0
- package/client/admin/README.md +20 -0
- package/client/admin/index.html +12 -0
- package/client/admin/package.json +41 -0
- package/client/admin/postcss.config.js +6 -0
- package/client/admin/scripts/ui-parity-admin-adapter.mjs +65 -0
- package/client/admin/src/api/alerts.ts +33 -0
- package/client/admin/src/api/client.ts +71 -0
- package/client/admin/src/api/orders.ts +33 -0
- package/client/admin/src/api/support.ts +11 -0
- package/client/admin/src/app/App.tsx +23 -0
- package/client/admin/src/auth/AuthProvider.tsx +122 -0
- package/client/admin/src/auth/ProtectedRoute.tsx +22 -0
- package/client/admin/src/auth/auth-client.ts +38 -0
- package/client/admin/src/auth/types.ts +18 -0
- package/client/admin/src/components/AdminNotificationsDrawer.tsx +162 -0
- package/client/admin/src/components/AdminShell.tsx +76 -0
- package/client/admin/src/components/ui/button.tsx +34 -0
- package/client/admin/src/components/ui/input.tsx +21 -0
- package/client/admin/src/lib/cn.ts +6 -0
- package/client/admin/src/lib/specRouteCatalog.json +30 -0
- package/client/admin/src/lib/specScreens.json +22 -0
- package/client/admin/src/main.tsx +17 -0
- package/client/admin/src/pages/AdminDashboardPage.tsx +171 -0
- package/client/admin/src/pages/AdminLoginPage.tsx +75 -0
- package/client/admin/src/pages/AdminQueuePage.tsx +107 -0
- package/client/admin/src/pages/AdminSupportPage.tsx +61 -0
- package/client/admin/src/styles/globals.css +17 -0
- package/client/admin/src/theme-vars.ts +18 -0
- package/client/admin/src/theme.ts +25 -0
- package/client/admin/src/vite-env.d.ts +1 -0
- package/client/admin/tailwind.config.js +8 -0
- package/client/admin/tsconfig.json +25 -0
- package/client/admin/vite.config.ts +12 -0
- package/client/landing/.dockerignore +3 -0
- package/client/landing/.env.example +1 -0
- package/client/landing/Dockerfile +16 -0
- package/client/landing/Dockerfile.dev +18 -0
- package/client/landing/README.md +18 -0
- package/client/landing/index.html +12 -0
- package/client/landing/package.json +41 -0
- package/client/landing/postcss.config.js +6 -0
- package/client/landing/scripts/ui-parity-landing-adapter.mjs +65 -0
- package/client/landing/src/App.tsx +21 -0
- package/client/landing/src/api/catalog.ts +30 -0
- package/client/landing/src/api/client.ts +30 -0
- package/client/landing/src/auth/AuthProvider.tsx +122 -0
- package/client/landing/src/auth/ProtectedRoute.tsx +22 -0
- package/client/landing/src/auth/auth-client.ts +38 -0
- package/client/landing/src/auth/types.ts +18 -0
- package/client/landing/src/components/LandingShell.tsx +34 -0
- package/client/landing/src/lib/specRouteCatalog.json +23 -0
- package/client/landing/src/lib/specScreens.json +17 -0
- package/client/landing/src/main.tsx +17 -0
- package/client/landing/src/pages/LandingHomePage.tsx +215 -0
- package/client/landing/src/pages/LandingLoginPage.tsx +90 -0
- package/client/landing/src/pages/LandingWorkspacePage.tsx +126 -0
- package/client/landing/src/styles/globals.css +17 -0
- package/client/landing/src/theme-vars.ts +16 -0
- package/client/landing/src/theme.ts +21 -0
- package/client/landing/src/vite-env.d.ts +1 -0
- package/client/landing/tailwind.config.js +8 -0
- package/client/landing/tsconfig.json +25 -0
- package/client/landing/vite.config.ts +12 -0
- package/client/mobile/.dockerignore +2 -0
- package/client/mobile/.env.example +1 -0
- package/client/mobile/Dockerfile +16 -0
- package/client/mobile/Dockerfile.dev +18 -0
- package/client/mobile/README.md +19 -0
- package/client/mobile/index.html +12 -0
- package/client/mobile/package.json +42 -0
- package/client/mobile/postcss.config.js +6 -0
- package/client/mobile/scripts/ui-parity-mobile-adapter.mjs +67 -0
- package/client/mobile/src/App.tsx +1 -0
- package/client/mobile/src/api/client.ts +62 -0
- package/client/mobile/src/api/fulfillment.ts +55 -0
- package/client/mobile/src/api/shipping.ts +56 -0
- package/client/mobile/src/app/App.tsx +23 -0
- package/client/mobile/src/auth/AuthProvider.tsx +122 -0
- package/client/mobile/src/auth/ProtectedRoute.tsx +27 -0
- package/client/mobile/src/auth/auth-client.ts +38 -0
- package/client/mobile/src/auth/types.ts +18 -0
- package/client/mobile/src/components/InShell.tsx +74 -0
- package/client/mobile/src/components/ui/button.tsx +35 -0
- package/client/mobile/src/components/ui/card.tsx +15 -0
- package/client/mobile/src/components/ui/input.tsx +21 -0
- package/client/mobile/src/lib/cn.ts +6 -0
- package/client/mobile/src/lib/specRouteCatalog.json +26 -0
- package/client/mobile/src/lib/specScreens.json +22 -0
- package/client/mobile/src/lib/useSpeechRecognitionInput.ts +271 -0
- package/client/mobile/src/main.tsx +17 -0
- package/client/mobile/src/pages/DashboardPage.tsx +172 -0
- package/client/mobile/src/pages/FulfillmentPage.tsx +138 -0
- package/client/mobile/src/pages/LoginPage.tsx +74 -0
- package/client/mobile/src/pages/ShippingPage.tsx +338 -0
- package/client/mobile/src/styles/globals.css +23 -0
- package/client/mobile/src/theme-vars.ts +16 -0
- package/client/mobile/src/theme.ts +21 -0
- package/client/mobile/src/vite-env.d.ts +1 -0
- package/client/mobile/tailwind.config.js +8 -0
- package/client/mobile/tsconfig.json +25 -0
- package/client/mobile/vite.config.ts +12 -0
- package/client/platform/.dockerignore +3 -0
- package/client/platform/.env.example +1 -0
- package/client/platform/Dockerfile +16 -0
- package/client/platform/Dockerfile.dev +18 -0
- package/client/platform/README.md +47 -0
- package/client/platform/index.html +12 -0
- package/client/platform/package.json +42 -0
- package/client/platform/postcss.config.js +6 -0
- package/client/platform/scripts/ui-parity-platform-adapter.mjs +66 -0
- package/client/platform/src/api/client.ts +30 -0
- package/client/platform/src/api/orders.ts +42 -0
- package/client/platform/src/app/App.tsx +21 -0
- package/client/platform/src/auth/AuthProvider.tsx +122 -0
- package/client/platform/src/auth/ProtectedRoute.tsx +22 -0
- package/client/platform/src/auth/auth-client.ts +38 -0
- package/client/platform/src/auth/types.ts +18 -0
- package/client/platform/src/components/AppShell.tsx +59 -0
- package/client/platform/src/components/ui/button.tsx +35 -0
- package/client/platform/src/components/ui/card.tsx +7 -0
- package/client/platform/src/components/ui/input.tsx +21 -0
- package/client/platform/src/lib/cn.ts +6 -0
- package/client/platform/src/lib/specRouteCatalog.json +23 -0
- package/client/platform/src/lib/specScreens.json +17 -0
- package/client/platform/src/main.tsx +17 -0
- package/client/platform/src/pages/DashboardPage.tsx +158 -0
- package/client/platform/src/pages/LoginPage.tsx +72 -0
- package/client/platform/src/pages/OrdersPage.tsx +123 -0
- package/client/platform/src/styles/globals.css +17 -0
- package/client/platform/src/theme-vars.ts +18 -0
- package/client/platform/src/theme.ts +25 -0
- package/client/platform/src/vite-env.d.ts +1 -0
- package/client/platform/tailwind.config.js +8 -0
- package/client/platform/tsconfig.json +25 -0
- package/client/platform/vite.config.ts +12 -0
- package/compose.yml +206 -0
- package/infra/compose/.env.dev.example +28 -0
- package/infra/compose/.env.prod.example +29 -0
- package/infra/compose/README.md +35 -0
- package/infra/compose/dev.yml +125 -0
- package/infra/compose/prod.yml +126 -0
- package/infra/terraform/README.md +34 -0
- package/infra/terraform/aws/data/.terraform.lock.hcl +25 -0
- package/infra/terraform/aws/data/README.md +18 -0
- package/infra/terraform/aws/data/main.tf +147 -0
- package/infra/terraform/aws/data/outputs.tf +14 -0
- package/infra/terraform/aws/data/variables.tf +57 -0
- package/infra/terraform/aws/data/versions.tf +10 -0
- package/infra/terraform/aws/domain/.terraform.lock.hcl +25 -0
- package/infra/terraform/aws/domain/README.md +20 -0
- package/infra/terraform/aws/domain/env/dev.tfvars.example +6 -0
- package/infra/terraform/aws/domain/env/prod.tfvars.example +7 -0
- package/infra/terraform/aws/domain/main.tf +149 -0
- package/infra/terraform/aws/domain/outputs.tf +29 -0
- package/infra/terraform/aws/domain/variables.tf +58 -0
- package/infra/terraform/aws/domain/versions.tf +10 -0
- package/infra/terraform/openstack/README.md +38 -0
- package/infra/terraform/openstack/dev/.terraform.lock.hcl +24 -0
- package/infra/terraform/openstack/dev/README.md +18 -0
- package/infra/terraform/openstack/dev/main.tf +49 -0
- package/infra/terraform/openstack/dev/providers.tf +15 -0
- package/infra/terraform/openstack/dev/terraform.tfvars.example +54 -0
- package/infra/terraform/openstack/dev/variables.tf +210 -0
- package/infra/terraform/openstack/dev/versions.tf +10 -0
- package/infra/terraform/openstack/modules/environment_host/main.tf +143 -0
- package/infra/terraform/openstack/modules/environment_host/outputs.tf +25 -0
- package/infra/terraform/openstack/modules/environment_host/templates/docker-host-user-data.sh.tftpl +40 -0
- package/infra/terraform/openstack/modules/environment_host/variables.tf +145 -0
- package/infra/terraform/openstack/modules/environment_host/versions.tf +7 -0
- package/infra/terraform/openstack/prod/.terraform.lock.hcl +24 -0
- package/infra/terraform/openstack/prod/README.md +18 -0
- package/infra/terraform/openstack/prod/main.tf +49 -0
- package/infra/terraform/openstack/prod/providers.tf +15 -0
- package/infra/terraform/openstack/prod/terraform.tfvars.example +55 -0
- package/infra/terraform/openstack/prod/variables.tf +210 -0
- package/infra/terraform/openstack/prod/versions.tf +10 -0
- package/infra/terraform/openstack/server/.terraform.lock.hcl +45 -0
- package/infra/terraform/openstack/server/README.md +47 -0
- package/infra/terraform/openstack/server/main.tf +161 -0
- package/infra/terraform/openstack/server/outputs.tf +30 -0
- package/infra/terraform/openstack/server/providers.tf +30 -0
- package/infra/terraform/openstack/server/templates/server-user-data.sh.tftpl +50 -0
- package/infra/terraform/openstack/server/variables.tf +233 -0
- package/infra/terraform/openstack/server/zz_aspace.auto.tfvars.example.json +29 -0
- package/lib/scaffold.mjs +379 -0
- package/package.json +33 -12
- package/pnpm-workspace.yaml +2 -0
- package/scripts/dev/audit_sdd_build_ast.py +277 -0
- package/sdd/01_planning/01_feature/INDEX.md +16 -0
- package/sdd/01_planning/01_feature/README.md +76 -0
- package/sdd/01_planning/01_feature/alerts_feature_spec.md +55 -0
- package/sdd/01_planning/01_feature/auth_feature_spec.md +57 -0
- package/sdd/01_planning/01_feature/catalog_feature_spec.md +61 -0
- package/sdd/01_planning/01_feature/fulfillment_feature_spec.md +58 -0
- package/sdd/01_planning/01_feature/health_feature_spec.md +52 -0
- package/sdd/01_planning/01_feature/inventory_feature_spec.md +60 -0
- package/sdd/01_planning/01_feature/order_feature_spec.md +63 -0
- package/sdd/01_planning/01_feature/shipping_feature_spec.md +55 -0
- package/sdd/01_planning/01_feature/support_feature_spec.md +53 -0
- package/sdd/01_planning/01_feature/user_feature_spec.md +54 -0
- package/sdd/01_planning/02_screen/INDEX.md +13 -0
- package/sdd/01_planning/02_screen/README.md +41 -0
- package/sdd/01_planning/02_screen/admin_screen_spec.pdf +0 -0
- package/sdd/01_planning/02_screen/assets/README.md +16 -0
- package/sdd/01_planning/02_screen/assets/example/README.md +13 -0
- 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/platform_screen_spec.pdf +0 -0
- package/sdd/01_planning/03_architecture/INDEX.md +9 -0
- package/sdd/01_planning/03_architecture/README.md +25 -0
- package/sdd/01_planning/03_architecture/architecture_document_structure.md +77 -0
- package/sdd/01_planning/03_architecture/backend/README.md +10 -0
- package/sdd/01_planning/03_architecture/frontend/README.md +12 -0
- package/sdd/01_planning/03_architecture/infra/README.md +10 -0
- package/sdd/01_planning/03_architecture/tech-research/README.md +4 -0
- package/sdd/01_planning/03_architecture/templates_system_architecture.md +84 -0
- package/sdd/01_planning/04_data/INDEX.md +4 -0
- package/sdd/01_planning/04_data/README.md +10 -0
- package/sdd/01_planning/04_data/templates_data_modeling.md +119 -0
- package/sdd/01_planning/05_api/README.md +12 -0
- package/sdd/01_planning/05_api/templates_api_contract.md +90 -0
- package/sdd/01_planning/06_iac/README.md +11 -0
- package/sdd/01_planning/06_iac/templates_runtime_and_cicd_baseline.md +46 -0
- package/sdd/01_planning/07_integration/README.md +11 -0
- package/sdd/01_planning/07_integration/templates_frontend_api_integration.md +46 -0
- package/sdd/01_planning/08_nonfunctional/README.md +7 -0
- package/sdd/01_planning/09_security/README.md +7 -0
- package/sdd/01_planning/10_test/README.md +12 -0
- package/sdd/01_planning/10_test/templates_test_strategy.md +60 -0
- package/sdd/01_planning/INDEX.md +19 -0
- package/sdd/01_planning/README.md +17 -0
- package/sdd/02_plan/01_feature/README.md +34 -0
- package/sdd/02_plan/01_feature/_feature_todo_template.md +29 -0
- package/sdd/02_plan/02_screen/INDEX.md +19 -0
- package/sdd/02_plan/02_screen/README.md +39 -0
- package/sdd/02_plan/02_screen/_screen_todo_template.md +60 -0
- package/sdd/02_plan/03_architecture/README.md +23 -0
- package/sdd/02_plan/03_architecture/architecture_document_governance.md +40 -0
- package/sdd/02_plan/03_architecture/build_ast_runtime_tree_governance.md +53 -0
- package/sdd/02_plan/03_architecture/repository_governance.md +39 -0
- package/sdd/02_plan/03_architecture/runtime_and_structure_governance.md +38 -0
- package/sdd/02_plan/03_architecture/templates-hexagonal-template-architecture.md +9 -0
- package/sdd/02_plan/03_architecture/toolchain_governance.md +98 -0
- package/sdd/02_plan/04_data/README.md +5 -0
- package/sdd/02_plan/05_api/README.md +5 -0
- package/sdd/02_plan/06_iac/README.md +11 -0
- package/sdd/02_plan/06_iac/dev_runtime_delivery.md +36 -0
- package/sdd/02_plan/06_iac/template_runtime_delivery.md +50 -0
- package/sdd/02_plan/07_integration/README.md +5 -0
- package/sdd/02_plan/07_integration/frontend_live_integration.md +31 -0
- package/sdd/02_plan/08_nonfunctional/README.md +5 -0
- package/sdd/02_plan/08_nonfunctional/repository_hygiene.md +26 -0
- package/sdd/02_plan/09_security/README.md +5 -0
- package/sdd/02_plan/10_test/README.md +11 -0
- package/sdd/02_plan/10_test/regression_verification.md +39 -0
- package/sdd/02_plan/10_test/templates/README.md +8 -0
- package/sdd/02_plan/10_test/templates/ui_parity_platform_contract.template.yaml +23 -0
- package/sdd/02_plan/10_test/verification_strategy.md +43 -0
- package/sdd/02_plan/99_generated/from_planning/ui_parity/.gitkeep +1 -0
- package/sdd/02_plan/README.md +40 -0
- package/sdd/03_build/01_feature/README.md +20 -0
- package/sdd/03_build/01_feature/domain/README.md +3 -0
- package/sdd/03_build/01_feature/domain/account_and_access.md +20 -0
- package/sdd/03_build/01_feature/domain/catalog_and_inventory.md +20 -0
- package/sdd/03_build/01_feature/domain/ordering_and_fulfillment.md +21 -0
- package/sdd/03_build/01_feature/domain/support_and_observability.md +21 -0
- package/sdd/03_build/01_feature/domain_surfaces.md +28 -0
- package/sdd/03_build/01_feature/service/README.md +3 -0
- package/sdd/03_build/01_feature/service/admin_surface.md +15 -0
- package/sdd/03_build/01_feature/service/landing_surface.md +13 -0
- package/sdd/03_build/01_feature/service/mobile_surface.md +14 -0
- package/sdd/03_build/01_feature/service/platform_surface.md +14 -0
- package/sdd/03_build/02_screen/README.md +25 -0
- package/sdd/03_build/02_screen/_screen_build_template.md +26 -0
- package/sdd/03_build/02_screen/admin/README.md +5 -0
- package/sdd/03_build/02_screen/landing/README.md +5 -0
- package/sdd/03_build/02_screen/mobile/README.md +5 -0
- package/sdd/03_build/02_screen/platform/README.md +5 -0
- package/sdd/03_build/03_architecture/README.md +10 -0
- package/sdd/03_build/03_architecture/architecture_document_governance.md +30 -0
- package/sdd/03_build/03_architecture/build_ast_runtime_tree_governance.md +24 -0
- package/sdd/03_build/03_architecture/repository_governance.md +18 -0
- package/sdd/03_build/03_architecture/toolchain_governance.md +36 -0
- package/sdd/03_build/06_iac/README.md +3 -0
- package/sdd/03_build/06_iac/dev_runtime_delivery.md +10 -0
- package/sdd/03_build/06_iac/template_runtime_delivery.md +49 -0
- package/sdd/03_build/07_integration/README.md +3 -0
- package/sdd/03_build/07_integration/frontend_live_integration.md +11 -0
- package/sdd/03_build/08_nonfunctional/README.md +3 -0
- package/sdd/03_build/08_nonfunctional/repository_hygiene.md +10 -0
- package/sdd/03_build/10_test/README.md +9 -0
- package/sdd/03_build/10_test/regression_verification.md +16 -0
- package/sdd/03_build/10_test/verification_harness.md +11 -0
- package/sdd/03_build/README.md +35 -0
- package/sdd/04_verify/01_feature/README.md +5 -0
- package/sdd/04_verify/01_feature/domain_verification.md +14 -0
- package/sdd/04_verify/01_feature/service_verification.md +22 -0
- package/sdd/04_verify/02_screen/README.md +6 -0
- package/sdd/04_verify/02_screen/_screen_verify_template.md +20 -0
- package/sdd/04_verify/02_screen/admin/README.md +4 -0
- package/sdd/04_verify/02_screen/landing/README.md +4 -0
- package/sdd/04_verify/02_screen/mobile/README.md +4 -0
- package/sdd/04_verify/02_screen/platform/README.md +4 -0
- package/sdd/04_verify/03_architecture/README.md +10 -0
- package/sdd/04_verify/03_architecture/architecture_document_governance.md +15 -0
- package/sdd/04_verify/03_architecture/build_ast_runtime_tree_governance.md +28 -0
- package/sdd/04_verify/03_architecture/repository_governance.md +16 -0
- package/sdd/04_verify/03_architecture/toolchain_governance.md +58 -0
- package/sdd/04_verify/06_iac/README.md +3 -0
- package/sdd/04_verify/06_iac/dev_runtime_delivery.md +10 -0
- package/sdd/04_verify/06_iac/template_runtime_delivery.md +42 -0
- package/sdd/04_verify/07_integration/README.md +3 -0
- package/sdd/04_verify/07_integration/frontend_live_integration.md +16 -0
- package/sdd/04_verify/08_nonfunctional/README.md +3 -0
- package/sdd/04_verify/08_nonfunctional/repository_hygiene.md +14 -0
- package/sdd/04_verify/10_test/README.md +9 -0
- package/sdd/04_verify/10_test/regression_verification.md +16 -0
- package/sdd/04_verify/10_test/ui_parity/README.md +4 -0
- package/sdd/04_verify/10_test/ui_parity/loop_runs/.gitkeep +0 -0
- package/sdd/04_verify/10_test/ui_parity/reference/.gitkeep +0 -0
- package/sdd/04_verify/10_test/ui_parity/staged_runs/.gitkeep +0 -0
- package/sdd/04_verify/10_test/verification_harness.md +17 -0
- package/sdd/04_verify/README.md +22 -0
- package/sdd/05_operate/01_runbooks/.gitkeep +1 -0
- package/sdd/05_operate/01_runbooks/README.md +4 -0
- package/sdd/05_operate/02_delivery_status/README.md +4 -0
- package/sdd/05_operate/02_delivery_status/service_status.md +16 -0
- package/sdd/05_operate/README.md +12 -0
- package/sdd/99_toolchain/01_automation/.gitkeep +1 -0
- package/sdd/99_toolchain/01_automation/README.md +76 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/analyze_proof_results.py +132 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/analyze_route_gap.py +85 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/assets/repo-contract.template.json +75 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/bootstrap_frontend_parity.sh +84 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/init_frontend_parity.sh +33 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/init_repo_contract.sh +51 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/repo-contract.json +76 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/resolve_frontend_target.py +52 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/resolve_repo_contract.py +56 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/run_frontend_target.sh +100 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/run_repo_phase.sh +140 -0
- package/sdd/99_toolchain/01_automation/agentic-dev/validate_json_schema.py +39 -0
- package/sdd/99_toolchain/01_automation/agentic-parity-harness-design.md +291 -0
- 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/platform_screen_capture/dashboard.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/platform_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/platform_screen_capture/orders.png +0 -0
- package/sdd/99_toolchain/01_automation/build_asset_recipes.py +10 -0
- package/sdd/99_toolchain/01_automation/build_screen_spec_pdf.py +427 -0
- package/sdd/99_toolchain/01_automation/capture_screen_assets.mjs +148 -0
- package/sdd/99_toolchain/01_automation/harness-layout.md +34 -0
- package/sdd/99_toolchain/01_automation/parity-execution-tooling-design.md +319 -0
- package/sdd/99_toolchain/01_automation/playwright_exactness_manifest.py +21 -0
- package/sdd/99_toolchain/01_automation/run_playwright_exactness.py +87 -0
- package/sdd/99_toolchain/01_automation/screen_spec_manifest.py +321 -0
- package/sdd/99_toolchain/01_automation/spec_asset_builder.py +274 -0
- package/sdd/99_toolchain/01_automation/ui-contract-projection.md +79 -0
- package/sdd/99_toolchain/01_automation/ui-parity/README.md +60 -0
- package/sdd/99_toolchain/01_automation/ui-parity/cli/extract-reference-pages.mjs +2 -0
- package/sdd/99_toolchain/01_automation/ui-parity/cli/materialize-reference-assets.mjs +58 -0
- package/sdd/99_toolchain/01_automation/ui-parity/cli/normalize-reference-assets.mjs +2 -0
- package/sdd/99_toolchain/01_automation/ui-parity/cli/route-gap-report.mjs +187 -0
- package/sdd/99_toolchain/01_automation/ui-parity/cli/run-proof.mjs +50 -0
- package/sdd/99_toolchain/01_automation/ui-parity/cli/scaffold-contract.mjs +62 -0
- package/sdd/99_toolchain/01_automation/ui-parity/cli/upload-parity1.mjs +2 -0
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/collector-metadata.schema.json +33 -0
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/proof-result.schema.json +76 -0
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/route-gap-report.schema.json +95 -0
- package/sdd/99_toolchain/01_automation/ui-parity/core/capture-runner.mjs +55 -0
- package/sdd/99_toolchain/01_automation/ui-parity/core/load-adapter.mjs +25 -0
- package/sdd/99_toolchain/01_automation/ui-parity/core/load-contract.mjs +81 -0
- package/sdd/99_toolchain/01_automation/ui-parity/core/paths.mjs +23 -0
- package/sdd/99_toolchain/01_automation/ui-parity/core/proof-runner.mjs +255 -0
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-artifact-layout.md +23 -0
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-proof-interface.md +60 -0
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-route-gap-interface.md +82 -0
- package/sdd/99_toolchain/01_automation/ui-parity/runtime/playwright-runtime.mjs +16 -0
- package/sdd/99_toolchain/01_automation/ui-parity/runtime/static-runtime.mjs +6 -0
- package/sdd/99_toolchain/02_policies/.gitkeep +1 -0
- package/sdd/99_toolchain/02_policies/build-ast-governance-policy.md +22 -0
- package/sdd/99_toolchain/02_policies/compose-runtime-baseline-policy.md +24 -0
- package/sdd/99_toolchain/02_policies/convention-storage-policy.md +26 -0
- package/sdd/99_toolchain/02_policies/main-push-before-dev-deploy-policy.md +27 -0
- package/sdd/99_toolchain/02_policies/otro-orchestration-policy.md +30 -0
- package/sdd/99_toolchain/02_policies/regression-verification-policy.md +22 -0
- package/sdd/99_toolchain/03_templates/.gitkeep +1 -0
- package/sdd/99_toolchain/03_templates/asset_recipe_manifest.example.py +38 -0
- package/sdd/99_toolchain/03_templates/generated_assets/README.md +11 -0
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-lockup.svg +3 -0
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-mark.svg +3 -0
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-wordmark.svg +3 -0
- package/sdd/99_toolchain/03_templates/playwright_exactness_manifest.example.py +21 -0
- package/sdd/99_toolchain/README.md +23 -0
- package/sdd/README.md +21 -0
- package/server/.dockerignore +4 -0
- package/server/.env.example +19 -0
- package/server/Dockerfile +22 -0
- package/server/Dockerfile.dev +19 -0
- package/server/README.md +33 -0
- package/server/__init__.py +0 -0
- package/server/api/__init__.py +1 -0
- package/server/api/http/__init__.py +4 -0
- package/server/api/http/app.py +53 -0
- package/server/api/http/router.py +24 -0
- package/server/config.py +52 -0
- package/server/contexts/__init__.py +12 -0
- package/server/contexts/alerts/__init__.py +1 -0
- package/server/contexts/alerts/application/__init__.py +13 -0
- package/server/contexts/alerts/application/services.py +41 -0
- package/server/contexts/alerts/contracts/__init__.py +3 -0
- package/server/contexts/alerts/contracts/http/__init__.py +3 -0
- package/server/contexts/alerts/contracts/http/router.py +37 -0
- package/server/contexts/alerts/domain/__init__.py +15 -0
- package/server/contexts/alerts/domain/models.py +29 -0
- package/server/contexts/alerts/infrastructure/__init__.py +11 -0
- package/server/contexts/alerts/infrastructure/repository.py +41 -0
- package/server/contexts/auth/__init__.py +1 -0
- package/server/contexts/auth/application/__init__.py +3 -0
- package/server/contexts/auth/application/ports.py +10 -0
- package/server/contexts/auth/application/services.py +64 -0
- package/server/contexts/auth/contracts/__init__.py +4 -0
- package/server/contexts/auth/contracts/http/__init__.py +4 -0
- package/server/contexts/auth/contracts/http/dependencies.py +37 -0
- package/server/contexts/auth/contracts/http/router.py +19 -0
- package/server/contexts/auth/domain/__init__.py +3 -0
- package/server/contexts/auth/domain/models.py +24 -0
- package/server/contexts/auth/infrastructure/__init__.py +4 -0
- package/server/contexts/auth/infrastructure/adapters/memory.py +19 -0
- package/server/contexts/auth/infrastructure/adapters/mongodb.py +24 -0
- package/server/contexts/auth/infrastructure/adapters/sqlalchemy.py +74 -0
- package/server/contexts/auth/infrastructure/repository.py +28 -0
- package/server/contexts/catalog/__init__.py +1 -0
- package/server/contexts/catalog/application/__init__.py +28 -0
- package/server/contexts/catalog/application/ports.py +15 -0
- package/server/contexts/catalog/application/services.py +154 -0
- package/server/contexts/catalog/contracts/__init__.py +3 -0
- package/server/contexts/catalog/contracts/http/__init__.py +3 -0
- package/server/contexts/catalog/contracts/http/router.py +60 -0
- package/server/contexts/catalog/domain/__init__.py +45 -0
- package/server/contexts/catalog/domain/models.py +113 -0
- package/server/contexts/catalog/infrastructure/__init__.py +4 -0
- package/server/contexts/catalog/infrastructure/adapters/memory.py +62 -0
- package/server/contexts/catalog/infrastructure/repository.py +8 -0
- package/server/contexts/fulfillment/__init__.py +1 -0
- package/server/contexts/fulfillment/application/__init__.py +13 -0
- package/server/contexts/fulfillment/application/ports.py +20 -0
- package/server/contexts/fulfillment/application/services.py +85 -0
- package/server/contexts/fulfillment/contracts/__init__.py +3 -0
- package/server/contexts/fulfillment/contracts/http/__init__.py +3 -0
- package/server/contexts/fulfillment/contracts/http/router.py +40 -0
- package/server/contexts/fulfillment/domain/__init__.py +25 -0
- package/server/contexts/fulfillment/domain/models.py +73 -0
- package/server/contexts/fulfillment/infrastructure/__init__.py +13 -0
- package/server/contexts/fulfillment/infrastructure/adapters/memory.py +43 -0
- package/server/contexts/fulfillment/infrastructure/repository.py +97 -0
- package/server/contexts/health/__init__.py +1 -0
- package/server/contexts/health/application/__init__.py +3 -0
- package/server/contexts/health/application/services.py +2 -0
- package/server/contexts/health/contracts/__init__.py +3 -0
- package/server/contexts/health/contracts/http/__init__.py +3 -0
- package/server/contexts/health/contracts/http/router.py +10 -0
- package/server/contexts/inventory/__init__.py +1 -0
- package/server/contexts/inventory/application/__init__.py +28 -0
- package/server/contexts/inventory/application/ports.py +11 -0
- package/server/contexts/inventory/application/services.py +214 -0
- package/server/contexts/inventory/contracts/__init__.py +3 -0
- package/server/contexts/inventory/contracts/http/__init__.py +3 -0
- package/server/contexts/inventory/contracts/http/router.py +82 -0
- package/server/contexts/inventory/domain/__init__.py +33 -0
- package/server/contexts/inventory/domain/models.py +93 -0
- package/server/contexts/inventory/infrastructure/__init__.py +4 -0
- package/server/contexts/inventory/infrastructure/adapters/memory.py +24 -0
- package/server/contexts/inventory/infrastructure/repository.py +8 -0
- package/server/contexts/orders/__init__.py +1 -0
- package/server/contexts/orders/application/__init__.py +19 -0
- package/server/contexts/orders/application/services.py +127 -0
- package/server/contexts/orders/contracts/__init__.py +3 -0
- package/server/contexts/orders/contracts/http/__init__.py +3 -0
- package/server/contexts/orders/contracts/http/router.py +82 -0
- package/server/contexts/orders/domain/__init__.py +29 -0
- package/server/contexts/orders/domain/models.py +95 -0
- package/server/contexts/orders/infrastructure/__init__.py +7 -0
- package/server/contexts/orders/infrastructure/repository.py +104 -0
- package/server/contexts/shipping/__init__.py +1 -0
- package/server/contexts/shipping/application/__init__.py +13 -0
- package/server/contexts/shipping/application/services.py +92 -0
- package/server/contexts/shipping/contracts/__init__.py +3 -0
- package/server/contexts/shipping/contracts/http/__init__.py +3 -0
- package/server/contexts/shipping/contracts/http/router.py +40 -0
- package/server/contexts/shipping/domain/__init__.py +19 -0
- package/server/contexts/shipping/domain/models.py +48 -0
- package/server/contexts/shipping/infrastructure/__init__.py +9 -0
- package/server/contexts/shipping/infrastructure/repository.py +50 -0
- package/server/contexts/support/__init__.py +1 -0
- package/server/contexts/support/application/__init__.py +13 -0
- package/server/contexts/support/application/services.py +29 -0
- package/server/contexts/support/contracts/__init__.py +3 -0
- package/server/contexts/support/contracts/http/__init__.py +3 -0
- package/server/contexts/support/contracts/http/router.py +40 -0
- package/server/contexts/support/domain/__init__.py +13 -0
- package/server/contexts/support/domain/models.py +27 -0
- package/server/contexts/support/infrastructure/__init__.py +11 -0
- package/server/contexts/support/infrastructure/repository.py +70 -0
- package/server/contexts/user/__init__.py +1 -0
- package/server/contexts/user/application/__init__.py +3 -0
- package/server/contexts/user/application/ports.py +11 -0
- package/server/contexts/user/application/services.py +44 -0
- package/server/contexts/user/contracts/__init__.py +3 -0
- package/server/contexts/user/contracts/http/__init__.py +3 -0
- package/server/contexts/user/contracts/http/router.py +26 -0
- package/server/contexts/user/domain/__init__.py +3 -0
- package/server/contexts/user/domain/models.py +22 -0
- package/server/contexts/user/infrastructure/__init__.py +3 -0
- package/server/contexts/user/infrastructure/adapters/memory.py +27 -0
- package/server/contexts/user/infrastructure/adapters/mongodb.py +41 -0
- package/server/contexts/user/infrastructure/adapters/sqlalchemy.py +94 -0
- package/server/contexts/user/infrastructure/factory.py +28 -0
- package/server/data/README.md +24 -0
- package/server/data/bootstrap/alerts.json +38 -0
- package/server/data/bootstrap/auth_accounts.json +18 -0
- package/server/data/bootstrap/catalog_products.json +179 -0
- package/server/data/bootstrap/fulfillment_events.json +5 -0
- package/server/data/bootstrap/fulfillment_notes.json +5 -0
- package/server/data/bootstrap/fulfillment_tasks.json +50 -0
- package/server/data/bootstrap/inventory_levels.json +80 -0
- package/server/data/bootstrap/orders.json +62 -0
- package/server/data/bootstrap/shipping_shipments.json +50 -0
- package/server/data/bootstrap/support_faqs.json +26 -0
- package/server/data/bootstrap/users.json +20 -0
- package/server/data/bootstrap_loader.py +15 -0
- package/server/docker-entrypoint.sh +56 -0
- package/server/main.py +3 -0
- package/server/pyproject.toml +36 -0
- package/server/shared/__init__.py +1 -0
- package/server/shared/application/__init__.py +3 -0
- package/server/shared/application/health.py +2 -0
- package/server/shared/infrastructure/__init__.py +10 -0
- package/server/shared/infrastructure/runtime.py +6 -0
- package/server/shared/infrastructure/security.py +33 -0
- package/server/tests/e2e/test_domain_feature_flows.py +483 -0
- package/server/tests/test_health.py +49 -0
- package/server/uv.lock +1169 -0
- package/bin/agentic-dev.js +0 -9
- package/src/cli.js +0 -37
- package/src/init-command.js +0 -230
- package/src/lib/command.js +0 -14
- package/src/lib/fs.js +0 -92
- package/src/lib/git.js +0 -57
- package/src/lib/github.js +0 -77
- package/src/lib/prompt.js +0 -52
- package/src/lib/system.js +0 -15
- package/src/lib/template.js +0 -143
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Plan Governance
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
- `sdd/02_plan/`은 에이전트의 현재 개발 계획을 관리하는 루트다.
|
|
6
|
+
- 계획 문서는 히스토리를 쌓지 않고, 대상별 durable 파일을 덮어써 최종 일관성만 유지한다.
|
|
7
|
+
|
|
8
|
+
## Common Rule
|
|
9
|
+
|
|
10
|
+
- `02_plan`의 모든 폴더는 같은 규칙을 따른다.
|
|
11
|
+
- 각 폴더의 `README.md`는 현재 계획 규칙과 운영 방식을 설명한다.
|
|
12
|
+
- 실제 계획은 대상 식별자 기준 durable 문서를 직접 갱신하는 방식으로 유지한다.
|
|
13
|
+
- 개발계가 있는 대상은 `구현 -> build -> main push -> DEV(개발계) 배포 -> DEV 검수 -> 문서 갱신`을 기본 루틴으로 포함한다.
|
|
14
|
+
- 날짜 기반 임시 계획 메모나 히스토리성 plan 파일은 남기지 않는다.
|
|
15
|
+
|
|
16
|
+
## Section Rule
|
|
17
|
+
|
|
18
|
+
- `01_feature/`: 기능별 TODO
|
|
19
|
+
- `02_screen/`: 화면별 TODO
|
|
20
|
+
- `03_architecture/`: 구조, 거버넌스, 마이그레이션 같은 횡단 작업
|
|
21
|
+
- `04_data/`: 데이터 모델 정렬 계획
|
|
22
|
+
- `05_api/`: API contract/backlog 정렬 계획
|
|
23
|
+
- `06_iac/`: 인프라 작업
|
|
24
|
+
- `07_integration/`: 외부/내부 연동 계획
|
|
25
|
+
- `08_nonfunctional/`: 비기능 요구 정렬 계획
|
|
26
|
+
- `09_security/`: 보안 계획
|
|
27
|
+
- `10_test/`: 테스트 전략과 검증 계획
|
|
28
|
+
|
|
29
|
+
## Durable TODO Rule
|
|
30
|
+
|
|
31
|
+
- 기능 계획은 `sdd/02_plan/01_feature/<domain>_todos.md`를 갱신하고, 파일 안에서는 기능코드 기준으로만 관리한다.
|
|
32
|
+
- 화면 계획은 `sdd/02_plan/02_screen/<service>_todos.md`를 갱신하고, 파일 안에서는 화면코드 기준으로 관리한다.
|
|
33
|
+
- architecture, data, API, IAC, integration, nonfunctional, security, test 계획도 section별 durable 문서를 직접 갱신한다.
|
|
34
|
+
- 파일명은 날짜가 아니라 대상 식별자를 기준으로 정한다.
|
|
35
|
+
|
|
36
|
+
## Final-Only Rule
|
|
37
|
+
|
|
38
|
+
- `sdd/02_plan`에는 dated plan history를 두지 않는다.
|
|
39
|
+
- 과거 계획에서 여전히 유효한 내용은 durable governance, backlog, TODO 문서로 흡수한다.
|
|
40
|
+
- runtime log나 운영 이벤트 타임라인은 backend/application logging system이 맡고, plan은 항상 현재 기준만 보여준다.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Feature Build Summary Rule
|
|
2
|
+
|
|
3
|
+
## Canonical Rule
|
|
4
|
+
|
|
5
|
+
- feature 구현 결과는 overwrite-only durable build summary 파일로 관리한다.
|
|
6
|
+
- planning feature spec이 서비스 legacy 축과 domain canonical 축을 함께 가질 수 있으므로, build summary는 `service/`와 `domain/`의 큰 범주로 묶어 관리한다.
|
|
7
|
+
- 새 작업이 생겨도 같은 범주의 구현 설명은 같은 파일을 갱신한다.
|
|
8
|
+
|
|
9
|
+
## Location
|
|
10
|
+
|
|
11
|
+
- service-facing summary: `sdd/03_build/01_feature/service/`
|
|
12
|
+
- domain-facing summary: `sdd/03_build/01_feature/domain/`
|
|
13
|
+
|
|
14
|
+
## Recommended Sections
|
|
15
|
+
|
|
16
|
+
- covered planning artifacts
|
|
17
|
+
- implemented scope
|
|
18
|
+
- implementation shape
|
|
19
|
+
- key modules and contracts
|
|
20
|
+
- current runtime or UX behavior
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Account And Access
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifacts
|
|
4
|
+
|
|
5
|
+
- `sdd/01_planning/01_feature/auth_feature_spec.md`
|
|
6
|
+
- `sdd/01_planning/01_feature/user_feature_spec.md`
|
|
7
|
+
|
|
8
|
+
## Implemented Scope
|
|
9
|
+
|
|
10
|
+
- 인증과 사용자 baseline은 `auth`, `user` context로 분리되어 있다.
|
|
11
|
+
- 세션 발급, current user 조회, admin user surface 같은 핵심 access 흐름은 backend context와 frontend typed API 조합으로 구성된다.
|
|
12
|
+
|
|
13
|
+
## Implementation Shape
|
|
14
|
+
|
|
15
|
+
- backend owner는 `server/contexts/auth`, `server/contexts/user`다.
|
|
16
|
+
- frontend surface는 `client/platform`, `client/admin`, `client/mobile`에서 공통 auth/session contract를 소비한다.
|
|
17
|
+
|
|
18
|
+
## Current Behavior
|
|
19
|
+
|
|
20
|
+
- 템플릿은 로그인, current user, basic account 관리 예시를 current baseline으로 제공한다.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Catalog And Inventory
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifacts
|
|
4
|
+
|
|
5
|
+
- `sdd/01_planning/01_feature/catalog_feature_spec.md`
|
|
6
|
+
- `sdd/01_planning/01_feature/inventory_feature_spec.md`
|
|
7
|
+
|
|
8
|
+
## Implemented Scope
|
|
9
|
+
|
|
10
|
+
- 상품/카탈로그와 재고 baseline은 `catalog`, `inventory` context로 분리되어 있다.
|
|
11
|
+
- landing/platform surface는 catalog read model을, admin surface는 catalog/inventory 관리 contract를 사용한다.
|
|
12
|
+
|
|
13
|
+
## Implementation Shape
|
|
14
|
+
|
|
15
|
+
- backend owner는 `server/contexts/catalog`, `server/contexts/inventory`다.
|
|
16
|
+
- frontend는 service별 `client/*/src/api` 계층에서 typed response를 통해 contract를 소비한다.
|
|
17
|
+
|
|
18
|
+
## Current Behavior
|
|
19
|
+
|
|
20
|
+
- landing은 catalog discovery baseline, admin은 catalog/inventory 관리 baseline을 제공한다.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Ordering And Fulfillment
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifacts
|
|
4
|
+
|
|
5
|
+
- `sdd/01_planning/01_feature/order_feature_spec.md`
|
|
6
|
+
- `sdd/01_planning/01_feature/fulfillment_feature_spec.md`
|
|
7
|
+
- `sdd/01_planning/01_feature/shipping_feature_spec.md`
|
|
8
|
+
|
|
9
|
+
## Implemented Scope
|
|
10
|
+
|
|
11
|
+
- 주문, 처리, 배송 baseline은 `orders`, `fulfillment`, `shipping` context로 분리되어 있다.
|
|
12
|
+
- mobile/operator surface는 fulfillment/shipping read model을 사용하고, admin/platform은 order overview contract를 사용한다.
|
|
13
|
+
|
|
14
|
+
## Implementation Shape
|
|
15
|
+
|
|
16
|
+
- backend owner는 `server/contexts/orders`, `server/contexts/fulfillment`, `server/contexts/shipping`이다.
|
|
17
|
+
- frontend는 route/page 단위에서 typed API module을 통해 current contract를 소비한다.
|
|
18
|
+
|
|
19
|
+
## Current Behavior
|
|
20
|
+
|
|
21
|
+
- 템플릿은 주문 상태, 처리 현황, 배송 현황 같은 e-commerce baseline 흐름을 current example로 제공한다.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Support And Observability
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifacts
|
|
4
|
+
|
|
5
|
+
- `sdd/01_planning/01_feature/alerts_feature_spec.md`
|
|
6
|
+
- `sdd/01_planning/01_feature/support_feature_spec.md`
|
|
7
|
+
- `sdd/01_planning/01_feature/health_feature_spec.md`
|
|
8
|
+
|
|
9
|
+
## Implemented Scope
|
|
10
|
+
|
|
11
|
+
- admin alerts, support content, health probe baseline은 `alerts`, `support`, `health` context로 분리되어 있다.
|
|
12
|
+
- admin surface는 alerts/support current contract를, runtime baseline은 health probe를 사용한다.
|
|
13
|
+
|
|
14
|
+
## Implementation Shape
|
|
15
|
+
|
|
16
|
+
- backend owner는 `server/contexts/alerts`, `server/contexts/support`, `server/contexts/health`다.
|
|
17
|
+
- frontend는 admin 중심의 typed API와 status surface로 current contract를 노출한다.
|
|
18
|
+
|
|
19
|
+
## Current Behavior
|
|
20
|
+
|
|
21
|
+
- 템플릿은 운영 알림, 고객지원, health probe baseline을 current implementation 예시로 제공한다.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# domain surfaces
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifact
|
|
4
|
+
|
|
5
|
+
- `sdd/01_planning/01_feature/INDEX.md`
|
|
6
|
+
|
|
7
|
+
## Implemented Scope
|
|
8
|
+
|
|
9
|
+
- backend domain baseline은 `auth`, `user`, `catalog`, `inventory`, `orders`, `fulfillment`, `shipping`, `alerts`, `support`, `health` context를 중심으로 구성되어 있다.
|
|
10
|
+
- 각 domain feature spec은 현재 `server/contexts/*` 구현 owner 기준으로 유지된다.
|
|
11
|
+
|
|
12
|
+
## Implementation Shape
|
|
13
|
+
|
|
14
|
+
- API entrypoint는 `server/main.py`에서 통합되고, domain logic은 `server/contexts/*`에 분리된다.
|
|
15
|
+
- feature spec은 backend owner 기준으로 canonical domain split을 유지한다.
|
|
16
|
+
|
|
17
|
+
## Key Modules And Contracts
|
|
18
|
+
|
|
19
|
+
- `server/contexts/auth`
|
|
20
|
+
- `server/contexts/user`
|
|
21
|
+
- `server/contexts/catalog`
|
|
22
|
+
- `server/contexts/inventory`
|
|
23
|
+
- `server/contexts/orders`
|
|
24
|
+
- `server/contexts/fulfillment`
|
|
25
|
+
- `server/contexts/shipping`
|
|
26
|
+
- `server/contexts/alerts`
|
|
27
|
+
- `server/contexts/support`
|
|
28
|
+
- `server/contexts/health`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Admin Surface
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifacts
|
|
4
|
+
|
|
5
|
+
- `sdd/01_planning/01_feature/alerts_feature_spec.md`
|
|
6
|
+
- `sdd/01_planning/01_feature/catalog_feature_spec.md`
|
|
7
|
+
- `sdd/01_planning/01_feature/inventory_feature_spec.md`
|
|
8
|
+
- `sdd/01_planning/01_feature/support_feature_spec.md`
|
|
9
|
+
|
|
10
|
+
## Implemented Scope
|
|
11
|
+
|
|
12
|
+
- runtime root는 `client/admin/src/main.tsx -> AuthProvider -> BrowserRouter -> client/admin/src/app/App.tsx` 순서로 조립된다.
|
|
13
|
+
- public leaf는 `AdminLoginPage`이며, gated branch는 `ProtectedRoute -> AdminShell` 뒤에 `/`, `/queue`, `/support` route leaf를 둔다.
|
|
14
|
+
- route leaf는 `AdminDashboardPage`, `AdminQueuePage`, `AdminSupportPage`로 끝나고 backend leaf는 `server/main.py -> server/api/http/app.py -> server/api/http/router.py -> contexts/alerts/contracts/http/router.py`, `contexts/inventory/contracts/http/router.py`, `contexts/support/contracts/http/router.py` 체인으로 이어진다.
|
|
15
|
+
- admin surface는 alerts, inventory, support baseline을 current runtime tree로 제공한다.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Landing Surface
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifacts
|
|
4
|
+
|
|
5
|
+
- `sdd/01_planning/01_feature/catalog_feature_spec.md`
|
|
6
|
+
- `sdd/01_planning/01_feature/health_feature_spec.md`
|
|
7
|
+
|
|
8
|
+
## Implemented Scope
|
|
9
|
+
|
|
10
|
+
- runtime root는 `client/landing/src/main.tsx -> AuthProvider -> BrowserRouter -> client/landing/src/App.tsx` 순서로 조립된다.
|
|
11
|
+
- public branch는 `/`의 `LandingHomePage`, `/login`의 `LandingLoginPage`로 끝나며 gated branch는 `ProtectedRoute -> LandingShell -> /workspace -> LandingWorkspacePage` 체인이다.
|
|
12
|
+
- backend leaf는 `server/main.py -> server/api/http/app.py -> server/api/http/router.py -> contexts/catalog/contracts/http/router.py`, `contexts/health/contracts/http/router.py`, `contexts/user/contracts/http/router.py` 체인으로 이어진다.
|
|
13
|
+
- landing surface는 public discovery와 authenticated workspace baseline을 current runtime tree로 제공한다.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Mobile Surface
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifacts
|
|
4
|
+
|
|
5
|
+
- `sdd/01_planning/01_feature/auth_feature_spec.md`
|
|
6
|
+
- `sdd/01_planning/01_feature/fulfillment_feature_spec.md`
|
|
7
|
+
- `sdd/01_planning/01_feature/shipping_feature_spec.md`
|
|
8
|
+
|
|
9
|
+
## Implemented Scope
|
|
10
|
+
|
|
11
|
+
- runtime root는 `client/mobile/src/main.tsx -> AuthProvider -> BrowserRouter -> client/mobile/src/app/App.tsx` 순서로 조립된다.
|
|
12
|
+
- public leaf는 `LoginPage` 하나이며, gated branch는 `ProtectedRoute -> InShell` 뒤에 `/`, `/fulfillment`, `/shipping` route leaf를 둔다.
|
|
13
|
+
- route leaf는 `DashboardPage`, `FulfillmentPage`, `ShippingPage`로 끝나고 backend leaf는 `server/main.py -> server/api/http/app.py -> server/api/http/router.py -> contexts/auth/contracts/http/router.py`, `contexts/fulfillment/contracts/http/router.py`, `contexts/shipping/contracts/http/router.py` 체인으로 이어진다.
|
|
14
|
+
- mobile surface는 auth, fulfillment, shipping baseline을 current runtime tree로 제공한다.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Platform Surface
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifacts
|
|
4
|
+
|
|
5
|
+
- `sdd/01_planning/01_feature/auth_feature_spec.md`
|
|
6
|
+
- `sdd/01_planning/01_feature/catalog_feature_spec.md`
|
|
7
|
+
- `sdd/01_planning/01_feature/order_feature_spec.md`
|
|
8
|
+
|
|
9
|
+
## Implemented Scope
|
|
10
|
+
|
|
11
|
+
- runtime root는 `client/platform/src/main.tsx -> AuthProvider -> BrowserRouter -> client/platform/src/app/App.tsx` 순서로 조립된다.
|
|
12
|
+
- public leaf는 `LoginPage`이며, gated branch는 `ProtectedRoute -> AppShell` 뒤에 `/`와 `/orders` route leaf를 둔다.
|
|
13
|
+
- route leaf는 `DashboardPage`, `OrdersPage`로 끝나고 backend leaf는 `server/main.py -> server/api/http/app.py -> server/api/http/router.py -> contexts/auth/contracts/http/router.py`, `contexts/catalog/contracts/http/router.py`, `contexts/orders/contracts/http/router.py` 체인으로 이어진다.
|
|
14
|
+
- platform surface는 인증, catalog, orders baseline을 current runtime tree로 제공한다.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Screen Build Summary Rule
|
|
2
|
+
|
|
3
|
+
## Canonical Rule
|
|
4
|
+
|
|
5
|
+
- screen 구현 결과는 screen별 overwrite-only durable build summary 파일로 관리한다.
|
|
6
|
+
- planning service split을 그대로 따라 `sdd/03_build/02_screen/<service>/` 아래에 둔다.
|
|
7
|
+
- screen summary는 현재 구현 상태만 설명하고, dated execution history를 별도 섹션으로 두지 않는다.
|
|
8
|
+
|
|
9
|
+
## Location
|
|
10
|
+
|
|
11
|
+
- 예:
|
|
12
|
+
- `sdd/03_build/02_screen/mobile/MOB-S001_example.md`
|
|
13
|
+
- `sdd/03_build/02_screen/platform/PLT-S001_example.md`
|
|
14
|
+
|
|
15
|
+
## Recommended Sections
|
|
16
|
+
|
|
17
|
+
- covered planning artifact
|
|
18
|
+
- implemented scope
|
|
19
|
+
- implementation shape
|
|
20
|
+
- key modules/assets/contracts
|
|
21
|
+
- current user-visible behavior
|
|
22
|
+
|
|
23
|
+
## Template
|
|
24
|
+
|
|
25
|
+
- [`_screen_build_template.md`](_screen_build_template.md)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Screen Build Summary Template
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifact
|
|
4
|
+
|
|
5
|
+
- `sdd/01_planning/02_screen/<screen_spec>.pdf`
|
|
6
|
+
|
|
7
|
+
## Implemented Scope
|
|
8
|
+
|
|
9
|
+
-
|
|
10
|
+
|
|
11
|
+
## Implementation Shape
|
|
12
|
+
|
|
13
|
+
-
|
|
14
|
+
|
|
15
|
+
## Key Modules, Assets, And Contracts
|
|
16
|
+
|
|
17
|
+
-
|
|
18
|
+
- canonical Playwright suite id:
|
|
19
|
+
- canonical exactness runner: `python3 sdd/99_toolchain/01_automation/run_playwright_exactness.py --suite <suite-id> --base-url <url>`
|
|
20
|
+
- exactness harness:
|
|
21
|
+
- results artifact:
|
|
22
|
+
|
|
23
|
+
## Current User-Visible Behavior
|
|
24
|
+
|
|
25
|
+
-
|
|
26
|
+
- local exactness gate status:
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Architecture Build Summary
|
|
2
|
+
|
|
3
|
+
- 저장해둘 가치가 있는 구조/거버넌스 구현 요약을 current-state로 유지한다.
|
|
4
|
+
- planning architecture governance가 실제 저장소 구조와 문서 구조에 어떻게 반영됐는지를 durable summary로 남긴다.
|
|
5
|
+
|
|
6
|
+
## Current Documents
|
|
7
|
+
|
|
8
|
+
- [architecture_document_governance.md](architecture_document_governance.md)
|
|
9
|
+
- [repository_governance.md](repository_governance.md)
|
|
10
|
+
- [toolchain_governance.md](toolchain_governance.md)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# architecture document governance
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifacts
|
|
4
|
+
|
|
5
|
+
- `sdd/02_plan/03_architecture/architecture_document_governance.md`
|
|
6
|
+
|
|
7
|
+
## Implemented Scope
|
|
8
|
+
|
|
9
|
+
- `03_architecture` planning root를 공통 아키텍처와 특화 아키텍처를 함께 담는 구조로 정리했다.
|
|
10
|
+
- architecture planning이 `frontend`, `backend`, `infra`, `tech-research` split을 사용할 수 있게 맞췄다.
|
|
11
|
+
- 데이터 모델링은 `04_data` 경계로 분리된다는 점을 planning 문서에 반영했다.
|
|
12
|
+
|
|
13
|
+
## Implementation Shape
|
|
14
|
+
|
|
15
|
+
- 공통 구조 문서 [`architecture_document_structure.md`](../../01_planning/03_architecture/architecture_document_structure.md)에서 architecture 범위와 문서 구조를 고정했다.
|
|
16
|
+
- `frontend/`, `backend/`, `infra/`, `tech-research/` 하위 README를 추가해 특화 문서의 canonical 위치를 만들었다.
|
|
17
|
+
- `04_data` README/INDEX는 데이터 모델링 planning root라는 경계를 설명하도록 맞췄다.
|
|
18
|
+
|
|
19
|
+
## Key Modules And Contracts
|
|
20
|
+
|
|
21
|
+
- [`sdd/01_planning/03_architecture/README.md`](../../01_planning/03_architecture/README.md)
|
|
22
|
+
- [`sdd/01_planning/03_architecture/INDEX.md`](../../01_planning/03_architecture/INDEX.md)
|
|
23
|
+
- [`sdd/01_planning/03_architecture/architecture_document_structure.md`](../../01_planning/03_architecture/architecture_document_structure.md)
|
|
24
|
+
- [`sdd/01_planning/04_data/README.md`](../../01_planning/04_data/README.md)
|
|
25
|
+
- [`sdd/02_plan/03_architecture/architecture_document_governance.md`](../../02_plan/03_architecture/architecture_document_governance.md)
|
|
26
|
+
|
|
27
|
+
## Current Behavior
|
|
28
|
+
|
|
29
|
+
- architecture planning은 root common docs와 specialized subfolders를 함께 갖는 구조로 정리돼 있다.
|
|
30
|
+
- 데이터 모델링은 architecture 문서가 아니라 `04_data` planning root에서 다루도록 경계가 고정됐다.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# build ast runtime tree governance
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifact
|
|
4
|
+
|
|
5
|
+
- `sdd/02_plan/03_architecture/build_ast_runtime_tree_governance.md`
|
|
6
|
+
|
|
7
|
+
## Implemented Scope
|
|
8
|
+
|
|
9
|
+
- `scripts/dev/audit_sdd_build_ast.py`가 템플릿 `sdd/03_build` current-state를 AST-style runtime tree 기준으로 점수화한다.
|
|
10
|
+
- service build summary는 `main.tsx -> AuthProvider -> BrowserRouter -> App -> ProtectedRoute/shell -> route leaf -> backend contract leaf` 순서로 다시 정렬했다.
|
|
11
|
+
- `.agent`, `.claude/agents`, `.claude/skills/sdd*`, `.codex/skills/SKILL.md`, `.codex/skills/sdd`를 canonical agentic surface로 추가했다.
|
|
12
|
+
- infra baseline은 `aws/data`, `aws/domain`, `openstack/server` provider-first split을 기준으로 문서와 Terraform skeleton을 유지한다.
|
|
13
|
+
|
|
14
|
+
## Key Modules And Contracts
|
|
15
|
+
|
|
16
|
+
- `scripts/dev/audit_sdd_build_ast.py`
|
|
17
|
+
- `.agent/ralph.sh`
|
|
18
|
+
- `.agent/ralph-supervisor.sh`
|
|
19
|
+
- `.claude/agents/`
|
|
20
|
+
- `.claude/skills/sdd/SKILL.md`
|
|
21
|
+
- `.claude/skills/sdd-development/SKILL.md`
|
|
22
|
+
- `.codex/skills/SKILL.md`
|
|
23
|
+
- `.codex/skills/sdd/SKILL.md`
|
|
24
|
+
- `infra/terraform/README.md`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# repository governance
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifact
|
|
4
|
+
|
|
5
|
+
- `sdd/02_plan/03_architecture/repository_governance.md`
|
|
6
|
+
|
|
7
|
+
## Implemented Scope
|
|
8
|
+
|
|
9
|
+
- 템플릿 저장소는 `server`, `client`, `infra`, `.github`, `.codex`, `sdd`를 기준으로 유지된다.
|
|
10
|
+
- SDD는 final-only delivery system으로 동작한다.
|
|
11
|
+
- planning data modeling root는 `04_data`로 유지된다.
|
|
12
|
+
- screen build summary는 `03_build/02_screen/<service>/` split을 기준으로 유지된다.
|
|
13
|
+
|
|
14
|
+
## Implementation Shape
|
|
15
|
+
|
|
16
|
+
- backend는 hexagonal + DDD domain split을 사용한다.
|
|
17
|
+
- frontend는 4개 service app split을 사용한다.
|
|
18
|
+
- automation과 repo-local skill은 `sdd/99_toolchain`과 `.codex/skills`에 함께 정리된다.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# toolchain governance
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifact
|
|
4
|
+
|
|
5
|
+
- `sdd/02_plan/03_architecture/toolchain_governance.md`
|
|
6
|
+
|
|
7
|
+
## Implemented Scope
|
|
8
|
+
|
|
9
|
+
- toolchain policy 정본에 regression verification rule을 추가했다.
|
|
10
|
+
- Playwright exactness runner/manifest를 local screen exactness의 canonical toolchain entrypoint로 추가했다.
|
|
11
|
+
- `AGENTS.md`, `.codex/skills/sdd/SKILL.md`, `sdd/99_toolchain/01_automation/README.md`가 같은 회귀 검수 기준을 공유한다.
|
|
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/04_verify/10_test`에 regression verification current-state 문서를 추가했다.
|
|
14
|
+
- `.claude/skills/sdd-dev/SKILL.md`의 stale Codex canonical path를 현재 `.codex/skills/sdd/` 구조로 교체했다.
|
|
15
|
+
- `.codex/skills/sdd/SKILL.md`와 `.claude/skills/sdd-dev/SKILL.md`에서 DEV/PROD rollout gate를 explicit deployment scope 조건으로 제한했다.
|
|
16
|
+
- 디자인 가이드 builder 안내는 고정 file path 대신 `sdd/99_toolchain/01_automation/README.md`와 실제 존재하는 builder inventory 기준으로 정리했다.
|
|
17
|
+
- 프로젝트 루트에 `SDD_SKILL.md`를 추가해 `sdd` skill의 용도, canonical path, 핵심 guardrail을 한 파일에서 요약했다.
|
|
18
|
+
- `SDD_SKILL.md`를 확장해 workflow 단계, `sdd/` folder structure, feature/screen/architecture/data/test/operate flow 설명을 명시적으로 정리했다.
|
|
19
|
+
- `SDD_SKILL.md`를 추가 확장해 toolchain, visual fidelity, exactness, functional alignment를 builder/harness/contract 관점으로 설명했다.
|
|
20
|
+
- `SDD_SKILL.md`를 다시 확장해 trigger, non-use case, artifact governance, section routing, schema parity, regression verification, rollout, completion gate까지 포함하는 루트 해설서로 정리했다.
|
|
21
|
+
- ignored 상태였던 `.claude/settings.local.json`, `.agent/sdd-build-ast-audit.json`, `.agent/runs/README.md`를 template-tracked asset으로 승격했다.
|
|
22
|
+
- generated/cache 성격의 `node_modules`, `dist`, `.venv`, `.terraform`, runtime run output은 ignore 유지 대상으로 명시했다.
|
|
23
|
+
|
|
24
|
+
## Implementation Shape
|
|
25
|
+
|
|
26
|
+
- 정책 정본은 `sdd/99_toolchain/02_policies/regression-verification-policy.md`에 둔다.
|
|
27
|
+
- 실행 요약은 `AGENTS.md`, skill rule은 `.codex/skills/sdd/SKILL.md`와 `.claude/skills/sdd/SKILL.md`, toolchain entry는 `sdd/99_toolchain/01_automation/README.md`가 담당한다.
|
|
28
|
+
- Playwright suite registry는 `playwright_exactness_manifest.py`, canonical runner는 `run_playwright_exactness.py`가 담당한다.
|
|
29
|
+
- 회귀 검수는 direct/upstream/downstream/shared surface selection을 retained SDD workflow로 유지한다.
|
|
30
|
+
- local Claude alias는 현재 Codex canonical skill path를 stale alias path 없이 직접 가리킨다.
|
|
31
|
+
- rollout은 `sdd/05_operate` 존재만으로 자동 요구되지 않고, explicit deployment scope 또는 저장소 completion policy가 있을 때만 gate가 열린다.
|
|
32
|
+
- 루트 entrypoint 문서는 입문 설명을 담당하고, canonical 판단 기준은 local skill 원문과 toolchain policy가 담당한다.
|
|
33
|
+
- 루트 entrypoint 문서는 visual proof와 functional proof를 분리해서 설명하고, 둘 다 retained evidence가 필요하다는 점을 명시한다.
|
|
34
|
+
- 루트 entrypoint 문서는 skill 전체 mental model을 설명하고, 실제 강제 rule은 canonical skill/policy 문서가 담당한다.
|
|
35
|
+
- local-only scaffold 중 downstream repo가 그대로 재사용해야 하는 파일은 ignore 예외로 승격하고, generated artifact는 계속 배제한다.
|
|
36
|
+
- screen template는 suite id, canonical runner command, artifact path를 기본 항목으로 요구한다.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# dev runtime delivery
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifacts
|
|
4
|
+
|
|
5
|
+
- `sdd/02_plan/06_iac/dev_runtime_delivery.md`
|
|
6
|
+
|
|
7
|
+
## Implemented Scope
|
|
8
|
+
|
|
9
|
+
- 템플릿 repo는 frontend build, backend test, screen spec capture/PDF generation을 current delivery baseline으로 유지한다.
|
|
10
|
+
- runtime bootstrap과 proof tooling은 `sdd/99_toolchain/01_automation` current path를 기준으로 설명한다.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# template runtime delivery
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifact
|
|
4
|
+
|
|
5
|
+
- `sdd/02_plan/06_iac/template_runtime_delivery.md`
|
|
6
|
+
|
|
7
|
+
## Structure Tree
|
|
8
|
+
|
|
9
|
+
- template runtime delivery
|
|
10
|
+
- root compose baseline
|
|
11
|
+
- 4개 frontend surface
|
|
12
|
+
- `server` HTTP runtime
|
|
13
|
+
- 기본 `postgres`
|
|
14
|
+
- optional DB profile: `mysql`, `mariadb`, `mongo`
|
|
15
|
+
- dedicated host overlay
|
|
16
|
+
- `infra/compose/dev.yml`
|
|
17
|
+
- `infra/compose/prod.yml`
|
|
18
|
+
- provider-first delivery topology
|
|
19
|
+
- `infra/terraform/aws/domain`
|
|
20
|
+
- `infra/terraform/openstack/server`
|
|
21
|
+
- `infra/terraform/aws/data`
|
|
22
|
+
|
|
23
|
+
## Cross-Cutting Links
|
|
24
|
+
|
|
25
|
+
- root `compose.yml`은 템플릿 저장소의 canonical dev-focused runtime baseline이자 초기 검증 진입점이다.
|
|
26
|
+
- `infra/compose/dev.yml`, `infra/compose/prod.yml`은 dedicated DEV(개발계)/PROD host layout을 위한 overlay다.
|
|
27
|
+
- remote delivery topology는 `AWS edge/domain -> OpenStack backend compute -> AWS data plane` current split을 따른다.
|
|
28
|
+
- CI workflow는 current compose/runtime baseline과 provider-first Terraform skeleton을 함께 검증한다.
|
|
29
|
+
|
|
30
|
+
## Key Modules And Contracts
|
|
31
|
+
|
|
32
|
+
- `compose.yml`
|
|
33
|
+
- `.env.example`
|
|
34
|
+
- `server/Dockerfile.dev`
|
|
35
|
+
- `server/docker-entrypoint.sh`
|
|
36
|
+
- `client/landing/Dockerfile.dev`
|
|
37
|
+
- `client/platform/Dockerfile.dev`
|
|
38
|
+
- `client/mobile/Dockerfile.dev`
|
|
39
|
+
- `client/admin/Dockerfile.dev`
|
|
40
|
+
- `infra/compose/dev.yml`
|
|
41
|
+
- `infra/compose/prod.yml`
|
|
42
|
+
- `infra/compose/.env.dev.example`
|
|
43
|
+
- `infra/compose/.env.prod.example`
|
|
44
|
+
- `infra/terraform/README.md`
|
|
45
|
+
- `infra/terraform/aws/data/`
|
|
46
|
+
- `infra/terraform/aws/domain/`
|
|
47
|
+
- `infra/terraform/openstack/server/`
|
|
48
|
+
- `.github/workflows/ci.yml`
|
|
49
|
+
- `.github/workflows/frontend-parity.yml`
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frontend live integration
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifact
|
|
4
|
+
|
|
5
|
+
- `sdd/02_plan/07_integration/frontend_live_integration.md`
|
|
6
|
+
|
|
7
|
+
## Implemented Scope
|
|
8
|
+
|
|
9
|
+
- service app은 backend domain contract와 typed API helper를 통해 연결된다.
|
|
10
|
+
- landing/catalog, mobile/fulfillment-shipping, admin/alerts-orders, platform/catalog-orders-support 흐름을 current baseline으로 유지한다.
|
|
11
|
+
- mobile template shared lib에 `useSpeechRecognitionInput.ts`를 추가해 browser Web Speech API 입력을 consumer screen에서 재사용할 수 있게 했다.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Test Build Summary
|
|
2
|
+
|
|
3
|
+
- 반복 사용하는 검증 harness와 parity surface를 current-state로 요약한다.
|
|
4
|
+
- regression verification current-state summary도 같은 section에서 유지한다.
|
|
5
|
+
|
|
6
|
+
## Current Documents
|
|
7
|
+
|
|
8
|
+
- [verification_harness.md](verification_harness.md)
|
|
9
|
+
- [regression_verification.md](regression_verification.md)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# regression verification
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifact
|
|
4
|
+
|
|
5
|
+
- `sdd/02_plan/10_test/regression_verification.md`
|
|
6
|
+
|
|
7
|
+
## Implemented Scope
|
|
8
|
+
|
|
9
|
+
- regression verification을 direct/upstream/downstream/shared surface selection 기준으로 템플릿 workflow에 반영했다.
|
|
10
|
+
- selected regression surface는 `AGENTS.md`, skill, toolchain, test planning 문서와 연결된다.
|
|
11
|
+
- automation gap은 scope 축소가 아니라 residual risk 문서화 대상으로 유지한다.
|
|
12
|
+
|
|
13
|
+
## Implementation Shape
|
|
14
|
+
|
|
15
|
+
- direct target-only verification 금지 rule을 policy, skill, toolchain entrypoint에 공통 반영했다.
|
|
16
|
+
- test harness 문서는 regression surface selection을 대체하지 않고, 선택된 surface를 검증하는 실행 수단으로 정리했다.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# verification harness
|
|
2
|
+
|
|
3
|
+
## Covered Planning Artifact
|
|
4
|
+
|
|
5
|
+
- `sdd/02_plan/10_test/verification_strategy.md`
|
|
6
|
+
|
|
7
|
+
## Implemented Scope
|
|
8
|
+
|
|
9
|
+
- backend pytest, frontend build, parity harness가 current verification surface다.
|
|
10
|
+
- parity artifact는 stable current path를 사용하도록 유지한다.
|
|
11
|
+
- regression verification baseline은 별도 durable 문서에서 selected surface를 정하고, harness는 그 surface를 채우는 실행 수단으로 사용한다.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Build Governance
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
- `sdd/03_build/`는 실제 구현 결과를 사람이 빠르게 읽을 수 있게 정리하는 루트다.
|
|
6
|
+
- `02_plan`이 무엇을 할지 관리한다면, `03_build`는 무엇으로 어떻게 구현했는지를 정리한다.
|
|
7
|
+
|
|
8
|
+
## Canonical Rule
|
|
9
|
+
|
|
10
|
+
- `sdd/03_build/`의 durable section은 `sdd/02_plan/`의 top-level 구조를 그대로 따른다.
|
|
11
|
+
- feature 구현 요약은 `sdd/03_build/01_feature/` 아래 service 또는 domain 단위의 큰 범주 build summary로 유지한다.
|
|
12
|
+
- screen 구현 요약은 `sdd/03_build/02_screen/<service>/` 아래 screen별 durable build summary로 유지한다.
|
|
13
|
+
- architecture, delivery, validation harness처럼 장기 유지가 필요한 요약은 대응되는 section 번호 아래에 둔다.
|
|
14
|
+
- build summary는 TODO보다 상세해야 하며, 최소한 다음을 포함한다:
|
|
15
|
+
- 어떤 planning 산출물을 현재 문서가 흡수하는지
|
|
16
|
+
- 구현된 범위
|
|
17
|
+
- 실제 사용한 모듈/컴포넌트/자산/계약
|
|
18
|
+
- 현재 구현 형태 요약
|
|
19
|
+
- 현재 사용자/운영자 관점에서 보이는 동작
|
|
20
|
+
- build summary 본문은 현재 구현 상태만 설명하고, 일시적 작업 순서나 시행착오는 SDD에 별도 누적하지 않는다.
|
|
21
|
+
|
|
22
|
+
## Overwrite Rule
|
|
23
|
+
|
|
24
|
+
- `sdd/03_build`는 dated execution history를 보관하지 않는다.
|
|
25
|
+
- 같은 feature, screen, architecture, delivery 영역의 후속 작업이 생기면 기존 build summary 파일을 덮어써서 최종 일관성만 유지한다.
|
|
26
|
+
|
|
27
|
+
## Sections
|
|
28
|
+
|
|
29
|
+
- `01_feature/`: 기능별 구현 요약
|
|
30
|
+
- `02_screen/`: 화면별 구현 요약
|
|
31
|
+
- `03_architecture/`: 저장해둘 가치가 있는 구조/거버넌스 구현 요약
|
|
32
|
+
- `06_iac/`: 배포/런타임 delivery 요약
|
|
33
|
+
- `07_integration/`: 연동 구현 요약
|
|
34
|
+
- `08_nonfunctional/`: 비기능 구현 요약
|
|
35
|
+
- `10_test/`: 반복 사용되는 검증 harness/validation surface 요약
|