You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/testing/test-report-output-spec.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,8 @@ This document defines the normative format for AI sessions, case summaries, run
8
8
<aid="report-principles"></a>
9
9
## 1. Principles
10
10
11
-
1. Each case runs in an independent Codex or Claude session.
11
+
1.`run-plan` uses an AI scheduling session before each case, and each case it
12
+
executes runs in an independent Codex or Claude session.
12
13
2. The agent's native JSONL is the primary source for commands, tool calls, and raw output.
13
14
3. The agent writes one shallow `result.json`; it does not copy command output into that file.
14
15
4. The runner generates `runner.json`, timestamps, exit code, checksums, and run aggregates.
@@ -48,6 +49,11 @@ dstack-test run-case \
48
49
49
50
The runner supplies the plan guide, `case.md`, output location, status rules, and result schema in the prompt. The agent must read the guide before the case and must not modify plan specifications.
50
51
52
+
For a dependency-driven skip, the orchestrator creates a synthetic one-event
53
+
case session containing the reason and causal earlier case IDs. It does not
54
+
pretend that the skipped case was executed. The full decision process remains
55
+
available under the run-level `decisions/` directory.
returnf"""You are the dstack test-plan scheduling agent. Decide whether the next case should be executed; do not execute the case yourself.
390
+
391
+
Read the plan guide at {plan.guide_path}, index at {plan.root/"index.json"}, every case specification, and the prior results below. The next case in authoritative order is {case.id} at {case.spec_path}.
392
+
393
+
Prior completed results:
394
+
{prior_json}
395
+
396
+
Decision rules:
397
+
- Choose RUN unless a recorded prior non-PASS result demonstrably makes this case's prerequisite false or makes its result meaningless.
398
+
- Choose SKIP only for such a proven dependency consequence. Similarity, cost, likely failure, or an independently checkable prerequisite is not sufficient.
399
+
- A SKIP decision must name one or more causal earlier case IDs in blocked_by and explain the exact dependency.
400
+
- Never reinterpret a product failure as a scheduling failure. Independent cases continue after FAIL, BLOCKED, or SKIPPED.
401
+
- Do not modify the plan or any case result.
402
+
403
+
Atomically write exactly this shallow JSON object to {decision_path}:
404
+
{{
405
+
"decision": "RUN|SKIP",
406
+
"reason": "concise evidence-based reason",
407
+
"blocked_by": ["prior-case-id"]
408
+
}}
409
+
For RUN, blocked_by must be empty. Finish after writing the decision.
0 commit comments