# Story Context Creation Workflow
name: story-context
description: "Assemble a dynamic Story Context XML by pulling latest documentation and existing code/library artifacts relevant to a drafted story"
author: "BMad"

# Critical variables
config_source: "{project-root}/bmad/bmm/config.yaml"
output_folder: "{config_source}:output_folder"
user_name: "{config_source}:user_name"
communication_language: "{config_source}:communication_language"
document_output_language: "{config_source}:document_output_language"
story_path: "{config_source}:dev_story_location"
date: system-generated

# Workflow components
installed_path: "{project-root}/bmad/bmm/workflows/4-implementation/story-context"
template: "{installed_path}/context-template.xml"
instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"

# Variables and inputs
variables:
  story_path: "" # Optional: Explicit story path. If not provided, finds first story with status "drafted"
  story_dir: "{config_source}:dev_story_location"

# Smart input file references - handles both whole docs and sharded docs
# Priority: Whole document first, then sharded version
# Strategy: SELECTIVE LOAD - only load the specific epic needed for this story
input_file_patterns:
  prd:
    whole: "{output_folder}/*prd*.md"
    sharded: "{output_folder}/*prd*/index.md"

  tech_spec:
    whole: "{output_folder}/tech-spec.md"

  architecture:
    whole: "{output_folder}/*architecture*.md"
    sharded: "{output_folder}/*architecture*/index.md"

  ux_design:
    whole: "{output_folder}/*ux*.md"
    sharded: "{output_folder}/*ux*/index.md"

  epics:
    whole: "{output_folder}/*epic*.md"
    sharded_index: "{output_folder}/*epic*/index.md"
    sharded_single: "{output_folder}/*epic*/epic-{{epic_num}}.md"

  document_project:
    sharded: "{output_folder}/docs/index.md"

# Output configuration
# Uses story_key from sprint-status.yaml (e.g., "1-2-user-authentication")
default_output_file: "{story_dir}/{{story_key}}.context.xml"

standalone: true
