fix: installer has fast v4 update option now to keep the bmad method up to date with changes easily without breaking any customizations from the user. The SM and DEV are much more configurable to find epics stories and architectureal information when the prd and architecture are deviant from v4 templates and/or have not been sharded. so a config will give the user the option to configure the SM to use the full large documents or the sharded versions!

This commit is contained in:
Brian Madison
2025-06-19 12:55:16 -05:00
parent 9af2463fae
commit aea7f3cc86
25 changed files with 349 additions and 375 deletions

View File

@@ -4,45 +4,42 @@
To identify the next logical story based on project progress and epic definitions, and then to prepare a comprehensive, self-contained, and actionable story file using the `Story Template`. This task ensures the story is enriched with all necessary technical context, requirements, and acceptance criteria, making it ready for efficient implementation by a Developer Agent with minimal need for additional research.
## Inputs for this Task
- Access to the project's documentation repository, specifically:
- `docs/index.md` (hereafter "Index Doc")
- All Epic files - located in one of these locations:
- Primary: `docs/prd/epic-{n}-{description}.md` (e.g., `epic-1-foundation-core-infrastructure.md`)
- Secondary: `docs/epics/epic-{n}-{description}.md`
- User-specified location if not found in above paths
- Existing story files in `docs/stories/`
- Main PRD (hereafter "PRD Doc")
- Main Architecture Document (hereafter "Main Arch Doc")
- Frontend Architecture Document (hereafter "Frontend Arch Doc," if relevant)
- Project Structure Guide (`docs/project-structure.md`)
- Operational Guidelines Document (`docs/operational-guidelines.md`)
- Technology Stack Document (`docs/tech-stack.md`)
- Data Models Document (as referenced in Index Doc)
- API Reference Document (as referenced in Index Doc)
- UI/UX Specifications, Style Guides, Component Guides (if relevant, as referenced in Index Doc)
- The `bmad-core/templates/story-tmpl.md` (hereafter "Story Template")
- The `bmad-core/checklists/story-draft-checklist.md` (hereafter "Story Draft Checklist")
- User confirmation to proceed with story identification and, if needed, to override warnings about incomplete prerequisite stories.
## Task Execution Instructions
### 0. Load Core Configuration
[[LLM: CRITICAL - This MUST be your first step]]
- Load `.bmad-core/core-config.yml` from the project root
- If the file does not exist:
- HALT and inform the user: "core-config.yml not found. This file is required for story creation. You can:
1. Copy it from GITHUB BMAD-METHOD/bmad-core/core-config.yml and configure it for your project
2. Run the BMAD installer against your project to upgrade and add the file automatically
Please add and configure core-config.yml before proceeding."
- Extract the following key configurations:
- `dev-story-location`: Where to save story files
- `prd.prdSharded`: Whether PRD is sharded or monolithic
- `prd.prd-file`: Location of monolithic PRD (if not sharded)
- `prd.prdShardedLocation`: Location of sharded epic files
- `prd.epicFilePattern`: Pattern for epic files (e.g., `epic-{n}*.md`)
- `architecture.architectureVersion`: Architecture document version
- `architecture.architectureSharded`: Whether architecture is sharded
- `architecture.architecture-file`: Location of monolithic architecture
- `architecture.architectureShardedLocation`: Location of sharded architecture files
### 1. Identify Next Story for Preparation
#### 1.1 Locate Epic Files
- First, determine where epic files are located:
- Check `docs/prd/` for files matching pattern `epic-{n}-*.md`
- If not found, check `docs/epics/` for files matching pattern `epic-{n}-*.md`
- If still not found, ask user: "Unable to locate epic files. Please specify the path where epic files are stored."
- Note: Epic files follow naming convention `epic-{n}-{description}.md` (e.g., `epic-1-foundation-core-infrastructure.md`)
- Based on `prdSharded` from config:
- **If `prdSharded: true`**: Look for epic files in `prdShardedLocation` using `epicFilePattern`
- **If `prdSharded: false`**: Load the full PRD from `prd-file` and extract epics from section headings (## Epic N or ### Epic N)
#### 1.2 Review Existing Stories
- Review `docs/stories/` to find the highest-numbered story file.
- Check `dev-story-location` from config (e.g., `docs/stories/`) for existing story files
- If the directory exists and has at least 1 file, find the highest-numbered story file.
- **If a highest story file exists (`{lastEpicNum}.{lastStoryNum}.story.md`):**
- Verify its `Status` is 'Done' (or equivalent).
- If not 'Done', present an alert to the user:
@@ -60,17 +57,17 @@ To identify the next logical story based on project progress and epic definition
```
- Proceed only if user selects option 3 (Override) or if the last story was 'Done'.
- If proceeding: Look for the Epic File for `{lastEpicNum}` (e.g., `epic-{lastEpicNum}-*.md`) and check for a story numbered `{lastStoryNum + 1}`. If it exists and its prerequisites (per Epic File) are met, this is the next story.
- Else (story not found or prerequisites not met): The next story is the first story in the next Epic File (e.g., look for `epic-{lastEpicNum + 1}-*.md`, then `epic-{lastEpicNum + 2}-*.md`, etc.) whose prerequisites are met.
- If proceeding: Look for the Epic File for `{lastEpicNum}` (e.g., `epic-{lastEpicNum}*.md`) and check for a story numbered `{lastStoryNum + 1}`. If it exists and its prerequisites (per Epic File) are met, this is the next story.
- Else (story not found or prerequisites not met): The next story is the first story in the next Epic File (e.g., look for `epic-{lastEpicNum + 1}*.md`, then `epic-{lastEpicNum + 2}*.md`, etc.) whose prerequisites are met.
- **If no story files exist in `docs/stories/`:**
- The next story is the first story in the first epic file (look for `epic-1-*.md`, then `epic-2-*.md`, etc.) whose prerequisites are met.
- If no suitable story with met prerequisites is found, report to the user that story creation is blocked, specifying what prerequisites are pending. HALT task.
- Announce the identified story to the user: "Identified next story for preparation: {epicNum}.{storyNum} - {Story Title}".
### 2. Gather Core Story Requirements (from Epic File)
### 2. Gather Core Story Requirements (from Epic)
- For the identified story, open its parent Epic File (e.g., `epic-{epicNum}-*.md` from the location identified in step 1.1).
- For the identified story, review its parent Epic (e.g., `epic-{epicNum}*.md` from the location identified in step 1.1).
- Extract: Exact Title, full Goal/User Story statement, initial list of Requirements, all Acceptance Criteria (ACs), and any predefined high-level Tasks.
- Keep a record of this original epic-defined scope for later deviation analysis.
@@ -79,7 +76,7 @@ To identify the next logical story based on project progress and epic definition
[[LLM: This step is CRITICAL for continuity and learning from implementation experience]]
- If this is not the first story (i.e., previous story exists):
- Read the previous story file: `docs/stories/{prevEpicNum}.{prevStoryNum}.story.md`
- Read the previous sequential story from `docs/stories`
- Pay special attention to:
- Dev Agent Record sections (especially Completion Notes and Debug Log References)
- Any deviations from planned implementation
@@ -88,18 +85,30 @@ To identify the next logical story based on project progress and epic definition
- Any "lessons learned" or notes for future stories
- Extract relevant insights that might inform the current story's preparation
### 4. Gather & Synthesize Architecture Context from Sharded Docs
### 4. Gather & Synthesize Architecture Context
[[LLM: CRITICAL - You MUST gather technical details from the sharded architecture documents. NEVER make up technical details not found in these documents.]]
[[LLM: CRITICAL - You MUST gather technical details from the architecture documents. NEVER make up technical details not found in these documents.]]
#### 4.1 Start with Architecture Index
#### 4.1 Determine Architecture Document Strategy
- Read `docs/architecture/index.md` to understand the full scope of available documentation
- Identify which sharded documents are most relevant to the current story
Based on configuration loaded in Step 0:
#### 4.2 Recommended Reading Order Based on Story Type
- **If `architectureVersion: v4` and `architectureSharded: true`**:
- Read `{architectureShardedLocation}/index.md` to understand available documentation
- Follow the structured reading order in section 4.2 below
- **If `architectureVersion: v4` and `architectureSharded: false`**:
- Load the monolithic architecture from `architecture-file`
- Extract relevant sections based on v4 structure (tech stack, project structure, etc.)
- **If `architectureVersion` is NOT v4**:
- Inform user: "Architecture document is not v4 format. Will use best judgment to find relevant information."
- If `architectureSharded: true`: Search sharded files by filename relevance
- If `architectureSharded: false`: Search within monolithic `architecture-file` for relevant sections
[[LLM: Read documents in this order, but ALWAYS verify relevance to the specific story. Skip irrelevant sections but NEVER skip documents that contain information needed for the story.]]
#### 4.2 Recommended Reading Order Based on Story Type (v4 Sharded Only)
[[LLM: Use this structured approach ONLY for v4 sharded architecture. For other versions, use best judgment based on file names and content.]]
**For ALL Stories:**
@@ -108,9 +117,18 @@ To identify the next logical story based on project progress and epic definition
3. `docs/architecture/coding-standards.md` - Ensure dev follows project conventions
4. `docs/architecture/testing-strategy.md` - Include testing requirements in tasks
**For Backend/API Stories, additionally read:** 5. `docs/architecture/data-models.md` - Data structures and validation rules 6. `docs/architecture/database-schema.md` - Database design and relationships 7. `docs/architecture/backend-architecture.md` - Service patterns and structure 8. `docs/architecture/rest-api-spec.md` - API endpoint specifications 9. `docs/architecture/external-apis.md` - Third-party integrations (if relevant)
**For Backend/API Stories, additionally read:**
5. `docs/architecture/data-models.md` - Data structures and validation rules
6. `docs/architecture/database-schema.md` - Database design and relationships
7. `docs/architecture/backend-architecture.md` - Service patterns and structure
8. `docs/architecture/rest-api-spec.md` - API endpoint specifications
9. `docs/architecture/external-apis.md` - Third-party integrations (if relevant)
**For Frontend/UI Stories, additionally read:** 5. `docs/architecture/frontend-architecture.md` - Component structure and patterns 6. `docs/architecture/components.md` - Specific component designs 7. `docs/architecture/core-workflows.md` - User interaction flows 8. `docs/architecture/data-models.md` - Frontend data handling
**For Frontend/UI Stories, additionally read:**
5. `docs/architecture/frontend-architecture.md` - Component structure and patterns
6. `docs/architecture/components.md` - Specific component designs
7. `docs/architecture/core-workflows.md` - User interaction flows
8. `docs/architecture/data-models.md` - Frontend data handling
**For Full-Stack Stories:**
@@ -143,7 +161,7 @@ Format references as: `[Source: architecture/{filename}.md#{section}]`
### 6. Populate Story Template with Full Context
- Create a new story file: `docs/stories/{epicNum}.{storyNum}.story.md`.
- Create a new story file: `{dev-story-location}/{epicNum}.{storyNum}.story.md` (using location from config).
- Use the Story Template to structure the file.
- Fill in:
- Story `{EpicNum}.{StoryNum}: {Short Title Copied from Epic File}`
@@ -190,7 +208,7 @@ Format references as: `[Source: architecture/{filename}.md#{section}]`
- Verify all source references are included for technical details
- Ensure tasks align with both epic requirements and architecture constraints
- Update status to "Draft"
- Save the story file to `docs/stories/{epicNum}.{storyNum}.story.md`
- Save the story file to `{dev-story-location}/{epicNum}.{storyNum}.story.md` (using location from config)
### 9. Report Completion