Skip to content

roles/tech-lead: liveness — in-process driver owns coder stall detection - #270

Open
rupak2812 wants to merge 1 commit into
benitogf:mainfrom
rupak2812:kb-tech-lead-liveness
Open

roles/tech-lead: liveness — in-process driver owns coder stall detection#270
rupak2812 wants to merge 1 commit into
benitogf:mainfrom
rupak2812:kb-tech-lead-liveness

Conversation

@rupak2812

Copy link
Copy Markdown

Closes #269.

What

A /forge-spawned coder that ends its turn to "wait" on a background watcher it armed (build monitor, completion hook) may never be re-invoked — the build finishes, artifacts sit in the tree, and the loop silently loses wall-clock until a human notices. Observed twice in one in-process run; the visibility trade-off the doc already names (no dashboard under /forge) means there is currently no detection path for this.

Adds a Liveness subsection to docs/roles/tech-lead.md under Two drivers, one choreography:

  • Coder briefs forbid stop-and-wait — poll the background work in-turn, or finish the verifiable part and hand the wait back to the tech-lead in the report.
  • The tech-lead arms an independent watchdog (~5-min cadence over observable progress: new commits, tree churn, live compiler/test processes; STALL after ~2 quiet cycles) and nudges the idle coder with a resume-here message — read-only verification only (TL-F8 unchanged). The agent's own resume mechanism stays the primary wake signal; the watchdog is the fallback heartbeat.

Frontmatter gains coder stalled / stall watchdog / liveness triggers. Docs-only: the section is additive; the embedded coder definition in setup.go states nothing this contradicts (verified by sweep).

Why now

Empirical, from the source session: both stalls shared the exact shape (work done, agent idle, "no active task" on nudge); after arming the watchdog pattern the next stall was caught and recovered in 10 minutes instead of hours.

🤖 Generated with Claude Code

📚 Learned by detritus — grow forge-session-2026-08-03

… detection

Closes benitogf#269. A spawned coder that ends its turn to wait on a self-armed
background watcher may never be re-invoked: the work finishes, the report
never arrives, and the loop silently loses wall-clock (observed twice in
one /forge run; the second stall cost hours before a human noticed).

Adds a Liveness subsection under "Two drivers, one choreography":
- coder briefs forbid stop-and-wait (poll in-turn or hand the wait back
  in the report),
- the tech-lead arms an independent ~5-min watchdog over observable
  progress signals (new commits, tree churn, live build processes) and
  nudges the idle coder after ~2 quiet cycles, treating the agent's own
  resume as primary signal and the watchdog as fallback heartbeat.

Authority for the mechanism claims: empirical, from the source session —
both stalls reproduced the shape (artifacts done, tree dirty, agent idle
with no active task); the watchdog+nudge pattern caught the next stall
within 10 minutes. Frontmatter gains stall/liveness triggers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

roles/tech-lead: in-process driver must own coder liveness (stall watchdog + no stop-and-wait briefs)

1 participant