okstra 0.186.7 → 0.187.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli-registry.d.mts +88 -1
- package/dist/cli-registry.mjs +68 -111
- package/dist/cli-registry.mjs.map +1 -1
- package/dist/commands/execute/render-bundle.mjs +0 -1
- package/dist/commands/execute/render-bundle.mjs.map +1 -1
- package/dist/commands/execute/run.mjs +8 -3
- package/dist/commands/execute/run.mjs.map +1 -1
- package/dist/commands/lifecycle/check-project.mjs +1 -14
- package/dist/commands/lifecycle/check-project.mjs.map +1 -1
- package/dist/commands/lifecycle/config.mjs +38 -40
- package/dist/commands/lifecycle/config.mjs.map +1 -1
- package/dist/commands/lifecycle/doctor.d.mts +22 -7
- package/dist/commands/lifecycle/doctor.mjs +77 -49
- package/dist/commands/lifecycle/doctor.mjs.map +1 -1
- package/dist/commands/lifecycle/install.d.mts +12 -10
- package/dist/commands/lifecycle/install.mjs +104 -39
- package/dist/commands/lifecycle/install.mjs.map +1 -1
- package/dist/commands/lifecycle/paths.mjs +8 -3
- package/dist/commands/lifecycle/paths.mjs.map +1 -1
- package/dist/commands/lifecycle/preflight.mjs +2 -1
- package/dist/commands/lifecycle/preflight.mjs.map +1 -1
- package/dist/commands/lifecycle/setup.mjs +22 -36
- package/dist/commands/lifecycle/setup.mjs.map +1 -1
- package/dist/commands/lifecycle/uninstall.d.mts +4 -2
- package/dist/commands/lifecycle/uninstall.mjs +59 -15
- package/dist/commands/lifecycle/uninstall.mjs.map +1 -1
- package/dist/commands/memory/memory.mjs +7 -1
- package/dist/commands/memory/memory.mjs.map +1 -1
- package/dist/lib/helper-scripts.d.mts +1 -1
- package/dist/lib/helper-scripts.mjs +10 -18
- package/dist/lib/helper-scripts.mjs.map +1 -1
- package/dist/lib/host-config.d.mts +72 -0
- package/dist/lib/host-config.mjs +404 -0
- package/dist/lib/host-config.mjs.map +1 -0
- package/dist/lib/host-registry-client.d.mts +2 -2
- package/dist/lib/host-registry-client.mjs +0 -3
- package/dist/lib/host-registry-client.mjs.map +1 -1
- package/dist/lib/install-assets.d.mts +1 -0
- package/dist/lib/install-assets.mjs +4 -0
- package/dist/lib/install-assets.mjs.map +1 -1
- package/dist/lib/proc.d.mts +2 -0
- package/dist/lib/proc.mjs +12 -0
- package/dist/lib/proc.mjs.map +1 -1
- package/dist/lib/python-command.d.mts +2 -0
- package/dist/lib/python-command.mjs +52 -0
- package/dist/lib/python-command.mjs.map +1 -0
- package/dist/lib/python-helper.d.mts +2 -5
- package/dist/lib/python-helper.mjs +3 -52
- package/dist/lib/python-helper.mjs.map +1 -1
- package/dist/lib/runtime-payload.d.mts +23 -0
- package/dist/lib/runtime-payload.mjs +57 -0
- package/dist/lib/runtime-payload.mjs.map +1 -0
- package/dist/lib/types.d.mts +24 -13
- package/docs/architecture/storage-model.md +21 -5
- package/docs/architecture.md +37 -36
- package/docs/cli.md +55 -76
- package/docs/coding-rules.md +295 -0
- package/docs/container.md +10 -36
- package/docs/contributor-change-matrix.md +1 -1
- package/docs/for-ai/skills/okstra-code-review.md +0 -1
- package/docs/for-ai/skills/okstra-container-build.md +8 -41
- package/docs/for-ai/skills/okstra-inspect.md +4 -4
- package/docs/for-ai/skills/okstra-manager.md +2 -2
- package/docs/for-ai/skills/okstra-rollup.md +0 -1
- package/docs/for-ai/skills/okstra-run.md +3 -3
- package/docs/for-ai/skills/okstra-user-response.md +0 -1
- package/docs/performance-improvement-plan-v2.md +1 -1
- package/docs/project-structure-overview.md +62 -62
- package/docs/task-process/README.md +3 -3
- package/docs/task-process/common-flow.md +1 -1
- package/docs/task-process/error-analysis.md +3 -3
- package/docs/task-process/implementation-planning.md +3 -1
- package/docs/task-process/release-handoff.md +1 -1
- package/package.json +3 -2
- package/runtime/BUILD.json +2 -2
- package/runtime/agents/workers/claude-worker.md +6 -11
- package/runtime/agents/workers/report-writer-worker.md +1 -1
- package/runtime/bin/lib/okstra/cli.sh +4 -0
- package/runtime/bin/lib/okstra/globals.sh +2 -0
- package/runtime/bin/lib/okstra/interactive.sh +26 -173
- package/runtime/bin/lib/okstra/project-resolver.sh +23 -61
- package/runtime/bin/lib/okstra/usage.sh +3 -3
- package/runtime/bin/okstra-compact-reminder.sh +1 -5
- package/runtime/bin/okstra-error-log.py +19 -2
- package/runtime/bin/okstra-import-check.py +26 -0
- package/runtime/bin/okstra-inject-report-index.py +5 -4
- package/runtime/bin/okstra-provider-exec.py +22 -17
- package/runtime/bin/okstra-render-final-report.py +16 -6
- package/runtime/bin/okstra-render-report-views.py +25 -18
- package/runtime/bin/okstra-report-translate.py +30 -18
- package/runtime/bin/okstra-spawn-followups.py +4 -0
- package/runtime/bin/okstra-token-usage.py +3 -0
- package/runtime/bin/okstra.sh +4 -2
- package/runtime/bin/okstra_bootstrap.py +58 -0
- package/runtime/prompts/coding-preflight/overview.md +1 -1
- package/runtime/prompts/duties/planning-worker.md +1 -1
- package/runtime/prompts/launch.template.md +35 -9
- package/runtime/prompts/lead/convergence.md +96 -87
- package/runtime/prompts/lead/okstra-lead-contract.md +63 -12
- package/runtime/prompts/lead/plan-body-verification.md +65 -46
- package/runtime/prompts/lead/report-writer.md +34 -4
- package/runtime/prompts/lead/team-contract.md +4 -1
- package/runtime/prompts/profiles/_clarification-recommendation.md +2 -1
- package/runtime/prompts/profiles/_coding-conventions-preflight.md +1 -1
- package/runtime/prompts/profiles/_common-contract.md +3 -3
- package/runtime/prompts/profiles/_coverage-critic.md +1 -1
- package/runtime/prompts/profiles/_implementation-deliverable.md +2 -2
- package/runtime/prompts/profiles/_implementation-executor.md +3 -1
- package/runtime/prompts/profiles/_implementation-verifier.md +16 -2
- package/runtime/prompts/profiles/error-analysis.md +4 -3
- package/runtime/prompts/profiles/final-verification.md +2 -2
- package/runtime/prompts/profiles/implementation-planning.md +22 -17
- package/runtime/prompts/profiles/implementation.md +3 -2
- package/runtime/prompts/profiles/requirements-discovery.md +2 -1
- package/runtime/prompts/wizard/prompts.ko.json +29 -8
- package/runtime/python/okstra_ctl/__init__.py +6 -27
- package/runtime/python/okstra_ctl/adapters/hosts/claude-code/relay.md +4 -5
- package/runtime/python/okstra_ctl/adapters/hosts/codex/adapter.py +21 -2
- package/runtime/python/okstra_ctl/adapters/hosts/external/adapter.py +3 -12
- package/runtime/python/okstra_ctl/adapters/providers/antigravity/adapter.py +40 -22
- package/runtime/python/okstra_ctl/adapters/providers/claude/adapter.py +14 -21
- package/runtime/python/okstra_ctl/adapters/providers/codex/adapter.py +37 -20
- package/runtime/python/okstra_ctl/adapters/providers/grok/adapter.py +86 -14
- package/runtime/python/okstra_ctl/adapters/providers/kimi/adapter.py +12 -12
- package/runtime/python/okstra_ctl/adapters/runtime/cmux.py +4 -7
- package/runtime/python/okstra_ctl/agent/__init__.py +1 -0
- package/runtime/python/okstra_ctl/{agent_activity.py → agent/activity.py} +12 -1
- package/runtime/python/okstra_ctl/{agent_invocation.py → agent/invocation.py} +34 -5
- package/runtime/python/okstra_ctl/agent/prompt_cli/__init__.py +19 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/__main__.py +11 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/cli.py +215 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/dynamic_verifier.py +155 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/emit.py +66 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/inputs.py +138 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/materialize.py +408 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/results.py +197 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/run_identity.py +107 -0
- package/runtime/python/okstra_ctl/analysis_packet.py +47 -4
- package/runtime/python/okstra_ctl/approval_decisions.py +260 -8
- package/runtime/python/okstra_ctl/assignment_resolver.py +0 -12
- package/runtime/python/okstra_ctl/attempt_evidence.py +12 -24
- package/runtime/python/okstra_ctl/blocking_checks.py +251 -0
- package/runtime/python/okstra_ctl/brief_frontmatter.py +0 -7
- package/runtime/python/okstra_ctl/clarification_items/__init__.py +102 -0
- package/runtime/python/okstra_ctl/clarification_items/carry.py +224 -0
- package/runtime/python/okstra_ctl/clarification_items/dispositions.py +135 -0
- package/runtime/python/okstra_ctl/clarification_items/parsing.py +253 -0
- package/runtime/python/okstra_ctl/clarification_items/rows.py +115 -0
- package/runtime/python/okstra_ctl/clarification_items/scan.py +215 -0
- package/runtime/python/okstra_ctl/clarification_items/sidecars.py +211 -0
- package/runtime/python/okstra_ctl/cmux.py +38 -31
- package/runtime/python/okstra_ctl/code_review_target.py +163 -1
- package/runtime/python/okstra_ctl/conformance.py +23 -0
- package/runtime/python/okstra_ctl/container.py +38 -421
- package/runtime/python/okstra_ctl/context_cost.py +16 -2
- package/runtime/python/okstra_ctl/contract_graph_cli.py +7 -0
- package/runtime/python/okstra_ctl/convergence.py +101 -15
- package/runtime/python/okstra_ctl/convergence_critic_prompt.py +345 -0
- package/runtime/python/okstra_ctl/convergence_engine.py +382 -70
- package/runtime/python/okstra_ctl/convergence_store.py +5 -29
- package/runtime/python/okstra_ctl/design_prep.py +108 -12
- package/runtime/python/okstra_ctl/design_snapshot.py +11 -1
- package/runtime/python/okstra_ctl/design_surfaces.py +29 -2
- package/runtime/python/okstra_ctl/dispatch_core.py +102 -25
- package/runtime/python/okstra_ctl/dispatch_state.py +268 -39
- package/runtime/python/okstra_ctl/doctor_cli.py +48 -0
- package/runtime/python/okstra_ctl/domain/worker_exec.py +10 -5
- package/runtime/python/okstra_ctl/domain/worker_presentation.py +21 -1
- package/runtime/python/okstra_ctl/domain/worker_stream.py +52 -21
- package/runtime/python/okstra_ctl/domain/write_policy.py +219 -0
- package/runtime/python/okstra_ctl/entrypoints/hosts.py +9 -2
- package/runtime/python/okstra_ctl/error_log_core.py +1 -1
- package/runtime/python/okstra_ctl/error_report.py +14 -0
- package/runtime/python/okstra_ctl/error_zip.py +18 -2
- package/runtime/python/okstra_ctl/execution_identity.py +100 -7
- package/runtime/python/okstra_ctl/execution_manifest.py +67 -20
- package/runtime/python/okstra_ctl/execution_mutation_audit.py +90 -8
- package/runtime/python/okstra_ctl/final_report_paths.py +17 -0
- package/runtime/python/okstra_ctl/final_report_schema.py +90 -16
- package/runtime/python/okstra_ctl/git_reconcile.py +22 -2
- package/runtime/python/okstra_ctl/handoff.py +24 -1
- package/runtime/python/okstra_ctl/ids.py +6 -16
- package/runtime/python/okstra_ctl/implementation_direction.py +142 -33
- package/runtime/python/okstra_ctl/implementation_options.py +25 -11
- package/runtime/python/okstra_ctl/implementation_outcome.py +5 -2
- package/runtime/python/okstra_ctl/improvement_lenses.py +0 -14
- package/runtime/python/okstra_ctl/incremental_carry.py +69 -8
- package/runtime/python/okstra_ctl/incremental_scope.py +173 -12
- package/runtime/python/okstra_ctl/index.py +2 -2
- package/runtime/python/okstra_ctl/initial_prompt_materialization.py +48 -8
- package/runtime/python/okstra_ctl/interactive_cli.py +223 -0
- package/runtime/python/okstra_ctl/json_boundary.py +10 -0
- package/runtime/python/okstra_ctl/listing.py +0 -91
- package/runtime/python/okstra_ctl/locks.py +5 -19
- package/runtime/python/okstra_ctl/log_report.py +14 -0
- package/runtime/python/okstra_ctl/manager_cli.py +22 -3
- package/runtime/python/okstra_ctl/manager_launch.py +4 -8
- package/runtime/python/okstra_ctl/material.py +2 -2
- package/runtime/python/okstra_ctl/migrate.py +23 -1
- package/runtime/python/okstra_ctl/model_cli.py +19 -5
- package/runtime/python/okstra_ctl/model_discovery.py +46 -47
- package/runtime/python/okstra_ctl/model_io/__init__.py +1 -0
- package/runtime/python/okstra_ctl/model_io/lines.py +163 -0
- package/runtime/python/okstra_ctl/model_io/references.py +370 -0
- package/runtime/python/okstra_ctl/model_io/renderers.py +498 -0
- package/runtime/python/okstra_ctl/model_io_cli.py +30 -945
- package/runtime/python/okstra_ctl/model_pool.py +10 -6
- package/runtime/python/okstra_ctl/models.py +8 -8
- package/runtime/python/okstra_ctl/mutation_recovery.py +5 -63
- package/runtime/python/okstra_ctl/next_phase.py +121 -69
- package/runtime/python/okstra_ctl/pane_reclaim.py +23 -0
- package/runtime/python/okstra_ctl/pane_title.py +11 -8
- package/runtime/python/okstra_ctl/path_hints.py +36 -11
- package/runtime/python/okstra_ctl/paths.py +76 -8
- package/runtime/python/okstra_ctl/plan_items.py +132 -16
- package/runtime/python/okstra_ctl/plan_items_cli.py +486 -36
- package/runtime/python/okstra_ctl/plan_run_root.py +1 -1
- package/runtime/python/okstra_ctl/plan_validate_cli.py +51 -0
- package/runtime/python/okstra_ctl/plan_verify_cli.py +80 -0
- package/runtime/python/okstra_ctl/prepare_error.py +20 -0
- package/runtime/python/okstra_ctl/prior_planning.py +157 -0
- package/runtime/python/okstra_ctl/profile_show.py +18 -1
- package/runtime/python/okstra_ctl/project_setup_cli.py +140 -0
- package/runtime/python/okstra_ctl/recap.py +22 -1
- package/runtime/python/okstra_ctl/reconcile.py +84 -0
- package/runtime/python/okstra_ctl/registry/host_registry.py +18 -1
- package/runtime/python/okstra_ctl/render.py +98 -32
- package/runtime/python/okstra_ctl/render_final_report.py +3 -7
- package/runtime/python/okstra_ctl/report_assembly.py +297 -7
- package/runtime/python/okstra_ctl/report_contract.py +30 -7
- package/runtime/python/okstra_ctl/report_finalize.py +206 -15
- package/runtime/python/okstra_ctl/report_html/common.py +2 -2
- package/runtime/python/okstra_ctl/report_html/render.py +8 -12
- package/runtime/python/okstra_ctl/report_language.py +8 -4
- package/runtime/python/okstra_ctl/report_narrative.py +90 -3
- package/runtime/python/okstra_ctl/report_projections.py +8 -2
- package/runtime/python/okstra_ctl/report_synthesis_packet.py +258 -1
- package/runtime/python/okstra_ctl/report_translation.py +2 -35
- package/runtime/python/okstra_ctl/report_views.py +4 -22
- package/runtime/python/okstra_ctl/resolve_task_key.py +13 -0
- package/runtime/python/okstra_ctl/rollup.py +13 -0
- package/runtime/python/okstra_ctl/run.py +639 -138
- package/runtime/python/okstra_ctl/run_audit.py +13 -0
- package/runtime/python/okstra_ctl/run_index_row.py +0 -12
- package/runtime/python/okstra_ctl/seeding.py +21 -11
- package/runtime/python/okstra_ctl/sequence.py +1 -1
- package/runtime/python/okstra_ctl/session.py +64 -14
- package/runtime/python/okstra_ctl/set_work_status.py +18 -0
- package/runtime/python/okstra_ctl/stage_integrate.py +15 -1
- package/runtime/python/okstra_ctl/stage_ledger.py +1 -1
- package/runtime/python/okstra_ctl/stage_map.py +57 -11
- package/runtime/python/okstra_ctl/stage_map_cli.py +83 -0
- package/runtime/python/okstra_ctl/stage_map_view.py +65 -0
- package/runtime/python/okstra_ctl/stage_targets.py +3 -12
- package/runtime/python/okstra_ctl/task_list_cli.py +138 -0
- package/runtime/python/okstra_ctl/task_show_cli.py +66 -0
- package/runtime/python/okstra_ctl/task_target.py +4 -16
- package/runtime/python/okstra_ctl/team.py +49 -2
- package/runtime/python/okstra_ctl/time_report.py +17 -2
- package/runtime/python/okstra_ctl/usage_report.py +11 -0
- package/runtime/python/okstra_ctl/user_response.py +55 -218
- package/runtime/python/okstra_ctl/user_response_values.py +242 -0
- package/runtime/python/okstra_ctl/validation_contract.py +3 -0
- package/runtime/python/okstra_ctl/verification_target.py +68 -0
- package/runtime/python/okstra_ctl/wizard.py +457 -92
- package/runtime/python/okstra_ctl/worker_artifacts.py +75 -16
- package/runtime/python/okstra_ctl/worker_audit_check.py +22 -0
- package/runtime/python/okstra_ctl/worker_dispatch.py +21 -0
- package/runtime/python/okstra_ctl/worker_liveness.py +33 -0
- package/runtime/python/okstra_ctl/worker_prompt_body.py +15 -2
- package/runtime/python/okstra_ctl/worker_prompt_contract.py +98 -7
- package/runtime/python/okstra_ctl/worker_prompt_headers.py +24 -2
- package/runtime/python/okstra_ctl/worker_prompt_policy.py +18 -3
- package/runtime/python/okstra_ctl/worker_request.py +2 -1
- package/runtime/python/okstra_ctl/worker_runner.py +16 -9
- package/runtime/python/okstra_ctl/worker_state.py +16 -1
- package/runtime/python/okstra_ctl/workflow.py +18 -1
- package/runtime/python/okstra_ctl/worktree/__init__.py +92 -0
- package/runtime/python/okstra_ctl/worktree/cleanliness.py +89 -0
- package/runtime/python/okstra_ctl/worktree/decisions.py +127 -0
- package/runtime/python/okstra_ctl/worktree/git_ops.py +165 -0
- package/runtime/python/okstra_ctl/worktree/linking.py +249 -0
- package/runtime/python/okstra_ctl/worktree/naming.py +91 -0
- package/runtime/python/okstra_ctl/worktree/provision.py +385 -0
- package/runtime/python/okstra_ctl/worktree/sync_config.py +181 -0
- package/runtime/python/okstra_ctl/worktree_cli.py +75 -0
- package/runtime/python/okstra_ctl/worktree_lookup_cli.py +39 -0
- package/runtime/python/okstra_ctl/worktree_registry.py +7 -0
- package/runtime/python/okstra_ctl/worktree_status_cli.py +53 -0
- package/runtime/python/okstra_ctl/write_policy.py +90 -213
- package/runtime/python/okstra_project/__init__.py +0 -4
- package/runtime/python/okstra_project/dirs.py +2 -2
- package/runtime/python/okstra_project/phase_pointer.py +84 -0
- package/runtime/python/okstra_project/slug.py +24 -0
- package/runtime/python/okstra_project/state.py +22 -230
- package/runtime/python/okstra_token_usage/claude.py +9 -1
- package/runtime/python/okstra_token_usage/cli.py +3 -1
- package/runtime/python/okstra_token_usage/collect.py +71 -10
- package/runtime/python/okstra_token_usage/cursor.py +2 -0
- package/runtime/python/okstra_token_usage/grok.py +1 -5
- package/runtime/python/okstra_token_usage/paths.py +26 -0
- package/runtime/python/okstra_token_usage/pricing.py +19 -7
- package/runtime/schemas/convergence-critic-results-v1.0.schema.json +5 -0
- package/runtime/schemas/execution-manifest-v2.schema.json +10 -10
- package/runtime/schemas/final-report-v2.0.schema.json +9 -26
- package/runtime/schemas/final-report-v3.0.schema.json +173 -41
- package/runtime/schemas/report-narrative-v3.0.schema.json +3 -2
- package/runtime/skills/okstra-brief-gen/SKILL.md +35 -2
- package/runtime/skills/okstra-container-build/SKILL.md +16 -47
- package/runtime/skills/okstra-inspect/facets/history.md +1 -1
- package/runtime/skills/okstra-inspect/facets/status.md +7 -6
- package/runtime/skills/okstra-pr-gen/SKILL.md +1 -1
- package/runtime/skills/okstra-run/SKILL.md +7 -5
- package/runtime/templates/report-writer-prompt-preamble.md +1 -1
- package/runtime/templates/reports/brief.template.md +6 -2
- package/runtime/templates/reports/error-analysis-input.template.md +2 -0
- package/runtime/templates/reports/final-verification-input.template.md +2 -0
- package/runtime/templates/reports/implementation-input.template.md +7 -1
- package/runtime/templates/reports/implementation-planning-input.template.md +4 -0
- package/runtime/templates/reports/quick-input.template.md +2 -0
- package/runtime/templates/reports/release-handoff-input.template.md +6 -1
- package/runtime/templates/reports/report.js +20 -3
- package/runtime/templates/reports/schedule.template.md +2 -0
- package/runtime/templates/reports/settings.template.json +0 -10
- package/runtime/templates/reports/task-brief.template.md +3 -0
- package/runtime/templates/reports/user-response.template.md +7 -3
- package/runtime/validators/checks/fixtures-01.py +57 -0
- package/runtime/validators/checks/fixtures-02.py +565 -0
- package/runtime/validators/checks/runners-01.py +108 -0
- package/runtime/validators/checks/validate-assets-01.py +60 -0
- package/runtime/validators/checks/validate-prompt-metadata-01.py +261 -0
- package/runtime/validators/checks/validate-tasks-01.py +46 -0
- package/runtime/validators/checks/validate-tasks-02.py +85 -0
- package/runtime/validators/checks/validate-tasks-03.py +61 -0
- package/runtime/validators/checks/validate-tasks-04.py +118 -0
- package/runtime/validators/forbidden_actions.py +73 -3
- package/runtime/validators/lib/common.sh +5 -0
- package/runtime/validators/lib/fixtures.sh +7 -591
- package/runtime/validators/lib/paths.sh +13 -0
- package/runtime/validators/lib/runners.sh +6 -104
- package/runtime/validators/lib/summary.sh +1 -1
- package/runtime/validators/lib/validate-assets.sh +6 -56
- package/runtime/validators/lib/validate-prompt-metadata.sh +6 -257
- package/runtime/validators/lib/validate-tasks.sh +9 -294
- package/runtime/validators/validate-implementation-plan-stages.py +4 -4
- package/runtime/validators/validate-run.py +1369 -2654
- package/runtime/validators/validate-workflow.sh +56 -16
- package/runtime/validators/validate_improvement_report.py +2 -1
- package/runtime/validators/validate_session_conformance.py +295 -49
- package/dist/commands/execute/agent-prompt.d.mts +0 -1
- package/dist/commands/execute/agent-prompt.mjs +0 -24
- package/dist/commands/execute/agent-prompt.mjs.map +0 -1
- package/dist/commands/execute/codex-dispatch.d.mts +0 -3
- package/dist/commands/execute/codex-dispatch.mjs +0 -6
- package/dist/commands/execute/codex-dispatch.mjs.map +0 -1
- package/dist/commands/execute/codex-run.d.mts +0 -3
- package/dist/commands/execute/codex-run.mjs +0 -62
- package/dist/commands/execute/codex-run.mjs.map +0 -1
- package/dist/commands/execute/convergence.d.mts +0 -1
- package/dist/commands/execute/convergence.mjs +0 -38
- package/dist/commands/execute/convergence.mjs.map +0 -1
- package/dist/commands/execute/error-log.d.mts +0 -1
- package/dist/commands/execute/error-log.mjs +0 -18
- package/dist/commands/execute/error-log.mjs.map +0 -1
- package/dist/commands/execute/git-reconcile.d.mts +0 -1
- package/dist/commands/execute/git-reconcile.mjs +0 -30
- package/dist/commands/execute/git-reconcile.mjs.map +0 -1
- package/dist/commands/execute/handoff.d.mts +0 -1
- package/dist/commands/execute/handoff.mjs +0 -31
- package/dist/commands/execute/handoff.mjs.map +0 -1
- package/dist/commands/execute/incremental-carry.d.mts +0 -1
- package/dist/commands/execute/incremental-carry.mjs +0 -20
- package/dist/commands/execute/incremental-carry.mjs.map +0 -1
- package/dist/commands/execute/incremental-scope.d.mts +0 -1
- package/dist/commands/execute/incremental-scope.mjs +0 -29
- package/dist/commands/execute/incremental-scope.mjs.map +0 -1
- package/dist/commands/execute/integrate-stages.d.mts +0 -1
- package/dist/commands/execute/integrate-stages.mjs +0 -24
- package/dist/commands/execute/integrate-stages.mjs.map +0 -1
- package/dist/commands/execute/pane-title.d.mts +0 -1
- package/dist/commands/execute/pane-title.mjs +0 -20
- package/dist/commands/execute/pane-title.mjs.map +0 -1
- package/dist/commands/execute/plan-items.d.mts +0 -1
- package/dist/commands/execute/plan-items.mjs +0 -9
- package/dist/commands/execute/plan-items.mjs.map +0 -1
- package/dist/commands/execute/plan-validate.d.mts +0 -1
- package/dist/commands/execute/plan-validate.mjs +0 -68
- package/dist/commands/execute/plan-validate.mjs.map +0 -1
- package/dist/commands/execute/plan-verify.d.mts +0 -1
- package/dist/commands/execute/plan-verify.mjs +0 -43
- package/dist/commands/execute/plan-verify.mjs.map +0 -1
- package/dist/commands/execute/spawn-followups.d.mts +0 -1
- package/dist/commands/execute/spawn-followups.mjs +0 -22
- package/dist/commands/execute/spawn-followups.mjs.map +0 -1
- package/dist/commands/execute/team.d.mts +0 -3
- package/dist/commands/execute/team.mjs +0 -66
- package/dist/commands/execute/team.mjs.map +0 -1
- package/dist/commands/execute/token-usage.d.mts +0 -1
- package/dist/commands/execute/token-usage.mjs +0 -19
- package/dist/commands/execute/token-usage.mjs.map +0 -1
- package/dist/commands/execute/worker-audit-check.d.mts +0 -1
- package/dist/commands/execute/worker-audit-check.mjs +0 -34
- package/dist/commands/execute/worker-audit-check.mjs.map +0 -1
- package/dist/commands/execute/worker-dispatch.d.mts +0 -7
- package/dist/commands/execute/worker-dispatch.mjs +0 -64
- package/dist/commands/execute/worker-dispatch.mjs.map +0 -1
- package/dist/commands/execute/worker-state.d.mts +0 -1
- package/dist/commands/execute/worker-state.mjs +0 -28
- package/dist/commands/execute/worker-state.mjs.map +0 -1
- package/dist/commands/execute/worktree-lookup.d.mts +0 -1
- package/dist/commands/execute/worktree-lookup.mjs +0 -92
- package/dist/commands/execute/worktree-lookup.mjs.map +0 -1
- package/dist/commands/execute/worktree-status.d.mts +0 -1
- package/dist/commands/execute/worktree-status.mjs +0 -121
- package/dist/commands/execute/worktree-status.mjs.map +0 -1
- package/dist/commands/inspect/code-review.d.mts +0 -1
- package/dist/commands/inspect/code-review.mjs +0 -32
- package/dist/commands/inspect/code-review.mjs.map +0 -1
- package/dist/commands/inspect/container.d.mts +0 -1
- package/dist/commands/inspect/container.mjs +0 -25
- package/dist/commands/inspect/container.mjs.map +0 -1
- package/dist/commands/inspect/context-cost.d.mts +0 -1
- package/dist/commands/inspect/context-cost.mjs +0 -25
- package/dist/commands/inspect/context-cost.mjs.map +0 -1
- package/dist/commands/inspect/design-prep.d.mts +0 -1
- package/dist/commands/inspect/design-prep.mjs +0 -22
- package/dist/commands/inspect/design-prep.mjs.map +0 -1
- package/dist/commands/inspect/error-report.d.mts +0 -1
- package/dist/commands/inspect/error-report.mjs +0 -25
- package/dist/commands/inspect/error-report.mjs.map +0 -1
- package/dist/commands/inspect/error-zip.d.mts +0 -1
- package/dist/commands/inspect/error-zip.mjs +0 -24
- package/dist/commands/inspect/error-zip.mjs.map +0 -1
- package/dist/commands/inspect/log-report.d.mts +0 -1
- package/dist/commands/inspect/log-report.mjs +0 -26
- package/dist/commands/inspect/log-report.mjs.map +0 -1
- package/dist/commands/inspect/model-io.d.mts +0 -1
- package/dist/commands/inspect/model-io.mjs +0 -25
- package/dist/commands/inspect/model-io.mjs.map +0 -1
- package/dist/commands/inspect/profile-show.d.mts +0 -1
- package/dist/commands/inspect/profile-show.mjs +0 -28
- package/dist/commands/inspect/profile-show.mjs.map +0 -1
- package/dist/commands/inspect/recap.d.mts +0 -1
- package/dist/commands/inspect/recap.mjs +0 -30
- package/dist/commands/inspect/recap.mjs.map +0 -1
- package/dist/commands/inspect/resolve-task-key.d.mts +0 -1
- package/dist/commands/inspect/resolve-task-key.mjs +0 -24
- package/dist/commands/inspect/resolve-task-key.mjs.map +0 -1
- package/dist/commands/inspect/rollup.d.mts +0 -1
- package/dist/commands/inspect/rollup.mjs +0 -25
- package/dist/commands/inspect/rollup.mjs.map +0 -1
- package/dist/commands/inspect/run-audit.d.mts +0 -1
- package/dist/commands/inspect/run-audit.mjs +0 -25
- package/dist/commands/inspect/run-audit.mjs.map +0 -1
- package/dist/commands/inspect/set-work-status.d.mts +0 -1
- package/dist/commands/inspect/set-work-status.mjs +0 -29
- package/dist/commands/inspect/set-work-status.mjs.map +0 -1
- package/dist/commands/inspect/stage-map.d.mts +0 -1
- package/dist/commands/inspect/stage-map.mjs +0 -131
- package/dist/commands/inspect/stage-map.mjs.map +0 -1
- package/dist/commands/inspect/task-list.d.mts +0 -1
- package/dist/commands/inspect/task-list.mjs +0 -149
- package/dist/commands/inspect/task-list.mjs.map +0 -1
- package/dist/commands/inspect/task-show.d.mts +0 -1
- package/dist/commands/inspect/task-show.mjs +0 -108
- package/dist/commands/inspect/task-show.mjs.map +0 -1
- package/dist/commands/inspect/time-report.d.mts +0 -1
- package/dist/commands/inspect/time-report.mjs +0 -24
- package/dist/commands/inspect/time-report.mjs.map +0 -1
- package/dist/commands/inspect/usage-report.d.mts +0 -1
- package/dist/commands/inspect/usage-report.mjs +0 -23
- package/dist/commands/inspect/usage-report.mjs.map +0 -1
- package/dist/commands/inspect/user-response.d.mts +0 -1
- package/dist/commands/inspect/user-response.mjs +0 -35
- package/dist/commands/inspect/user-response.mjs.map +0 -1
- package/dist/commands/inspect/worker-liveness.d.mts +0 -1
- package/dist/commands/inspect/worker-liveness.mjs +0 -45
- package/dist/commands/inspect/worker-liveness.mjs.map +0 -1
- package/dist/commands/lifecycle/contract-check.d.mts +0 -1
- package/dist/commands/lifecycle/contract-check.mjs +0 -18
- package/dist/commands/lifecycle/contract-check.mjs.map +0 -1
- package/dist/commands/lifecycle/migrate.d.mts +0 -1
- package/dist/commands/lifecycle/migrate.mjs +0 -30
- package/dist/commands/lifecycle/migrate.mjs.map +0 -1
- package/dist/commands/lifecycle/model.d.mts +0 -1
- package/dist/commands/lifecycle/model.mjs +0 -22
- package/dist/commands/lifecycle/model.mjs.map +0 -1
- package/dist/commands/manager.d.mts +0 -3
- package/dist/commands/manager.mjs +0 -50
- package/dist/commands/manager.mjs.map +0 -1
- package/dist/commands/report/agent-activity.d.mts +0 -1
- package/dist/commands/report/agent-activity.mjs +0 -20
- package/dist/commands/report/agent-activity.mjs.map +0 -1
- package/dist/commands/report/approval-decision.d.mts +0 -1
- package/dist/commands/report/approval-decision.mjs +0 -21
- package/dist/commands/report/approval-decision.mjs.map +0 -1
- package/dist/commands/report/design-snapshot.d.mts +0 -1
- package/dist/commands/report/design-snapshot.mjs +0 -19
- package/dist/commands/report/design-snapshot.mjs.map +0 -1
- package/dist/commands/report/finalize.d.mts +0 -4
- package/dist/commands/report/finalize.mjs +0 -64
- package/dist/commands/report/finalize.mjs.map +0 -1
- package/dist/commands/report/inject-report-index.d.mts +0 -1
- package/dist/commands/report/inject-report-index.mjs +0 -21
- package/dist/commands/report/inject-report-index.mjs.map +0 -1
- package/dist/commands/report/render-final-report.d.mts +0 -1
- package/dist/commands/report/render-final-report.mjs +0 -23
- package/dist/commands/report/render-final-report.mjs.map +0 -1
- package/dist/commands/report/render-views.d.mts +0 -1
- package/dist/commands/report/render-views.mjs +0 -27
- package/dist/commands/report/render-views.mjs.map +0 -1
- package/dist/commands/report/translate.d.mts +0 -1
- package/dist/commands/report/translate.mjs +0 -33
- package/dist/commands/report/translate.mjs.map +0 -1
- package/runtime/bin/lib/okstra/tmux-pane.sh +0 -40
- package/runtime/bin/lib/okstra-ctl/cmd-batch.sh +0 -59
- package/runtime/bin/lib/okstra-ctl/cmd-list.sh +0 -35
- package/runtime/bin/lib/okstra-ctl/cmd-open.sh +0 -36
- package/runtime/bin/lib/okstra-ctl/cmd-projects.sh +0 -26
- package/runtime/bin/lib/okstra-ctl/cmd-reconcile.sh +0 -29
- package/runtime/bin/lib/okstra-ctl/cmd-reindex.sh +0 -38
- package/runtime/bin/lib/okstra-ctl/cmd-rerun.sh +0 -345
- package/runtime/bin/lib/okstra-ctl/cmd-show.sh +0 -27
- package/runtime/bin/lib/okstra-ctl/cmd-tail.sh +0 -92
- package/runtime/bin/lib/okstra-ctl/main.sh +0 -41
- package/runtime/bin/lib/okstra-ctl/prepare.sh +0 -31
- package/runtime/bin/lib/okstra-ctl/usage.sh +0 -23
- package/runtime/bin/okstra-central.sh +0 -152
- package/runtime/bin/okstra-incremental-carry.py +0 -10
- package/runtime/bin/okstra-incremental-scope.py +0 -10
- package/runtime/bin/okstra-team-reconcile.sh +0 -36
- package/runtime/python/okstra_ctl/agent_prompt_cli.py +0 -1156
- package/runtime/python/okstra_ctl/batch.py +0 -60
- package/runtime/python/okstra_ctl/clarification_items.py +0 -1050
- package/runtime/python/okstra_ctl/container_registry.py +0 -72
- package/runtime/python/okstra_ctl/improvement_assignment.py +0 -61
- package/runtime/python/okstra_ctl/resolver.py +0 -54
- package/runtime/python/okstra_ctl/team_reconcile.py +0 -275
- package/runtime/python/okstra_ctl/tmux.py +0 -134
- package/runtime/python/okstra_ctl/worktree.py +0 -1099
|
@@ -251,7 +251,7 @@
|
|
|
251
251
|
},
|
|
252
252
|
"verdictCard": {
|
|
253
253
|
"type": "object",
|
|
254
|
-
"description": "Top-of-report at-a-glance card. It carries no verdict token — the token lives once, in finalVerdict. `direction` and `nextStep`
|
|
254
|
+
"description": "Top-of-report at-a-glance card. It carries no verdict token — the token lives once, in finalVerdict, and additionalProperties:false keeps it from being copied here. Authoring guideline: write `direction` to agree with finalVerdict.direction and `nextStep` to agree with recommendedNextSteps[0]. Nothing compares the two copies afterwards — assembly rewrites `nextStep` on both cards together when the plan-body gate passes, and leaves `direction` as the writer wrote it — so a disagreement between them is published as written.",
|
|
255
255
|
"required": [
|
|
256
256
|
"finalConclusion",
|
|
257
257
|
"direction",
|
|
@@ -312,9 +312,8 @@
|
|
|
312
312
|
},
|
|
313
313
|
"summary": {
|
|
314
314
|
"type": "array",
|
|
315
|
-
"description": "## Summary of the Problem or Verification Target. 3-5 rows.",
|
|
315
|
+
"description": "## Summary of the Problem or Verification Target. Usually 3-5 rows; no upper limit.",
|
|
316
316
|
"minItems": 1,
|
|
317
|
-
"maxItems": 8,
|
|
318
317
|
"items": {
|
|
319
318
|
"$ref": "#/$defs/SummaryRow"
|
|
320
319
|
}
|
|
@@ -3897,8 +3896,8 @@
|
|
|
3897
3896
|
},
|
|
3898
3897
|
"summary": {
|
|
3899
3898
|
"type": "string",
|
|
3900
|
-
"minLength": 1
|
|
3901
|
-
|
|
3899
|
+
"minLength": 1
|
|
3900
|
+
|
|
3902
3901
|
},
|
|
3903
3902
|
"details": {
|
|
3904
3903
|
"type": "string",
|
|
@@ -7527,8 +7526,8 @@
|
|
|
7527
7526
|
},
|
|
7528
7527
|
"summary": {
|
|
7529
7528
|
"type": "string",
|
|
7530
|
-
"minLength": 1
|
|
7531
|
-
|
|
7529
|
+
"minLength": 1
|
|
7530
|
+
|
|
7532
7531
|
},
|
|
7533
7532
|
"details": {
|
|
7534
7533
|
"type": "string",
|
|
@@ -9030,24 +9029,6 @@
|
|
|
9030
9029
|
"type": "string",
|
|
9031
9030
|
"minLength": 1
|
|
9032
9031
|
}
|
|
9033
|
-
},
|
|
9034
|
-
"rewrittenPaths": {
|
|
9035
|
-
"type": "array",
|
|
9036
|
-
"description": "data.json paths this round actually rewrote for this cause group. A self-fix round is contractually a targeted correction, not a full draft regeneration; recording the reach is what makes that claim checkable later.",
|
|
9037
|
-
"uniqueItems": true,
|
|
9038
|
-
"items": {
|
|
9039
|
-
"type": "string",
|
|
9040
|
-
"minLength": 1
|
|
9041
|
-
}
|
|
9042
|
-
},
|
|
9043
|
-
"outsideScopePaths": {
|
|
9044
|
-
"type": "array",
|
|
9045
|
-
"description": "The subset of rewrittenPaths that lies outside the sections this group's itemIds point at. Carrying a correction to its contradictions legitimately reaches further than the flagged item, so this is a measurement, not a violation.",
|
|
9046
|
-
"uniqueItems": true,
|
|
9047
|
-
"items": {
|
|
9048
|
-
"type": "string",
|
|
9049
|
-
"minLength": 1
|
|
9050
|
-
}
|
|
9051
9032
|
}
|
|
9052
9033
|
}
|
|
9053
9034
|
},
|
|
@@ -9569,10 +9550,12 @@
|
|
|
9569
9550
|
"minLength": 1
|
|
9570
9551
|
},
|
|
9571
9552
|
"verdict": {
|
|
9553
|
+
"description": "`not-run` is not a rejection: the verifier produced no verdict at all (timeout, error, usage limit). `FAIL` rejects the diff and opens the stage fix cycle, so spending it on a verifier that never ran manufactures a defect nobody found \u2014 see `_implementation-verifier.md` \"All-verifier-failure policy\".",
|
|
9572
9554
|
"enum": [
|
|
9573
9555
|
"PASS",
|
|
9574
9556
|
"CONCERNS",
|
|
9575
|
-
"FAIL"
|
|
9557
|
+
"FAIL",
|
|
9558
|
+
"not-run"
|
|
9576
9559
|
]
|
|
9577
9560
|
},
|
|
9578
9561
|
"readOnlyCommandLog": {
|
|
@@ -251,7 +251,7 @@
|
|
|
251
251
|
},
|
|
252
252
|
"verdictCard": {
|
|
253
253
|
"type": "object",
|
|
254
|
-
"description": "Top-of-report at-a-glance card. It carries no verdict token — the token lives once, in finalVerdict. `direction` and `nextStep`
|
|
254
|
+
"description": "Top-of-report at-a-glance card. It carries no verdict token — the token lives once, in finalVerdict, and additionalProperties:false keeps it from being copied here. Authoring guideline: write `direction` to agree with finalVerdict.direction and `nextStep` to agree with recommendedNextSteps[0]. Nothing compares the two copies afterwards — assembly rewrites `nextStep` on both cards together when the plan-body gate passes, and leaves `direction` as the writer wrote it — so a disagreement between them is published as written.",
|
|
255
255
|
"required": [
|
|
256
256
|
"finalConclusion",
|
|
257
257
|
"direction",
|
|
@@ -312,9 +312,8 @@
|
|
|
312
312
|
},
|
|
313
313
|
"summary": {
|
|
314
314
|
"type": "array",
|
|
315
|
-
"description": "## Summary of the Problem or Verification Target. 3-5 rows.",
|
|
315
|
+
"description": "## Summary of the Problem or Verification Target. Usually 3-5 rows; no upper limit.",
|
|
316
316
|
"minItems": 1,
|
|
317
|
-
"maxItems": 8,
|
|
318
317
|
"items": {
|
|
319
318
|
"$ref": "#/$defs/SummaryRow"
|
|
320
319
|
}
|
|
@@ -3043,10 +3042,7 @@
|
|
|
3043
3042
|
"$ref": "#/$defs/ImplementationOptionDecisionContext"
|
|
3044
3043
|
},
|
|
3045
3044
|
"evaluationCriteria": {
|
|
3046
|
-
"
|
|
3047
|
-
"items": {
|
|
3048
|
-
"$ref": "#/$defs/ImplementationOptionEvaluationCriterion"
|
|
3049
|
-
}
|
|
3045
|
+
"$ref": "#/$defs/ImplementationOptionEvaluationCriteria"
|
|
3050
3046
|
},
|
|
3051
3047
|
"candidateAudit": {
|
|
3052
3048
|
"type": "array",
|
|
@@ -3149,6 +3145,62 @@
|
|
|
3149
3145
|
}
|
|
3150
3146
|
}
|
|
3151
3147
|
},
|
|
3148
|
+
"ImplementationOptionEvaluationCriteria": {
|
|
3149
|
+
"type": "array",
|
|
3150
|
+
"minItems": 8,
|
|
3151
|
+
"maxItems": 8,
|
|
3152
|
+
"prefixItems": [
|
|
3153
|
+
{
|
|
3154
|
+
"allOf": [
|
|
3155
|
+
{"$ref": "#/$defs/ImplementationOptionEvaluationCriterion"},
|
|
3156
|
+
{"properties": {"criterion": {"const": "requirement-fit"}}}
|
|
3157
|
+
]
|
|
3158
|
+
},
|
|
3159
|
+
{
|
|
3160
|
+
"allOf": [
|
|
3161
|
+
{"$ref": "#/$defs/ImplementationOptionEvaluationCriterion"},
|
|
3162
|
+
{"properties": {"criterion": {"const": "architecture-fit"}}}
|
|
3163
|
+
]
|
|
3164
|
+
},
|
|
3165
|
+
{
|
|
3166
|
+
"allOf": [
|
|
3167
|
+
{"$ref": "#/$defs/ImplementationOptionEvaluationCriterion"},
|
|
3168
|
+
{"properties": {"criterion": {"const": "change-locality"}}}
|
|
3169
|
+
]
|
|
3170
|
+
},
|
|
3171
|
+
{
|
|
3172
|
+
"allOf": [
|
|
3173
|
+
{"$ref": "#/$defs/ImplementationOptionEvaluationCriterion"},
|
|
3174
|
+
{"properties": {"criterion": {"const": "implementation-complexity"}}}
|
|
3175
|
+
]
|
|
3176
|
+
},
|
|
3177
|
+
{
|
|
3178
|
+
"allOf": [
|
|
3179
|
+
{"$ref": "#/$defs/ImplementationOptionEvaluationCriterion"},
|
|
3180
|
+
{"properties": {"criterion": {"const": "correctness-risk"}}}
|
|
3181
|
+
]
|
|
3182
|
+
},
|
|
3183
|
+
{
|
|
3184
|
+
"allOf": [
|
|
3185
|
+
{"$ref": "#/$defs/ImplementationOptionEvaluationCriterion"},
|
|
3186
|
+
{"properties": {"criterion": {"const": "reversibility"}}}
|
|
3187
|
+
]
|
|
3188
|
+
},
|
|
3189
|
+
{
|
|
3190
|
+
"allOf": [
|
|
3191
|
+
{"$ref": "#/$defs/ImplementationOptionEvaluationCriterion"},
|
|
3192
|
+
{"properties": {"criterion": {"const": "verification-cost"}}}
|
|
3193
|
+
]
|
|
3194
|
+
},
|
|
3195
|
+
{
|
|
3196
|
+
"allOf": [
|
|
3197
|
+
{"$ref": "#/$defs/ImplementationOptionEvaluationCriterion"},
|
|
3198
|
+
{"properties": {"criterion": {"const": "rollout-cost"}}}
|
|
3199
|
+
]
|
|
3200
|
+
}
|
|
3201
|
+
],
|
|
3202
|
+
"items": false
|
|
3203
|
+
},
|
|
3152
3204
|
"ImplementationOptionCandidateAudit": {
|
|
3153
3205
|
"type": "object",
|
|
3154
3206
|
"required": [
|
|
@@ -3237,11 +3289,7 @@
|
|
|
3237
3289
|
"$ref": "#/$defs/ImplementationOptionCoverageSummary"
|
|
3238
3290
|
},
|
|
3239
3291
|
"criterionScores": {
|
|
3240
|
-
"
|
|
3241
|
-
"minItems": 1,
|
|
3242
|
-
"items": {
|
|
3243
|
-
"$ref": "#/$defs/ImplementationOptionCriterionScore"
|
|
3244
|
-
}
|
|
3292
|
+
"$ref": "#/$defs/ImplementationOptionCriterionScores"
|
|
3245
3293
|
},
|
|
3246
3294
|
"weightedScore": {
|
|
3247
3295
|
"type": "number",
|
|
@@ -3339,11 +3387,7 @@
|
|
|
3339
3387
|
"$ref": "#/$defs/ImplementationOptionExactCoverageSummary"
|
|
3340
3388
|
},
|
|
3341
3389
|
"criterionScores": {
|
|
3342
|
-
"
|
|
3343
|
-
"minItems": 1,
|
|
3344
|
-
"items": {
|
|
3345
|
-
"$ref": "#/$defs/ImplementationOptionCriterionScore"
|
|
3346
|
-
}
|
|
3390
|
+
"$ref": "#/$defs/ImplementationOptionCriterionScores"
|
|
3347
3391
|
},
|
|
3348
3392
|
"weightedScore": {
|
|
3349
3393
|
"type": "number",
|
|
@@ -3575,6 +3619,62 @@
|
|
|
3575
3619
|
}
|
|
3576
3620
|
}
|
|
3577
3621
|
},
|
|
3622
|
+
"ImplementationOptionCriterionScores": {
|
|
3623
|
+
"type": "array",
|
|
3624
|
+
"minItems": 8,
|
|
3625
|
+
"maxItems": 8,
|
|
3626
|
+
"prefixItems": [
|
|
3627
|
+
{
|
|
3628
|
+
"allOf": [
|
|
3629
|
+
{"$ref": "#/$defs/ImplementationOptionCriterionScore"},
|
|
3630
|
+
{"properties": {"criterion": {"const": "requirement-fit"}}}
|
|
3631
|
+
]
|
|
3632
|
+
},
|
|
3633
|
+
{
|
|
3634
|
+
"allOf": [
|
|
3635
|
+
{"$ref": "#/$defs/ImplementationOptionCriterionScore"},
|
|
3636
|
+
{"properties": {"criterion": {"const": "architecture-fit"}}}
|
|
3637
|
+
]
|
|
3638
|
+
},
|
|
3639
|
+
{
|
|
3640
|
+
"allOf": [
|
|
3641
|
+
{"$ref": "#/$defs/ImplementationOptionCriterionScore"},
|
|
3642
|
+
{"properties": {"criterion": {"const": "change-locality"}}}
|
|
3643
|
+
]
|
|
3644
|
+
},
|
|
3645
|
+
{
|
|
3646
|
+
"allOf": [
|
|
3647
|
+
{"$ref": "#/$defs/ImplementationOptionCriterionScore"},
|
|
3648
|
+
{"properties": {"criterion": {"const": "implementation-complexity"}}}
|
|
3649
|
+
]
|
|
3650
|
+
},
|
|
3651
|
+
{
|
|
3652
|
+
"allOf": [
|
|
3653
|
+
{"$ref": "#/$defs/ImplementationOptionCriterionScore"},
|
|
3654
|
+
{"properties": {"criterion": {"const": "correctness-risk"}}}
|
|
3655
|
+
]
|
|
3656
|
+
},
|
|
3657
|
+
{
|
|
3658
|
+
"allOf": [
|
|
3659
|
+
{"$ref": "#/$defs/ImplementationOptionCriterionScore"},
|
|
3660
|
+
{"properties": {"criterion": {"const": "reversibility"}}}
|
|
3661
|
+
]
|
|
3662
|
+
},
|
|
3663
|
+
{
|
|
3664
|
+
"allOf": [
|
|
3665
|
+
{"$ref": "#/$defs/ImplementationOptionCriterionScore"},
|
|
3666
|
+
{"properties": {"criterion": {"const": "verification-cost"}}}
|
|
3667
|
+
]
|
|
3668
|
+
},
|
|
3669
|
+
{
|
|
3670
|
+
"allOf": [
|
|
3671
|
+
{"$ref": "#/$defs/ImplementationOptionCriterionScore"},
|
|
3672
|
+
{"properties": {"criterion": {"const": "rollout-cost"}}}
|
|
3673
|
+
]
|
|
3674
|
+
}
|
|
3675
|
+
],
|
|
3676
|
+
"items": false
|
|
3677
|
+
},
|
|
3578
3678
|
"ImplementationOptionFeasibilityVote": {
|
|
3579
3679
|
"type": "object",
|
|
3580
3680
|
"required": [
|
|
@@ -3905,8 +4005,8 @@
|
|
|
3905
4005
|
},
|
|
3906
4006
|
"summary": {
|
|
3907
4007
|
"type": "string",
|
|
3908
|
-
"minLength": 1
|
|
3909
|
-
|
|
4008
|
+
"minLength": 1
|
|
4009
|
+
|
|
3910
4010
|
},
|
|
3911
4011
|
"details": {
|
|
3912
4012
|
"type": "string",
|
|
@@ -7302,7 +7402,8 @@
|
|
|
7302
7402
|
"properties": {
|
|
7303
7403
|
"id": {
|
|
7304
7404
|
"type": "string",
|
|
7305
|
-
"pattern": "^C
|
|
7405
|
+
"pattern": "^C[V]?-\\d{3,}$",
|
|
7406
|
+
"description": "Converged-finding row id. New reports are numbered `CV-NNN` so `C-NNN` names a clarification and nothing else; `C-NNN` stays accepted here only because reports written before that split are still read and re-validated. The generator emits `CV-` only — see report_projections.py and its test."
|
|
7306
7407
|
},
|
|
7307
7408
|
"ticketId": {
|
|
7308
7409
|
"$ref": "#/$defs/TicketId"
|
|
@@ -7522,8 +7623,8 @@
|
|
|
7522
7623
|
},
|
|
7523
7624
|
"summary": {
|
|
7524
7625
|
"type": "string",
|
|
7525
|
-
"minLength": 1
|
|
7526
|
-
|
|
7626
|
+
"minLength": 1
|
|
7627
|
+
|
|
7527
7628
|
},
|
|
7528
7629
|
"details": {
|
|
7529
7630
|
"type": "string",
|
|
@@ -8318,6 +8419,53 @@
|
|
|
8318
8419
|
"rationale": {
|
|
8319
8420
|
"type": "string",
|
|
8320
8421
|
"description": "Required when disposition is not `addressed`: why this phase does not account for the id."
|
|
8422
|
+
},
|
|
8423
|
+
"blockedBy": {
|
|
8424
|
+
"type": "object",
|
|
8425
|
+
"description": "What holds this end state back. Required by validate-run.py when `disposition` is `blocked`, because that word alone carries five different situations and only one of them is something a person can answer. Derived from the 82 blocked rows on disk at the time it was added.",
|
|
8426
|
+
"required": [
|
|
8427
|
+
"kind"
|
|
8428
|
+
],
|
|
8429
|
+
"additionalProperties": false,
|
|
8430
|
+
"properties": {
|
|
8431
|
+
"kind": {
|
|
8432
|
+
"type": "string",
|
|
8433
|
+
"enum": [
|
|
8434
|
+
"clarification",
|
|
8435
|
+
"finding",
|
|
8436
|
+
"execution",
|
|
8437
|
+
"upstream",
|
|
8438
|
+
"not-observed"
|
|
8439
|
+
],
|
|
8440
|
+
"description": "`clarification` — a decision only the reporter can make; the run cannot proceed without an answer. `finding` — a cross-verification finding or approval blocker this run must resolve. `execution` — a command or environment failure in this run (a server that would not boot, a placeholder credential, an artifact not reproducible at its tag). `upstream` — carried from an earlier report or stage that already recorded the same disposition. `not-observed` — this run did not re-check it and records no disproof."
|
|
8441
|
+
},
|
|
8442
|
+
"ref": {
|
|
8443
|
+
"type": "string",
|
|
8444
|
+
"description": "The blocker's id. Required for `clarification` (a `C-NNN` row of this report, or one carried in) and for `finding`. Only the `clarification` ref is resolved by validate-run.py — a `finding` ref legitimately names a row of the approved plan or an upstream report (`VC-003`, `CA-001`), which this document cannot see."
|
|
8445
|
+
}
|
|
8446
|
+
},
|
|
8447
|
+
"allOf": [
|
|
8448
|
+
{
|
|
8449
|
+
"if": {
|
|
8450
|
+
"properties": {
|
|
8451
|
+
"kind": {
|
|
8452
|
+
"enum": [
|
|
8453
|
+
"clarification",
|
|
8454
|
+
"finding"
|
|
8455
|
+
]
|
|
8456
|
+
}
|
|
8457
|
+
},
|
|
8458
|
+
"required": [
|
|
8459
|
+
"kind"
|
|
8460
|
+
]
|
|
8461
|
+
},
|
|
8462
|
+
"then": {
|
|
8463
|
+
"required": [
|
|
8464
|
+
"ref"
|
|
8465
|
+
]
|
|
8466
|
+
}
|
|
8467
|
+
}
|
|
8468
|
+
]
|
|
8321
8469
|
}
|
|
8322
8470
|
}
|
|
8323
8471
|
},
|
|
@@ -9025,24 +9173,6 @@
|
|
|
9025
9173
|
"type": "string",
|
|
9026
9174
|
"minLength": 1
|
|
9027
9175
|
}
|
|
9028
|
-
},
|
|
9029
|
-
"rewrittenPaths": {
|
|
9030
|
-
"type": "array",
|
|
9031
|
-
"description": "data.json paths this round actually rewrote for this cause group. A self-fix round is contractually a targeted correction, not a full draft regeneration; recording the reach is what makes that claim checkable later.",
|
|
9032
|
-
"uniqueItems": true,
|
|
9033
|
-
"items": {
|
|
9034
|
-
"type": "string",
|
|
9035
|
-
"minLength": 1
|
|
9036
|
-
}
|
|
9037
|
-
},
|
|
9038
|
-
"outsideScopePaths": {
|
|
9039
|
-
"type": "array",
|
|
9040
|
-
"description": "The subset of rewrittenPaths that lies outside the sections this group's itemIds point at. Carrying a correction to its contradictions legitimately reaches further than the flagged item, so this is a measurement, not a violation.",
|
|
9041
|
-
"uniqueItems": true,
|
|
9042
|
-
"items": {
|
|
9043
|
-
"type": "string",
|
|
9044
|
-
"minLength": 1
|
|
9045
|
-
}
|
|
9046
9176
|
}
|
|
9047
9177
|
}
|
|
9048
9178
|
},
|
|
@@ -9561,10 +9691,12 @@
|
|
|
9561
9691
|
"minLength": 1
|
|
9562
9692
|
},
|
|
9563
9693
|
"verdict": {
|
|
9694
|
+
"description": "`not-run` is not a rejection: the verifier produced no verdict at all (timeout, error, usage limit). `FAIL` rejects the diff and opens the stage fix cycle, so spending it on a verifier that never ran manufactures a defect nobody found \u2014 see `_implementation-verifier.md` \"All-verifier-failure policy\".",
|
|
9564
9695
|
"enum": [
|
|
9565
9696
|
"PASS",
|
|
9566
9697
|
"CONCERNS",
|
|
9567
|
-
"FAIL"
|
|
9698
|
+
"FAIL",
|
|
9699
|
+
"not-run"
|
|
9568
9700
|
]
|
|
9569
9701
|
},
|
|
9570
9702
|
"readOnlyCommandLog": {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://okstra.dev/schemas/report-narrative-v3.0.json",
|
|
4
4
|
"title": "OKSTRA Report Writer Narrative Input (v3.0)",
|
|
5
|
-
"description": "Parsed report-writer Markdown. Only report-writer-owned judgments, plans, summaries, and user explanations are accepted.",
|
|
5
|
+
"description": "Parsed report-writer Markdown: the allowlist of top-level fields the report writer owns. Only report-writer-owned judgments, plans, summaries, and user explanations are accepted. This file constrains NAMES only \u2014 the per-value constraints (enums, required properties, item shapes) come from final-report-v3.0.schema.json, which okstra_ctl.report_narrative restricts to these names at parse time. Do not copy value constraints here; two copies drift.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
8
|
"properties": {
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"implementation": {"type": "object"},
|
|
26
26
|
"finalVerification": {"type": "object"},
|
|
27
27
|
"recommendedNextSteps": {"type": "array"},
|
|
28
|
-
"followUpTasks": {"type": "array"}
|
|
28
|
+
"followUpTasks": {"type": "array"},
|
|
29
|
+
"endStateCoverage": {"type": "array"}
|
|
29
30
|
}
|
|
30
31
|
}
|
|
@@ -120,9 +120,13 @@ Run one Bash tool call, starting with the literal token `okstra` (never wrapped
|
|
|
120
120
|
<!-- END FRAGMENT: bash-invocation-rule -->
|
|
121
121
|
|
|
122
122
|
```bash
|
|
123
|
-
okstra preflight --runtime
|
|
123
|
+
okstra preflight --runtime <current-host-runtime>
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
+
Resolve `<current-host-runtime>` from the live harness or launcher's
|
|
127
|
+
`OKSTRA_RUNTIME_HOST`; do not assume `claude-code` when the skill is running
|
|
128
|
+
inside Codex or another registered host.
|
|
129
|
+
|
|
126
130
|
On `Okstra preflight: ready`, carry the fixed `Project root` line as a literal string into the steps below. On `Okstra preflight: failed` (or `okstra` not on `PATH` at all), show the fixed `Reason` and `Recovery` lines, then stop.
|
|
127
131
|
|
|
128
132
|
<!-- BEGIN FRAGMENT: preflight-outdated-cli -->
|
|
@@ -131,6 +135,22 @@ If the call fails with `unknown command: preflight`, the `okstra` binary on PATH
|
|
|
131
135
|
|
|
132
136
|
Do **not** try `npx -y okstra@latest ...` as a fallback.
|
|
133
137
|
|
|
138
|
+
### Host-native choice prompts
|
|
139
|
+
|
|
140
|
+
Use the current host's native single-select control whenever it is available
|
|
141
|
+
for an authored question with two or three mutually exclusive options. Keep a
|
|
142
|
+
selection and the material it collects as separate interactions: a native
|
|
143
|
+
choice selects the input path, and the next free-text interaction receives a
|
|
144
|
+
path, URL, ticket reference, or body.
|
|
145
|
+
|
|
146
|
+
In Codex, call `request_user_input` with the two or three listed options in
|
|
147
|
+
their stated order. Do not add an `Other` option: the Codex client adds its
|
|
148
|
+
own free-text `Other` row. When the user supplies a value through that row,
|
|
149
|
+
classify it through the normal reporter-source rules (ticket, URL, or user
|
|
150
|
+
input) and do not ask them to repeat it. If the host does not expose a
|
|
151
|
+
compatible native control, render the same options as a numbered text choice
|
|
152
|
+
and retain the explicit free-text follow-up where this skill specifies one.
|
|
153
|
+
|
|
134
154
|
## Step 1: Choose input source
|
|
135
155
|
|
|
136
156
|
### 1.0. brief variant
|
|
@@ -143,11 +163,16 @@ Do **not** try `npx -y okstra@latest ...` as a fallback.
|
|
|
143
163
|
2. `Codebase scan` — take only the codebase scope + lens priorities and generate the input for the `improvement-discovery` phase.
|
|
144
164
|
3. `Error feedback` (`error-feedback`) — convert one frequent cluster from the `.zip` produced by `okstra error-zip` into an `error-analysis` brief (for okstra self-repair).
|
|
145
165
|
|
|
166
|
+
The three variants must be presented as a native choice when the current host
|
|
167
|
+
supports it. A Codex `Other` response is direct Reporter input, not a fourth
|
|
168
|
+
brief variant. Continue with Step 1.A using that response as the already
|
|
169
|
+
collected source material, then classify a ticket reference or URL normally.
|
|
170
|
+
|
|
146
171
|
### 1.A. Reporter input (variant 1)
|
|
147
172
|
|
|
148
173
|
If the user picked `Reporter input`, proceed to Step 1.A's sub-flow below — this is the existing 4-source flow. Choose ONE of:
|
|
149
174
|
|
|
150
|
-
`AskUserQuestion` (
|
|
175
|
+
`AskUserQuestion` (single-select):
|
|
151
176
|
|
|
152
177
|
- **Label**: "Source of this brief?"
|
|
153
178
|
- **Options** (single-select):
|
|
@@ -159,6 +184,14 @@ If the user picked `Reporter input`, proceed to Step 1.A's sub-flow below — th
|
|
|
159
184
|
(default: conversation synthesis. If context is thin, fall back to a
|
|
160
185
|
single free-text question.)
|
|
161
186
|
|
|
187
|
+
When the current native control accepts only two or three options, present
|
|
188
|
+
`File`, `Issue tracker ticket`, and `Link URL`; use its built-in `Other` row
|
|
189
|
+
for `User input`. A value typed through `Other` is the source input itself;
|
|
190
|
+
classify a file path, ticket reference, or URL normally and otherwise treat
|
|
191
|
+
it as the user-input body without another free-text question. On a host
|
|
192
|
+
without that control, render all four options as the numbered text choice
|
|
193
|
+
above.
|
|
194
|
+
|
|
162
195
|
If the user wants to bundle multiple sources into one brief (e.g. "this
|
|
163
196
|
Linear ticket + this PR link"), repeat this step to collect them. Preserve
|
|
164
197
|
each source's raw content **separately** under the `Source Material
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: okstra-container-build
|
|
3
3
|
description: |
|
|
4
|
-
Use to bring up, inspect, or tear down the okstra user-test container runtime for an implementation task — the docker-compose group okstra deploys from a task's worktree so a human can poke at the running build. Trigger words include "okstra container", "okstra container up", "okstra container down", "bring up the container", "spin up the container", "tear down the container", "container status", "
|
|
4
|
+
Use to bring up, inspect, or tear down the okstra user-test container runtime for an implementation task — the docker-compose group okstra deploys from a task's worktree so a human can poke at the running build. Trigger words include "okstra container", "okstra container up", "okstra container down", "bring up the container", "spin up the container", "tear down the container", "container status", "user-test environment", "user test environment", "docker compose up please", "spin up this task in a container".
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# OKSTRA Container Build
|
|
8
8
|
|
|
9
|
-
Single entry point for the okstra user-test container runtime. okstra provisions a docker-compose group from an `implementation` task's worktree (the `docker-compose.yml` at the worktree root), labels it with the task's run-trace so later sub-commands can find the group
|
|
9
|
+
Single entry point for the okstra user-test container runtime. okstra provisions a docker-compose group from an `implementation` task's worktree (the `docker-compose.yml` at the worktree root), and labels it with the task's run-trace so later sub-commands can find the group. This skill drives that lifecycle. Sub-commands:
|
|
10
10
|
|
|
11
11
|
| Sub-command | What it does |
|
|
12
12
|
|---|---|
|
|
13
|
-
| `up` | Integrate the task's stages into the worktree, run `docker compose up -d`, poll healthchecks
|
|
14
|
-
| `status` | Query the running containers (by run-trace label)
|
|
15
|
-
| `
|
|
16
|
-
| `stop-watcher` | Reap the watcher/tail panes only — the containers keep running. |
|
|
17
|
-
| `down` | Tear down the containers (label query) and reap orphan watcher panes; `--all` covers every container group in the project. |
|
|
13
|
+
| `up` | Integrate the task's stages into the worktree, run `docker compose up -d`, and poll healthchecks. |
|
|
14
|
+
| `status` | Query the running containers for a task-key (by run-trace label). |
|
|
15
|
+
| `down` | Tear down the containers (label query); `--all` covers every container group in the project. |
|
|
18
16
|
|
|
19
17
|
## Step 0: Preflight (shared)
|
|
20
18
|
|
|
@@ -44,14 +42,14 @@ Every subsequent `okstra <subcmd>` call self-bootstraps its Python path, so this
|
|
|
44
42
|
|
|
45
43
|
Classify the user's request into one sub-command using the sub-command table above.
|
|
46
44
|
|
|
47
|
-
- Clear verbs route directly: "bring up/deploy/up" → `up`; "status" → `status`; "
|
|
45
|
+
- Clear verbs route directly: "bring up/deploy/up" → `up`; "status" → `status`; "tear down/down" → `down`.
|
|
48
46
|
- If the request is ambiguous (e.g. "take a look at the okstra container"), present a numbered picker. Recommend the 1–2 most likely facets first, and make the **last option always "Enter directly"** so the user can name any facet:
|
|
49
47
|
|
|
50
48
|
```
|
|
51
49
|
What would you like to do?
|
|
52
|
-
1. status — check running containers
|
|
50
|
+
1. status — check the running containers (recommended)
|
|
53
51
|
2. up — bring up this task's containers
|
|
54
|
-
3. Enter directly (one of up / status /
|
|
52
|
+
3. Enter directly (one of up / status / down)
|
|
55
53
|
```
|
|
56
54
|
|
|
57
55
|
The full facet list is the `Sub-command | What it does` table above — never hide a facet; if the user picks "Enter directly", let them name any row.
|
|
@@ -68,7 +66,7 @@ Every sub-command needs a **task-key** (`<project-id>:<task-group>:<task-id>`)
|
|
|
68
66
|
|
|
69
67
|
## up
|
|
70
68
|
|
|
71
|
-
Brings up the task's container group: integrates the implementation stages into the task worktree, synthesizes the compose env override, runs `docker compose up -d`, polls healthchecks
|
|
69
|
+
Brings up the task's container group: integrates the implementation stages into the task worktree, synthesizes the compose env override, runs `docker compose up -d`, and polls healthchecks.
|
|
72
70
|
|
|
73
71
|
**Preconditions** (state them if unmet, do not guess):
|
|
74
72
|
- The task must be an `implementation` task whose worktree is registered in `~/.okstra/worktrees/registry.json`. If `up` fails with "task worktree is not in the registry" → the task has no implementation worktree yet; tell the user to run the `implementation` phase first.
|
|
@@ -81,7 +79,7 @@ Run:
|
|
|
81
79
|
okstra container up --project-root <projectRoot> --task-key <task-key> --text
|
|
82
80
|
```
|
|
83
81
|
|
|
84
|
-
Read the fixed output fields and report the provisioned services
|
|
82
|
+
Read the fixed output fields and report the provisioned services. If a service failed its healthcheck, the call surfaces the failing services and the `docker compose ... logs` line to inspect — relay that line; do not invent your own.
|
|
85
83
|
|
|
86
84
|
After a successful `up`, run the `status --text` command below and read its numbered container `ports` fields to tell the user how to reach the running build. Also explain that `okstra container status <task-key>` / `okstra container down <task-key>` manage it from here. For *what to verify* once it is up, point the user to the implementation report's §5.7.9 Manual User Test (Draft) — its steps and expected results are the manual test script for this build.
|
|
87
85
|
|
|
@@ -89,57 +87,28 @@ After a successful `up`, run the `status --text` command below and read its numb
|
|
|
89
87
|
|
|
90
88
|
## status
|
|
91
89
|
|
|
92
|
-
Reports the running containers
|
|
90
|
+
Reports the running containers, queried by the run-trace label — the source of truth for "is it up".
|
|
93
91
|
|
|
94
92
|
```bash
|
|
95
93
|
okstra container status --project-root <projectRoot> --task-key <task-key> --text
|
|
96
94
|
```
|
|
97
95
|
|
|
98
|
-
Read the fixed `Project name
|
|
96
|
+
Read the fixed `Project name` and numbered `Container` fields and report:
|
|
99
97
|
|
|
100
98
|
| Field | Meaning |
|
|
101
99
|
|---|---|
|
|
102
100
|
| `projectName` | the compose project name (label group) |
|
|
103
101
|
| `containers` | running containers found by label — empty array means nothing is up |
|
|
104
|
-
| `watchers` | per-service watcher metadata from the registry (auxiliary; may lag the label query) |
|
|
105
102
|
|
|
106
|
-
If `containers` is empty, say the group is not running and offer `up`.
|
|
103
|
+
If `containers` is empty, say the group is not running and offer `up`.
|
|
107
104
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
## logs
|
|
111
|
-
|
|
112
|
-
The live log stream lives in the tmux watcher pane, not in a file. This sub-command points at the watcher findings directory and the per-service watcher state.
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
okstra container logs --project-root <projectRoot> --task-key <task-key> --text
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
Add `--service <name>` to scope to one service:
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
okstra container logs --project-root <projectRoot> --task-key <task-key> --service <service> --text
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
Read the fixed `Watchers dir` and numbered `Watchers` fields. Report the host path and watcher entries. Explain that the live stream is in the attached tmux pane; to see raw container logs the user runs `docker compose -p <projectName> logs -f <service>` (get `<projectName>` from `status`).
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## stop-watcher
|
|
129
|
-
|
|
130
|
-
Reaps the watcher/tail tmux panes for the task **without stopping the containers**. Use when the user wants to silence the monitor but keep the build running.
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
okstra container stop-watcher --project-root <projectRoot> --task-key <task-key> --text
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Read the fixed `Reaped panes` and `Note` fields. Confirm which panes were reaped and that the containers are still running. If the user actually wants the containers gone, route to `down`.
|
|
105
|
+
To follow a service's live logs, the user runs `docker compose -p <projectName> logs -f <service>` (get `<projectName>` from `status`).
|
|
137
106
|
|
|
138
107
|
---
|
|
139
108
|
|
|
140
109
|
## down
|
|
141
110
|
|
|
142
|
-
Tears down the container group
|
|
111
|
+
Tears down the container group — removes the containers found by the run-trace label.
|
|
143
112
|
|
|
144
113
|
Single task:
|
|
145
114
|
|
|
@@ -153,7 +122,7 @@ Every container group in the project (no task-key needed):
|
|
|
153
122
|
okstra container down --project-root <projectRoot> --all --text
|
|
154
123
|
```
|
|
155
124
|
|
|
156
|
-
Read the fixed `Downed` and
|
|
125
|
+
Read the fixed `Downed` fields and report each torn-down project name. `down` runs `docker compose -p <name> down --remove-orphans` — a compose-native teardown that removes the project's containers and the compose network, but deliberately keeps named volumes (e.g. DB data) by NOT passing `-v`. Confirm with the user before running `--all`, since it takes down every okstra container group in the project at once. A single-task `down` is safe to run directly once the task-key is resolved.
|
|
157
126
|
|
|
158
127
|
---
|
|
159
128
|
|
|
@@ -58,7 +58,7 @@ Builds a fresh run — new run-seq, new manifest, new report — using parameter
|
|
|
58
58
|
- `taskType` → `--task-type`
|
|
59
59
|
- `taskBriefPath` → `--task-brief`
|
|
60
60
|
3. Optional arguments (include only when present in source):
|
|
61
|
-
- `
|
|
61
|
+
- `Workers` → `--workers` (comma-separated provider ids; the projection already folds roster slot ids like `codex-verifier` down to their provider, so pass the line verbatim and never hand-assemble it from a roster)
|
|
62
62
|
- `relatedTasks` → `--related-tasks`
|
|
63
63
|
- model overrides → `--claude-model`, `--codex-model`, `--antigravity-model`
|
|
64
64
|
- for `taskType: implementation`: `teamContract.executor.provider` → `--executor <claude|codex|antigravity>` when different from `claude`.
|