Files
smartdeno/.serena/memories/task_completion_checklist.md

87 lines
1.9 KiB
Markdown
Raw Normal View History

# Task Completion Checklist
## After Code Changes
### 1. Type Checking
```bash
# Check source files
pnpm build
# Check test files
tsbuild check test/**/* --skiplibcheck
```
### 2. Testing
```bash
# Run all tests
pnpm test
# Or run specific test
tstest test/test.ts --verbose
```
### 3. Linting/Formatting
- No explicit linter/formatter configured in package.json
- Follow existing code style patterns
### 4. Documentation
```bash
# Update documentation if public API changed
pnpm buildDocs
```
## Before Committing
### 1. Verify Changes
```bash
git status
git diff
```
### 2. Stage Files
```bash
git add <files>
```
### 3. Commit with Clear Message
```bash
git commit -m "Brief description of single focused change"
```
### Commit Best Practices
- **Small, focused commits** with single clear purpose
- **Descriptive messages** explaining "what" and "why"
- **Avoid mixing** different change types in one commit
- **Use git mv** for file operations to preserve history
## Testing Requirements
### Test File Naming
- `*.both.ts` - Browser and Node tests
- `*.node.ts` - Node-only tests
- `*.browser.ts` - Browser-only tests
### Test File Requirements
- Import `expect`, `expectAsync`, `tap` from `@push.rocks/tapbundle`
- Import TypeScript files directly (never compiled JS)
- **MUST end with**: `export default tap.start()` or `tap.start()`
- Place stubs ONLY in test files, never in production code
## Common Issues
### Missing tsrun
```bash
# If you get "tsrun: command not found"
pnpm install --save-dev @git.zone/tsrun
```
### Server Management
- **Before reading logs**: Wait 20 seconds for complete log writes
- **When killing servers**: Find specific PID, never `killall node`
- **Between restarts**: Wait 10 seconds
## Documentation Updates
- Update `readme.md` if public API changes
- Consider updating `readme.hints.md` for development findings
- Store plans in `readme.plan.md` if needed