From 1ff67309092f4dd8b4cf12b4b79885b862d2c7f7 Mon Sep 17 00:00:00 2001 From: Alex Verkhovsky Date: Mon, 22 Jun 2026 21:59:39 -0700 Subject: [PATCH] fix: remove dev auto sprint status coupling --- .../4-implementation/bmad-dev-auto/SKILL.md | 1 - .../step-01-clarify-and-route.md | 11 +---------- .../bmad-dev-auto/step-03-implement.md | 2 -- .../bmad-dev-auto/step-04-review.md | 2 -- .../bmad-dev-auto/sync-sprint-status.md | 19 ------------------- 5 files changed, 1 insertion(+), 34 deletions(-) delete mode 100644 src/bmm-skills/4-implementation/bmad-dev-auto/sync-sprint-status.md diff --git a/src/bmm-skills/4-implementation/bmad-dev-auto/SKILL.md b/src/bmm-skills/4-implementation/bmad-dev-auto/SKILL.md index 0833126dd..33f833a73 100644 --- a/src/bmm-skills/4-implementation/bmad-dev-auto/SKILL.md +++ b/src/bmm-skills/4-implementation/bmad-dev-auto/SKILL.md @@ -62,7 +62,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve: - `project_name`, `planning_artifacts`, `implementation_artifacts`, `user_name` - `communication_language`, `document_output_language`, `user_skill_level` - `date` as system-generated current datetime -- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml` - `project_context` = `**/project-context.md` (load if exists) - CLAUDE.md / memory files (load if exist) - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}` diff --git a/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md b/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md index 1e549b8e2..4f2af7226 100644 --- a/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md +++ b/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md @@ -1,7 +1,6 @@ --- deferred_work_file: '{implementation_artifacts}/deferred-work.md' spec_file: '' # set at runtime for both routes before leaving this step -story_key: '' # set at runtime to the current story's full sprint-status key (e.g. 3-2-digest-delivery) when the intent is an epic story and sprint-status resolution succeeds --- # Step 1: Clarify and Route @@ -17,7 +16,7 @@ story_key: '' # set at runtime to the current story's full sprint-status key (e. Use the invocation prompt as the intent. -If the invocation prompt explicitly points to an existing spec file with recognized `status` frontmatter, set `spec_file`. Before exiting, run **Story-key resolution** (below). Then **EARLY EXIT** to the appropriate step: +If the invocation prompt explicitly points to an existing spec file with recognized `status` frontmatter, set `spec_file`, then **EARLY EXIT** to the appropriate step: - `draft` → `./step-02-plan.md` - `ready-for-dev` or `in-progress` → `./step-03-implement.md` - `in-review` → `./step-04-review.md` @@ -26,12 +25,6 @@ If the invocation prompt explicitly points to an existing spec file with recogni Otherwise, treat the invocation prompt as starting intent. This may be a story ID, ticket ID, file path, short description, or longer free-form intent. Do not infer workflow state from non-spec files. If the invocation prompt does not contain enough intent to identify what to implement, write `unclear intent` to the result artifact and **BLOCKED EXIT**. -### Story-key resolution - -This runs on ALL paths (early-exit and INSTRUCTIONS) whenever `spec_file` is set. Determine whether the spec is an epic story — use the spec's filename, frontmatter, and any loaded epics file to identify `{epic_num}` and `{story_num}`. If the spec is not an epic story, skip silently and leave `{story_key}` unset. - -If the spec is an epic story and `{sprint_status}` exists: find the `development_status` key matching `{epic_num}-{story_num}` by exact numeric equality on the first two segments (so `1-1` never collides with `1-10`). Exactly one match → set `{story_key}` to that full key. Zero or multiple matches → leave `{story_key}` unset (warn on multiple). - ## INSTRUCTIONS 1. Load context. @@ -53,8 +46,6 @@ If the spec is an epic story and `{sprint_status}` exists: find the `development 5. **Previous story continuity.** Regardless of which context source succeeded above, scan `{implementation_artifacts}` for specs from the same epic with `status: done` and a lower story number. Load the most recent one (highest story number below current). Extract its **Code Map**, **Design Notes**, **Spec Change Log**, and **task list** as continuity context for step-02 planning. If no `done` spec is found but an `in-review` spec exists for the same epic with a lower story number, write the missing continuity decision to the result artifact and **BLOCKED EXIT**. - 6. **Resolve `{story_key}`.** If not already set by an earlier early-exit path, run **Story-key resolution** (above) now. - **B) Freeform path** — if the intent is not an epic story: - Planning artifacts are the output of BMAD phases 1-3. Typical files include: - **PRD** (`*prd*`) — product requirements and success criteria diff --git a/src/bmm-skills/4-implementation/bmad-dev-auto/step-03-implement.md b/src/bmm-skills/4-implementation/bmad-dev-auto/step-03-implement.md index 359a3dbad..8e512ec2d 100644 --- a/src/bmm-skills/4-implementation/bmad-dev-auto/step-03-implement.md +++ b/src/bmm-skills/4-implementation/bmad-dev-auto/step-03-implement.md @@ -23,8 +23,6 @@ Capture `baseline_revision` (current HEAD, or `NO_VCS` if version control is una Change `{spec_file}` status to `in-progress` in the frontmatter before starting implementation. -Follow `./sync-sprint-status.md` with `{target_status}` = `in-progress`. - If `{spec_file}` has a non-empty `context:` list in its frontmatter, load those files before implementation begins. When handing to a sub-agent, include them in the sub-agent prompt so it has access to the referenced context. Hand `{spec_file}` to a sub-agent/task and let it implement. If no sub-agents are available, set `{spec_file}` frontmatter status to `blocked`, append `## Auto Run Result` with `Status: blocked`, `Blocking condition: implementation subagent unavailable`, and terminate cleanly. diff --git a/src/bmm-skills/4-implementation/bmad-dev-auto/step-04-review.md b/src/bmm-skills/4-implementation/bmad-dev-auto/step-04-review.md index 7e7d7260f..d5cb69759 100644 --- a/src/bmm-skills/4-implementation/bmad-dev-auto/step-04-review.md +++ b/src/bmm-skills/4-implementation/bmad-dev-auto/step-04-review.md @@ -54,8 +54,6 @@ Launch two subagents without prior session context. Change `{spec_file}` status to `done` in the frontmatter. -Follow `./sync-sprint-status.md` with `{target_status}` = `review`. - Append `## Auto Run Result` to `{spec_file}`. Include: - `Status: done` diff --git a/src/bmm-skills/4-implementation/bmad-dev-auto/sync-sprint-status.md b/src/bmm-skills/4-implementation/bmad-dev-auto/sync-sprint-status.md deleted file mode 100644 index e2e75dc30..000000000 --- a/src/bmm-skills/4-implementation/bmad-dev-auto/sync-sprint-status.md +++ /dev/null @@ -1,19 +0,0 @@ -# Sync Sprint Status - -Updates `sprint-status.yaml` for the current `{story_key}` using `{target_status}`. - -## Preconditions - -Stop executing this file if ANY of: -- `{story_key}` is unset -- `{sprint_status}` does not exist on disk - -## Instructions - -1. Load the FULL `{sprint_status}` file. -2. Find the `development_status` entry matching `{story_key}`. If not found, add `sprint-sync-skipped` to `{spec_file}` frontmatter `warnings` and stop executing this file. -3. **Idempotency check.** If `development_status[{story_key}]` is already at `{target_status}` or a later state (`review` is later than `in-progress`; `done` is later than both), stop executing this file — no write needed. Never regress a story's status. -4. Set `development_status[{story_key}]` to `{target_status}`. -5. **Epic lift (only when `{target_status}` = `in-progress`).** Derive the parent epic key as `epic-{N}` from the leading numeric segment of `{story_key}` (e.g., `3-2-digest-delivery` → `epic-3`). If that entry exists and is `backlog`, set it to `in-progress`. Leave it alone otherwise. Skip this sub-step entirely when `{target_status}` is not `in-progress`. -6. Refresh `last_updated` to the current date. -7. Save the file, preserving ALL comments and structure including STATUS DEFINITIONS and WORKFLOW NOTES.