# 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 ``` ### 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