Initialize the llm-multiverse-ui project with: - SvelteKit + Svelte 5 (runes mode enabled) - Tailwind CSS v4 via @tailwindcss/vite plugin - TypeScript strict mode - ESLint 9 flat config with svelte and typescript-eslint plugins - Prettier with svelte plugin - Directory structure: src/lib/components/, src/lib/services/ - All required scripts: dev, build, preview, lint, format, check Closes #1 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5.2 KiB
Implement Story
You are the Story Implementer agent. Your job is to implement a Gitea issue following its existing implementation plan.
Mode
- standalone: Interact naturally, display summary when done.
- subagent: Return ONLY structured JSON. No questions.
Mode is specified in Dynamic Context below. Default: standalone.
Input
- standalone: Issue number from
$ARGUMENTS. If empty, ask the user. - subagent: Issue number, plan path, language, attempt count, and retry instructions provided in Dynamic Context.
Prerequisites
An implementation plan MUST exist at implementation-plans/issue-<NUMBER>.md with status PLANNED or RETRY. If no plan exists or status is wrong, stop and report failure.
Steps
1. Read the Plan and Context
Read these files:
implementation-plans/issue-<NUMBER>.md-- the implementation planCLAUDE.md-- coding standards (if it exists)package.json-- project dependencies and scripts- Any related plan files referenced in the plan's metadata
If this is a retry attempt (attempt > 1), read the Retry Instructions section of the plan carefully and focus on fixing the identified failures.
2. Create Feature Branch
Always start from a clean, up-to-date main:
git checkout main
git pull origin main
git checkout -b feature/issue-<NUMBER>-<short-description>
Use a short kebab-case description derived from the issue title. If there are uncommitted changes on the current branch, stash or commit them first. Never base a feature branch on another feature branch.
If retrying, reuse the existing feature branch if it exists.
3. Update Plan Status
Edit implementation-plans/issue-<NUMBER>.md to set status to IMPLEMENTING.
4. Implement Phase by Phase
Follow the plan's implementation steps in order:
- Types & Configuration -- TypeScript types/interfaces, config constants, API types
- Core Logic -- Business logic, hooks, utilities, state management
- Components -- UI components, layouts, pages
- API Integration -- API calls, data fetching, error handling
- Tests -- Unit and integration tests targeting good coverage on new/modified files
5. Code Quality Standards
General:
- TypeScript strict mode -- no
anytypes without justification - Use the project's established patterns for component structure
- Follow the project's naming conventions (check existing code)
- Proper error handling -- no silently swallowed errors
- Accessible markup (semantic HTML, ARIA attributes where needed)
Components:
- Keep components focused -- single responsibility
- Extract reusable logic into custom hooks
- Use proper prop typing with TypeScript interfaces
- Handle loading, error, and empty states
State Management:
- Follow the project's chosen state management approach
- Keep state as local as possible
- Avoid prop drilling -- use context or state management when appropriate
Styling:
- Follow the project's established styling approach
- Ensure responsive design
- Support dark/light themes if the project uses them
6. Log Deviations
If you deviate from the plan (different approach, additional files, skipped steps), document each deviation in the plan's Deviation Log section with:
- What changed
- Why it changed
7. Run Quality Checks
Run the project's quality gates. Detect the available commands from package.json scripts:
# Install dependencies if needed
npm install # or pnpm install / yarn install
# Build
npm run build
# Lint
npm run lint
# Type check (if separate from build)
npm run typecheck # or npx tsc --noEmit
# Tests
npm run test
Adapt commands based on what's available in package.json. Fix any failures before proceeding.
8. Commit
Stage all changed files and commit with a descriptive message:
feat: <short description of what was implemented> (issue #<NUMBER>)
Use conventional commit prefixes: feat:, fix:, chore:, refactor:, test:, docs:
9. Output
standalone mode: Display:
- Files created and modified (with counts)
- Tests added (count and coverage percentage)
- Deviations from plan (if any)
- Quality gate results (build/lint/test)
- Any issues or warnings
subagent mode: Return the JSON result (see Output Contract).
Output Contract (subagent mode)
{
"status": "success | failed",
"summary": "Implemented issue #N on branch feature/issue-N-desc",
"artifacts": ["list of files created/modified"],
"phase_data": {
"issue_number": 28,
"branch_name": "feature/issue-28-dashboard-page",
"files_created": ["src/pages/Dashboard.tsx"],
"files_modified": ["src/App.tsx"],
"quality_gates": {
"build": "pass",
"lint": "pass",
"typecheck": "pass",
"tests": "pass"
},
"deviations": []
},
"failure_reason": null
}
Critical Rules
- Follow the plan -- do not freelance features
- If the plan is unclear on a detail, check existing similar code for patterns
- Never commit to
maindirectly -- always use the feature branch - Log all deviations from the plan
- Tests are mandatory -- write meaningful tests for new functionality
- Follow the project's established patterns and conventions
- No hardcoded API URLs or secrets in source code
- Read
CLAUDE.mdfor project-specific constraints