agentic-dev 0.2.11 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -46
- package/package.json +8 -22
- package/.agent/prd.json +0 -29
- package/.agent/progress.txt +0 -1
- package/.agent/prompt.md +0 -21
- package/.agent/ralph-loop-state.json +0 -13
- package/.agent/ralph-supervisor-state.json +0 -12
- package/.agent/ralph-supervisor.sh +0 -238
- package/.agent/ralph.sh +0 -305
- package/.agent/runs/README.md +0 -7
- package/.agent/sdd-build-ast-audit.json +0 -13
- package/.claude/CLAUDE.md +0 -44
- package/.claude/agentic-dev.json +0 -3
- package/.claude/agents/ai-dev.md +0 -27
- package/.claude/agents/backend-dev.md +0 -26
- package/.claude/agents/db-dev.md +0 -26
- package/.claude/agents/devops.md +0 -27
- package/.claude/agents/frontend-dev.md +0 -25
- package/.claude/agents/github-ops.md +0 -25
- package/.claude/agents/test-dev.md +0 -26
- package/.claude/agents/uiux-designer.md +0 -25
- package/.claude/settings.json +0 -49
- package/.claude/settings.local.json +0 -8
- package/.claude/skills/sdd/SKILL.md +0 -189
- package/.claude/skills/sdd/agents/openai.yaml +0 -4
- package/.claude/skills/sdd/references/section-map.md +0 -67
- package/.claude/workspace-config.json +0 -3
- package/.codex/agentic-dev.json +0 -3
- package/.codex/agents/README.md +0 -22
- package/.codex/agents/api.toml +0 -11
- package/.codex/agents/architecture.toml +0 -11
- package/.codex/agents/ci.toml +0 -11
- package/.codex/agents/gitops.toml +0 -11
- package/.codex/agents/orchestrator.toml +0 -11
- package/.codex/agents/quality.toml +0 -11
- package/.codex/agents/runtime.toml +0 -11
- package/.codex/agents/security.toml +0 -11
- package/.codex/agents/specs.toml +0 -11
- package/.codex/agents/ui.toml +0 -11
- package/.codex/config.toml +0 -46
- package/.codex/skills/SKILL.md +0 -13
- package/.codex/skills/sdd/SKILL.md +0 -189
- package/.codex/skills/sdd/agents/openai.yaml +0 -4
- package/.codex/skills/sdd/references/section-map.md +0 -67
- package/.dockerignore +0 -8
- package/.env.example +0 -50
- package/.gitignore +0 -16
- package/AGENTS.md +0 -86
- package/SDD_SKILL.md +0 -589
- package/compose.yml +0 -206
- package/infra/compose/.env.dev.example +0 -28
- package/infra/compose/.env.prod.example +0 -29
- package/infra/compose/README.md +0 -35
- package/infra/compose/dev.yml +0 -125
- package/infra/compose/prod.yml +0 -126
- package/infra/terraform/README.md +0 -34
- package/infra/terraform/aws/data/.terraform.lock.hcl +0 -25
- package/infra/terraform/aws/data/README.md +0 -18
- package/infra/terraform/aws/data/main.tf +0 -147
- package/infra/terraform/aws/data/outputs.tf +0 -14
- package/infra/terraform/aws/data/variables.tf +0 -57
- package/infra/terraform/aws/data/versions.tf +0 -10
- package/infra/terraform/aws/domain/.terraform.lock.hcl +0 -25
- package/infra/terraform/aws/domain/README.md +0 -20
- package/infra/terraform/aws/domain/env/dev.tfvars.example +0 -6
- package/infra/terraform/aws/domain/env/prod.tfvars.example +0 -7
- package/infra/terraform/aws/domain/main.tf +0 -149
- package/infra/terraform/aws/domain/outputs.tf +0 -29
- package/infra/terraform/aws/domain/variables.tf +0 -58
- package/infra/terraform/aws/domain/versions.tf +0 -10
- package/infra/terraform/openstack/README.md +0 -38
- package/infra/terraform/openstack/dev/.terraform.lock.hcl +0 -24
- package/infra/terraform/openstack/dev/README.md +0 -18
- package/infra/terraform/openstack/dev/main.tf +0 -49
- package/infra/terraform/openstack/dev/providers.tf +0 -15
- package/infra/terraform/openstack/dev/terraform.tfvars.example +0 -54
- package/infra/terraform/openstack/dev/variables.tf +0 -210
- package/infra/terraform/openstack/dev/versions.tf +0 -10
- package/infra/terraform/openstack/modules/environment_host/main.tf +0 -143
- package/infra/terraform/openstack/modules/environment_host/outputs.tf +0 -25
- package/infra/terraform/openstack/modules/environment_host/templates/docker-host-user-data.sh.tftpl +0 -40
- package/infra/terraform/openstack/modules/environment_host/variables.tf +0 -145
- package/infra/terraform/openstack/modules/environment_host/versions.tf +0 -7
- package/infra/terraform/openstack/prod/.terraform.lock.hcl +0 -24
- package/infra/terraform/openstack/prod/README.md +0 -18
- package/infra/terraform/openstack/prod/main.tf +0 -49
- package/infra/terraform/openstack/prod/providers.tf +0 -15
- package/infra/terraform/openstack/prod/terraform.tfvars.example +0 -55
- package/infra/terraform/openstack/prod/variables.tf +0 -210
- package/infra/terraform/openstack/prod/versions.tf +0 -10
- package/infra/terraform/openstack/server/.terraform.lock.hcl +0 -45
- package/infra/terraform/openstack/server/README.md +0 -47
- package/infra/terraform/openstack/server/main.tf +0 -161
- package/infra/terraform/openstack/server/outputs.tf +0 -30
- package/infra/terraform/openstack/server/providers.tf +0 -30
- package/infra/terraform/openstack/server/templates/server-user-data.sh.tftpl +0 -50
- package/infra/terraform/openstack/server/variables.tf +0 -233
- package/infra/terraform/openstack/server/zz_aspace.auto.tfvars.example.json +0 -29
- package/pnpm-workspace.yaml +0 -2
- package/scripts/dev/audit_sdd_build_ast.py +0 -277
- package/sdd/01_planning/01_feature/INDEX.md +0 -16
- package/sdd/01_planning/01_feature/README.md +0 -76
- package/sdd/01_planning/01_feature/alerts_feature_spec.md +0 -55
- package/sdd/01_planning/01_feature/auth_feature_spec.md +0 -57
- package/sdd/01_planning/01_feature/catalog_feature_spec.md +0 -61
- package/sdd/01_planning/01_feature/fulfillment_feature_spec.md +0 -58
- package/sdd/01_planning/01_feature/health_feature_spec.md +0 -52
- package/sdd/01_planning/01_feature/inventory_feature_spec.md +0 -60
- package/sdd/01_planning/01_feature/order_feature_spec.md +0 -63
- package/sdd/01_planning/01_feature/shipping_feature_spec.md +0 -55
- package/sdd/01_planning/01_feature/support_feature_spec.md +0 -53
- package/sdd/01_planning/01_feature/user_feature_spec.md +0 -54
- package/sdd/01_planning/02_screen/INDEX.md +0 -13
- package/sdd/01_planning/02_screen/README.md +0 -41
- package/sdd/01_planning/02_screen/admin_screen_spec.pdf +0 -0
- package/sdd/01_planning/02_screen/assets/README.md +0 -16
- package/sdd/01_planning/02_screen/assets/example/README.md +0 -13
- package/sdd/01_planning/02_screen/landing_screen_spec.pdf +0 -0
- package/sdd/01_planning/02_screen/mobile_screen_spec.pdf +0 -0
- package/sdd/01_planning/02_screen/web_screen_spec.pdf +0 -0
- package/sdd/01_planning/03_architecture/INDEX.md +0 -9
- package/sdd/01_planning/03_architecture/README.md +0 -25
- package/sdd/01_planning/03_architecture/architecture_document_structure.md +0 -77
- package/sdd/01_planning/03_architecture/backend/README.md +0 -10
- package/sdd/01_planning/03_architecture/frontend/README.md +0 -12
- package/sdd/01_planning/03_architecture/infra/README.md +0 -10
- package/sdd/01_planning/03_architecture/tech-research/README.md +0 -4
- package/sdd/01_planning/03_architecture/templates_system_architecture.md +0 -84
- package/sdd/01_planning/04_data/INDEX.md +0 -4
- package/sdd/01_planning/04_data/README.md +0 -10
- package/sdd/01_planning/04_data/templates_data_modeling.md +0 -119
- package/sdd/01_planning/05_api/README.md +0 -12
- package/sdd/01_planning/05_api/templates_api_contract.md +0 -90
- package/sdd/01_planning/06_iac/README.md +0 -11
- package/sdd/01_planning/06_iac/templates_runtime_and_cicd_baseline.md +0 -46
- package/sdd/01_planning/07_integration/README.md +0 -11
- package/sdd/01_planning/07_integration/templates_frontend_api_integration.md +0 -46
- package/sdd/01_planning/08_nonfunctional/README.md +0 -7
- package/sdd/01_planning/09_security/README.md +0 -7
- package/sdd/01_planning/10_test/README.md +0 -12
- package/sdd/01_planning/10_test/templates_test_strategy.md +0 -60
- package/sdd/01_planning/INDEX.md +0 -19
- package/sdd/01_planning/README.md +0 -17
- package/sdd/02_plan/01_feature/README.md +0 -34
- package/sdd/02_plan/01_feature/_feature_todo_template.md +0 -29
- package/sdd/02_plan/02_screen/INDEX.md +0 -19
- package/sdd/02_plan/02_screen/README.md +0 -39
- package/sdd/02_plan/02_screen/_screen_todo_template.md +0 -60
- package/sdd/02_plan/03_architecture/README.md +0 -23
- package/sdd/02_plan/03_architecture/architecture_document_governance.md +0 -40
- package/sdd/02_plan/03_architecture/build_ast_runtime_tree_governance.md +0 -53
- package/sdd/02_plan/03_architecture/repository_governance.md +0 -39
- package/sdd/02_plan/03_architecture/runtime_and_structure_governance.md +0 -38
- package/sdd/02_plan/03_architecture/templates-hexagonal-template-architecture.md +0 -9
- package/sdd/02_plan/03_architecture/toolchain_governance.md +0 -98
- package/sdd/02_plan/04_data/README.md +0 -5
- package/sdd/02_plan/05_api/README.md +0 -5
- package/sdd/02_plan/06_iac/README.md +0 -11
- package/sdd/02_plan/06_iac/dev_runtime_delivery.md +0 -36
- package/sdd/02_plan/06_iac/template_runtime_delivery.md +0 -50
- package/sdd/02_plan/07_integration/README.md +0 -5
- package/sdd/02_plan/07_integration/frontend_live_integration.md +0 -31
- package/sdd/02_plan/08_nonfunctional/README.md +0 -5
- package/sdd/02_plan/08_nonfunctional/repository_hygiene.md +0 -26
- package/sdd/02_plan/09_security/README.md +0 -5
- package/sdd/02_plan/10_test/README.md +0 -11
- package/sdd/02_plan/10_test/regression_verification.md +0 -39
- package/sdd/02_plan/10_test/templates/README.md +0 -8
- package/sdd/02_plan/10_test/templates/ui_parity_web_contract.template.yaml +0 -23
- package/sdd/02_plan/10_test/verification_strategy.md +0 -43
- package/sdd/02_plan/99_generated/from_planning/ui_parity/.gitkeep +0 -1
- package/sdd/02_plan/README.md +0 -40
- package/sdd/03_build/01_feature/README.md +0 -20
- package/sdd/03_build/01_feature/domain/README.md +0 -3
- package/sdd/03_build/01_feature/domain/account_and_access.md +0 -20
- package/sdd/03_build/01_feature/domain/catalog_and_inventory.md +0 -20
- package/sdd/03_build/01_feature/domain/ordering_and_fulfillment.md +0 -21
- package/sdd/03_build/01_feature/domain/support_and_observability.md +0 -21
- package/sdd/03_build/01_feature/domain_surfaces.md +0 -28
- package/sdd/03_build/01_feature/service/README.md +0 -3
- package/sdd/03_build/01_feature/service/admin_surface.md +0 -15
- package/sdd/03_build/01_feature/service/landing_surface.md +0 -13
- package/sdd/03_build/01_feature/service/mobile_surface.md +0 -14
- package/sdd/03_build/01_feature/service/web_surface.md +0 -14
- package/sdd/03_build/02_screen/README.md +0 -25
- package/sdd/03_build/02_screen/_screen_build_template.md +0 -26
- package/sdd/03_build/02_screen/admin/README.md +0 -5
- package/sdd/03_build/02_screen/landing/README.md +0 -5
- package/sdd/03_build/02_screen/mobile/README.md +0 -5
- package/sdd/03_build/02_screen/web/README.md +0 -5
- package/sdd/03_build/03_architecture/README.md +0 -10
- package/sdd/03_build/03_architecture/architecture_document_governance.md +0 -30
- package/sdd/03_build/03_architecture/build_ast_runtime_tree_governance.md +0 -24
- package/sdd/03_build/03_architecture/repository_governance.md +0 -18
- package/sdd/03_build/03_architecture/toolchain_governance.md +0 -36
- package/sdd/03_build/06_iac/README.md +0 -3
- package/sdd/03_build/06_iac/dev_runtime_delivery.md +0 -10
- package/sdd/03_build/06_iac/template_runtime_delivery.md +0 -49
- package/sdd/03_build/07_integration/README.md +0 -3
- package/sdd/03_build/07_integration/frontend_live_integration.md +0 -11
- package/sdd/03_build/08_nonfunctional/README.md +0 -3
- package/sdd/03_build/08_nonfunctional/repository_hygiene.md +0 -10
- package/sdd/03_build/10_test/README.md +0 -9
- package/sdd/03_build/10_test/regression_verification.md +0 -16
- package/sdd/03_build/10_test/verification_harness.md +0 -11
- package/sdd/03_build/README.md +0 -35
- package/sdd/03_verify/01_feature/README.md +0 -5
- package/sdd/03_verify/01_feature/domain_verification.md +0 -14
- package/sdd/03_verify/01_feature/service_verification.md +0 -22
- package/sdd/03_verify/02_screen/README.md +0 -6
- package/sdd/03_verify/02_screen/_screen_verify_template.md +0 -20
- package/sdd/03_verify/02_screen/admin/README.md +0 -4
- package/sdd/03_verify/02_screen/landing/README.md +0 -4
- package/sdd/03_verify/02_screen/mobile/README.md +0 -4
- package/sdd/03_verify/02_screen/web/README.md +0 -4
- package/sdd/03_verify/03_architecture/README.md +0 -10
- package/sdd/03_verify/03_architecture/architecture_document_governance.md +0 -15
- package/sdd/03_verify/03_architecture/build_ast_runtime_tree_governance.md +0 -28
- package/sdd/03_verify/03_architecture/repository_governance.md +0 -16
- package/sdd/03_verify/03_architecture/toolchain_governance.md +0 -58
- package/sdd/03_verify/06_iac/README.md +0 -3
- package/sdd/03_verify/06_iac/dev_runtime_delivery.md +0 -10
- package/sdd/03_verify/06_iac/template_runtime_delivery.md +0 -42
- package/sdd/03_verify/07_integration/README.md +0 -3
- package/sdd/03_verify/07_integration/frontend_live_integration.md +0 -16
- package/sdd/03_verify/08_nonfunctional/README.md +0 -3
- package/sdd/03_verify/08_nonfunctional/repository_hygiene.md +0 -14
- package/sdd/03_verify/10_test/README.md +0 -9
- package/sdd/03_verify/10_test/regression_verification.md +0 -16
- package/sdd/03_verify/10_test/ui_parity/README.md +0 -4
- package/sdd/03_verify/10_test/ui_parity/loop_runs/.gitkeep +0 -0
- package/sdd/03_verify/10_test/ui_parity/reference/.gitkeep +0 -0
- package/sdd/03_verify/10_test/ui_parity/staged_runs/.gitkeep +0 -0
- package/sdd/03_verify/10_test/verification_harness.md +0 -17
- package/sdd/03_verify/README.md +0 -22
- package/sdd/05_operate/01_runbooks/.gitkeep +0 -1
- package/sdd/05_operate/01_runbooks/README.md +0 -4
- package/sdd/05_operate/02_delivery_status/README.md +0 -4
- package/sdd/05_operate/02_delivery_status/service_status.md +0 -16
- package/sdd/05_operate/README.md +0 -12
- package/sdd/99_toolchain/01_automation/.gitkeep +0 -1
- package/sdd/99_toolchain/01_automation/README.md +0 -76
- package/sdd/99_toolchain/01_automation/agentic-dev/analyze_proof_results.py +0 -132
- package/sdd/99_toolchain/01_automation/agentic-dev/analyze_route_gap.py +0 -85
- package/sdd/99_toolchain/01_automation/agentic-dev/assets/repo-contract.template.json +0 -75
- package/sdd/99_toolchain/01_automation/agentic-dev/bootstrap_frontend_parity.sh +0 -84
- package/sdd/99_toolchain/01_automation/agentic-dev/init_frontend_parity.sh +0 -33
- package/sdd/99_toolchain/01_automation/agentic-dev/init_repo_contract.sh +0 -51
- package/sdd/99_toolchain/01_automation/agentic-dev/repo-contract.json +0 -76
- package/sdd/99_toolchain/01_automation/agentic-dev/resolve_frontend_target.py +0 -52
- package/sdd/99_toolchain/01_automation/agentic-dev/resolve_repo_contract.py +0 -56
- package/sdd/99_toolchain/01_automation/agentic-dev/run_frontend_target.sh +0 -100
- package/sdd/99_toolchain/01_automation/agentic-dev/run_repo_phase.sh +0 -140
- package/sdd/99_toolchain/01_automation/agentic-dev/validate_json_schema.py +0 -39
- package/sdd/99_toolchain/01_automation/agentic-parity-harness-design.md +0 -291
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/dashboard.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/queue.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/support.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/home.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/workspace.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/dashboard.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/fulfillment.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/web_screen_capture/dashboard.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/web_screen_capture/login.png +0 -0
- package/sdd/99_toolchain/01_automation/assets/web_screen_capture/orders.png +0 -0
- package/sdd/99_toolchain/01_automation/build_asset_recipes.py +0 -10
- package/sdd/99_toolchain/01_automation/build_screen_spec_pdf.py +0 -427
- package/sdd/99_toolchain/01_automation/capture_screen_assets.mjs +0 -148
- package/sdd/99_toolchain/01_automation/harness-layout.md +0 -34
- package/sdd/99_toolchain/01_automation/parity-execution-tooling-design.md +0 -319
- package/sdd/99_toolchain/01_automation/playwright_exactness_manifest.py +0 -21
- package/sdd/99_toolchain/01_automation/run_playwright_exactness.py +0 -87
- package/sdd/99_toolchain/01_automation/screen_spec_manifest.py +0 -321
- package/sdd/99_toolchain/01_automation/spec_asset_builder.py +0 -274
- package/sdd/99_toolchain/01_automation/ui-contract-projection.md +0 -79
- package/sdd/99_toolchain/01_automation/ui-parity/README.md +0 -60
- package/sdd/99_toolchain/01_automation/ui-parity/cli/extract-reference-pages.mjs +0 -2
- package/sdd/99_toolchain/01_automation/ui-parity/cli/materialize-reference-assets.mjs +0 -58
- package/sdd/99_toolchain/01_automation/ui-parity/cli/normalize-reference-assets.mjs +0 -2
- package/sdd/99_toolchain/01_automation/ui-parity/cli/route-gap-report.mjs +0 -187
- package/sdd/99_toolchain/01_automation/ui-parity/cli/run-proof.mjs +0 -50
- package/sdd/99_toolchain/01_automation/ui-parity/cli/scaffold-contract.mjs +0 -62
- package/sdd/99_toolchain/01_automation/ui-parity/cli/upload-parity1.mjs +0 -2
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/collector-metadata.schema.json +0 -33
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/proof-result.schema.json +0 -76
- package/sdd/99_toolchain/01_automation/ui-parity/contracts/route-gap-report.schema.json +0 -95
- package/sdd/99_toolchain/01_automation/ui-parity/core/capture-runner.mjs +0 -55
- package/sdd/99_toolchain/01_automation/ui-parity/core/load-adapter.mjs +0 -25
- package/sdd/99_toolchain/01_automation/ui-parity/core/load-contract.mjs +0 -81
- package/sdd/99_toolchain/01_automation/ui-parity/core/paths.mjs +0 -23
- package/sdd/99_toolchain/01_automation/ui-parity/core/proof-runner.mjs +0 -255
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-artifact-layout.md +0 -23
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-proof-interface.md +0 -60
- package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-route-gap-interface.md +0 -82
- package/sdd/99_toolchain/01_automation/ui-parity/runtime/playwright-runtime.mjs +0 -16
- package/sdd/99_toolchain/01_automation/ui-parity/runtime/static-runtime.mjs +0 -6
- package/sdd/99_toolchain/02_policies/.gitkeep +0 -1
- package/sdd/99_toolchain/02_policies/build-ast-governance-policy.md +0 -22
- package/sdd/99_toolchain/02_policies/compose-runtime-baseline-policy.md +0 -24
- package/sdd/99_toolchain/02_policies/convention-storage-policy.md +0 -26
- package/sdd/99_toolchain/02_policies/main-push-before-dev-deploy-policy.md +0 -27
- package/sdd/99_toolchain/02_policies/regression-verification-policy.md +0 -22
- package/sdd/99_toolchain/03_templates/.gitkeep +0 -1
- package/sdd/99_toolchain/03_templates/asset_recipe_manifest.example.py +0 -38
- package/sdd/99_toolchain/03_templates/generated_assets/README.md +0 -11
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-lockup.svg +0 -3
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-mark.svg +0 -3
- package/sdd/99_toolchain/03_templates/generated_assets/example-brand-wordmark.svg +0 -3
- package/sdd/99_toolchain/03_templates/playwright_exactness_manifest.example.py +0 -21
- package/sdd/99_toolchain/README.md +0 -23
- package/sdd/README.md +0 -21
package/README.md
CHANGED
|
@@ -1,69 +1,76 @@
|
|
|
1
1
|
# agentic-dev
|
|
2
2
|
|
|
3
|
-
`agentic-dev`는 `say828
|
|
3
|
+
`agentic-dev`는 `say828/template-*` 레포를 GitHub에서 조회해 설치하는 npm CLI다.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
이 저장소 자체에는 더 이상 template runtime payload를 두지 않는다.
|
|
6
|
+
|
|
7
|
+
- 없음: `client/*`
|
|
8
|
+
- 없음: `server/*`
|
|
9
|
+
- 없음: `infra/*`
|
|
10
|
+
- 없음: root `sdd/*`
|
|
11
|
+
- 실제 앱 구조와 toolchain은 각 `template-*` 레포가 소유
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
6
14
|
|
|
7
15
|
```bash
|
|
8
16
|
npx agentic-dev
|
|
9
17
|
```
|
|
10
18
|
|
|
11
|
-
|
|
19
|
+
비대화형 예시:
|
|
12
20
|
|
|
13
21
|
```bash
|
|
14
22
|
npx agentic-dev init my-app --template template-fullstack-mono --yes
|
|
15
|
-
npx agentic-dev init my-app --template template-web --
|
|
23
|
+
npx agentic-dev init my-app --template template-web --project-name my-app --app-mode backend --providers codex --yes
|
|
16
24
|
```
|
|
17
25
|
|
|
18
|
-
##
|
|
19
|
-
|
|
20
|
-
1. GitHub에서 공개 `say828/template-*` 레포 목록을 조회한다.
|
|
21
|
-
2. interactive TTY에서는 wizard 화면을 순서대로 보여준다.
|
|
22
|
-
- `←/→`: 이전/다음 화면 이동
|
|
23
|
-
- `↑/↓`: 고정 선택지 이동
|
|
24
|
-
- `Space`: AI providers 다중 선택 토글
|
|
25
|
-
- `Enter`: 현재 화면 값 확정
|
|
26
|
-
3. wizard는 최소한 아래 정보를 모두 먼저 받는다.
|
|
27
|
-
- project directory
|
|
28
|
-
- project name
|
|
29
|
-
- GitHub auth mode
|
|
30
|
-
- GitHub PAT (`auth mode = pat`일 때만)
|
|
31
|
-
- template repo
|
|
32
|
-
- app mode
|
|
33
|
-
- AI providers
|
|
34
|
-
- non-empty directory 진행 여부가 필요하면 그 확인
|
|
35
|
-
4. 모든 입력이 끝나면 실행 계획 요약과 최종 확인 화면을 보여준다.
|
|
36
|
-
5. 최종 확인 전에는 clone, install, bootstrap을 시작하지 않는다.
|
|
37
|
-
6. 확인 후에만 선택한 레포를 새 디렉터리로 복제한다.
|
|
38
|
-
7. `.env.example`이 있으면 `.env`를 자동 생성한다.
|
|
39
|
-
8. `pnpm install`을 자동 실행한다.
|
|
40
|
-
9. 템플릿의 `repo-contract.json`에서 `frontend.default_target`을 읽는다.
|
|
41
|
-
10. `app mode != backend`이면 그 target에 대해 `playwright install chromium`과 parity bootstrap을 실행한다.
|
|
42
|
-
11. `AI providers` 선택에 따라 `.codex`, `.claude` 디렉터리를 정리하고 `.agentic-dev/setup.json`에 wizard 입력값을 기록한다.
|
|
43
|
-
|
|
44
|
-
`frontend.default_target`이 있으면 multi-surface 템플릿도 그대로 지원한다. 예를 들어 `template-fullstack-mono`는 `client/web`과 `client/admin`을 함께 포함하지만 기본 bootstrap 대상은 `web`이다.
|
|
45
|
-
|
|
46
|
-
## 예시
|
|
26
|
+
## Wizard Flow
|
|
47
27
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
28
|
+
interactive TTY에서는 모든 입력을 먼저 받는다.
|
|
29
|
+
|
|
30
|
+
- `Project directory`
|
|
31
|
+
- `Project name`
|
|
32
|
+
- `GitHub auth mode`
|
|
33
|
+
- `GitHub PAT` (`auth mode = pat`일 때만)
|
|
34
|
+
- `Template repo`
|
|
35
|
+
- `App mode`
|
|
36
|
+
- `AI providers`
|
|
37
|
+
- non-empty directory 진행 여부가 필요하면 그 확인
|
|
38
|
+
- 최종 확인
|
|
39
|
+
|
|
40
|
+
조작:
|
|
41
|
+
|
|
42
|
+
- `←/→`: 이전/다음 화면 이동
|
|
43
|
+
- `↑/↓`: 고정 선택지 이동
|
|
44
|
+
- `Space`: AI providers 토글
|
|
45
|
+
- `Enter`: 현재 화면 값 확정
|
|
46
|
+
|
|
47
|
+
중요:
|
|
48
|
+
|
|
49
|
+
- 최종 확인 전에는 clone, install, bootstrap을 실행하지 않는다.
|
|
50
|
+
- 모든 선택이 끝난 뒤 실행 계획 요약을 보여주고, 그 다음에만 명령을 실행한다.
|
|
51
|
+
|
|
52
|
+
## What Runs After Confirm
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
확인 후 CLI는 선택한 `template-*` 레포 안에서 필요한 명령만 실행한다.
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
1. template repo clone
|
|
57
|
+
2. `.env.example -> .env` 복사
|
|
58
|
+
3. `pnpm install`
|
|
59
|
+
4. `app mode != backend`이면 Playwright Chromium 설치
|
|
60
|
+
5. `app mode != backend`이면 template repo의 parity/bootstrap 스크립트 실행
|
|
61
|
+
6. `.agentic-dev/setup.json` 기록
|
|
62
|
+
7. 선택한 AI provider에 맞춰 `.codex`, `.claude` 디렉터리 정리
|
|
61
63
|
|
|
62
|
-
##
|
|
64
|
+
## Options
|
|
63
65
|
|
|
64
66
|
- `--template`, `-t`: template repo name 또는 suffix
|
|
67
|
+
- `--project-name`: scaffold metadata에 기록할 프로젝트 이름
|
|
65
68
|
- `--owner`: GitHub owner. 기본값 `say828`
|
|
69
|
+
- `--app-mode`: `fullstack`, `frontend`, `backend`
|
|
70
|
+
- `--providers`: comma-separated provider list. `codex`, `claude`, `ollama`
|
|
71
|
+
- `--github-auth`: `public`, `env`, `pat`
|
|
72
|
+
- `--github-pat`: 현재 실행에만 쓸 GitHub PAT
|
|
66
73
|
- `--force`: 비어 있지 않은 디렉터리 허용
|
|
67
|
-
- `--yes`, `-y`: interactive
|
|
74
|
+
- `--yes`, `-y`: interactive wizard 생략
|
|
68
75
|
- `--skip-bootstrap`: install까지만 하고 bootstrap은 생략
|
|
69
76
|
- `--help`, `-h`: 도움말 출력
|
package/package.json
CHANGED
|
@@ -1,41 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-dev",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.2.12",
|
|
4
|
+
"description": "GitHub-based installer CLI for public say828/template-* repos.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@10.32.0",
|
|
7
7
|
"bin": {
|
|
8
8
|
"agentic-dev": "./bin/agentic-dev.mjs"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
|
-
".agent",
|
|
12
|
-
".claude",
|
|
13
|
-
".codex",
|
|
14
11
|
"bin",
|
|
15
|
-
"client",
|
|
16
|
-
"infra",
|
|
17
12
|
"lib",
|
|
18
|
-
"
|
|
19
|
-
"sdd",
|
|
20
|
-
"server",
|
|
21
|
-
".dockerignore",
|
|
22
|
-
".env.example",
|
|
23
|
-
".gitignore",
|
|
24
|
-
"AGENTS.md",
|
|
25
|
-
"README.md",
|
|
26
|
-
"SDD_SKILL.md",
|
|
27
|
-
"compose.yml",
|
|
28
|
-
"pnpm-workspace.yaml"
|
|
13
|
+
"README.md"
|
|
29
14
|
],
|
|
30
15
|
"scripts": {
|
|
31
|
-
"smoke:init": "node ./bin/agentic-dev.mjs init ./.tmp-agentic-smoke --template template-
|
|
16
|
+
"smoke:init": "node ./bin/agentic-dev.mjs init ./.tmp-agentic-smoke --template template-web --app-mode backend --providers codex --yes --force"
|
|
32
17
|
},
|
|
33
18
|
"keywords": [
|
|
34
19
|
"agentic",
|
|
35
|
-
"template",
|
|
36
20
|
"scaffold",
|
|
37
|
-
"
|
|
38
|
-
"
|
|
21
|
+
"cli",
|
|
22
|
+
"github",
|
|
23
|
+
"template",
|
|
24
|
+
"orchestration"
|
|
39
25
|
],
|
|
40
26
|
"license": "UNLICENSED"
|
|
41
27
|
}
|
package/.agent/prd.json
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"project": "template-agentic-program",
|
|
3
|
-
"goal": "이 파일은 Ralph loop starter scaffold다. downstream 저장소는 현재 작업 scope에 맞는 story set으로 즉시 교체한다.",
|
|
4
|
-
"updated_at": "2026-03-19T00:00:00+09:00",
|
|
5
|
-
"stories": [
|
|
6
|
-
{
|
|
7
|
-
"id": "TEMPLATE-ALIGN-001",
|
|
8
|
-
"title": "Replace template PRD scaffold with repository-specific delivery stories",
|
|
9
|
-
"priority": 1,
|
|
10
|
-
"status": "pending",
|
|
11
|
-
"scope": [
|
|
12
|
-
".agent/prd.json",
|
|
13
|
-
".agent/prompt.md",
|
|
14
|
-
"sdd/02_plan",
|
|
15
|
-
"sdd/03_build",
|
|
16
|
-
"sdd/03_verify"
|
|
17
|
-
],
|
|
18
|
-
"validation": [
|
|
19
|
-
"jq . .agent/prd.json"
|
|
20
|
-
],
|
|
21
|
-
"done_when": [
|
|
22
|
-
"Template placeholder stories are replaced with repository-specific work items.",
|
|
23
|
-
"Validation commands point at the active repository program.",
|
|
24
|
-
"progress.txt contains the current operator note."
|
|
25
|
-
],
|
|
26
|
-
"blockers": []
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
}
|
package/.agent/progress.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2026-03-19 scaffold initialized for canonical template Ralph loop.
|
package/.agent/prompt.md
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
You are running one Ralph iteration in this repository.
|
|
2
|
-
|
|
3
|
-
Rules:
|
|
4
|
-
1. Read `.agent/prd.json` and `.agent/progress.txt`.
|
|
5
|
-
2. Work only on the requested story id.
|
|
6
|
-
3. Lock one reproduction or validation command before editing.
|
|
7
|
-
4. Make one focused change set toward the requested story.
|
|
8
|
-
5. Re-run the requested validation commands immediately.
|
|
9
|
-
6. Update the matching `sdd/02_plan`, `sdd/03_build`, and `sdd/03_verify` current-state artifacts when scope changes.
|
|
10
|
-
7. Update `.agent/prd.json` story status and append one short line to `.agent/progress.txt`.
|
|
11
|
-
8. Stop after this iteration and report:
|
|
12
|
-
- story id
|
|
13
|
-
- validation status
|
|
14
|
-
- files changed
|
|
15
|
-
- next story or blocker
|
|
16
|
-
9. If the caller provided a completion promise token and the story is truly complete in this iteration, print that token exactly once.
|
|
17
|
-
|
|
18
|
-
Guardrails:
|
|
19
|
-
- Do not create a parallel `docs/` tree when `sdd/` exists.
|
|
20
|
-
- Do not leave execution-history narrative inside `sdd/03_build`.
|
|
21
|
-
- Do not claim completion without validation evidence.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"updated_at": "2026-03-19T00:00:00Z",
|
|
3
|
-
"story_id": "",
|
|
4
|
-
"max_iterations": 12,
|
|
5
|
-
"current_iteration": 0,
|
|
6
|
-
"status": "idle",
|
|
7
|
-
"completion_promise": "STORY_COMPLETE",
|
|
8
|
-
"promise_seen": false,
|
|
9
|
-
"last_exit_code": 0,
|
|
10
|
-
"prompt_snapshot": "",
|
|
11
|
-
"output_file": "",
|
|
12
|
-
"changed_files": []
|
|
13
|
-
}
|
|
@@ -1,238 +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
|
-
PROGRESS_FILE="$AGENT_DIR/progress.txt"
|
|
9
|
-
RUNS_DIR="$AGENT_DIR/runs"
|
|
10
|
-
STATE_FILE="$AGENT_DIR/ralph-supervisor-state.json"
|
|
11
|
-
RALPH_RUNNER="$AGENT_DIR/ralph.sh"
|
|
12
|
-
|
|
13
|
-
max_iterations=1000
|
|
14
|
-
story_iterations=1
|
|
15
|
-
completion_promise="STORY_COMPLETE"
|
|
16
|
-
run_label=""
|
|
17
|
-
sleep_seconds=0
|
|
18
|
-
dry_run=0
|
|
19
|
-
|
|
20
|
-
usage() {
|
|
21
|
-
cat <<'EOF'
|
|
22
|
-
Usage:
|
|
23
|
-
.agent/ralph-supervisor.sh [options]
|
|
24
|
-
|
|
25
|
-
Options:
|
|
26
|
-
--max-iterations N Maximum global iterations across all stories. Default: 1000
|
|
27
|
-
--story-iterations N Iterations per selected story invocation. Default: 1
|
|
28
|
-
--completion-promise TXT Promise token passed to child Ralph runner
|
|
29
|
-
--run-label LABEL Optional label suffix for this supervisor run
|
|
30
|
-
--sleep-seconds N Sleep between global iterations
|
|
31
|
-
--dry-run Use child runner in dry-run mode
|
|
32
|
-
-h, --help Show help
|
|
33
|
-
|
|
34
|
-
Behavior:
|
|
35
|
-
- Picks the next pending/in_progress story from .agent/prd.json each global iteration
|
|
36
|
-
- Invokes .agent/ralph.sh for one focused child loop
|
|
37
|
-
- Stops when all stories complete, when max iterations are exhausted,
|
|
38
|
-
or when the same story/status pair repeats 3 times with no new signal
|
|
39
|
-
- Writes state to .agent/ralph-supervisor-state.json and appends monitor lines to .agent/progress.txt
|
|
40
|
-
EOF
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
require_file() {
|
|
44
|
-
local file_path="$1"
|
|
45
|
-
if [[ ! -f "$file_path" ]]; then
|
|
46
|
-
echo "Missing required file: $file_path" >&2
|
|
47
|
-
exit 1
|
|
48
|
-
fi
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
select_story() {
|
|
52
|
-
jq -r '
|
|
53
|
-
.stories
|
|
54
|
-
| map(select(.status == "in_progress" or .status == "pending"))
|
|
55
|
-
| sort_by(.priority)
|
|
56
|
-
| .[0].id // empty
|
|
57
|
-
' "$PRD_FILE"
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
read_story_status() {
|
|
61
|
-
local story_id="$1"
|
|
62
|
-
jq -r --arg id "$story_id" '.stories[] | select(.id == $id) | .status // "missing"' "$PRD_FILE"
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
write_state() {
|
|
66
|
-
local iteration="$1"
|
|
67
|
-
local active_story="$2"
|
|
68
|
-
local child_exit="$3"
|
|
69
|
-
local child_status="$4"
|
|
70
|
-
local repeat_count="$5"
|
|
71
|
-
local status="$6"
|
|
72
|
-
local run_dir="$7"
|
|
73
|
-
|
|
74
|
-
cat >"$STATE_FILE" <<EOF
|
|
75
|
-
{
|
|
76
|
-
"updated_at": "$(date -u +"%Y-%m-%dT%H:%M:%SZ")",
|
|
77
|
-
"max_iterations": $max_iterations,
|
|
78
|
-
"story_iterations": $story_iterations,
|
|
79
|
-
"current_iteration": $iteration,
|
|
80
|
-
"active_story": "$active_story",
|
|
81
|
-
"child_exit_code": $child_exit,
|
|
82
|
-
"child_status": "$child_status",
|
|
83
|
-
"repeat_count": $repeat_count,
|
|
84
|
-
"status": "$status",
|
|
85
|
-
"run_dir": "${run_dir#$ROOT_DIR/}"
|
|
86
|
-
}
|
|
87
|
-
EOF
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
main() {
|
|
91
|
-
require_file "$PRD_FILE"
|
|
92
|
-
require_file "$PROGRESS_FILE"
|
|
93
|
-
require_file "$RALPH_RUNNER"
|
|
94
|
-
|
|
95
|
-
while [[ $# -gt 0 ]]; do
|
|
96
|
-
case "$1" in
|
|
97
|
-
--max-iterations)
|
|
98
|
-
max_iterations="${2:-}"
|
|
99
|
-
shift 2
|
|
100
|
-
;;
|
|
101
|
-
--story-iterations)
|
|
102
|
-
story_iterations="${2:-}"
|
|
103
|
-
shift 2
|
|
104
|
-
;;
|
|
105
|
-
--completion-promise)
|
|
106
|
-
completion_promise="${2:-}"
|
|
107
|
-
shift 2
|
|
108
|
-
;;
|
|
109
|
-
--run-label)
|
|
110
|
-
run_label="${2:-}"
|
|
111
|
-
shift 2
|
|
112
|
-
;;
|
|
113
|
-
--sleep-seconds)
|
|
114
|
-
sleep_seconds="${2:-}"
|
|
115
|
-
shift 2
|
|
116
|
-
;;
|
|
117
|
-
--dry-run)
|
|
118
|
-
dry_run=1
|
|
119
|
-
shift
|
|
120
|
-
;;
|
|
121
|
-
-h|--help)
|
|
122
|
-
usage
|
|
123
|
-
exit 0
|
|
124
|
-
;;
|
|
125
|
-
*)
|
|
126
|
-
echo "Unknown argument: $1" >&2
|
|
127
|
-
usage >&2
|
|
128
|
-
exit 2
|
|
129
|
-
;;
|
|
130
|
-
esac
|
|
131
|
-
done
|
|
132
|
-
|
|
133
|
-
if ! [[ "$max_iterations" =~ ^[0-9]+$ ]] || [[ "$max_iterations" -lt 1 ]]; then
|
|
134
|
-
echo "--max-iterations must be a positive integer" >&2
|
|
135
|
-
exit 2
|
|
136
|
-
fi
|
|
137
|
-
if ! [[ "$story_iterations" =~ ^[0-9]+$ ]] || [[ "$story_iterations" -lt 1 ]]; then
|
|
138
|
-
echo "--story-iterations must be a positive integer" >&2
|
|
139
|
-
exit 2
|
|
140
|
-
fi
|
|
141
|
-
if ! [[ "$sleep_seconds" =~ ^[0-9]+$ ]] || [[ "$sleep_seconds" -lt 0 ]]; then
|
|
142
|
-
echo "--sleep-seconds must be a non-negative integer" >&2
|
|
143
|
-
exit 2
|
|
144
|
-
fi
|
|
145
|
-
|
|
146
|
-
mkdir -p "$RUNS_DIR"
|
|
147
|
-
local run_id
|
|
148
|
-
run_id="$(date +%Y%m%d-%H%M%S)"
|
|
149
|
-
if [[ -n "$run_label" ]]; then
|
|
150
|
-
run_id="$run_id-$run_label"
|
|
151
|
-
fi
|
|
152
|
-
local supervisor_run_dir="$RUNS_DIR/supervisor-$run_id"
|
|
153
|
-
mkdir -p "$supervisor_run_dir"
|
|
154
|
-
|
|
155
|
-
local previous_signature=""
|
|
156
|
-
local repeat_count=0
|
|
157
|
-
local final_status="max_iterations_reached"
|
|
158
|
-
|
|
159
|
-
local iteration=1
|
|
160
|
-
while [[ "$iteration" -le "$max_iterations" ]]; do
|
|
161
|
-
local story_id
|
|
162
|
-
story_id="$(select_story)"
|
|
163
|
-
if [[ -z "$story_id" ]]; then
|
|
164
|
-
final_status="all_stories_completed"
|
|
165
|
-
write_state "$iteration" "" 0 "none" 0 "$final_status" "$supervisor_run_dir"
|
|
166
|
-
echo "$(date +%F) supervisor all-stories-complete iteration=$iteration" >>"$PROGRESS_FILE"
|
|
167
|
-
break
|
|
168
|
-
fi
|
|
169
|
-
|
|
170
|
-
echo "[supervisor] iteration $iteration/$max_iterations story=$story_id"
|
|
171
|
-
|
|
172
|
-
local child_args=(
|
|
173
|
-
--story-id "$story_id"
|
|
174
|
-
--max-iterations "$story_iterations"
|
|
175
|
-
--completion-promise "$completion_promise"
|
|
176
|
-
--run-label "supervisor-$iteration-$story_id"
|
|
177
|
-
)
|
|
178
|
-
if [[ $dry_run -eq 1 ]]; then
|
|
179
|
-
child_args+=(--dry-run)
|
|
180
|
-
fi
|
|
181
|
-
|
|
182
|
-
set +e
|
|
183
|
-
"$RALPH_RUNNER" "${child_args[@]}"
|
|
184
|
-
local child_exit=$?
|
|
185
|
-
set -e
|
|
186
|
-
|
|
187
|
-
local child_status="unknown"
|
|
188
|
-
if [[ -f "$AGENT_DIR/ralph-loop-state.json" ]]; then
|
|
189
|
-
child_status="$(jq -r '.status // "unknown"' "$AGENT_DIR/ralph-loop-state.json")"
|
|
190
|
-
fi
|
|
191
|
-
|
|
192
|
-
local story_status
|
|
193
|
-
story_status="$(read_story_status "$story_id")"
|
|
194
|
-
local signature="$story_id:$child_status:$story_status"
|
|
195
|
-
if [[ "$signature" == "$previous_signature" ]]; then
|
|
196
|
-
repeat_count=$((repeat_count + 1))
|
|
197
|
-
else
|
|
198
|
-
repeat_count=1
|
|
199
|
-
previous_signature="$signature"
|
|
200
|
-
fi
|
|
201
|
-
|
|
202
|
-
if [[ "$story_status" == "completed" || "$child_status" == "completed" ]]; then
|
|
203
|
-
final_status="story_completed"
|
|
204
|
-
elif [[ "$repeat_count" -ge 3 ]]; then
|
|
205
|
-
final_status="stopped_same_signal_3x"
|
|
206
|
-
elif [[ "$child_status" == "iteration_pass_no_promise" || "$child_status" == "dry_run" || "$child_exit" -eq 0 ]]; then
|
|
207
|
-
final_status="iteration_ok"
|
|
208
|
-
else
|
|
209
|
-
final_status="iteration_failed"
|
|
210
|
-
fi
|
|
211
|
-
|
|
212
|
-
write_state "$iteration" "$story_id" "$child_exit" "$child_status" "$repeat_count" "$final_status" "$supervisor_run_dir"
|
|
213
|
-
echo "$(date +%F) supervisor iteration-$iteration story=$story_id child_status=$child_status story_status=$story_status repeat=$repeat_count exit=$child_exit" >>"$PROGRESS_FILE"
|
|
214
|
-
|
|
215
|
-
if [[ "$final_status" == "stopped_same_signal_3x" ]]; then
|
|
216
|
-
break
|
|
217
|
-
fi
|
|
218
|
-
|
|
219
|
-
iteration=$((iteration + 1))
|
|
220
|
-
if [[ "$iteration" -le "$max_iterations" && "$sleep_seconds" -gt 0 ]]; then
|
|
221
|
-
sleep "$sleep_seconds"
|
|
222
|
-
fi
|
|
223
|
-
done
|
|
224
|
-
|
|
225
|
-
echo "[supervisor] final_status=$final_status run_dir=${supervisor_run_dir#$ROOT_DIR/}"
|
|
226
|
-
if [[ "$final_status" == "all_stories_completed" ]]; then
|
|
227
|
-
exit 0
|
|
228
|
-
fi
|
|
229
|
-
if [[ "$final_status" == "stopped_same_signal_3x" ]]; then
|
|
230
|
-
exit 1
|
|
231
|
-
fi
|
|
232
|
-
if [[ "$final_status" == "max_iterations_reached" ]]; then
|
|
233
|
-
exit 1
|
|
234
|
-
fi
|
|
235
|
-
exit 0
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
main "$@"
|