fix(bad): add per-step notifications and fix timer Telegram formatting

- Add 📣 Notify callout after each Phase 2 step completes, replacing the
  single end-of-pipeline notify — coordinator now sends a status update
  for every step (Steps 1–7) of every story as it progresses
- Fix [M] option in pattern-timer.md Telegram message: <minutes> rendered
  as &lt;minutes&gt; in Telegram due to HTML parsing; changed to {minutes}

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
stephenleo
2026-04-12 19:35:15 +08:00
parent 9292244bba
commit 8695e5fa73
2 changed files with 9 additions and 7 deletions

View File

@@ -207,17 +207,19 @@ Launch all stories' Step 1 subagents **in a single message** (parallel). Each st
| `review` | Step 4 | Steps 13 |
| `done` | — | all |
**After each step:** run **Pre-Continuation Checks** (see `references/coordinator/gate-pre-continuation.md`) before spawning the next subagent. Pre-Continuation Checks are the only coordinator-side work between steps.
**After each step:** run **Pre-Continuation Checks** (see `references/coordinator/gate-pre-continuation.md`) and 📣 **Notify** the step result before spawning the next subagent.
📣 **Notify per step** as each step completes:
- Success: `✅ Story {number}: Step {N} — {step name}`
- Failure: `❌ Story {number}: Step {N} — {step name} failed — {brief error}`
Step names: Step 1 — Create, Step 2 — ATDD, Step 3 — Develop, Step 4 — Test review, Step 5 — Code review, Step 6 — PR + CI, Step 7 — PR review.
**On failure:** stop that story's pipeline. Report step, story, and error. Other stories continue.
**Exception:** rate/usage limit failures → run Pre-Continuation Checks (which auto-pauses until reset) then retry.
**Hung subagents:** when `MONITOR_SUPPORT=true` and the activity log hook is installed (Step 4 of setup), use the [Watchdog Pattern](references/coordinator/pattern-watchdog.md) when spawning Steps 2, 3, 4, and 5 to detect stale agents.
📣 **Notify per story** as each pipeline concludes (Step 7 success or any step failure):
- Success: `✅ Story {number} done — PR #{pr_number}`
- Failure: `❌ Story {number} failed at Step {N} — {brief error}`
### Step 1: Create Story (`MODEL_STANDARD`)
Spawn with model `MODEL_STANDARD` (yolo mode):

View File

@@ -39,7 +39,7 @@ Save the returned job ID as `JOB_ID`.
[C] {C label}
[S] {S label}
[X] {X label} ← omit if no [X] label supplied
[M] <minutes> — modify countdown
[M] {minutes} — modify countdown
```
Wait for whichever arrives first — user reply or fired prompt. On any human reply, print elapsed time first:
@@ -58,7 +58,7 @@ echo "⏱ Time elapsed: $((ELAPSED / 60))m $((ELAPSED % 60))s"
[C] {C label}
[S] {S label}
[X] {X label} ← omit if no [X] label supplied
[M] <minutes> — modify countdown
[M] {minutes} — modify countdown
```
- **FIRED (no prior reply)** → run the [C] action automatically