diff --git a/.claude/skills/pr-push/SKILL.md b/.claude/skills/pr-push/SKILL.md index 4b5b26afe..c1e241140 100644 --- a/.claude/skills/pr-push/SKILL.md +++ b/.claude/skills/pr-push/SKILL.md @@ -134,6 +134,14 @@ Report which tickets were moved to review. Skip tickets that are already `done`, `review`, `cancelled`, or `backlog` (only transition `in_progress` → `review`). +### 9. Next steps + +If a sprint team is active (you are the team lead), do NOT shut down +agents after pushing. The team should remain alive for PR review and +potential comment fixes. + +Suggest: "PR created/updated. Run `/pr-review` to review before merge." + ## Arguments If the user passes arguments (e.g., `/pr-push "my title"`), use them as the diff --git a/.claude/skills/pr-review/SKILL.md b/.claude/skills/pr-review/SKILL.md index c1a64523c..c072787cb 100644 --- a/.claude/skills/pr-review/SKILL.md +++ b/.claude/skills/pr-review/SKILL.md @@ -203,6 +203,22 @@ tea pr close --login schweitz --repo jpmschweitzer/settled-reach Gitea does **not** auto-close PRs when you push a local merge — always close manually with `tea pr close` after pushing. +### 8. Post-review team actions + +If a sprint team is active and you are the team lead, handle the +review outcome: + +**CHANGES_REQUESTED:** +The sprint-start lifecycle (step 9c) handles dispatching review +comments to agents. After presenting results, remind the lead: +"Review requested changes. Create tasks from the warnings/critical +issues and dispatch to idle agents, then re-push and re-review." + +**APPROVED:** +The sprint-start lifecycle (step 9c) handles shutdown. After +presenting results, remind the lead: "Review approved. Proceed with +team shutdown per sprint-start step 9c." + ## Tips from practice - **Vendor code**: Explicitly note vendor code in the prompt so reviewers focus diff --git a/.claude/skills/sprint-start/SKILL.md b/.claude/skills/sprint-start/SKILL.md index e8b390ef4..541ccd0ec 100644 --- a/.claude/skills/sprint-start/SKILL.md +++ b/.claude/skills/sprint-start/SKILL.md @@ -325,3 +325,57 @@ Output to the user: You are now the team lead. Agents work autonomously — monitor via `TaskList`, communicate via `SendMessage`, and handle blockers as they arise. + +**When all tasks complete:** Do NOT shut down agents. The team stays +alive through the PR review cycle. Follow step 9 (post-work lifecycle). + +### 9. Post-work lifecycle + +When all tasks are complete (TaskList shows all completed): + +#### 9a. Commit and push + +Run `/git-commit` to commit all changes, then `/pr-push` to create or +update the PR. Do NOT shut down agents — the team stays alive for review. + +#### 9b. Review + +Run `/pr-review` to spawn temporary reviewers. Wait for results. + +#### 9c. Handle review outcome + +**If CHANGES_REQUESTED:** + +1. Parse the review comment table (from the Gitea PR comment or the + review output). Extract each warning/critical issue with: + - File path and approximate line + - Severity (critical / warning / suggestion) + - Description + +2. Create a task per warning/critical issue: + ``` + TaskCreate( + subject: "Review: {short description}", + description: "{full issue description from review table, including + file path, severity, and reviewer name}", + activeForm: "Fixing review comment: {short description}" + ) + ``` + Skip suggestion-severity items unless they are trivial (1-line fixes). + +3. Dispatch to idle agents: send each a message via SendMessage telling + them to check TaskList for new review-fix tasks. Agents claim and + work tasks as usual. + +4. After all review-fix tasks are complete, re-run `/git-commit` then + `/pr-push` to update the PR. Then re-run `/pr-review`. + +5. Repeat this loop until review returns APPROVED. + +**If APPROVED:** + +1. Send `shutdown_request` to all sprint agents. +2. Wait for all `shutdown_response` confirmations. +3. Call `TeamDelete` to clean up. +4. Report: "Sprint {N} {team} complete. PR #{X} approved and ready for + merge on main." diff --git a/CHANGELOG.md b/CHANGELOG.md index 589dd587c..bc8d62e6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,26 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). - Generic NPC capsule model (24×32px footprint per D-044) and structural wall model for pipeline validation - Test sprites: 8 runtime 64px sprites (NPC + wall × 4 directions) deployed to client/assets/sprites/ - Pipeline documentation (renderer/README.md) — camera spec, lighting rig, resolution chain, model authoring guide +- DialogueResponse verb handler — players pick dialogue options and receive follow-up lines via full D-028 four-layer pipeline (#539) +- Trust-gated gossip verification — integration tests confirm Secret/Real/Surface tier gating per D-075 (#171) +- Line variety tracker wiring — DialogueCooldownTracker prevents repeat lines within 600-tick window (#338) +- DialogueResponse cross-language fixture for GDScript testing +- Sprint team lifecycle through PR review — teams stay alive for commit → push → review → fix loop → approve → shutdown + +### Fixed +- Dialogue systems moved from BridgePlugin to NpcPlugin — game logic registers where it belongs (#538) +- Schedule ambiguity: emit_observation_events now has explicit .before(advance_tick) constraint +- process_dialogue_response updates ActiveDialogue tick and InteractionMemory on follow-up +- DialogueResponse range check added (CLOSE_RANGE, matching Talk/Confront pattern) +- Weighted selection fallback replaced with unreachable!() — dead code removed +- assert!(false) → panic!() in serialization tests (clippy) +- SetFacing and TeleportToHub added to roundtrip test coverage + +### Changed +- Shared run_dialogue_pipeline() helper eliminates ~60 lines of duplication between Talk and DialogueResponse systems +- DialogueCooldownTracker documented as per-player-global by design (NPC-scoped line IDs per D-035 prevent collision) +- CONFRONTATION_LINES marked TODO for migration to D-028/D-035 content pipeline +- pr-push and pr-review skills updated with team lifecycle awareness ## [v0.1.15] — 2026-02-23