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>
179 lines
5.2 KiB
Markdown
179 lines
5.2 KiB
Markdown
# 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 plan
|
|
- `CLAUDE.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`:
|
|
|
|
```bash
|
|
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:
|
|
|
|
1. **Types & Configuration** -- TypeScript types/interfaces, config constants, API types
|
|
2. **Core Logic** -- Business logic, hooks, utilities, state management
|
|
3. **Components** -- UI components, layouts, pages
|
|
4. **API Integration** -- API calls, data fetching, error handling
|
|
5. **Tests** -- Unit and integration tests targeting good coverage on new/modified files
|
|
|
|
### 5. Code Quality Standards
|
|
|
|
**General:**
|
|
|
|
- TypeScript strict mode -- no `any` types 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:
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
```json
|
|
{
|
|
"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 `main` directly -- 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.md` for project-specific constraints
|
|
|
|
## Dynamic Context
|