agentic-dev 0.2.10 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -29
- package/bin/agentic-dev.mjs +656 -124
- package/lib/scaffold.mjs +109 -6
- package/package.json +8 -22
- package/.agent/prd.json +0 -29
- package/.agent/progress.txt +0 -1
- package/.agent/prompt.md +0 -21
- package/.agent/ralph-loop-state.json +0 -13
- package/.agent/ralph-supervisor-state.json +0 -12
- package/.agent/ralph-supervisor.sh +0 -238
- package/.agent/ralph.sh +0 -305
- package/.agent/runs/README.md +0 -7
- package/.agent/sdd-build-ast-audit.json +0 -13
- package/.claude/CLAUDE.md +0 -44
- package/.claude/agentic-dev.json +0 -3
- package/.claude/agents/ai-dev.md +0 -27
- package/.claude/agents/backend-dev.md +0 -26
- package/.claude/agents/db-dev.md +0 -26
- package/.claude/agents/devops.md +0 -27
- package/.claude/agents/frontend-dev.md +0 -25
- package/.claude/agents/github-ops.md +0 -25
- package/.claude/agents/test-dev.md +0 -26
- package/.claude/agents/uiux-designer.md +0 -25
- package/.claude/settings.json +0 -49
- package/.claude/settings.local.json +0 -8
- package/.claude/skills/sdd/SKILL.md +0 -189
- package/.claude/skills/sdd/agents/openai.yaml +0 -4
- package/.claude/skills/sdd/references/section-map.md +0 -67
- package/.claude/workspace-config.json +0 -3
- package/.codex/agentic-dev.json +0 -3
- package/.codex/agents/README.md +0 -22
- package/.codex/agents/api.toml +0 -11
- package/.codex/agents/architecture.toml +0 -11
- package/.codex/agents/ci.toml +0 -11
- package/.codex/agents/gitops.toml +0 -11
- package/.codex/agents/orchestrator.toml +0 -11
- package/.codex/agents/quality.toml +0 -11
- package/.codex/agents/runtime.toml +0 -11
- package/.codex/agents/security.toml +0 -11
- package/.codex/agents/specs.toml +0 -11
- package/.codex/agents/ui.toml +0 -11
- package/.codex/config.toml +0 -46
- package/.codex/skills/SKILL.md +0 -13
- package/.codex/skills/sdd/SKILL.md +0 -189
- package/.codex/skills/sdd/agents/openai.yaml +0 -4
- package/.codex/skills/sdd/references/section-map.md +0 -67
- package/.dockerignore +0 -8
- package/.env.example +0 -50
- package/.gitignore +0 -16
- package/AGENTS.md +0 -86
- package/SDD_SKILL.md +0 -589
- package/client/admin/.dockerignore +0 -3
- package/client/admin/.env.example +0 -1
- package/client/admin/Dockerfile +0 -16
- package/client/admin/Dockerfile.dev +0 -18
- package/client/admin/README.md +0 -20
- package/client/admin/index.html +0 -12
- package/client/admin/package.json +0 -41
- package/client/admin/postcss.config.js +0 -6
- package/client/admin/scripts/ui-parity-admin-adapter.mjs +0 -65
- package/client/admin/src/api/alerts.ts +0 -33
- package/client/admin/src/api/client.ts +0 -71
- package/client/admin/src/api/orders.ts +0 -33
- package/client/admin/src/api/support.ts +0 -11
- package/client/admin/src/app/App.tsx +0 -23
- package/client/admin/src/auth/AuthProvider.tsx +0 -122
- package/client/admin/src/auth/ProtectedRoute.tsx +0 -22
- package/client/admin/src/auth/auth-client.ts +0 -38
- package/client/admin/src/auth/types.ts +0 -18
- package/client/admin/src/components/AdminNotificationsDrawer.tsx +0 -162
- package/client/admin/src/components/AdminShell.tsx +0 -76
- package/client/admin/src/components/ui/button.tsx +0 -34
- package/client/admin/src/components/ui/input.tsx +0 -21
- package/client/admin/src/lib/cn.ts +0 -6
- package/client/admin/src/lib/specRouteCatalog.json +0 -30
- package/client/admin/src/lib/specScreens.json +0 -22
- package/client/admin/src/main.tsx +0 -17
- package/client/admin/src/pages/AdminDashboardPage.tsx +0 -171
- package/client/admin/src/pages/AdminLoginPage.tsx +0 -75
- package/client/admin/src/pages/AdminQueuePage.tsx +0 -107
- package/client/admin/src/pages/AdminSupportPage.tsx +0 -61
- package/client/admin/src/styles/globals.css +0 -17
- package/client/admin/src/theme-vars.ts +0 -18
- package/client/admin/src/theme.ts +0 -25
- package/client/admin/src/vite-env.d.ts +0 -1
- package/client/admin/tailwind.config.js +0 -8
- package/client/admin/tsconfig.json +0 -25
- package/client/admin/vite.config.ts +0 -12
- package/client/landing/.dockerignore +0 -3
- package/client/landing/.env.example +0 -1
- package/client/landing/Dockerfile +0 -16
- package/client/landing/Dockerfile.dev +0 -18
- package/client/landing/README.md +0 -18
- package/client/landing/index.html +0 -12
- package/client/landing/package.json +0 -41
- package/client/landing/postcss.config.js +0 -6
- package/client/landing/scripts/ui-parity-landing-adapter.mjs +0 -65
- package/client/landing/src/App.tsx +0 -21
- package/client/landing/src/api/catalog.ts +0 -30
- package/client/landing/src/api/client.ts +0 -30
- package/client/landing/src/auth/AuthProvider.tsx +0 -122
- package/client/landing/src/auth/ProtectedRoute.tsx +0 -22
- package/client/landing/src/auth/auth-client.ts +0 -38
- package/client/landing/src/auth/types.ts +0 -18
- package/client/landing/src/components/LandingShell.tsx +0 -34
- package/client/landing/src/lib/specRouteCatalog.json +0 -23
- package/client/landing/src/lib/specScreens.json +0 -17
- package/client/landing/src/main.tsx +0 -17
- package/client/landing/src/pages/LandingHomePage.tsx +0 -215
- package/client/landing/src/pages/LandingLoginPage.tsx +0 -90
- package/client/landing/src/pages/LandingWorkspacePage.tsx +0 -126
- package/client/landing/src/styles/globals.css +0 -17
- package/client/landing/src/theme-vars.ts +0 -16
- package/client/landing/src/theme.ts +0 -21
- package/client/landing/src/vite-env.d.ts +0 -1
- package/client/landing/tailwind.config.js +0 -8
- package/client/landing/tsconfig.json +0 -25
- package/client/landing/vite.config.ts +0 -12
- package/client/mobile/.dockerignore +0 -2
- package/client/mobile/.env.example +0 -1
- package/client/mobile/Dockerfile +0 -16
- package/client/mobile/Dockerfile.dev +0 -18
- package/client/mobile/README.md +0 -19
- package/client/mobile/index.html +0 -12
- package/client/mobile/package.json +0 -42
- package/client/mobile/postcss.config.js +0 -6
- package/client/mobile/scripts/ui-parity-mobile-adapter.mjs +0 -67
- package/client/mobile/src/App.tsx +0 -1
- package/client/mobile/src/api/client.ts +0 -62
- package/client/mobile/src/api/fulfillment.ts +0 -55
- package/client/mobile/src/api/shipping.ts +0 -56
- package/client/mobile/src/app/App.tsx +0 -23
- package/client/mobile/src/auth/AuthProvider.tsx +0 -122
- package/client/mobile/src/auth/ProtectedRoute.tsx +0 -27
- package/client/mobile/src/auth/auth-client.ts +0 -38
- package/client/mobile/src/auth/types.ts +0 -18
- package/client/mobile/src/components/InShell.tsx +0 -74
- package/client/mobile/src/components/ui/button.tsx +0 -35
- package/client/mobile/src/components/ui/card.tsx +0 -15
- package/client/mobile/src/components/ui/input.tsx +0 -21
- package/client/mobile/src/lib/cn.ts +0 -6
- package/client/mobile/src/lib/specRouteCatalog.json +0 -26
- package/client/mobile/src/lib/specScreens.json +0 -22
- package/client/mobile/src/lib/useSpeechRecognitionInput.ts +0 -271
- package/client/mobile/src/main.tsx +0 -17
- package/client/mobile/src/pages/DashboardPage.tsx +0 -172
- package/client/mobile/src/pages/FulfillmentPage.tsx +0 -138
- package/client/mobile/src/pages/LoginPage.tsx +0 -74
- package/client/mobile/src/pages/ShippingPage.tsx +0 -338
- package/client/mobile/src/styles/globals.css +0 -23
- package/client/mobile/src/theme-vars.ts +0 -16
- package/client/mobile/src/theme.ts +0 -21
- package/client/mobile/src/vite-env.d.ts +0 -1
- package/client/mobile/tailwind.config.js +0 -8
- package/client/mobile/tsconfig.json +0 -25
- package/client/mobile/vite.config.ts +0 -12
- package/client/web/.dockerignore +0 -3
- package/client/web/.env.example +0 -1
- package/client/web/Dockerfile +0 -16
- package/client/web/Dockerfile.dev +0 -18
- package/client/web/README.md +0 -47
- package/client/web/index.html +0 -12
- package/client/web/package.json +0 -42
- package/client/web/postcss.config.js +0 -6
- package/client/web/scripts/ui-parity-web-adapter.mjs +0 -66
- package/client/web/src/api/client.ts +0 -30
- package/client/web/src/api/orders.ts +0 -42
- package/client/web/src/app/App.tsx +0 -21
- package/client/web/src/auth/AuthProvider.tsx +0 -122
- package/client/web/src/auth/ProtectedRoute.tsx +0 -22
- package/client/web/src/auth/auth-client.ts +0 -38
- package/client/web/src/auth/types.ts +0 -18
- package/client/web/src/components/AppShell.tsx +0 -59
- package/client/web/src/components/ui/button.tsx +0 -35
- package/client/web/src/components/ui/card.tsx +0 -7
- package/client/web/src/components/ui/input.tsx +0 -21
- package/client/web/src/lib/cn.ts +0 -6
- package/client/web/src/lib/specRouteCatalog.json +0 -23
- package/client/web/src/lib/specScreens.json +0 -17
- package/client/web/src/main.tsx +0 -17
- package/client/web/src/pages/DashboardPage.tsx +0 -158
- package/client/web/src/pages/LoginPage.tsx +0 -72
- package/client/web/src/pages/OrdersPage.tsx +0 -123
- package/client/web/src/styles/globals.css +0 -17
- package/client/web/src/theme-vars.ts +0 -18
- package/client/web/src/theme.ts +0 -25
- package/client/web/src/vite-env.d.ts +0 -1
- package/client/web/tailwind.config.js +0 -8
- package/client/web/tsconfig.json +0 -25
- package/client/web/vite.config.ts +0 -12
- package/compose.yml +0 -206
- package/infra/compose/.env.dev.example +0 -28
- package/infra/compose/.env.prod.example +0 -29
- package/infra/compose/README.md +0 -35
- package/infra/compose/dev.yml +0 -125
- package/infra/compose/prod.yml +0 -126
- package/infra/terraform/README.md +0 -34
- package/infra/terraform/aws/data/.terraform.lock.hcl +0 -25
- package/infra/terraform/aws/data/README.md +0 -18
- package/infra/terraform/aws/data/main.tf +0 -147
- package/infra/terraform/aws/data/outputs.tf +0 -14
- package/infra/terraform/aws/data/variables.tf +0 -57
- package/infra/terraform/aws/data/versions.tf +0 -10
- package/infra/terraform/aws/domain/.terraform.lock.hcl +0 -25
- package/infra/terraform/aws/domain/README.md +0 -20
- package/infra/terraform/aws/domain/env/dev.tfvars.example +0 -6
- package/infra/terraform/aws/domain/env/prod.tfvars.example +0 -7
- package/infra/terraform/aws/domain/main.tf +0 -149
- package/infra/terraform/aws/domain/outputs.tf +0 -29
- package/infra/terraform/aws/domain/variables.tf +0 -58
- package/infra/terraform/aws/domain/versions.tf +0 -10
- package/infra/terraform/openstack/README.md +0 -38
- package/infra/terraform/openstack/dev/.terraform.lock.hcl +0 -24
- package/infra/terraform/openstack/dev/README.md +0 -18
- package/infra/terraform/openstack/dev/main.tf +0 -49
- package/infra/terraform/openstack/dev/providers.tf +0 -15
- package/infra/terraform/openstack/dev/terraform.tfvars.example +0 -54
- package/infra/terraform/openstack/dev/variables.tf +0 -210
- package/infra/terraform/openstack/dev/versions.tf +0 -10
- package/infra/terraform/openstack/modules/environment_host/main.tf +0 -143
- package/infra/terraform/openstack/modules/environment_host/outputs.tf +0 -25
- package/infra/terraform/openstack/modules/environment_host/templates/docker-host-user-data.sh.tftpl +0 -40
- package/infra/terraform/openstack/modules/environment_host/variables.tf +0 -145
- package/infra/terraform/openstack/modules/environment_host/versions.tf +0 -7
- package/infra/terraform/openstack/prod/.terraform.lock.hcl +0 -24
- package/infra/terraform/openstack/prod/README.md +0 -18
- package/infra/terraform/openstack/prod/main.tf +0 -49
- package/infra/terraform/openstack/prod/providers.tf +0 -15
- package/infra/terraform/openstack/prod/terraform.tfvars.example +0 -55
- package/infra/terraform/openstack/prod/variables.tf +0 -210
- package/infra/terraform/openstack/prod/versions.tf +0 -10
- package/infra/terraform/openstack/server/.terraform.lock.hcl +0 -45
- package/infra/terraform/openstack/server/README.md +0 -47
- package/infra/terraform/openstack/server/main.tf +0 -161
- package/infra/terraform/openstack/server/outputs.tf +0 -30
- package/infra/terraform/openstack/server/providers.tf +0 -30
- package/infra/terraform/openstack/server/templates/server-user-data.sh.tftpl +0 -50
- package/infra/terraform/openstack/server/variables.tf +0 -233
- package/infra/terraform/openstack/server/zz_aspace.auto.tfvars.example.json +0 -29
- package/pnpm-workspace.yaml +0 -2
- package/scripts/dev/audit_sdd_build_ast.py +0 -277
- package/sdd/01_planning/01_feature/INDEX.md +0 -16
- package/sdd/01_planning/01_feature/README.md +0 -76
- package/sdd/01_planning/01_feature/alerts_feature_spec.md +0 -55
- package/sdd/01_planning/01_feature/auth_feature_spec.md +0 -57
- package/sdd/01_planning/01_feature/catalog_feature_spec.md +0 -61
- package/sdd/01_planning/01_feature/fulfillment_feature_spec.md +0 -58
- package/sdd/01_planning/01_feature/health_feature_spec.md +0 -52
- package/sdd/01_planning/01_feature/inventory_feature_spec.md +0 -60
- package/sdd/01_planning/01_feature/order_feature_spec.md +0 -63
- package/sdd/01_planning/01_feature/shipping_feature_spec.md +0 -55
- package/sdd/01_planning/01_feature/support_feature_spec.md +0 -53
- package/sdd/01_planning/01_feature/user_feature_spec.md +0 -54
- package/sdd/01_planning/02_screen/INDEX.md +0 -13
- package/sdd/01_planning/02_screen/README.md +0 -41
- package/sdd/01_planning/02_screen/admin_screen_spec.pdf +0 -0
- package/sdd/01_planning/02_screen/assets/README.md +0 -16
- package/sdd/01_planning/02_screen/assets/example/README.md +0 -13
- package/sdd/01_planning/02_screen/landing_screen_spec.pdf +0 -0
- package/sdd/01_planning/02_screen/mobile_screen_spec.pdf +0 -0
- package/sdd/01_planning/02_screen/web_screen_spec.pdf +0 -0
- package/sdd/01_planning/03_architecture/INDEX.md +0 -9
- package/sdd/01_planning/03_architecture/README.md +0 -25
- package/sdd/01_planning/03_architecture/architecture_document_structure.md +0 -77
- package/sdd/01_planning/03_architecture/backend/README.md +0 -10
- package/sdd/01_planning/03_architecture/frontend/README.md +0 -12
- package/sdd/01_planning/03_architecture/infra/README.md +0 -10
- package/sdd/01_planning/03_architecture/tech-research/README.md +0 -4
- package/sdd/01_planning/03_architecture/templates_system_architecture.md +0 -84
- package/sdd/01_planning/04_data/INDEX.md +0 -4
- package/sdd/01_planning/04_data/README.md +0 -10
- package/sdd/01_planning/04_data/templates_data_modeling.md +0 -119
- package/sdd/01_planning/05_api/README.md +0 -12
- package/sdd/01_planning/05_api/templates_api_contract.md +0 -90
- package/sdd/01_planning/06_iac/README.md +0 -11
- package/sdd/01_planning/06_iac/templates_runtime_and_cicd_baseline.md +0 -46
- package/sdd/01_planning/07_integration/README.md +0 -11
- package/sdd/01_planning/07_integration/templates_frontend_api_integration.md +0 -46
- package/sdd/01_planning/08_nonfunctional/README.md +0 -7
- package/sdd/01_planning/09_security/README.md +0 -7
- package/sdd/01_planning/10_test/README.md +0 -12
- package/sdd/01_planning/10_test/templates_test_strategy.md +0 -60
- package/sdd/01_planning/INDEX.md +0 -19
- package/sdd/01_planning/README.md +0 -17
- package/sdd/02_plan/01_feature/README.md +0 -34
- package/sdd/02_plan/01_feature/_feature_todo_template.md +0 -29
- package/sdd/02_plan/02_screen/INDEX.md +0 -19
- package/sdd/02_plan/02_screen/README.md +0 -39
- package/sdd/02_plan/02_screen/_screen_todo_template.md +0 -60
- package/sdd/02_plan/03_architecture/README.md +0 -23
- package/sdd/02_plan/03_architecture/architecture_document_governance.md +0 -40
- package/sdd/02_plan/03_architecture/build_ast_runtime_tree_governance.md +0 -53
- package/sdd/02_plan/03_architecture/repository_governance.md +0 -39
- package/sdd/02_plan/03_architecture/runtime_and_structure_governance.md +0 -38
- package/sdd/02_plan/03_architecture/templates-hexagonal-template-architecture.md +0 -9
- package/sdd/02_plan/03_architecture/toolchain_governance.md +0 -98
- package/sdd/02_plan/04_data/README.md +0 -5
- package/sdd/02_plan/05_api/README.md +0 -5
- package/sdd/02_plan/06_iac/README.md +0 -11
- package/sdd/02_plan/06_iac/dev_runtime_delivery.md +0 -36
- package/sdd/02_plan/06_iac/template_runtime_delivery.md +0 -50
- package/sdd/02_plan/07_integration/README.md +0 -5
- package/sdd/02_plan/07_integration/frontend_live_integration.md +0 -31
- package/sdd/02_plan/08_nonfunctional/README.md +0 -5
- package/sdd/02_plan/08_nonfunctional/repository_hygiene.md +0 -26
- package/sdd/02_plan/09_security/README.md +0 -5
- package/sdd/02_plan/10_test/README.md +0 -11
- package/sdd/02_plan/10_test/regression_verification.md +0 -39
- package/sdd/02_plan/10_test/templates/README.md +0 -8
- package/sdd/02_plan/10_test/templates/ui_parity_web_contract.template.yaml +0 -23
- package/sdd/02_plan/10_test/verification_strategy.md +0 -43
- package/sdd/02_plan/99_generated/from_planning/ui_parity/.gitkeep +0 -1
- package/sdd/02_plan/README.md +0 -40
- package/sdd/03_build/01_feature/README.md +0 -20
- package/sdd/03_build/01_feature/domain/README.md +0 -3
- package/sdd/03_build/01_feature/domain/account_and_access.md +0 -20
- package/sdd/03_build/01_feature/domain/catalog_and_inventory.md +0 -20
- package/sdd/03_build/01_feature/domain/ordering_and_fulfillment.md +0 -21
- package/sdd/03_build/01_feature/domain/support_and_observability.md +0 -21
- package/sdd/03_build/01_feature/domain_surfaces.md +0 -28
- package/sdd/03_build/01_feature/service/README.md +0 -3
- package/sdd/03_build/01_feature/service/admin_surface.md +0 -15
- package/sdd/03_build/01_feature/service/landing_surface.md +0 -13
- package/sdd/03_build/01_feature/service/mobile_surface.md +0 -14
- package/sdd/03_build/01_feature/service/web_surface.md +0 -14
- package/sdd/03_build/02_screen/README.md +0 -25
- package/sdd/03_build/02_screen/_screen_build_template.md +0 -26
- package/sdd/03_build/02_screen/admin/README.md +0 -5
- package/sdd/03_build/02_screen/landing/README.md +0 -5
- package/sdd/03_build/02_screen/mobile/README.md +0 -5
- package/sdd/03_build/02_screen/web/README.md +0 -5
- package/sdd/03_build/03_architecture/README.md +0 -10
- package/sdd/03_build/03_architecture/architecture_document_governance.md +0 -30
- package/sdd/03_build/03_architecture/build_ast_runtime_tree_governance.md +0 -24
- package/sdd/03_build/03_architecture/repository_governance.md +0 -18
- package/sdd/03_build/03_architecture/toolchain_governance.md +0 -36
- package/sdd/03_build/06_iac/README.md +0 -3
- package/sdd/03_build/06_iac/dev_runtime_delivery.md +0 -10
- package/sdd/03_build/06_iac/template_runtime_delivery.md +0 -49
- package/sdd/03_build/07_integration/README.md +0 -3
- package/sdd/03_build/07_integration/frontend_live_integration.md +0 -11
- package/sdd/03_build/08_nonfunctional/README.md +0 -3
- package/sdd/03_build/08_nonfunctional/repository_hygiene.md +0 -10
- package/sdd/03_build/10_test/README.md +0 -9
- package/sdd/03_build/10_test/regression_verification.md +0 -16
- package/sdd/03_build/10_test/verification_harness.md +0 -11
- package/sdd/03_build/README.md +0 -35
- package/sdd/03_verify/01_feature/README.md +0 -5
- package/sdd/03_verify/01_feature/domain_verification.md +0 -14
- package/sdd/03_verify/01_feature/service_verification.md +0 -22
- package/sdd/03_verify/02_screen/README.md +0 -6
- package/sdd/03_verify/02_screen/_screen_verify_template.md +0 -20
- package/sdd/03_verify/02_screen/admin/README.md +0 -4
- package/sdd/03_verify/02_screen/landing/README.md +0 -4
- package/sdd/03_verify/02_screen/mobile/README.md +0 -4
- package/sdd/03_verify/02_screen/web/README.md +0 -4
- package/sdd/03_verify/03_architecture/README.md +0 -10
- package/sdd/03_verify/03_architecture/architecture_document_governance.md +0 -15
- package/sdd/03_verify/03_architecture/build_ast_runtime_tree_governance.md +0 -28
- package/sdd/03_verify/03_architecture/repository_governance.md +0 -16
- package/sdd/03_verify/03_architecture/toolchain_governance.md +0 -58
- package/sdd/03_verify/06_iac/README.md +0 -3
- package/sdd/03_verify/06_iac/dev_runtime_delivery.md +0 -10
- package/sdd/03_verify/06_iac/template_runtime_delivery.md +0 -42
- package/sdd/03_verify/07_integration/README.md +0 -3
- package/sdd/03_verify/07_integration/frontend_live_integration.md +0 -16
- package/sdd/03_verify/08_nonfunctional/README.md +0 -3
- package/sdd/03_verify/08_nonfunctional/repository_hygiene.md +0 -14
- package/sdd/03_verify/10_test/README.md +0 -9
- package/sdd/03_verify/10_test/regression_verification.md +0 -16
- package/sdd/03_verify/10_test/ui_parity/README.md +0 -4
- package/sdd/03_verify/10_test/ui_parity/loop_runs/.gitkeep +0 -0
- package/sdd/03_verify/10_test/ui_parity/reference/.gitkeep +0 -0
- package/sdd/03_verify/10_test/ui_parity/staged_runs/.gitkeep +0 -0
- package/sdd/03_verify/10_test/verification_harness.md +0 -17
- package/sdd/03_verify/README.md +0 -22
- package/sdd/05_operate/01_runbooks/.gitkeep +0 -1
- package/sdd/05_operate/01_runbooks/README.md +0 -4
- package/sdd/05_operate/02_delivery_status/README.md +0 -4
- package/sdd/05_operate/02_delivery_status/service_status.md +0 -16
- package/sdd/05_operate/README.md +0 -12
- package/sdd/99_toolchain/01_automation/.gitkeep +0 -1
- package/sdd/99_toolchain/01_automation/README.md +0 -76
- package/sdd/99_toolchain/01_automation/agentic-dev/analyze_proof_results.py +0 -132
- package/sdd/99_toolchain/01_automation/agentic-dev/analyze_route_gap.py +0 -85
- package/sdd/99_toolchain/01_automation/agentic-dev/assets/repo-contract.template.json +0 -75
- package/sdd/99_toolchain/01_automation/agentic-dev/bootstrap_frontend_parity.sh +0 -84
- package/sdd/99_toolchain/01_automation/agentic-dev/init_frontend_parity.sh +0 -33
- package/sdd/99_toolchain/01_automation/agentic-dev/init_repo_contract.sh +0 -51
- package/sdd/99_toolchain/01_automation/agentic-dev/repo-contract.json +0 -76
- package/sdd/99_toolchain/01_automation/agentic-dev/resolve_frontend_target.py +0 -52
- package/sdd/99_toolchain/01_automation/agentic-dev/resolve_repo_contract.py +0 -56
- package/sdd/99_toolchain/01_automation/agentic-dev/run_frontend_target.sh +0 -100
- package/sdd/99_toolchain/01_automation/agentic-dev/run_repo_phase.sh +0 -140
- package/sdd/99_toolchain/01_automation/agentic-dev/validate_json_schema.py +0 -39
- package/sdd/99_toolchain/01_automation/agentic-parity-harness-design.md +0 -291
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/dashboard.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/queue.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/support.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/home.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/workspace.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/dashboard.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/fulfillment.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/web_screen_capture/dashboard.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/web_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/web_screen_capture/orders.png +0 -0
- package/sdd/99_toolchain/01_automation/build_asset_recipes.py +0 -10
- package/sdd/99_toolchain/01_automation/build_screen_spec_pdf.py +0 -427
- package/sdd/99_toolchain/01_automation/capture_screen_assets.mjs +0 -148
- package/sdd/99_toolchain/01_automation/harness-layout.md +0 -34
- package/sdd/99_toolchain/01_automation/parity-execution-tooling-design.md +0 -319
- package/sdd/99_toolchain/01_automation/playwright_exactness_manifest.py +0 -21
- package/sdd/99_toolchain/01_automation/run_playwright_exactness.py +0 -87
- package/sdd/99_toolchain/01_automation/screen_spec_manifest.py +0 -321
- package/sdd/99_toolchain/01_automation/spec_asset_builder.py +0 -274
- package/sdd/99_toolchain/01_automation/ui-contract-projection.md +0 -79
- package/sdd/99_toolchain/01_automation/ui-parity/README.md +0 -60
- package/sdd/99_toolchain/01_automation/ui-parity/cli/extract-reference-pages.mjs +0 -2
- package/sdd/99_toolchain/01_automation/ui-parity/cli/materialize-reference-assets.mjs +0 -58
- package/sdd/99_toolchain/01_automation/ui-parity/cli/normalize-reference-assets.mjs +0 -2
- package/sdd/99_toolchain/01_automation/ui-parity/cli/route-gap-report.mjs +0 -187
- package/sdd/99_toolchain/01_automation/ui-parity/cli/run-proof.mjs +0 -50
- package/sdd/99_toolchain/01_automation/ui-parity/cli/scaffold-contract.mjs +0 -62
- package/sdd/99_toolchain/01_automation/ui-parity/cli/upload-parity1.mjs +0 -2
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/collector-metadata.schema.json +0 -33
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/proof-result.schema.json +0 -76
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/route-gap-report.schema.json +0 -95
- package/sdd/99_toolchain/01_automation/ui-parity/core/capture-runner.mjs +0 -55
- package/sdd/99_toolchain/01_automation/ui-parity/core/load-adapter.mjs +0 -25
- package/sdd/99_toolchain/01_automation/ui-parity/core/load-contract.mjs +0 -81
- package/sdd/99_toolchain/01_automation/ui-parity/core/paths.mjs +0 -23
- package/sdd/99_toolchain/01_automation/ui-parity/core/proof-runner.mjs +0 -255
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-artifact-layout.md +0 -23
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-proof-interface.md +0 -60
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-route-gap-interface.md +0 -82
- package/sdd/99_toolchain/01_automation/ui-parity/runtime/playwright-runtime.mjs +0 -16
- package/sdd/99_toolchain/01_automation/ui-parity/runtime/static-runtime.mjs +0 -6
- package/sdd/99_toolchain/02_policies/.gitkeep +0 -1
- package/sdd/99_toolchain/02_policies/build-ast-governance-policy.md +0 -22
- package/sdd/99_toolchain/02_policies/compose-runtime-baseline-policy.md +0 -24
- package/sdd/99_toolchain/02_policies/convention-storage-policy.md +0 -26
- package/sdd/99_toolchain/02_policies/main-push-before-dev-deploy-policy.md +0 -27
- package/sdd/99_toolchain/02_policies/regression-verification-policy.md +0 -22
- package/sdd/99_toolchain/03_templates/.gitkeep +0 -1
- package/sdd/99_toolchain/03_templates/asset_recipe_manifest.example.py +0 -38
- package/sdd/99_toolchain/03_templates/generated_assets/README.md +0 -11
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-lockup.svg +0 -3
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-mark.svg +0 -3
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-wordmark.svg +0 -3
- package/sdd/99_toolchain/03_templates/playwright_exactness_manifest.example.py +0 -21
- package/sdd/99_toolchain/README.md +0 -23
- package/sdd/README.md +0 -21
- package/server/.dockerignore +0 -4
- package/server/.env.example +0 -19
- package/server/Dockerfile +0 -22
- package/server/Dockerfile.dev +0 -19
- package/server/README.md +0 -33
- package/server/__init__.py +0 -0
- package/server/api/__init__.py +0 -1
- package/server/api/http/__init__.py +0 -4
- package/server/api/http/app.py +0 -53
- package/server/api/http/router.py +0 -24
- package/server/config.py +0 -52
- package/server/contexts/__init__.py +0 -12
- package/server/contexts/alerts/__init__.py +0 -1
- package/server/contexts/alerts/application/__init__.py +0 -13
- package/server/contexts/alerts/application/services.py +0 -41
- package/server/contexts/alerts/contracts/__init__.py +0 -3
- package/server/contexts/alerts/contracts/http/__init__.py +0 -3
- package/server/contexts/alerts/contracts/http/router.py +0 -37
- package/server/contexts/alerts/domain/__init__.py +0 -15
- package/server/contexts/alerts/domain/models.py +0 -29
- package/server/contexts/alerts/infrastructure/__init__.py +0 -11
- package/server/contexts/alerts/infrastructure/repository.py +0 -41
- package/server/contexts/auth/__init__.py +0 -1
- package/server/contexts/auth/application/__init__.py +0 -3
- package/server/contexts/auth/application/ports.py +0 -10
- package/server/contexts/auth/application/services.py +0 -64
- package/server/contexts/auth/contracts/__init__.py +0 -4
- package/server/contexts/auth/contracts/http/__init__.py +0 -4
- package/server/contexts/auth/contracts/http/dependencies.py +0 -37
- package/server/contexts/auth/contracts/http/router.py +0 -19
- package/server/contexts/auth/domain/__init__.py +0 -3
- package/server/contexts/auth/domain/models.py +0 -24
- package/server/contexts/auth/infrastructure/__init__.py +0 -4
- package/server/contexts/auth/infrastructure/adapters/memory.py +0 -19
- package/server/contexts/auth/infrastructure/adapters/mongodb.py +0 -24
- package/server/contexts/auth/infrastructure/adapters/sqlalchemy.py +0 -74
- package/server/contexts/auth/infrastructure/repository.py +0 -28
- package/server/contexts/catalog/__init__.py +0 -1
- package/server/contexts/catalog/application/__init__.py +0 -28
- package/server/contexts/catalog/application/ports.py +0 -15
- package/server/contexts/catalog/application/services.py +0 -154
- package/server/contexts/catalog/contracts/__init__.py +0 -3
- package/server/contexts/catalog/contracts/http/__init__.py +0 -3
- package/server/contexts/catalog/contracts/http/router.py +0 -60
- package/server/contexts/catalog/domain/__init__.py +0 -45
- package/server/contexts/catalog/domain/models.py +0 -113
- package/server/contexts/catalog/infrastructure/__init__.py +0 -4
- package/server/contexts/catalog/infrastructure/adapters/memory.py +0 -62
- package/server/contexts/catalog/infrastructure/repository.py +0 -8
- package/server/contexts/fulfillment/__init__.py +0 -1
- package/server/contexts/fulfillment/application/__init__.py +0 -13
- package/server/contexts/fulfillment/application/ports.py +0 -20
- package/server/contexts/fulfillment/application/services.py +0 -85
- package/server/contexts/fulfillment/contracts/__init__.py +0 -3
- package/server/contexts/fulfillment/contracts/http/__init__.py +0 -3
- package/server/contexts/fulfillment/contracts/http/router.py +0 -40
- package/server/contexts/fulfillment/domain/__init__.py +0 -25
- package/server/contexts/fulfillment/domain/models.py +0 -73
- package/server/contexts/fulfillment/infrastructure/__init__.py +0 -13
- package/server/contexts/fulfillment/infrastructure/adapters/memory.py +0 -43
- package/server/contexts/fulfillment/infrastructure/repository.py +0 -97
- package/server/contexts/health/__init__.py +0 -1
- package/server/contexts/health/application/__init__.py +0 -3
- package/server/contexts/health/application/services.py +0 -2
- package/server/contexts/health/contracts/__init__.py +0 -3
- package/server/contexts/health/contracts/http/__init__.py +0 -3
- package/server/contexts/health/contracts/http/router.py +0 -10
- package/server/contexts/inventory/__init__.py +0 -1
- package/server/contexts/inventory/application/__init__.py +0 -28
- package/server/contexts/inventory/application/ports.py +0 -11
- package/server/contexts/inventory/application/services.py +0 -214
- package/server/contexts/inventory/contracts/__init__.py +0 -3
- package/server/contexts/inventory/contracts/http/__init__.py +0 -3
- package/server/contexts/inventory/contracts/http/router.py +0 -82
- package/server/contexts/inventory/domain/__init__.py +0 -33
- package/server/contexts/inventory/domain/models.py +0 -93
- package/server/contexts/inventory/infrastructure/__init__.py +0 -4
- package/server/contexts/inventory/infrastructure/adapters/memory.py +0 -24
- package/server/contexts/inventory/infrastructure/repository.py +0 -8
- package/server/contexts/orders/__init__.py +0 -1
- package/server/contexts/orders/application/__init__.py +0 -19
- package/server/contexts/orders/application/services.py +0 -127
- package/server/contexts/orders/contracts/__init__.py +0 -3
- package/server/contexts/orders/contracts/http/__init__.py +0 -3
- package/server/contexts/orders/contracts/http/router.py +0 -82
- package/server/contexts/orders/domain/__init__.py +0 -29
- package/server/contexts/orders/domain/models.py +0 -95
- package/server/contexts/orders/infrastructure/__init__.py +0 -7
- package/server/contexts/orders/infrastructure/repository.py +0 -104
- package/server/contexts/shipping/__init__.py +0 -1
- package/server/contexts/shipping/application/__init__.py +0 -13
- package/server/contexts/shipping/application/services.py +0 -92
- package/server/contexts/shipping/contracts/__init__.py +0 -3
- package/server/contexts/shipping/contracts/http/__init__.py +0 -3
- package/server/contexts/shipping/contracts/http/router.py +0 -40
- package/server/contexts/shipping/domain/__init__.py +0 -19
- package/server/contexts/shipping/domain/models.py +0 -48
- package/server/contexts/shipping/infrastructure/__init__.py +0 -9
- package/server/contexts/shipping/infrastructure/repository.py +0 -50
- package/server/contexts/support/__init__.py +0 -1
- package/server/contexts/support/application/__init__.py +0 -13
- package/server/contexts/support/application/services.py +0 -29
- package/server/contexts/support/contracts/__init__.py +0 -3
- package/server/contexts/support/contracts/http/__init__.py +0 -3
- package/server/contexts/support/contracts/http/router.py +0 -40
- package/server/contexts/support/domain/__init__.py +0 -13
- package/server/contexts/support/domain/models.py +0 -27
- package/server/contexts/support/infrastructure/__init__.py +0 -11
- package/server/contexts/support/infrastructure/repository.py +0 -70
- package/server/contexts/user/__init__.py +0 -1
- package/server/contexts/user/application/__init__.py +0 -3
- package/server/contexts/user/application/ports.py +0 -11
- package/server/contexts/user/application/services.py +0 -44
- package/server/contexts/user/contracts/__init__.py +0 -3
- package/server/contexts/user/contracts/http/__init__.py +0 -3
- package/server/contexts/user/contracts/http/router.py +0 -26
- package/server/contexts/user/domain/__init__.py +0 -3
- package/server/contexts/user/domain/models.py +0 -22
- package/server/contexts/user/infrastructure/__init__.py +0 -3
- package/server/contexts/user/infrastructure/adapters/memory.py +0 -27
- package/server/contexts/user/infrastructure/adapters/mongodb.py +0 -41
- package/server/contexts/user/infrastructure/adapters/sqlalchemy.py +0 -94
- package/server/contexts/user/infrastructure/factory.py +0 -28
- package/server/data/README.md +0 -24
- package/server/data/bootstrap/alerts.json +0 -38
- package/server/data/bootstrap/auth_accounts.json +0 -18
- package/server/data/bootstrap/catalog_products.json +0 -179
- package/server/data/bootstrap/fulfillment_events.json +0 -5
- package/server/data/bootstrap/fulfillment_notes.json +0 -5
- package/server/data/bootstrap/fulfillment_tasks.json +0 -50
- package/server/data/bootstrap/inventory_levels.json +0 -80
- package/server/data/bootstrap/orders.json +0 -62
- package/server/data/bootstrap/shipping_shipments.json +0 -50
- package/server/data/bootstrap/support_faqs.json +0 -26
- package/server/data/bootstrap/users.json +0 -20
- package/server/data/bootstrap_loader.py +0 -15
- package/server/docker-entrypoint.sh +0 -56
- package/server/main.py +0 -3
- package/server/pyproject.toml +0 -36
- package/server/shared/__init__.py +0 -1
- package/server/shared/application/__init__.py +0 -3
- package/server/shared/application/health.py +0 -2
- package/server/shared/infrastructure/__init__.py +0 -10
- package/server/shared/infrastructure/runtime.py +0 -6
- package/server/shared/infrastructure/security.py +0 -33
- package/server/tests/e2e/test_domain_feature_flows.py +0 -483
- package/server/tests/test_health.py +0 -49
- package/server/uv.lock +0 -1169
package/.agent/ralph.sh
DELETED
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
set -euo pipefail
|
|
4
|
-
|
|
5
|
-
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
6
|
-
AGENT_DIR="$ROOT_DIR/.agent"
|
|
7
|
-
PRD_FILE="$AGENT_DIR/prd.json"
|
|
8
|
-
PROMPT_FILE="$AGENT_DIR/prompt.md"
|
|
9
|
-
PROGRESS_FILE="$AGENT_DIR/progress.txt"
|
|
10
|
-
RUNS_DIR="$AGENT_DIR/runs"
|
|
11
|
-
STATE_FILE="$AGENT_DIR/ralph-loop-state.json"
|
|
12
|
-
|
|
13
|
-
story_id=""
|
|
14
|
-
max_iterations=12
|
|
15
|
-
completion_promise="STORY_COMPLETE"
|
|
16
|
-
prompt_file="$PROMPT_FILE"
|
|
17
|
-
run_label=""
|
|
18
|
-
sleep_seconds=0
|
|
19
|
-
dry_run=0
|
|
20
|
-
|
|
21
|
-
usage() {
|
|
22
|
-
cat <<'EOF'
|
|
23
|
-
Usage:
|
|
24
|
-
.agent/ralph.sh [story_id]
|
|
25
|
-
.agent/ralph.sh --story-id MOB-EXACT-AUTH-001 --max-iterations 20
|
|
26
|
-
|
|
27
|
-
Options:
|
|
28
|
-
--story-id ID Ralph story id from .agent/prd.json
|
|
29
|
-
--max-iterations N Maximum codex iterations to run
|
|
30
|
-
--completion-promise TXT Promise token to detect in codex output
|
|
31
|
-
--prompt-file PATH Base prompt markdown file
|
|
32
|
-
--run-label LABEL Optional run label for the log directory
|
|
33
|
-
--sleep-seconds N Sleep between iterations
|
|
34
|
-
--dry-run Do not invoke codex exec; only emit prompt snapshots
|
|
35
|
-
-h, --help Show help
|
|
36
|
-
|
|
37
|
-
Behavior:
|
|
38
|
-
- Select the first in_progress/pending story when no story id is given
|
|
39
|
-
- Run codex exec in a loop until the completion promise is observed
|
|
40
|
-
- Persist per-iteration prompt/output/status artifacts under .agent/runs/
|
|
41
|
-
- Append monitor lines to .agent/progress.txt
|
|
42
|
-
EOF
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
require_file() {
|
|
46
|
-
local file_path="$1"
|
|
47
|
-
if [[ ! -f "$file_path" ]]; then
|
|
48
|
-
echo "Missing required file: $file_path" >&2
|
|
49
|
-
exit 1
|
|
50
|
-
fi
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
select_story() {
|
|
54
|
-
if [[ -n "$story_id" ]]; then
|
|
55
|
-
return 0
|
|
56
|
-
fi
|
|
57
|
-
|
|
58
|
-
story_id="$(
|
|
59
|
-
jq -r '
|
|
60
|
-
.stories
|
|
61
|
-
| map(select(.status == "in_progress" or .status == "pending"))
|
|
62
|
-
| sort_by(.priority)
|
|
63
|
-
| .[0].id // empty
|
|
64
|
-
' "$PRD_FILE"
|
|
65
|
-
)"
|
|
66
|
-
|
|
67
|
-
if [[ -z "$story_id" ]]; then
|
|
68
|
-
echo "No open Ralph story found." >&2
|
|
69
|
-
exit 1
|
|
70
|
-
fi
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
load_story_payload() {
|
|
74
|
-
jq -c --arg id "$story_id" '.stories[] | select(.id == $id)' "$PRD_FILE"
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
write_state() {
|
|
78
|
-
local iteration="$1"
|
|
79
|
-
local status="$2"
|
|
80
|
-
local promise_seen="$3"
|
|
81
|
-
local output_file="$4"
|
|
82
|
-
local prompt_snapshot="$5"
|
|
83
|
-
local exit_code="$6"
|
|
84
|
-
local changed_files_json="$7"
|
|
85
|
-
|
|
86
|
-
cat >"$STATE_FILE" <<EOF
|
|
87
|
-
{
|
|
88
|
-
"updated_at": "$(date -u +"%Y-%m-%dT%H:%M:%SZ")",
|
|
89
|
-
"story_id": "$story_id",
|
|
90
|
-
"max_iterations": $max_iterations,
|
|
91
|
-
"current_iteration": $iteration,
|
|
92
|
-
"status": "$status",
|
|
93
|
-
"completion_promise": "$completion_promise",
|
|
94
|
-
"promise_seen": $promise_seen,
|
|
95
|
-
"last_exit_code": $exit_code,
|
|
96
|
-
"prompt_snapshot": "${prompt_snapshot#$ROOT_DIR/}",
|
|
97
|
-
"output_file": "${output_file#$ROOT_DIR/}",
|
|
98
|
-
"changed_files": $changed_files_json
|
|
99
|
-
}
|
|
100
|
-
EOF
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
snapshot_prompt() {
|
|
104
|
-
local destination="$1"
|
|
105
|
-
local story_payload="$2"
|
|
106
|
-
local iteration="$3"
|
|
107
|
-
|
|
108
|
-
cat "$prompt_file" >"$destination"
|
|
109
|
-
cat >>"$destination" <<EOF
|
|
110
|
-
|
|
111
|
-
Loop control:
|
|
112
|
-
- You are executing one iteration of a persistent Ralph loop runner.
|
|
113
|
-
- Current iteration: $iteration / $max_iterations
|
|
114
|
-
- Story id: $story_id
|
|
115
|
-
- Completion promise token: <promise>$completion_promise</promise>
|
|
116
|
-
- If and only if the requested story is actually complete and all validations pass in this iteration, print exactly:
|
|
117
|
-
<promise>$completion_promise</promise>
|
|
118
|
-
- If the story is not complete, do not print the promise token.
|
|
119
|
-
|
|
120
|
-
Current story payload:
|
|
121
|
-
$(printf '%s\n' "$story_payload" | jq .)
|
|
122
|
-
EOF
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
append_progress_monitor_line() {
|
|
126
|
-
local iteration="$1"
|
|
127
|
-
local status="$2"
|
|
128
|
-
local promise_seen="$3"
|
|
129
|
-
local exit_code="$4"
|
|
130
|
-
echo "$(date +%F) monitor iteration-$iteration story=$story_id status=$status promise=$promise_seen exit=$exit_code" >>"$PROGRESS_FILE"
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
main() {
|
|
134
|
-
require_file "$PRD_FILE"
|
|
135
|
-
require_file "$prompt_file"
|
|
136
|
-
require_file "$PROGRESS_FILE"
|
|
137
|
-
|
|
138
|
-
if [[ $# -gt 0 && "${1:-}" != --* ]]; then
|
|
139
|
-
story_id="$1"
|
|
140
|
-
shift
|
|
141
|
-
fi
|
|
142
|
-
|
|
143
|
-
while [[ $# -gt 0 ]]; do
|
|
144
|
-
case "$1" in
|
|
145
|
-
--story-id)
|
|
146
|
-
story_id="${2:-}"
|
|
147
|
-
shift 2
|
|
148
|
-
;;
|
|
149
|
-
--max-iterations)
|
|
150
|
-
max_iterations="${2:-}"
|
|
151
|
-
shift 2
|
|
152
|
-
;;
|
|
153
|
-
--completion-promise)
|
|
154
|
-
completion_promise="${2:-}"
|
|
155
|
-
shift 2
|
|
156
|
-
;;
|
|
157
|
-
--prompt-file)
|
|
158
|
-
prompt_file="${2:-}"
|
|
159
|
-
shift 2
|
|
160
|
-
;;
|
|
161
|
-
--run-label)
|
|
162
|
-
run_label="${2:-}"
|
|
163
|
-
shift 2
|
|
164
|
-
;;
|
|
165
|
-
--sleep-seconds)
|
|
166
|
-
sleep_seconds="${2:-}"
|
|
167
|
-
shift 2
|
|
168
|
-
;;
|
|
169
|
-
--dry-run)
|
|
170
|
-
dry_run=1
|
|
171
|
-
shift
|
|
172
|
-
;;
|
|
173
|
-
-h|--help)
|
|
174
|
-
usage
|
|
175
|
-
exit 0
|
|
176
|
-
;;
|
|
177
|
-
*)
|
|
178
|
-
echo "Unknown argument: $1" >&2
|
|
179
|
-
usage >&2
|
|
180
|
-
exit 2
|
|
181
|
-
;;
|
|
182
|
-
esac
|
|
183
|
-
done
|
|
184
|
-
|
|
185
|
-
if ! [[ "$max_iterations" =~ ^[0-9]+$ ]] || [[ "$max_iterations" -lt 1 ]]; then
|
|
186
|
-
echo "--max-iterations must be a positive integer" >&2
|
|
187
|
-
exit 2
|
|
188
|
-
fi
|
|
189
|
-
|
|
190
|
-
if ! [[ "$sleep_seconds" =~ ^[0-9]+$ ]] || [[ "$sleep_seconds" -lt 0 ]]; then
|
|
191
|
-
echo "--sleep-seconds must be a non-negative integer" >&2
|
|
192
|
-
exit 2
|
|
193
|
-
fi
|
|
194
|
-
|
|
195
|
-
select_story
|
|
196
|
-
|
|
197
|
-
local story_payload
|
|
198
|
-
story_payload="$(load_story_payload)"
|
|
199
|
-
if [[ -z "$story_payload" ]]; then
|
|
200
|
-
echo "Story not found: $story_id" >&2
|
|
201
|
-
exit 1
|
|
202
|
-
fi
|
|
203
|
-
|
|
204
|
-
if [[ $dry_run -eq 0 ]] && ! command -v codex >/dev/null 2>&1; then
|
|
205
|
-
echo "codex command not found in PATH" >&2
|
|
206
|
-
exit 1
|
|
207
|
-
fi
|
|
208
|
-
|
|
209
|
-
mkdir -p "$RUNS_DIR"
|
|
210
|
-
local run_id
|
|
211
|
-
run_id="$(date +%Y%m%d-%H%M%S)"
|
|
212
|
-
if [[ -n "$run_label" ]]; then
|
|
213
|
-
run_id="$run_id-$run_label"
|
|
214
|
-
fi
|
|
215
|
-
local run_dir="$RUNS_DIR/$run_id-$story_id"
|
|
216
|
-
mkdir -p "$run_dir"
|
|
217
|
-
|
|
218
|
-
local iteration=1
|
|
219
|
-
local final_status="max_iterations_reached"
|
|
220
|
-
local promise_seen=false
|
|
221
|
-
|
|
222
|
-
while [[ "$iteration" -le "$max_iterations" ]]; do
|
|
223
|
-
story_payload="$(load_story_payload)"
|
|
224
|
-
if [[ -z "$story_payload" ]]; then
|
|
225
|
-
echo "Story disappeared from PRD: $story_id" >&2
|
|
226
|
-
final_status="story_missing"
|
|
227
|
-
break
|
|
228
|
-
fi
|
|
229
|
-
|
|
230
|
-
local prompt_snapshot="$run_dir/iteration-$iteration.prompt.md"
|
|
231
|
-
local output_file="$run_dir/iteration-$iteration.output.log"
|
|
232
|
-
local changed_files_file="$run_dir/iteration-$iteration.changed-files.txt"
|
|
233
|
-
local status_file="$run_dir/iteration-$iteration.status.json"
|
|
234
|
-
|
|
235
|
-
snapshot_prompt "$prompt_snapshot" "$story_payload" "$iteration"
|
|
236
|
-
|
|
237
|
-
echo "[ralph] iteration $iteration/$max_iterations story=$story_id"
|
|
238
|
-
echo "[ralph] prompt: ${prompt_snapshot#$ROOT_DIR/}"
|
|
239
|
-
|
|
240
|
-
local exit_code=0
|
|
241
|
-
if [[ $dry_run -eq 1 ]]; then
|
|
242
|
-
printf '[ralph] dry-run: codex exec skipped\n' | tee "$output_file" >/dev/null
|
|
243
|
-
final_status="dry_run"
|
|
244
|
-
else
|
|
245
|
-
set +e
|
|
246
|
-
codex exec -s danger-full-access -C "$ROOT_DIR" - <"$prompt_snapshot" | tee "$output_file"
|
|
247
|
-
exit_code=${PIPESTATUS[0]}
|
|
248
|
-
set -e
|
|
249
|
-
fi
|
|
250
|
-
|
|
251
|
-
git status --short >"$changed_files_file"
|
|
252
|
-
local changed_files_json
|
|
253
|
-
changed_files_json="$(
|
|
254
|
-
jq -R -s '
|
|
255
|
-
split("\n")
|
|
256
|
-
| map(select(length > 0))
|
|
257
|
-
' "$changed_files_file"
|
|
258
|
-
)"
|
|
259
|
-
|
|
260
|
-
if rg -q "<promise>${completion_promise}</promise>" "$output_file"; then
|
|
261
|
-
promise_seen=true
|
|
262
|
-
final_status="completed"
|
|
263
|
-
elif [[ "$exit_code" -eq 0 ]]; then
|
|
264
|
-
final_status="iteration_pass_no_promise"
|
|
265
|
-
else
|
|
266
|
-
final_status="iteration_failed"
|
|
267
|
-
fi
|
|
268
|
-
|
|
269
|
-
write_state "$iteration" "$final_status" "$promise_seen" "$output_file" "$prompt_snapshot" "$exit_code" "$changed_files_json"
|
|
270
|
-
cat >"$status_file" <<EOF
|
|
271
|
-
{
|
|
272
|
-
"iteration": $iteration,
|
|
273
|
-
"story_id": "$story_id",
|
|
274
|
-
"exit_code": $exit_code,
|
|
275
|
-
"status": "$final_status",
|
|
276
|
-
"promise_seen": $promise_seen,
|
|
277
|
-
"output_file": "${output_file#$ROOT_DIR/}",
|
|
278
|
-
"changed_files_file": "${changed_files_file#$ROOT_DIR/}"
|
|
279
|
-
}
|
|
280
|
-
EOF
|
|
281
|
-
append_progress_monitor_line "$iteration" "$final_status" "$promise_seen" "$exit_code"
|
|
282
|
-
|
|
283
|
-
echo "[ralph] status=$final_status exit=$exit_code promise=$promise_seen"
|
|
284
|
-
echo "[ralph] changed-files: ${changed_files_file#$ROOT_DIR/}"
|
|
285
|
-
|
|
286
|
-
if [[ "$promise_seen" == "true" ]]; then
|
|
287
|
-
break
|
|
288
|
-
fi
|
|
289
|
-
|
|
290
|
-
iteration=$((iteration + 1))
|
|
291
|
-
if [[ "$iteration" -le "$max_iterations" && "$sleep_seconds" -gt 0 ]]; then
|
|
292
|
-
sleep "$sleep_seconds"
|
|
293
|
-
fi
|
|
294
|
-
done
|
|
295
|
-
|
|
296
|
-
echo "[ralph] final_status=$final_status story=$story_id run_dir=${run_dir#$ROOT_DIR/}"
|
|
297
|
-
|
|
298
|
-
if [[ "$final_status" == "completed" || "$final_status" == "dry_run" ]]; then
|
|
299
|
-
exit 0
|
|
300
|
-
fi
|
|
301
|
-
|
|
302
|
-
exit 1
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
main "$@"
|
package/.agent/runs/README.md
DELETED
package/.claude/CLAUDE.md
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
## What This Is
|
|
4
|
-
|
|
5
|
-
범용 웹 제품 템플릿에서 Claude/Codex 실행 규칙과 자동화 하네스 위치를 설명하는 문서다.
|
|
6
|
-
|
|
7
|
-
## Environment Naming Policy
|
|
8
|
-
|
|
9
|
-
- 문서/대화/로그에서 실행 환경은 항상 `DEV(개발계)`로 표기한다.
|
|
10
|
-
- `local`, `localhost 환경` 같은 표현은 운영 용어로 사용하지 않는다.
|
|
11
|
-
|
|
12
|
-
## Harness Layout
|
|
13
|
-
|
|
14
|
-
```text
|
|
15
|
-
templates/
|
|
16
|
-
├── .agent/ # Ralph loop harness, PRD scaffold, run state
|
|
17
|
-
├── .claude/ # Claude 설정
|
|
18
|
-
│ ├── agents/ # Claude role agents
|
|
19
|
-
│ └── skills/ # Claude Code repo-local skills (.claude/skills/<name>/SKILL.md)
|
|
20
|
-
├── .codex/ # Codex 설정, 에이전트, 스킬
|
|
21
|
-
├── client/
|
|
22
|
-
│ ├── web/ # 일반 앱 템플릿
|
|
23
|
-
│ ├── admin/ # 어드민 템플릿
|
|
24
|
-
│ ├── mobile/ # 현장형 모바일 템플릿
|
|
25
|
-
│ └── landing/ # 랜딩 템플릿
|
|
26
|
-
├── server/ # HTTP 서버 템플릿
|
|
27
|
-
└── sdd/ # toolchain 정책/자동화 문서
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Working Rules
|
|
31
|
-
|
|
32
|
-
- 컨벤션과 실행 규칙의 정본은 `sdd/99_toolchain/02_policies`에 둔다.
|
|
33
|
-
- DEV 반영이 필요한 작업은 항상 `main push -> DEV 배포 -> DEV 검증` 순서를 따른다.
|
|
34
|
-
- 템플릿은 특정 서비스/도메인/실환경에 종속된 문자열, URL, 자격증명, 브라우저 상태를 포함하지 않는다.
|
|
35
|
-
- 브라우저 자동화 예시는 generic 흐름만 제공하고, 실제 실행 산출물이나 프로필 데이터는 저장하지 않는다.
|
|
36
|
-
- `sdd/03_build`는 runtime assembly를 설명하는 current-state 문서이며 dated execution narrative를 남기지 않는다.
|
|
37
|
-
- AST-style build current-state 적합성은 `scripts/dev/audit_sdd_build_ast.py`로 검증한다.
|
|
38
|
-
|
|
39
|
-
## Claude Skills
|
|
40
|
-
|
|
41
|
-
- Claude Code 최신 project skill 표면은 `.claude/skills/<name>/SKILL.md`다.
|
|
42
|
-
- Claude Code의 custom commands와 skills는 merge된 표면으로 취급한다. 이 템플릿은 공식 skills 디렉터리 구조를 기본값으로 쓴다.
|
|
43
|
-
- Codex와 Claude가 같은 실행 하네스를 공유해야 할 때는 `.codex/skills/*`의 정본 스크립트와 계약을 재사용하고, Claude skill은 그 진입 규칙과 운영 가이드를 얇게 감싼다.
|
|
44
|
-
- 기본 제공 표면은 `otro`, `planning-with-files`, `ralph-loop`, `commit`, `dev-browser`, `prd`, `sdd`, `sdd-development`다.
|
package/.claude/agentic-dev.json
DELETED
package/.claude/agents/ai-dev.md
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
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/`.
|
|
@@ -1,26 +0,0 @@
|
|
|
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.
|
package/.claude/agents/db-dev.md
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
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`, `03_verify`.
|
package/.claude/agents/devops.md
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
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.
|
|
@@ -1,25 +0,0 @@
|
|
|
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 `03_verify`.
|
|
@@ -1,25 +0,0 @@
|
|
|
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`.
|
|
@@ -1,26 +0,0 @@
|
|
|
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/03_verify`.
|
|
26
|
-
- Treat missing automation as a documented gap, not a silent skip.
|
|
@@ -1,25 +0,0 @@
|
|
|
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`.
|
package/.claude/settings.json
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
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
|
-
}
|