18cbd34739
Uncommitted work from the session-robustness-and-dox branch sweep
(docs/qa/QA-session-robustness-and-dox.md), verified alongside the
compression/context fixes:
- SandboxedToolExecutor: validate tool args centrally before dispatch. A
malformed/missing-arg call becomes a recoverable ERROR: (surfaced with the
tool's arg schema so the model can correct + retry) instead of stranding
the stage with no artifact. + validation test.
- PlanLinter: seed artifacts (analysis) produced by the planning phase count
as available producers, so a plan stage that `needs` them isn't flagged as
an unproduced-need; H1 unproduced-needs + trap-state checks. + tests.
- DefaultSessionOrchestrator: live-QA robustness fixes (event-tail /
per-stage budget + retry handling).
- workflow prompts/configs: DOX AGENTS.md alignment + freestyle/task/role
prompt tweaks.
- SessionOrchestratorIntegrationTest: coverage for the above.
- FreestylePlanningWorkflowTest: allow list_dir in analyst tools (follows the
list_dir wiring in 968cbfa).
- QA plan doc for the branch sweep.
33 lines
868 B
TOML
33 lines
868 B
TOML
id = "healthcheck"
|
|
description = "Two-stage system healthcheck: writes a diagnostic shell script, then executes it and reports the result."
|
|
start = "write_script"
|
|
|
|
[[stages]]
|
|
id = "write_script"
|
|
prompt = "prompts/healthcheck_write.md"
|
|
produces = [{ name = "healthcheck_script", kind = "file_written" }]
|
|
allowed_tools = ["file_write"]
|
|
token_budget = 4096
|
|
max_retries = 2
|
|
|
|
[[stages]]
|
|
id = "execute_script"
|
|
prompt = "prompts/healthcheck_execute.md"
|
|
needs = ["healthcheck_script"]
|
|
produces = [{ name = "healthcheck_result", kind = "process_result" }]
|
|
allowed_tools = ["shell"]
|
|
token_budget = 2048
|
|
|
|
[[transitions]]
|
|
id = "write-to-execute"
|
|
from = "write_script"
|
|
to = "execute_script"
|
|
condition_type = "artifact_validated"
|
|
condition_artifact_id = "healthcheck_script"
|
|
|
|
[[transitions]]
|
|
id = "execute-to-done"
|
|
from = "execute_script"
|
|
to = "done"
|
|
condition_type = "always_true"
|