Skip to content

Report where a failed Spec run stopped and how to continue its preserved work #588

Closed

Description

@JacobStephens2

This was generated by AI during triage.

Summary

A Failed spec run's terminal summary and Run notification should say where it stopped, what work is preserved, and how to continue it. Reuse Thirdshift's existing Continuation behavior.

Evidence

JacobStephens2/chart35#239 ran for 6h 46m 8s on 2026-10-08. All 17 Tickets landed into the Spec branch, but the final Spec review hit Claude's usage/spend limit. The notification listed every landed Ticket and only Cause: claude exited 1. It did not explicitly say the final review remained incomplete or give a continuation command. The existing Spec PR is https://github.com/JacobStephens2/chart35/pull/261.

Current behavior already pushes failed work, preserves the Spec branch and PR, and skips completed Tickets when continuing the Spec. This request concerns reporting and recovery guidance, not a new persistence mechanism.

Proposed behavior

For a Run that stops at this point, communicate these facts together:

Outcome:     Failed; work preserved
Cause:       Claude usage limit reached; extra usage rejected
Stopped at:  Spec review
Progress:    17/17 Tickets landed; final review incomplete
Recovery:    Re-run the same Spec URL when usage is available

Include an executable continuation command using the original issue URL, with the effective Harness, Model, Effort, and merge ask preserved where relevant. Explain that continuing reuses the preserved branch and skips already completed Tickets. Do not promise that the interrupted review resumes inside the same agent session or that future merge/CI repairs will be unnecessary.

Use known lifecycle facts rather than inferring completed work or test status from agent prose. Retain the PR, Session log and Command log links and the per-Ticket outcome list.

Acceptance criteria to refine in triage

  • A Spec run with every Ticket landed but a failed Spec review explicitly reports that review as the unfinished stage, with the completed/total Ticket count.
  • A run that stops during Ticket execution, a Repair, CI watching, or Self-merge reports that actual stopping stage instead of always naming review.
  • Recovery advice distinguishes work preserved remotely, work kept only locally after a failed push, and no work preserved.
  • Continuation instructions reuse the original issue and preserved branch/PR, and do not suggest rebuilding completed Tickets.
  • Terminal and notification reporting agree about the stage, progress and recovery.
  • Existing failure semantics remain: an incomplete review is not announced as ready or merged.

Related scope

#53 requests recovery commands in errors; #219 requests explicit outcome and Spec links in notifications. This is the concrete Spec-review interruption case of those broader requests. #583 covers usage-aware routing and fallback. #587 tracks Claude's missing diagnostic and is a prerequisite for showing the real quota cause.

Open decision

Choose the minimal shared stopping-stage/recovery representation for Run endings and which command options must appear in recovery guidance. This is an enhancement labelled needs-triage until those contracts are settled.

Activity

  1. JacobStephens2 commented on Oct 17, 2026

    @JacobStephens2
    OwnerAuthor

    This was generated by AI during triage.

    Agent Brief

    Category: enhancement
    Summary: Report a failed Run or Spec run's actual stopping stage, preserved work and usable continuation guidance consistently.

    Current behavior:
    Failure summaries and Run notifications can contain the cause, logs, PR and Ticket outcome list without identifying the unfinished lifecycle stage or how to continue. The reported example landed every Ticket but failed during the Spec review, leaving the reader to infer that the final review remained incomplete. Existing Continuations already preserve/reuse work; this issue changes reporting.

    Desired behavior:
    Derive stopping stage and recovery information from deterministic lifecycle facts and carry it through the shared ending/accounting interface used by terminal output and notifications. Distinguish Ticket execution, Spec review, Repair, CI watching and Self-merge when those are the actual stopped stages. For a Spec run, give landed/total Ticket progress without implying final review is complete.

    Say whether work is preserved remotely, retained only locally after a failed push, or absent. Give an executable command on the original Issue URL when manual continuation is applicable, retaining effective Harness, Model, Effort, merge ask, Base-fix choice and Spec parallelism where relevant through existing supported syntax. State the Launch directory/Base branch requirement when syntax cannot encode it. Continue to distinguish a new Continuation from resuming the exact failed agent conversation.

    Key interfaces:

    • The shared Run ending/account: lifecycle stage and preservation/recovery facts, chosen in the smallest representation that serves existing consumers.
    • Terminal/Activity reporting and Run notification rendering: agree on those facts and retain existing cause/log/PR/Ticket evidence.
    • Existing Continuation/argument selection: produce valid commands without inventing URL-run flags.

    Acceptance criteria:

    • A Spec with all Tickets landed and a failed Spec review reports that review incomplete, with the correct landed/total count.
    • Failures during Ticket execution, Repair, CI watching and Self-merge name the actual stopped stage.
    • Successful preservation, failed push/local retention and no-preserved-work cases produce accurate, distinct advice.
    • Continuation commands use the original issue and valid syntax, preserve relevant effective options, and quote values correctly.
    • Terminal and notification regression cases agree about stage/progress/recovery and retain existing failure causes and evidence links.
    • Incomplete review is never announced ready/merged, completed Tickets are not proposed for rebuilding, and Security confidentiality filtering still applies.

    Out of scope:
    New persistence, automatic retries, usage-aware model routing, automatically resuming an agent conversation, changing Claims/merge requirements, or broad recovery advice for unrelated preflight errors.

  2. added
    ready-for-agentFully specified, ready for an AFK agent
    in-progressA Claim: thirdshift has taken this issue
    and removed
    needs-triageMaintainer needs to evaluate this issue
    ready-for-agentFully specified, ready for an AFK agent
    on Oct 17, 2026
  3. added a commit that references this issue on Oct 17, 2026
    6e0dbf2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions