Skip to content

Cover the silent-stall case (stacked on #12)#17

Merged
jirispilka merged 3 commits into
claude/shepherd-issue-8-mgxnftfrom
claude/review-shepherd-issue-8-w7slof
Jul 21, 2026
Merged

Cover the silent-stall case (stacked on #12)#17
jirispilka merged 3 commits into
claude/shepherd-issue-8-mgxnftfrom
claude/review-shepherd-issue-8-w7slof

Conversation

@jirispilka

@jirispilka jirispilka commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #12 — merge that first.

#12 makes the on-disk output file the completion signal, fixing #8's case where the file was already written but the orchestrator kept saying "still running." This covers the mirror case — the file is absent: with no liveness signal the orchestrator reports status unknown; output not present and offers to wait or re-dispatch, instead of repeating "still running" or inventing a "stalled" verdict.

Addresses @Pijukatel's review — the vague "after several turns" trigger is gone. Status is only reported from what's on disk, never inferred from turn count or a human check-in.

Extends #12's contract test test_dispatched_stage_completion_is_disk_based. Skill 499/500 lines; 99 tests pass.

Part of #8

@jirispilka jirispilka changed the title Clarify disk-based completion signals for dispatched stages Make a dispatched stage's output file the completion signal (+ silent-stall case) Jul 20, 2026
@jirispilka
jirispilka force-pushed the claude/review-shepherd-issue-8-w7slof branch from 0b6b367 to 475f44a Compare July 20, 2026 19:26
@jirispilka jirispilka changed the title Make a dispatched stage's output file the completion signal (+ silent-stall case) Cover the silent-stall case (stacked on #12) Jul 20, 2026
@jirispilka
jirispilka changed the base branch from main to claude/shepherd-issue-8-mgxnft July 20, 2026 19:26
@jirispilka
jirispilka force-pushed the claude/shepherd-issue-8-mgxnft branch from bae7c7b to cfa61d2 Compare July 20, 2026 19:33
Stacked on #12. #12 handles the file-is-on-disk-but-unnoticed case
(missed notification). This adds the other direction: when the output
file never appears because the dispatched agent died rather than running
slowly, an absent file after several turns or a human check-in is a stall
to surface and offer to re-dispatch, not another "still running" repeat.
Extends #12's contract test with the new phrase.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014weQJCVrR4rakMvnSgMVm4
@jirispilka
jirispilka force-pushed the claude/review-shepherd-issue-8-w7slof branch from 475f44a to 05feee1 Compare July 20, 2026 19:33
@jirispilka jirispilka self-assigned this Jul 20, 2026
@jirispilka
jirispilka marked this pull request as ready for review July 20, 2026 19:39
Comment thread .claude/skills/shepherd/SKILL.md Outdated
jirispilka and others added 2 commits July 21, 2026 14:02
The silent-stall rule leaned on "if dispatch status exists ... report
running only when explicitly active and stalled only when terminal" —
as vague as the "after several turns" trigger it replaced (per
@Pijukatel's review). Replace it with the honest, observable rule: an
absent output file means only "not done" — report status unknown, offer
to wait or re-dispatch, and never fabricate "still running"/"stalled"
from turn count or a human check-in. Nets the skill from 500 to 499
lines and drops two now-redundant contract asserts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jirispilka
jirispilka merged commit def50fb into claude/shepherd-issue-8-mgxnft Jul 21, 2026
1 check passed
@jirispilka
jirispilka deleted the claude/review-shepherd-issue-8-w7slof branch July 21, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Shepherd stuck waiting for Shepherd verify stage and Shepherd explore stage

4 participants