```xml The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.xml You MUST have already loaded and processed: {installed_path}/workflow.yaml Communicate all responses in {communication_language} and language MUST be tailored to {user_skill_level} Generate all documents in {document_output_language} This workflow assembles a Story Context XML for a single user story by extracting ACs, tasks, relevant docs/code, interfaces, constraints, and testing guidance to support implementation. Default execution mode: #yolo (non-interactive). Only ask if {{non_interactive}} == false. If auto-discovery fails, HALT and request 'story_path' or 'story_dir'. DOCUMENT OUTPUT: Technical XML context file. Concise, structured, project-relative paths only. User skill level ({user_skill_level}) affects conversation style ONLY, not context content. If {{story_path}} provided and valid → use it; else auto-discover from {{story_dir}}. Auto-discovery: read {{story_dir}} (dev_story_location). If invalid/missing or contains no .md files, ASK for a story file path or directory to scan. If a directory is provided, list markdown files named "story-*.md" recursively; sort by last modified time; display top {{story_selection_limit}} with index, filename, path, modified time. "Select a story (1-{{story_selection_limit}}) or enter a path:" If {{non_interactive}} == true: choose the most recently modified story automatically. If none found, HALT with a clear message to provide 'story_path' or 'story_dir'. Else resolve selection into {{story_path}} and READ COMPLETE file. Extract {{epic_id}}, {{story_id}}, {{story_title}}, {{story_status}} from filename/content; parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Notes. Extract user story fields (asA, iWant, soThat). Store project root path for relative path conversion: extract from {project-root} variable. Define path normalization function: convert any absolute path to project-relative by removing project root prefix. Initialize output by writing template to {default_output_file}. as_a i_want so_that Scan docs and src module docs for items relevant to this story's domain: search keywords from story title, ACs, and tasks. Prefer authoritative sources: PRD, Architecture, Front-end Spec, Testing standards, module-specific docs. For each discovered document: convert absolute paths to project-relative format by removing {project-root} prefix. Store only relative paths (e.g., "docs/prd.md" not "/Users/.../docs/prd.md"). Add artifacts.docs entries with {path, title, section, snippet}: - path: PROJECT-RELATIVE path only (strip {project-root} prefix) - title: Document title - section: Relevant section name - snippet: Brief excerpt (2-3 sentences max, NO invention) Search source tree for modules, files, and symbols matching story intent and AC keywords (controllers, services, components, tests). Identify existing interfaces/APIs the story should reuse rather than recreate. Extract development constraints from Dev Notes and architecture (patterns, layers, testing requirements). For all discovered code artifacts: convert absolute paths to project-relative format (strip {project-root} prefix). Add artifacts.code entries with {path, kind, symbol, lines, reason}: - path: PROJECT-RELATIVE path only (e.g., "src/services/api.js" not full path) - kind: file type (controller, service, component, test, etc.) - symbol: function/class/interface name - lines: line range if specific (e.g., "45-67") - reason: brief explanation of relevance to this story Populate interfaces with API/interface signatures: - name: Interface or API name - kind: REST endpoint, GraphQL, function signature, class interface - signature: Full signature or endpoint definition - path: PROJECT-RELATIVE path to definition Populate constraints with development rules: - Extract from Dev Notes and architecture - Include: required patterns, layer restrictions, testing requirements, coding standards Detect dependency manifests and frameworks in the repo: - Node: package.json (dependencies/devDependencies) - Python: pyproject.toml/requirements.txt - Go: go.mod - Unity: Packages/manifest.json, Assets/, ProjectSettings/ - Other: list notable frameworks/configs found Populate artifacts.dependencies with keys for detected ecosystems and their packages with version ranges where present From Dev Notes, architecture docs, testing docs, and existing tests, extract testing standards (frameworks, patterns, locations). Populate tests.standards with a concise paragraph Populate tests.locations with directories or glob patterns where tests live Populate tests.ideas with initial test ideas mapped to acceptance criteria IDs Validate output XML structure and content. Validate against checklist at {installed_path}/checklist.md using bmad/core/tasks/validate-workflow.xml Open {{story_path}}; if Status == 'Draft' then set to 'ContextReadyDraft'; otherwise leave unchanged. Under 'Dev Agent Record' → 'Context Reference' (create if missing), add or update a list item for {default_output_file}. Save the story file. **✅ Story Context Generated Successfully, {user_name}!** **Story Details:** - Story ID: {{story_id}} - Title: {{story_title}} - Context File: {{default_output_file}} **Next Steps:** 1. Load DEV agent (bmad/bmm/agents/dev.md) 2. Run `dev-story` workflow to implement the story 3. The context file will provide comprehensive implementation guidance ```