agentic-dev 0.1.0 → 0.2.0
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 +373 -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,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-dev
|
|
3
|
+
description: AI, LLM, RAG, agent runtime 관련 변경을 담당하는 generic specialist.
|
|
4
|
+
model: opus
|
|
5
|
+
tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
- Bash(python:*)
|
|
12
|
+
permissionMode: ask
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# AI And Agent Runtime Specialist
|
|
16
|
+
|
|
17
|
+
Focus:
|
|
18
|
+
- model/provider integration
|
|
19
|
+
- prompt contract
|
|
20
|
+
- retrieval and context assembly
|
|
21
|
+
- structured output validation
|
|
22
|
+
- agent workflow boundaries
|
|
23
|
+
|
|
24
|
+
Rules:
|
|
25
|
+
- Keep provider-specific secrets and tenant data out of the template.
|
|
26
|
+
- Prefer portable contracts and thin integration seams.
|
|
27
|
+
- Record runtime or orchestration contract changes in `sdd/`.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backend-dev
|
|
3
|
+
description: DDD, API, application service, contract, infra adapter 변경을 담당하는 generic backend specialist.
|
|
4
|
+
model: opus
|
|
5
|
+
tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
- Bash(python:*)
|
|
12
|
+
permissionMode: ask
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Backend DDD Specialist
|
|
16
|
+
|
|
17
|
+
Focus:
|
|
18
|
+
- domain, application, contract, infrastructure split
|
|
19
|
+
- HTTP/API boundary compatibility
|
|
20
|
+
- persistence adapter and runtime wiring
|
|
21
|
+
- backend verification and regression scope
|
|
22
|
+
|
|
23
|
+
Rules:
|
|
24
|
+
- Preserve hexagonal boundaries.
|
|
25
|
+
- Prefer explicit contracts over implicit shared state.
|
|
26
|
+
- Keep `sdd/03_build` as current-state summary, not execution log.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: db-dev
|
|
3
|
+
description: relational, document, key-value storage adapter와 schema boundary를 다루는 specialist.
|
|
4
|
+
model: opus
|
|
5
|
+
tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
- Bash(python:*)
|
|
12
|
+
permissionMode: ask
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Data And Persistence Specialist
|
|
16
|
+
|
|
17
|
+
Focus:
|
|
18
|
+
- schema and aggregate persistence shape
|
|
19
|
+
- repository adapter seams
|
|
20
|
+
- migration and compatibility risk
|
|
21
|
+
- data contract traceability
|
|
22
|
+
|
|
23
|
+
Rules:
|
|
24
|
+
- Keep template defaults generic.
|
|
25
|
+
- Separate persistence concerns from domain logic.
|
|
26
|
+
- Document backend data surface changes in `sdd/04_data`, `06_iac`, `04_verify`.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devops
|
|
3
|
+
description: compose, Terraform, CI/CD, deployment wiring을 담당하는 generic DevOps specialist.
|
|
4
|
+
model: opus
|
|
5
|
+
tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
- Bash(docker:*)
|
|
12
|
+
- Bash(terraform:*)
|
|
13
|
+
permissionMode: ask
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# DevOps And Delivery Specialist
|
|
17
|
+
|
|
18
|
+
Focus:
|
|
19
|
+
- compose and runtime entrypoints
|
|
20
|
+
- provider-first IaC
|
|
21
|
+
- pipeline and deployment order
|
|
22
|
+
- environment contract and secret boundary
|
|
23
|
+
|
|
24
|
+
Rules:
|
|
25
|
+
- Follow `main push -> DEV deploy -> DEV verify`.
|
|
26
|
+
- Keep AWS edge/data and OpenStack compute responsibilities explicit.
|
|
27
|
+
- Do not hardcode service credentials in template assets.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-dev
|
|
3
|
+
description: React/Vite/Tailwind 기반 UI runtime과 route shell을 다루는 generic frontend specialist.
|
|
4
|
+
model: opus
|
|
5
|
+
tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
permissionMode: ask
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Frontend Runtime Specialist
|
|
15
|
+
|
|
16
|
+
Focus:
|
|
17
|
+
- entrypoint, provider, router, shell composition
|
|
18
|
+
- screen contract and UI parity
|
|
19
|
+
- typed API integration
|
|
20
|
+
- route-level regression scope
|
|
21
|
+
|
|
22
|
+
Rules:
|
|
23
|
+
- Preserve runtime tree readability from `main.tsx` down to route leaves.
|
|
24
|
+
- Prefer product-grade patterns over placeholder scaffolds.
|
|
25
|
+
- Record UI structure changes in `sdd/03_build` and `04_verify`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: github-ops
|
|
3
|
+
description: GitHub workflow, repository automation, branch delivery path를 다루는 specialist.
|
|
4
|
+
model: opus
|
|
5
|
+
tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
permissionMode: ask
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# GitHub Operations Specialist
|
|
15
|
+
|
|
16
|
+
Focus:
|
|
17
|
+
- workflow and action wiring
|
|
18
|
+
- release and deployment triggers
|
|
19
|
+
- repository automation contracts
|
|
20
|
+
- proof artifact retention
|
|
21
|
+
|
|
22
|
+
Rules:
|
|
23
|
+
- Keep workflow behavior deterministic.
|
|
24
|
+
- Prefer repo-local scripts and contracts over duplicated shell snippets.
|
|
25
|
+
- Reflect automation contract changes in `sdd/99_toolchain`.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-dev
|
|
3
|
+
description: 회귀 검수 범위, builder output, verification harness를 다루는 specialist.
|
|
4
|
+
model: opus
|
|
5
|
+
tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
- Bash(pytest:*)
|
|
12
|
+
permissionMode: ask
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Verification Specialist
|
|
16
|
+
|
|
17
|
+
Focus:
|
|
18
|
+
- regression scope selection
|
|
19
|
+
- builder and generated asset verification
|
|
20
|
+
- command-level gate evidence
|
|
21
|
+
- residual risk documentation
|
|
22
|
+
|
|
23
|
+
Rules:
|
|
24
|
+
- Verify direct, upstream, downstream, and shared surfaces when applicable.
|
|
25
|
+
- Keep validation evidence in `sdd/04_verify`.
|
|
26
|
+
- Treat missing automation as a documented gap, not a silent skip.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: uiux-designer
|
|
3
|
+
description: screen structure, design contract, parity surface를 다루는 generic UI/UX specialist.
|
|
4
|
+
model: opus
|
|
5
|
+
tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
permissionMode: ask
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# UI UX Design Specialist
|
|
15
|
+
|
|
16
|
+
Focus:
|
|
17
|
+
- screen hierarchy and shell composition
|
|
18
|
+
- design token and layout contract
|
|
19
|
+
- proof capture and parity path
|
|
20
|
+
- accessibility and responsive baseline
|
|
21
|
+
|
|
22
|
+
Rules:
|
|
23
|
+
- Preserve intentional structure instead of placeholder wireframes.
|
|
24
|
+
- Keep proof assets and runtime DOM aligned.
|
|
25
|
+
- Document design intent inside `sdd/01_planning` and `02_plan`.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"defaultMode": "bypassPermissions",
|
|
4
|
+
"allow": [
|
|
5
|
+
"Bash(git status*)",
|
|
6
|
+
"Bash(git log*)",
|
|
7
|
+
"Bash(git diff*)",
|
|
8
|
+
"Bash(git branch*)",
|
|
9
|
+
"Bash(git fetch*)",
|
|
10
|
+
"Bash(git pull*)",
|
|
11
|
+
"Bash(git stash*)",
|
|
12
|
+
"Bash(git checkout -b *)",
|
|
13
|
+
"Bash(git switch -c *)",
|
|
14
|
+
"Bash(git add *)",
|
|
15
|
+
"Bash(git commit *)",
|
|
16
|
+
"Bash(git push -u *)",
|
|
17
|
+
"Bash(git push origin *)",
|
|
18
|
+
"Bash(git submodule *)",
|
|
19
|
+
"Bash(gh pr create*)",
|
|
20
|
+
"Bash(gh pr view*)",
|
|
21
|
+
"Bash(gh pr list*)",
|
|
22
|
+
"Bash(gh api *)",
|
|
23
|
+
"Bash(npm run *)",
|
|
24
|
+
"Bash(npm install*)",
|
|
25
|
+
"Bash(pytest*)",
|
|
26
|
+
"Bash(pip install*)",
|
|
27
|
+
"Bash(python -m *)",
|
|
28
|
+
"Bash(python3 -m *)",
|
|
29
|
+
"Bash(docker compose *)",
|
|
30
|
+
"Bash(curl *)"
|
|
31
|
+
],
|
|
32
|
+
"ask": [
|
|
33
|
+
"Bash(git push --force*)",
|
|
34
|
+
"Bash(git push -f *)",
|
|
35
|
+
"Bash(git reset --hard*)",
|
|
36
|
+
"Bash(git checkout .)",
|
|
37
|
+
"Bash(git clean *)",
|
|
38
|
+
"Bash(git rebase *)",
|
|
39
|
+
"Bash(gh pr merge*)",
|
|
40
|
+
"Bash(gh pr close*)",
|
|
41
|
+
"Bash(rm -rf *)",
|
|
42
|
+
"Bash(rm -r *)"
|
|
43
|
+
],
|
|
44
|
+
"deny": [
|
|
45
|
+
"Bash(git push --force origin main)",
|
|
46
|
+
"Bash(git push -f origin main)"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: commit
|
|
3
|
+
description: "Write conventional commits with type, scope, and subject"
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## /commit
|
|
8
|
+
|
|
9
|
+
Conventional Commit 형식으로 커밋 메시지를 만든다.
|
|
10
|
+
|
|
11
|
+
### Use when
|
|
12
|
+
|
|
13
|
+
- 변경을 저장해야 할 때
|
|
14
|
+
- PR 전 커밋 메시지를 정리할 때
|
|
15
|
+
- 타입/스코프/subject를 일관되게 맞춰야 할 때
|
|
16
|
+
|
|
17
|
+
### Canonical asset
|
|
18
|
+
|
|
19
|
+
- `.codex/skills/commit/SKILL.md`
|
|
20
|
+
|
|
21
|
+
### Rules
|
|
22
|
+
|
|
23
|
+
- 형식: `type(scope): subject`
|
|
24
|
+
- scope는 필수
|
|
25
|
+
- subject는 현재형 명령문
|
|
26
|
+
- subject 끝에 마침표 금지
|
|
27
|
+
- vague message 금지
|
|
28
|
+
|
|
29
|
+
### Common types
|
|
30
|
+
|
|
31
|
+
- `feat`
|
|
32
|
+
- `fix`
|
|
33
|
+
- `refactor`
|
|
34
|
+
- `test`
|
|
35
|
+
- `docs`
|
|
36
|
+
- `ci`
|
|
37
|
+
- `chore`
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dev-browser
|
|
3
|
+
description: "Browser automation with persistent page state"
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## /dev-browser
|
|
8
|
+
|
|
9
|
+
브라우저 자동화와 반복 웹 검증을 수행한다.
|
|
10
|
+
|
|
11
|
+
### Use when
|
|
12
|
+
|
|
13
|
+
- 페이지 이동, 클릭, 입력, 스크린샷이 필요할 때
|
|
14
|
+
- 웹앱 검증을 자동화할 때
|
|
15
|
+
- 반복 브라우저 작업을 스크립트로 굳힐 때
|
|
16
|
+
|
|
17
|
+
### Canonical asset
|
|
18
|
+
|
|
19
|
+
- `.codex/skills/dev-browser/SKILL.md`
|
|
20
|
+
|
|
21
|
+
### Modes
|
|
22
|
+
|
|
23
|
+
- standalone Chromium
|
|
24
|
+
- extension relay via user browser
|
|
25
|
+
|
|
26
|
+
### Rules
|
|
27
|
+
|
|
28
|
+
- 작은 스크립트 단위로 진행
|
|
29
|
+
- 상태를 확인한 뒤 다음 스크립트로 넘어감
|
|
30
|
+
- 재사용이 필요한 경우에만 `tmp/` 파일로 승격
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: otro
|
|
3
|
+
description: "OTRO loop orchestrator for repository-wide multi-step work"
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## /otro
|
|
8
|
+
|
|
9
|
+
Repository-wide 작업을 OTRO 루프로 실행한다.
|
|
10
|
+
|
|
11
|
+
### Use when
|
|
12
|
+
|
|
13
|
+
- 기능/리팩터/정합 작업이 단일 edit로 끝나지 않을 때
|
|
14
|
+
- 전역 분석 -> TODO graph -> loop dispatch -> reconcile 이 필요할 때
|
|
15
|
+
- 병렬 worker와 residual-based replan이 필요할 때
|
|
16
|
+
|
|
17
|
+
### Canonical runtime
|
|
18
|
+
|
|
19
|
+
- Skill assets: `.codex/skills/otro/`
|
|
20
|
+
- Run root: `.codex/skills/otro/runs/<run-name>/`
|
|
21
|
+
|
|
22
|
+
### Core contract
|
|
23
|
+
|
|
24
|
+
- Canonical terms: `loop`, `step`, `loop_done`, `run_done`, `repository_done`
|
|
25
|
+
- Task IDs are canonicalized per step as `T{step}{ordinal}`
|
|
26
|
+
- Default planner/worker timeout is `600s`
|
|
27
|
+
- Timeout means force-stop, record timeout, then split into at least two narrower next-step tasks
|
|
28
|
+
- Replanning happens only at the loop boundary
|
|
29
|
+
- If the repository uses `sdd/` or another canonical documentation tree, OTRO must use that system instead of creating parallel docs.
|
|
30
|
+
|
|
31
|
+
### Process
|
|
32
|
+
|
|
33
|
+
1. Initialize a run with `.codex/skills/otro/scripts/init_run.sh`.
|
|
34
|
+
2. Write the repository-wide objective in `goal.md`.
|
|
35
|
+
3. Generate the first global plan with `.codex/skills/otro/scripts/plan_loop.py`.
|
|
36
|
+
4. Execute with `.codex/skills/otro/scripts/run_loop.py <run-dir> --until-done`.
|
|
37
|
+
5. Inspect `plans/current-plan.json`, `results/loop-*.json`, and `state.json`.
|
|
38
|
+
6. Continue until `repository_done` is satisfied.
|
|
39
|
+
|
|
40
|
+
### Read first
|
|
41
|
+
|
|
42
|
+
- `.codex/skills/otro/references/runtime.md`
|
|
43
|
+
- `.codex/skills/otro/references/contracts.md`
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planning-with-files
|
|
3
|
+
description: "Keep multi-step work auditable through a live markdown plan file"
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## /planning-with-files
|
|
8
|
+
|
|
9
|
+
작업을 plan file로 시작하고, 실행 내내 갱신하고, 검증 로그로 닫는다.
|
|
10
|
+
|
|
11
|
+
### Use when
|
|
12
|
+
|
|
13
|
+
- 작업이 여러 단계로 길어질 때
|
|
14
|
+
- edit/test/deploy 흔적을 남겨야 할 때
|
|
15
|
+
- TODO를 durable하게 유지해야 할 때
|
|
16
|
+
|
|
17
|
+
### Canonical assets
|
|
18
|
+
|
|
19
|
+
- Codex skill: `.codex/skills/planning-with-files/`
|
|
20
|
+
- Template: `.codex/skills/planning-with-files/assets/plan-template.md`
|
|
21
|
+
- Scaffolder: `.codex/skills/planning-with-files/scripts/new_plan.sh`
|
|
22
|
+
|
|
23
|
+
### Process
|
|
24
|
+
|
|
25
|
+
1. `scripts/new_plan.sh "<title>" [repo_root] [section]`로 plan을 만든다.
|
|
26
|
+
2. 저장소가 `sdd/02_plan/<section>/` 규칙을 쓰면 그 위치를 canonical로 사용한다.
|
|
27
|
+
3. `templates` 같은 저장소에서는 `docs/plans/`를 만들지 않고 `sdd/02_plan/<section>/` 아래 생성된 파일에 scope, assumptions, acceptance criteria를 적는다.
|
|
28
|
+
4. 5-10개의 concrete checklist로 쪼갠다.
|
|
29
|
+
5. 항상 하나의 active item만 둔다.
|
|
30
|
+
6. edit/test/deploy 뒤에는 evidence log를 짧게 남긴다.
|
|
31
|
+
7. 마지막에 validation status와 residual risk를 적고 닫는다.
|
|
32
|
+
|
|
33
|
+
### Guardrails
|
|
34
|
+
|
|
35
|
+
- stale checklist를 남기지 않는다
|
|
36
|
+
- evidence 없는 완료 표시는 금지
|
|
37
|
+
- dead item을 쌓지 말고 현재 plan을 갱신한다
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prd
|
|
3
|
+
description: "Generate a structured JSON PRD for executable delivery work"
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## /prd
|
|
8
|
+
|
|
9
|
+
실행 가능한 JSON PRD를 생성한다.
|
|
10
|
+
|
|
11
|
+
### Use when
|
|
12
|
+
|
|
13
|
+
- 기능 요구사항을 정형화해야 할 때
|
|
14
|
+
- stories, routes, quality gates를 한 파일로 고정해야 할 때
|
|
15
|
+
- 구현 전에 scope를 잠가야 할 때
|
|
16
|
+
|
|
17
|
+
### Canonical asset
|
|
18
|
+
|
|
19
|
+
- `.codex/skills/prd/SKILL.md`
|
|
20
|
+
|
|
21
|
+
### Rules
|
|
22
|
+
|
|
23
|
+
- 구현하지 말고 PRD만 생성
|
|
24
|
+
- quality gates는 반드시 묻고 포함
|
|
25
|
+
- story는 single iteration 크기로 쪼갬
|
|
26
|
+
- 새 프로젝트면 setup story를 먼저 둠
|
|
27
|
+
- output은 JSON 정본 하나만 저장
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ralph-loop
|
|
3
|
+
description: "Run a bounded implement-test-fix loop with explicit stop conditions"
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## /ralph-loop
|
|
8
|
+
|
|
9
|
+
짧은 reproduce -> edit -> validate -> decide 루프를 돌린다.
|
|
10
|
+
|
|
11
|
+
### Use when
|
|
12
|
+
|
|
13
|
+
- 버그 수정이 반복 검증을 필요로 할 때
|
|
14
|
+
- flaky 여부나 fail-same / fail-new 분류가 중요할 때
|
|
15
|
+
- stop condition이 명확한 bounded loop가 필요할 때
|
|
16
|
+
|
|
17
|
+
### Canonical assets
|
|
18
|
+
|
|
19
|
+
- Codex skill: `.codex/skills/ralph-loop/`
|
|
20
|
+
- Script: `.codex/skills/ralph-loop/scripts/loop_until_success.sh`
|
|
21
|
+
- Reference: `.codex/skills/ralph-loop/references/failure-triage.md`
|
|
22
|
+
|
|
23
|
+
### Loop contract
|
|
24
|
+
|
|
25
|
+
1. failing reproduction 또는 target validation command를 고정한다.
|
|
26
|
+
2. iteration마다 한 가지 change만 넣는다.
|
|
27
|
+
3. 즉시 validation을 돌린다.
|
|
28
|
+
4. 결과를 `pass`, `fail-same`, `fail-new`, `flaky`, `no-signal`로 분류한다.
|
|
29
|
+
5. 다음 action을 정한 뒤에만 다시 edit한다.
|
|
30
|
+
|
|
31
|
+
### Stop conditions
|
|
32
|
+
|
|
33
|
+
- validation passes
|
|
34
|
+
- max iterations reached
|
|
35
|
+
- same failure repeats 3 times without new signal
|
|
36
|
+
- missing dependency or external decision blocks progress
|
|
37
|
+
|
|
38
|
+
### Command example
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
.codex/skills/ralph-loop/scripts/loop_until_success.sh --cmd "pytest -q tests/foo_test.py" --max 6
|
|
42
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdd
|
|
3
|
+
description: "Alias skill for repositories that use `sdd/` as the canonical delivery system."
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## /sdd
|
|
8
|
+
|
|
9
|
+
이 파일은 alias skill이다. canonical SDD workflow는 [`../sdd-dev/SKILL.md`](../sdd-dev/SKILL.md)를 따른다.
|
|
10
|
+
|
|
11
|
+
Rules:
|
|
12
|
+
- 실제 workflow와 section map은 `sdd-dev` 기준을 사용한다.
|
|
13
|
+
- downstream repo가 `sdd` 이름으로 호출해도 동일한 current-state delivery 규칙으로 해석한다.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdd-dev
|
|
3
|
+
description: "Use the SDD-first workflow for any development task in repos that use sdd/"
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## /sdd-dev
|
|
8
|
+
|
|
9
|
+
개발 작업을 항상 `sdd/` 산출물 기준으로 진행한다. 화면명세서, 화면설계서, 화면 스펙, 디자인, 디자인 가이드 같은 화면 개발 프롬프트도 이 스킬의 트리거로 본다.
|
|
10
|
+
배포가 실제 범위이고 개발계 배포 completion bar가 `main` 기준인 저장소에서는 임시 브랜치나 worktree를 써도 최종 반영은 반드시 `origin/main`까지 올라가야 완료로 본다.
|
|
11
|
+
배포가 실제 범위이고 개발계와 운영계가 분리된 저장소에서는 배포 순서를 `DEV 배포 -> DEV 전 레이어 검증 통과 -> PROD 배포 -> PROD 동일 레이어 검증`으로 고정한다. 운영 검증이 실패하면 롤백 또는 명시된 복구 절차가 필수다.
|
|
12
|
+
스키마가 동작에 영향을 줄 수 있는 작업은 코드나 migration head만 보지 않고 DEV/PROD 실제 스키마 상태를 확인해야 한다.
|
|
13
|
+
|
|
14
|
+
### Use when
|
|
15
|
+
|
|
16
|
+
- 사용자가 `개발해`, `작업해`, `구현해`, `수정해`, `고쳐`, `리팩토링해`, `테스트해`, `배포해`처럼 개발을 지시할 때
|
|
17
|
+
- 사용자가 `화면명세서`, `화면설계서`, `화면 설계`, `화면`, `화면 스펙`, `UI`, `디자인`, `디자인 가이드`처럼 화면 개발/정렬을 지시할 때
|
|
18
|
+
- 저장소가 `sdd/01_planning`, `02_plan`, `03_build`, `04_verify`, `05_operate` 구조를 쓸 때
|
|
19
|
+
- 코드 수정과 함께 계획, 검증, 운영 흔적도 남겨야 할 때
|
|
20
|
+
|
|
21
|
+
### Canonical assets
|
|
22
|
+
|
|
23
|
+
- Codex skill: `.codex/skills/sdd/`
|
|
24
|
+
- Section map: `.codex/skills/sdd/references/section-map.md`
|
|
25
|
+
|
|
26
|
+
### Workflow
|
|
27
|
+
|
|
28
|
+
1. 먼저 `sdd/01_planning`의 관련 산출물을 확인하고 구현과 어긋난 부분을 바로잡는다.
|
|
29
|
+
2. `sdd/02_plan/<section>/`에 작업 계획을 만들거나 기존 계획을 갱신한다.
|
|
30
|
+
- 배포가 범위에 있으면 acceptance criteria에 `DEV 게이트`, `동일한 PROD 게이트`, `전 레이어 테스트 범위`, `롤백 조건/절차`를 명시한다.
|
|
31
|
+
- persistence, migration, repository, ORM mapping, SQL, 운영 장애 대응이 걸린 작업이면 acceptance criteria에 `DEV/PROD 스키마 검증`을 넣는다.
|
|
32
|
+
3. 코드 작업을 수행하고, 의미 있는 결정은 계획 로그에 남긴다.
|
|
33
|
+
- 화면명세서에 있는 아이콘, 로고, 일러스트, 기타 정적 자산이 필요하면 먼저 저장소의 canonical `스펙에셋빌더`로 추출한다.
|
|
34
|
+
- 템플릿 기준 canonical 경로는 `sdd/99_toolchain/01_automation/spec_asset_builder.py` 또는 그 wrapper/manifest다.
|
|
35
|
+
- reusable asset planning 기록은 `sdd/01_planning/02_screen/assets/` 아래에 둔다.
|
|
36
|
+
- source crop과 동일해야 하는 자산은 가능하면 `--verify-exact`까지 수행한다.
|
|
37
|
+
- builder로 표현 가능한 자산을 수동 redraw나 screenshot crop으로 대체하지 않는다. 예외가 필요하면 plan/build/verify에 이유를 남긴다.
|
|
38
|
+
- 화면 여백, 레이아웃 밀도, 타이포, 색상 리듬, 컴포넌트 hierarchy가 명세 기반이면 저장소의 canonical 디자인 가이드 빌더가 있는지 먼저 확인하고, 있으면 그 산출물을 기준으로 구현한다.
|
|
39
|
+
- 템플릿 기준으로는 `sdd/99_toolchain/01_automation/README.md`와 실제 존재하는 builder/wrapper/manifest를 canonical source로 본다.
|
|
40
|
+
- local screen exactness는 Playwright를 canonical automation gate로 본다.
|
|
41
|
+
- 템플릿 기준 canonical runner는 `python3 sdd/99_toolchain/01_automation/run_playwright_exactness.py --suite <suite-id>`이고, suite registry는 `sdd/99_toolchain/01_automation/playwright_exactness_manifest.py`다.
|
|
42
|
+
- direct `npx playwright test ...` 호출은 디버깅 예외로만 쓰고, retained verification command는 toolchain wrapper 기준으로 남긴다.
|
|
43
|
+
- Playwright suite가 이미 있으면 Browser Use/manual screenshot/semantic extraction은 보조 진단일 뿐 canonical gate를 대체하지 않는다.
|
|
44
|
+
- 배포가 범위에 있으면 DEV와 PROD에 같은 `전 레이어 검증 surface`를 재사용하도록 미리 정의한다. 앱/라우트, API, persistence/schema, 배치/워크플로, 연동, 헬스/모니터링을 포함한다.
|
|
45
|
+
4. 구현/실행 기록은 `sdd/03_build`에 남긴다.
|
|
46
|
+
5. 테스트와 검증 근거는 `sdd/04_verify`에 남긴다.
|
|
47
|
+
- DEV 배포가 있으면 DEV에서 먼저 전 레이어 검증을 수행하고, 통과 전에는 PROD로 올리지 않는다.
|
|
48
|
+
- PROD 배포 후에는 DEV와 같은 검증 surface를 PROD에서 다시 실행한다.
|
|
49
|
+
- persistence 영향 가능성이 있으면 DEV/PROD 모두에서 실제 스키마, index, constraint, trigger, default, legacy column drift를 확인한다.
|
|
50
|
+
- PROD 검증 실패 시 즉시 롤백 또는 승인된 복구 절차를 실행하고 결과를 남긴다.
|
|
51
|
+
- Playwright suite가 있는 surface는 suite id, canonical runner command, screenshot/json artifact path를 verify에 함께 남긴다.
|
|
52
|
+
6. 실제 배포나 운영 후속이 있으면 `sdd/05_operate`에 남긴다.
|
|
53
|
+
- 개발계 배포 baseline이 `main`이면 완료 전에 `main`에 merge, cherry-pick, 또는 동등한 방식으로 반영한 뒤 `origin/main`을 push한다.
|
|
54
|
+
- side branch에만 올라간 상태로는 개발계 배포 완료로 보지 않는다.
|
|
55
|
+
- DEV 게이트 통과 근거, PROD 게이트 통과 근거, 롤백이 있었다면 그 트리거와 결과를 함께 기록한다.
|
|
56
|
+
|
|
57
|
+
### Guardrails
|
|
58
|
+
|
|
59
|
+
- `sdd/`가 있는 저장소에서 별도 `docs/` 트리를 만들지 않는다.
|
|
60
|
+
- planning review 없이 바로 코드부터 수정하지 않는다.
|
|
61
|
+
- 검증 결과를 채팅에만 남기지 말고 `sdd/04_verify`에도 기록한다.
|
|
62
|
+
- PROD 배포가 범위일 때 DEV 전 레이어 검증이 통과하기 전에는 PROD 배포를 진행하지 않는다.
|
|
63
|
+
- PROD 배포가 범위일 때 DEV보다 약한 범위로 PROD 검증을 축소하지 않는다. 예외는 사용자 승인과 문서화가 필요하다.
|
|
64
|
+
- PROD 배포가 범위일 때 PROD는 "배포 성공"만으로 끝내지 않는다. 배포 후 동일 레이어 검증이 필수다.
|
|
65
|
+
- PROD 배포가 범위일 때 실패한 PROD 배포를 미해결 상태로 두지 않는다. 롤백 또는 승인된 복구 절차를 실행하고 기록한다.
|
|
66
|
+
- local 테스트 통과, model 코드, migration head만으로 DEV/PROD 스키마가 같다고 가정하지 않는다.
|
|
67
|
+
- schema drift 가능성이 있는 작업에서 DEV/PROD 실제 스키마 확인을 생략하지 않는다.
|
|
68
|
+
- canonical `스펙에셋빌더`가 있는 저장소에서는 화면명세 정적 자산을 수동 재작성하지 않는다.
|
|
69
|
+
- 화면 관련 자동화 builder가 있으면 작은 UI 수정처럼 보여도 먼저 확인한다.
|
|
70
|
+
- 배포가 없었으면 `05_operate`에 허위 기록을 남기지 않는다.
|
|
71
|
+
- 개발계 배포 baseline이 `main`인 저장소에서 side branch push만으로 배포 완료라고 판단하지 않는다.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdd-development
|
|
3
|
+
description: "Alias skill for the canonical SDD-first development workflow."
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## /sdd-development
|
|
8
|
+
|
|
9
|
+
이 파일은 alias skill이다. canonical SDD workflow는 [`../sdd-dev/SKILL.md`](../sdd-dev/SKILL.md)를 따른다.
|
|
10
|
+
|
|
11
|
+
Rules:
|
|
12
|
+
- planning, build, verify, operate 기록은 `sdd-dev` 규칙과 동일하다.
|
|
13
|
+
- downstream repo는 `sdd-development` 이름을 그대로 복제할 수 있다.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Generic Sub-Agents
|
|
2
|
+
|
|
3
|
+
이 디렉터리는 템플릿 저장소에서 재사용할 수 있는 일반 목적 Codex 서브에이전트 역할 정의를 둔다.
|
|
4
|
+
|
|
5
|
+
## Defined Roles
|
|
6
|
+
|
|
7
|
+
- `architecture`
|
|
8
|
+
- `runtime`
|
|
9
|
+
- `gitops`
|
|
10
|
+
- `quality`
|
|
11
|
+
- `api`
|
|
12
|
+
- `orchestrator`
|
|
13
|
+
- `ci`
|
|
14
|
+
- `specs`
|
|
15
|
+
- `ui`
|
|
16
|
+
- `security`
|
|
17
|
+
|
|
18
|
+
## Notes
|
|
19
|
+
|
|
20
|
+
- 역할 이름과 설명은 특정 서비스명에 묶지 않는다.
|
|
21
|
+
- 제품/회사/실환경 고유 정보는 이 디렉터리에 저장하지 않는다.
|
|
22
|
+
- 역할 설명은 템플릿 수준의 일반 책임만 다룬다.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
model = "gpt-5.3-codex"
|
|
2
|
+
model_reasoning_effort = "high"
|
|
3
|
+
sandbox_mode = "workspace-write"
|
|
4
|
+
developer_instructions = """
|
|
5
|
+
You are the API sub-agent.
|
|
6
|
+
|
|
7
|
+
Mission:
|
|
8
|
+
- Keep API contracts stable while internals evolve.
|
|
9
|
+
- Normalize input, output, and error handling.
|
|
10
|
+
- Preserve backward-compatible behavior by default.
|
|
11
|
+
"""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
model = "gpt-5.3-codex"
|
|
2
|
+
model_reasoning_effort = "high"
|
|
3
|
+
sandbox_mode = "read-only"
|
|
4
|
+
developer_instructions = """
|
|
5
|
+
You are the architecture sub-agent.
|
|
6
|
+
|
|
7
|
+
Mission:
|
|
8
|
+
- Define clear boundaries and migration direction.
|
|
9
|
+
- Remove hardcoded assumptions that prevent reuse.
|
|
10
|
+
- Keep decisions generic enough for template reuse.
|
|
11
|
+
"""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
model = "gpt-5.3-codex"
|
|
2
|
+
model_reasoning_effort = "high"
|
|
3
|
+
sandbox_mode = "workspace-write"
|
|
4
|
+
developer_instructions = """
|
|
5
|
+
You are the CI sub-agent.
|
|
6
|
+
|
|
7
|
+
Mission:
|
|
8
|
+
- Maintain pipeline policy and release path integrity.
|
|
9
|
+
- Keep failure reasons explicit and actionable.
|
|
10
|
+
- Ensure validation gates remain reproducible.
|
|
11
|
+
"""
|