docs: add prompt for next Devin session to continue cleanup work
Co-Authored-By: Justin Edmund <justin@jedmund.com>
This commit is contained in:
parent
dfbb1e4e48
commit
0afa6c5308
1 changed files with 89 additions and 0 deletions
89
NEXT_SESSION_PROMPT.md
Normal file
89
NEXT_SESSION_PROMPT.md
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
# Prompt for Next Devin Session
|
||||
|
||||
## Task
|
||||
Continue cleaning up type errors in the `svelte-main` branch of `jedmund/hensei-web`. The goal is to get the build green by fixing all remaining type errors.
|
||||
|
||||
## Context
|
||||
This is a Svelte 5 rewrite of a Granblue Fantasy team composition app. The previous session reduced type errors from ~412 to ~378. A detailed plan of completed and remaining work is in `CLEANUP_PLAN.md`.
|
||||
|
||||
## Starting Point
|
||||
1. Checkout the `svelte-main` branch in `/home/ubuntu/repos/hensei-web`
|
||||
2. Run `pnpm check 2>&1 | grep -c "Error:"` to see current error count (~378)
|
||||
3. Review `CLEANUP_PLAN.md` for detailed context on what's been fixed and what remains
|
||||
|
||||
## Remaining Type Errors to Fix (Priority Order)
|
||||
|
||||
### 1. 'firstItem' and 'item' Possibly Undefined (27 errors)
|
||||
- **File**: `src/routes/teams/new/+page.svelte`
|
||||
- **Fix**: Add null checks before accessing `items[0]` and in forEach loops
|
||||
- **Example**: Change `const firstItem = items[0]` to include a guard like `if (!items[0]) return`
|
||||
|
||||
### 2. PartyCtx Missing openPicker Property (8 errors)
|
||||
- **Fix**: Find the `PartyCtx` type definition and add `openPicker` method signature
|
||||
- **Search**: `grep -rn "PartyCtx" src/lib/types/`
|
||||
|
||||
### 3. Missing Paraglide Translation Keys (18 errors)
|
||||
- **Keys needed**: `context_view_details`, `context_replace`, `context_remove`
|
||||
- **Files to update**: `project.inlang/messages/en.json` and `project.inlang/messages/ja.json`
|
||||
- **Then run**: `pnpm paraglide-js compile --project ./project.inlang`
|
||||
|
||||
### 4. Summon/Weapon Missing hp/atk Properties (18 errors)
|
||||
- **File**: `src/lib/api/adapters/entity.adapter.ts`
|
||||
- **Fix**: Update `Summon` interface to include nested `hp` and `atk` objects (similar to Character fix already done)
|
||||
|
||||
### 5. exactOptionalPropertyTypes Violations (~15 errors)
|
||||
- **Issue**: Props with `undefined` values passed to components that don't accept undefined
|
||||
- **Fix**: Update component Props interfaces to accept `| undefined` for optional properties
|
||||
|
||||
### 6. Select.svelte ItemIndicator Errors (4 errors)
|
||||
- **File**: `src/lib/components/ui/Select.svelte`
|
||||
- **Issue**: `Select.ItemIndicator` doesn't exist in bits-ui v2.9.6
|
||||
- **Fix**: Check bits-ui docs for correct component or remove usage
|
||||
|
||||
### 7. DropdownItem.svelte asChild Issue (2 errors)
|
||||
- **File**: `src/lib/components/ui/dropdown/DropdownItem.svelte`
|
||||
- **Issue**: `asChild` prop doesn't exist in bits-ui
|
||||
- **Fix**: Use `child` snippet pattern instead
|
||||
|
||||
### 8. Button.svelte Icon Type Issues (2 errors)
|
||||
- **File**: `src/lib/components/ui/Button.svelte`
|
||||
- **Fix**: Add conditional rendering `{#if icon}` before Icon component
|
||||
|
||||
### 9. Button Variant "outlined" (3 errors)
|
||||
- **Fix**: Change "outlined" to valid variant (check Button component for valid options)
|
||||
|
||||
### 10. maxLength vs maxlength (4 errors)
|
||||
- **Fix**: Change `maxLength` to `maxlength` (lowercase) in input elements
|
||||
|
||||
## Commands Reference
|
||||
```bash
|
||||
# Check error count
|
||||
pnpm check 2>&1 | grep -c "Error:"
|
||||
|
||||
# Analyze error patterns
|
||||
pnpm check 2>&1 | grep "Error:" | sort | uniq -c | sort -rn | head -20
|
||||
|
||||
# Find specific errors
|
||||
pnpm check 2>&1 | grep -B2 "specific error text"
|
||||
|
||||
# Run lint
|
||||
pnpm lint
|
||||
|
||||
# Run build
|
||||
pnpm build
|
||||
|
||||
# Regenerate Paraglide translations
|
||||
pnpm paraglide-js compile --project ./project.inlang
|
||||
```
|
||||
|
||||
## Important Notes
|
||||
- This project uses `exactOptionalPropertyTypes: true` in tsconfig, which is stricter than normal TypeScript
|
||||
- The codebase uses Svelte 5 runes (`$state`, `$derived`, `$effect`)
|
||||
- bits-ui v2.9.6 is used for UI components - check their docs for correct API
|
||||
- Focus on errors only, not warnings (per user instruction)
|
||||
- Push directly to `svelte-main` branch when done
|
||||
|
||||
## Success Criteria
|
||||
- `pnpm check` returns 0 errors
|
||||
- `pnpm lint` passes
|
||||
- `pnpm build` succeeds
|
||||
Loading…
Reference in a new issue