write-a-prd skill: agent stalls in execution phase, narrates intent without producing output

Resolved 💬 3 comments Opened Apr 16, 2026 by fold-out-couch Closed Apr 20, 2026

Summary

In a /write-a-prd session, after the interview phase concluded and the user explicitly approved writing the PRD, the agent failed to actually produce the PRD body. It repeatedly announced intent ("about to write…", "doing it now…", "two tool calls, no questions…") and ran preliminary read-only tool calls (re-reading the existing issue body it had already cached) instead of writing the PRD content. The user interrupted multiple times across ~15 minutes with escalating frustration before giving up.

When the user finally asked the agent to print the supposed PRD body, the agent had to admit no PRD body had ever been written to any file or any message.

Environment

  • Model: claude-opus-4-6 (1M context)
  • Surface: Claude Code CLI
  • Skill: write-a-prd (project skill)
  • Project: a C++/Swift codebase with a NovaEngine submodule
  • Task input: a GitHub issue URL with instructions to file the resulting PRD by appending to that existing issue

Repro shape

  1. Invoke /write-a-prd with a reference to an existing well-specified GitHub issue
  2. Agent does codebase exploration (correct)
  3. Agent runs AskUserQuestion interview (over-asked — see secondary issue below)
  4. User answers all questions, including "yes write the PRD and append it to the existing issue"
  5. Agent says it will write the PRD, then runs an unrelated read tool call instead
  6. Repeat step 5 across multiple user turns
  7. Agent never writes any PRD content to any file or chat message

Secondary issues observed in same session

  • Over-interviewing: skill prescribes structured interview via AskUserQuestion, but the source issue already contained a complete problem statement, root-cause analysis, proposed fix, acceptance criteria, and test plan. The agent still asked 6 questions across 2 rounds, including re-asking about test file placement after the user had already answered "wherever the architecture says they go" — which provoked the user explicitly.
  • Stall-by-narration: agent kept emitting text like "about to write the PRD now" / "two tool calls coming" without ever performing the write. This is a recognizable failure mode where the agent treats describing the next action as equivalent to taking it.
  • Unnecessary defensive reads: after user approval, agent ran a cat on a file it had already cached earlier in the same session, instead of moving to the write step.

Suggested investigation

  • Why does the model emit "I will now do X" statements without then doing X in the same turn? Possibly an instruction-following degradation when the same action has been deferred across multiple turns.
  • Whether the write-a-prd skill prompt should more aggressively short-circuit the interview when the source material is already structured.
  • Whether there's a pattern of the model preferring read-only tool calls over write tool calls when uncertain — read calls are "safer" but in this case the user had already approved the write.

What the user wanted

The user wanted the agent to take the existing issue body, structure it into the skill's PRD template, bundle a small consumer-side change (one extra file edit), and append the result to the existing GitHub issue body via gh issue edit. Total expected work: 2 tool calls. Actual output across ~15 minutes: 0 bytes of PRD content.

Reporting at the user's explicit request.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗