Files
BMAD-METHOD/CURRENT-V2/docs/templates/story-template.md
2025-05-02 23:06:11 -05:00

3.8 KiB

Story {EpicNum}.{StoryNum}: {Short Title Copied from Epic File}

Status: Draft | In-Progress | Complete

Goal & Context

User Story: {As a [role], I want [action], so that [benefit] - Copied or derived from Epic file}

Context: {Briefly explain how this story fits into the Epic's goal and the overall workflow. Mention the previous story's outcome if relevant. Example: "This story builds upon the project setup (Story 1.1) by defining the S3 resource needed for state persistence..."}

Detailed Requirements

{Copy the specific requirements/description for this story directly from the corresponding docs/epicN.md file.}

Acceptance Criteria (ACs)

{Copy the Acceptance Criteria for this story directly from the corresponding docs/epicN.md file.}

  • AC1: ...
  • AC2: ...
  • ACN: ...

Technical Implementation Context

Guidance: Use the following details for implementation. Refer to the linked docs/ files for broader context if needed.

  • Relevant Files:

    • Files to Create: {e.g., src/services/s3-service.ts, test/unit/services/s3-service.test.ts}
    • Files to Modify: {e.g., lib/hacker-news-briefing-stack.ts, src/common/types.ts}
    • (Hint: See docs/project-structure.md for overall layout)
  • Key Technologies:

    • {e.g., TypeScript, Node.js 22.x, AWS CDK (aws-s3 construct), AWS SDK v3 (@aws-sdk/client-s3), Jest}
    • {If a UI story, mention specific frontend libraries/framework features (e.g., React Hooks, Vuex store, CSS Modules)}
    • (Hint: See docs/tech-stack.md for full list)
  • API Interactions / SDK Usage:

    • {e.g., "Use @aws-sdk/client-s3: S3Client, GetObjectCommand, PutObjectCommand.", "Handle NoSuchKey error specifically for GetObjectCommand."}
    • (Hint: See docs/api-reference.md for details on external APIs and SDKs)
  • UI/UX Notes: ONLY IF THIS IS A UI Focused Epic or Story

  • Data Structures:

    • {e.g., "Define/Use AppState interface in src/common/types.ts: { processedStoryIds: string[] }.", "Handle JSON parsing/stringifying for state."}
    • (Hint: See docs/data-models.md for key project data structures)
  • Environment Variables:

    • {e.g., S3_BUCKET_NAME (Read via config.ts or passed to CDK)}
    • (Hint: See docs/environment-vars.md for all variables)
  • Coding Standards Notes:

    • {e.g., "Use async/await for all S3 calls.", "Implement error logging using console.error.", "Follow kebab-case for filenames, PascalCase for interfaces."}
    • (Hint: See docs/coding-standards.md for full standards)

Tasks / Subtasks

{Copy the initial task breakdown from the corresponding docs/epicN.md file and expand or clarify as needed to ensure the agent can complete all AC. The agent can check these off as it proceeds.}

  • Task 1
  • Task 2
    • Subtask 2.1
  • Task 3

Testing Requirements

Guidance: Verify implementation against the ACs using the following tests.

  • Unit Tests: {e.g., "Write unit tests for src/services/s3-service.ts. Mock S3Client and its commands (GetObjectCommand, PutObjectCommand). Test successful read/write, JSON parsing/stringifying, and NoSuchKey error handling."}
  • Integration Tests: {e.g., "No specific integration tests required for just this story's module, but it will be covered later in test/integration/fetch-flow.test.ts."}
  • Manual/CLI Verification: {e.g., "Not applicable directly, but functionality tested via npm run fetch-stories later."}
  • (Hint: See docs/testing-strategy.md for the overall approach)

Story Wrap Up (Agent Populates After Execution)

  • Agent Model Used: <Agent Model Name/Version>
  • Completion Notes: {Any notes about implementation choices, difficulties, or follow-up needed}
  • Change Log: {Track changes within this specific story file if iterations occur}
    • Initial Draft
    • ...