1 3 Create Resume Data Composable ready-for-dev 2025-11-30 BMAD Story Context Workflow docs/sprint-artifacts/1-3-create-resume-data-composable.md developer a composable to access resume data components can easily consume the data reactively Create app/composables/useResumeData.ts file Import dependencies and export useResumeData function Implement resume reactive reference Implement formatDate helper (YYYY-MM to "Jan 2023") Implement getFullName helper Implement getPdfFilename helper Return composable interface Verify TypeScript compilation File exists at app/composables/useResumeData.ts Exports useResumeData() function Returns resume as reactive reference Returns formatDate() that converts "2023-01" to "Jan 2023" Returns getFullName() that returns full name Returns getPdfFilename() that returns "FirstName_LastName_Resume.pdf" docs/architecture.md Resume Export Feature - Architecture Document
Implementation Patterns - Composable Organization
Composables use camelCase with 'use' prefix. Use computed for derived values. Error handling pattern with useToast.
docs/epics.md Resume Export Feature - Epic Breakdown
Story 1.3: Create Resume Data Composable
Composable returns resume ref, formatDate, getFullName, getPdfFilename helpers.
docs/sprint-artifacts/tech-spec-epic-1.md Epic Technical Specification: Resume Data and Types
APIs and Interfaces - Composable Interface
useResumeData returns: resume (ComputedRef), formatDate(date: string): string, getFullName(): string, getPdfFilename(): string
app/data/resume.en.ts data resumeData MUST import resumeData from this file. Created in Story 1.2. app/types/resume.ts types Resume Type reference for resume data structure. app/composables directory composables pattern Reference for existing composable patterns in project. vue ^3.5.x computed for reactive references nuxt ^4.1.3 Auto-imports composables
File must be at app/composables/useResumeData.ts Function name: useResumeData (camelCase with 'use' prefix) Use computed for derived values Input: YYYY-MM string (e.g., "2022-01") Output: "Jan 2023" for English Format: "FirstName_LastName_Resume.pdf" Default locale: 'en', support future i18n useResumeData Vue Composable function useResumeData() { resume: ComputedRef<Resume> formatDate(date: string, locale?: string): string getFullName(): string getPdfFilename(): string } app/composables/useResumeData.ts (to be created) TypeScript compiler validates composable structure. Manual testing in components. No unit tests required for simple data access composable. TypeScript compilation (pnpm typecheck) Manual testing in components (Story 1.3+) Verify file exists after creation TypeScript validates function export Test resume ref returns data Test formatDate with various inputs: "2023-01" → "Jan 2023" Test getFullName returns "Ali Arghyani" Test getPdfFilename returns "Ali_Arghyani_Resume.pdf"