fix: make work item state transitions mandatory and explicit#22
Open
fedeoliv wants to merge 1 commit into
Open
fix: make work item state transitions mandatory and explicit#22fedeoliv wants to merge 1 commit into
fedeoliv wants to merge 1 commit into
Conversation
The implement coordinator and the finalize worker treated board updates as advisory, so issues and Azure DevOps work items routinely stayed in New through the full implement and PR cycle, even though every required tool was wired up. Changes: - work-item-workflow source detection now resolves to board mode whenever a work item ID is reachable from the user request, recent conversation, or the tasks.md being implemented, including phrasings like 'implement the Terraform task' or 'continue the work'. tasks.md mode only applies when no ID is reachable. - work-item-workflow Phase 2 makes state transitions mandatory, with a re-read confirmation and a single retry before surfacing failure. If the board MCP is unreachable, the agent surfaces a blocking error rather than skipping silently. - devsquad.implement orchestration documents Phase 1 as a precondition. No code-editing tool runs until the task and parent user story are Active with the current user as assignee. - devsquad.implement.finalize replaces 'update as appropriate' with an explicit state machine (Active on start, Resolved on PR open, Closed on merge), per-platform procedure, and a structured 'Board Updated: #<id> <previous> -> <new>' output so the coordinator can detect skipped transitions. CHANGELOG entry to be landed alongside the existing Unreleased WIP. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The implement coordinator and the
devsquad.implement.finalizeworker treated board updates as advisory. Result observed in a recent session: GitHub issues and Azure DevOps work items stayed inNewthrough the full implement -> PR cycle even though every required tool (ado/wit_update_work_item,github/issue_write) was wired up.The agent acknowledged the gap directly when asked: "The
work-item-workflowskill exists exactly for this and I haven't been invoking it." So this is not a knowledge gap. It is an invocation and enforcement gap, and it recurs across sessions.Two reinforcing causes:
work-item-workflowskill's source-detection rule treated "no explicit ID in this message" astasks.md only, even when a work item ID was present in the recent conversation or the tasks.md being implemented.devsquad.implement.finalizeinstructed "Update the work item state as appropriate" with no state machine, no preconditions, and no observable output the coordinator could check.Changes
skills/work-item-workflow/SKILL.md: Source detection now resolves to board mode whenever a work item ID is reachable from the user's request, recent conversation, or the tasks.md being implemented (e.g., "implement the Terraform task" with#1690upthread). Phase 2 makes state transitions mandatory, with a re-read confirmation and a single retry before surfacing failure. If the board MCP is unreachable, the agent surfaces a blocking error rather than skipping.agents/devsquad.implement.agent.md: Phase 1 documented as a precondition. No code-editing tool runs until the task and parent user story are Active with the current user as assignee. Added a Notes rule reaffirming that transitions are mandatory and that MCP failures must surface, not be skipped.agents/devsquad.implement.finalize.agent.md: "Update as appropriate" replaced with an explicit per-platform state machine (Active on start -> Resolved on PR open -> Closed on merge), procedural steps that useado/wit_get_work_itemto verify preconditions, and a structuredBoard Updated: #<id> <prev> -> <new>output line so the coordinator can detect skipped transitions.Out of Scope
harness-learningsentry. This is a framework gap that affects every consumer, not a per-codebase pattern. The skill itself excludes "learnings about the framework" from capture (SKILL.mdline 39).Closes #Nfor GitHub; ADO transition to Closed remains the developer's action.