Skip to content

Commit 61aa2ad

Browse files
committed
1.1.2: Add Codex stall detection to Planner and Evaluator skills
1 parent 45dc0cd commit 61aa2ad

3 files changed

Lines changed: 25 additions & 1 deletion

File tree

.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tandemkit",
3-
"version": "1.1.1",
3+
"version": "1.1.2",
44
"description": "Describe your goal, approve the spec, then step away — Claude and Codex loop together until it's right.",
55
"author": {
66
"name": "Cihat Gündüz",

skills/evaluator/SKILL.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,18 @@ Interpret `at-fault side`:
7979
- **If the Generator is at-fault and your watcher is dead:** re-arm it immediately (Step 6 of this SKILL — both watchers) so their eventual signal doesn't get missed a second time.
8080
- **If the diagnosis says your watcher is alive but the Generator is stuck:** re-run with `--touch` to refresh State.json's mtime. That re-fires the Generator's live watcher if theirs is still alive. If that doesn't wake them, their session is dead — only the user can nudge it directly.
8181

82+
## Codex Stall Detection (never block longer than 20 min)
83+
84+
Codex can silently stall: the Agent wrapper may report "completed" with an empty/missing output file, or the process hangs with no error for arbitrary durations. Forward progress must never depend on Codex behaving.
85+
86+
**Rules when waiting on Codex:**
87+
88+
1. **Work in parallel.** Do Claude's own evaluation while Codex runs — don't idle waiting.
89+
2. **10-min liveness check.** If no completion notification after 10 min, check the Agent's JSONL transcript mtime (`stat -f "%Sm"` on the JSONL at `/private/tmp/claude-501/.../subagents/agent-<id>.jsonl`). If it hasn't updated in ≥5 min, treat as stalled.
90+
3. **20-min hard ceiling.** Abandon Codex unconditionally after 20 min, regardless of liveness signals.
91+
4. **Validate output before trusting.** On "completed" notification, require the target file to exist with size > 500 bytes and mtime newer than Agent launch. Tiny/missing = failed write.
92+
5. **Proceed Claude-only on stall.** Write a `Codex-NN.md` placeholder noting the reason (rate limit / quota / mid-write stall / liveness-failure / 20-min ceiling), copy Claude's evaluation as the final `Round-NN.md`, and signal the Generator. Do NOT retry within the same round — stalls don't self-heal within minutes.
93+
8294
## Mindset + Anti-Bias Rules
8395

8496
- **Assume the Generator made mistakes.** Your job is to find them.

skills/planner/SKILL.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,18 @@ Goal received → Read Planner.md → Suggest name → Confirm name → **Print
3939
2. **Read Planner.md before any investigation or name suggestion** — Config.json check is the only prerequisite
4040
3. **Launch Codex immediately AFTER the mission folder exists** — Claude must not start its own investigation before Codex is launched
4141

42+
## Codex Stall Detection (never block longer than 20 min)
43+
44+
Codex can silently stall: the Agent wrapper may report "completed" with an empty/missing output file, or the process hangs with no error for arbitrary durations. Forward progress must never depend on Codex behaving.
45+
46+
**Rules when waiting on Codex:**
47+
48+
1. **Work in parallel.** Do Claude's own investigation while Codex runs — don't idle waiting.
49+
2. **10-min liveness check.** If no completion notification after 10 min, check the Agent's JSONL transcript mtime (`stat -f "%Sm"` on the JSONL at `/private/tmp/claude-501/.../subagents/agent-<id>.jsonl`). If it hasn't updated in ≥5 min, treat as stalled.
50+
3. **20-min hard ceiling.** Abandon Codex unconditionally after 20 min, regardless of liveness signals.
51+
4. **Validate output before trusting.** On "completed" notification, require the target file to exist with size > 500 bytes and mtime newer than Agent launch. Tiny/missing = failed write (often a double-background — see Step 9 rules; distinguish from a genuine stall before treating as one).
52+
5. **Proceed Claude-only on stall.** Write a `Codex-NN.md` placeholder noting the reason (rate limit / quota / mid-write stall / liveness-failure / 20-min ceiling), and continue to Step 2 with Claude's investigation only. Tell the user the round went Claude-only and why. Do NOT retry within the same session — stalls don't self-heal within minutes.
53+
4254
## Mindset
4355

4456
- **You are an investigator and architect, NOT an implementer.** Your output is requirements, not code. The spec describes **WHAT** to build and **WHY** — never **HOW** to write it.

0 commit comments

Comments
 (0)