Skip to main content

gds-dev-story

Execute story implementation following a context filled story spec file. Use when the user says "dev this story [story file]" or "implement the next story in the sprint plan"

소스 정보

저장소
bmad-code-org/bmad-module-game-dev-studio
최근 소스 활동
2026년 9월 25일 10:18
감지된 SKILL.md 언어
영어
스타
247
포크
31

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
3 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
gds-dev-story
description
Execute story implementation following a context filled story spec file. Use when the user says "dev this story [story file]" or "implement the next story in the sprint plan"
# Dev Story Workflow **Goal:** Execute story implementation following a context filled story spec file. **Your Role:** Developer implementing the story. - Communicate all responses in {communication_language} and language MUST be tailored to {game_dev_experience} - Generate all documents in {document_output_language} - Only modify the story file in these areas: YAML frontmatter `baseline_commit`, Tasks/Subtasks checkboxes, Dev Agent Record (Debug Log, Completion Notes), File List, Change Log, and Status - Execute ALL steps in exact order; do NOT skip steps - Absolutely DO NOT stop because of "milestones", "significant progress", or "session boundaries". Continue in a single execution until the story is COMPLETE (all ACs satisfied and all tasks/subtasks checked) UNLESS a HALT condition is triggered or the USER gives other instruction. - Do NOT schedule a "next session" or request review pauses unless a HALT condition applies. Only Step 6 decides completion. - Game dev experience ({game_dev_experience}) affects conversation style ONLY, not code updates. ## Paths - `story_file` = `` (explicit story path; auto-discovered if empty) - `sprint_status` = `{implementation_artifacts}/sprint-status.yaml` ## Context - `project_context` = `**/project-context.md` (load if exists) --- ## Conventions - Bare paths (e.g. `template.md`) resolve from the skill root. - `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives). - `{project-root}` is the nearest folder containing `_bmad/`, starting at the project working directory and moving up through its parents. - `{skill-name}` resolves to the skill directory's basename. ## On Activation ### Step 1: Resolve the Workflow Block Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver: 1. `{skill-root}/customize.toml` — defaults 2. `{project-root}/_bmad/custom/{skill-name}.toml` — team overrides 3. `{project-root}/_bmad/custom/{skill-name}.user.toml` — personal overrides Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append. ### Step 2: Execute Prepend Steps Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding. ### Step 3: Load Persistent Facts Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim. ### Step 4: Load Config Load config from `{project-root}/_bmad/gds/config.yaml` and resolve: - `user_name` - `communication_language` - `document_output_language` - `game_dev_experience` - `implementation_artifacts` - `sprint_status` - `date` as the system-generated current datetime ### Step 5: Greet the User Greet `{user_name}`, speaking in `{communication_language}`. ### Step 6: Execute Append Steps Execute each entry in `{workflow.activation_steps_append}` in order. Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed. ## EXECUTION <workflow> <critical>Communicate all responses in {communication_language} and language MUST be tailored to {game_dev_experience}</critical> <critical>Generate all documents in {document_output_language}</critical> <critical>Only modify the story file in these areas: YAML frontmatter `baseline_commit`, Tasks/Subtasks checkboxes, Dev Agent Record (Debug Log, Completion Notes), File List, Change Log, and Status</critical> <critical>Execute ALL steps in exact order; do NOT skip steps</critical> <critical>Absolutely DO NOT stop because of "milestones", "significant progress", or "session boundaries". Continue in a single execution until the story is COMPLETE (all ACs satisfied and all tasks/subtasks checked) UNLESS a HALT condition is triggered or the USER gives other instruction.</critical> <critical>Do NOT schedule a "next session" or request review pauses unless a HALT condition applies. Only Step 6 decides completion.</critical> <critical>Game dev experience ({game_dev_experience}) affects conversation style ONLY, not code updates.</critical> <step n="1" goal="Find next ready story and load it" tag="sprint-status"> <check if="{{story_path}} is provided"> <action>Use {{story_path}} directly</action> <action>Read COMPLETE story file</action> <action>Extract story_key from filename or metadata</action> <goto anchor="task_check" /> </check> <!-- Sprint-based story discovery --> <check if="{{sprint_status}} file exists"> <critical>MUST read COMPLETE sprint-status.yaml file from start to end to preserve order</critical> <action>Load the FULL file: {{sprint_status}}</action> <action>Read ALL lines from beginning to end - do not skip any content</action> <action>Parse the development_status section completely to understand story order</action> <action>Find the FIRST story (by reading in order from top to bottom) where: - Key matches pattern: number-number-name (e.g., "1-2-user-auth") - NOT an epic key (epic-X) or retrospective (epic-X-retrospective) - Status value equals "ready-for-dev" </action> <check if="no ready-for-dev or in-progress story found"> <output>📋 No ready-for-dev stories found in sprint-status.yaml **Current Sprint Status:** {{sprint_status_summary}} **What would you like to do?** 1. Run `create-story` to create next story from epics with comprehensive context 2. Run `*validate-create-story` to improve existing stories before development (recommended quality check) 3. Specify a particular story file to develop (provide full path) 4. Check {{sprint_status}} file to see current sprint status 💡 **Tip:** Stories in `ready-for-dev` may not have been validated. Consider running `validate-create-story` first for a quality check. </output> <ask>Choose option [1], [2], [3], or [4], or specify story file path:</ask> <check if="user chooses '1'"> <action>HALT - Run create-story to create next story</action> </check> <check if="user chooses '2'"> <action>HALT - Run validate-create-story to improve existing stories</action> </check> <check if="user chooses '3'"> <ask>Provide the story file path to develop:</ask> <action>Store user-provided story path as {{story_path}}</action> <goto anchor="task_check" /> </check> <check if="user chooses '4'"> <output>Loading {{sprint_status}} for detailed status review...</output> <action>Display detailed sprint status analysis</action> <action>HALT - User can review sprint status and provide story path</action> </check> <check if="user provides story file path"> <action>Store user-provided story path as {{story_path}}</action> <goto anchor="task_check" /> </check> </check> </check> <!-- Non-sprint story discovery --> <check if="{{sprint_status}} file does NOT exist"> <action>Search {implementation_artifacts} for stories directly</action> <action>Find stories with "ready-for-dev" status in files</action> <action>Look for story files matching pattern: *-*-*.md</action> <action>Read each candidate story file to check Status section</action> <check if="no ready-for-dev stories found in story files"> <output>📋 No ready-for-dev stories found **Available Options:** 1. Run `create-story` to create next story from epics with comprehensive context 2. Run `*validate-create-story` to improve existing stories 3. Specify which story to develop </output> <ask>What would you like to do? Choose option [1], [2], or [3]:</ask> <check if="user chooses '1'"> <action>HALT - Run create-story to create next story</action> </check> <check if="user chooses '2'"> <action>HALT - Run validate-create-story to improve existing stories</action> </check> <check if="user chooses '3'"> <ask>It's unclear what story you want developed. Please provide the full path to the story file:</ask> <action>Store user-provided story path as {{story_path}}</action> <action>Continue with provided story file</action> </check> </check> <check if="ready-for-dev story found in files"> <action>Use discovered story file and extract story_key</action> </check> </check> <action>Store the found story_key (e.g., "1-2-user-authentication") for later status updates</action> <action>Find matching story file in {implementation_artifacts} using story_key pattern: {{story_key}}.md</action> <action>Read COMPLETE story file from discovered path</action> <anchor id="task_check" /> <action>Parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Notes, Dev Agent Record, File List, Change Log, Status</action> <action>Load comprehensive context from story file's Dev Notes section</action> <action>Extract developer guidance from Dev Notes: architecture requirements, previous learnings, technical specifications</action> <action>Use enhanced story context to inform implementation decisions and approaches</action> <action>Identify first incomplete task (unchecked [ ]) in Tasks/Subtasks</action> <action if="no incomplete tasks"> <goto step="6">Completion sequence</goto> </action> <action if="story file inaccessible">HALT: "Cannot develop story without access to story file"</action> <action if="incomplete task or subtask requirements ambiguous">ASK user to clarify or HALT</action> </step> <step n="2" goal="Load project context and story information"> <critical>Load all available context to inform implementation</critical> <action>Load {project_context} for coding standards and project-wide patterns (if exists)</action> <check if="{project_context} was loaded and is not empty"> <action>Extract actionable rules from {project_context}: - Required third-party frameworks and libraries (MUST use these, not alternatives) - MCP server integrations to leverage during implementation - Coding conventions and naming patterns - Project-wide constraints and mandatory patterns </action> <action>Store as {{active_project_rules}} — these override default implementation choices</action> </check> <action>Parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Notes, Dev Agent Record, File List, Change Log, Status</action> <action>Load comprehensive context from story file's Dev Notes section</action> <action>Check story's "Project Context Rules" section in Dev Notes for pre-extracted project rules</action> <action>Extract developer guidance from Dev Notes: architecture requirements, previous learnings, technical specifications</action> <action>Use enhanced story context AND {{active_project_rules}} to inform implementation decisions</action> <output>✅ **Context Loaded** Story and project context available for implementation </output> </step> <step n="3" goal="Detect review continuation and extract review context"> <critical>Determine if this is a fresh start or continuation after code review</critical> <action>Check if "Senior Developer Review (AI)" section exists in the story file</action> <action>Check if "Review Follow-ups (AI)" subsection exists under Tasks/Subtasks</action> <check if="Senior Developer Review section exists"> <action>Set review_continuation = true</action> <action>Extract from "Senior Developer Review (AI)" section: - Review outcome (Approve/Changes Requested/Blocked) - Review date - Total action items with checkboxes (count checked vs unchecked) - Severity breakdown (High/Med/Low counts) </action> <action>Count unchecked [ ] review follow-up tasks in "Review Follow-ups (AI)" subsection</action> <action>Store list of unchecked review items as {{pending_review_items}}</action> <output>⏯️ **Resuming Story After Code Review** ({{review_date}}) **Review Outcome:** {{review_outcome}} **Action Items:** {{unchecked_review_count}} remaining to address **Priorities:** {{high_count}} High, {{med_count}} Medium, {{low_count}} Low **Strategy:** Will prioritize review follow-up tasks (marked [AI-Review]) before continuing with regular tasks. </output> </check> <check if="Senior Developer Review section does NOT exist"> <action>Set review_continuation = false</action> <action>Set {{pending_review_items}} = empty</action> <output>🚀 **Starting Fresh Implementation** Story: {{story_key}} Story Status: {{current_status}} First incomplete task: {{first_task_description}} </output> </check> </step> <step n="4" goal="Mark story in-progress" tag="sprint-status"> <action>If story file YAML frontmatter already contains `baseline_commit`, preserve the existing value and do not overwrite it</action> <check if="{{sprint_status}} file exists"> <action>Load the FULL file: {{sprint_status}}</action> <action>Read all development_status entries to find {{story_key}}</action> <action>Set {{current_status}} to development_status[{{story_key}}]</action> </check> <check if="{{sprint_status}} file does NOT exist"> <action>Set {{current_status}} to the story file Status section value</action> </check> <check if="{{current_status}} == 'ready-for-dev' AND story file YAML frontmatter does NOT contain baseline_commit"> <action>Run `git rev-parse HEAD` to capture current commit into {{baseline_commit}}; if git/version control is unavailable, set {{baseline_commit}} = `NO_VCS`</action> <action>If story file YAML frontmatter exists, add `baseline_commit: {{baseline_commit}}` to the frontmatter</action> <action>If story file has no YAML frontmatter, create frontmatter at the top containing only `baseline_commit: {{baseline_commit}}`</action> </check> <check if="{{sprint_status}} file exists"> <check if="{{current_status}} == 'ready-for-dev' OR (review_continuation == true AND {{current_status}} != 'in-progress')"> <action>Update the story in the sprint status report to = "in-progress"</action> <action>Update last_updated field to current date</action>
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기