# Task Completion Checklist

When completing a development task, follow this checklist:

## Before Committing

### 1. Code Quality
- [ ] Run `cargo check` - no errors
- [ ] Run `cargo clippy` - no warnings
- [ ] Run `cargo fmt` - formatted
- [ ] No `TODO`, `FIXME`, or stub implementations
- [ ] No `unwrap()` or `panic!()` in production code

### 2. Tests
- [ ] Run `cargo test` - all tests pass
- [ ] New code has corresponding tests
- [ ] Edge cases are tested
- [ ] Error paths are tested

### 3. Documentation
- [ ] Public APIs have doc comments
- [ ] Complex logic is commented
- [ ] SPEC files updated if requirements changed

### 4. SPEC Compliance
- [ ] Implementation matches SPEC requirements
- [ ] All acceptance criteria met
- [ ] REQ-ID included in commit message

## Commit Message Format

```
<type>: <description> [REQ-XXX]

Types: feat, fix, refactor, docs, test, chore
```

Examples:
- `feat: add auto failover mode [REQ-021]`
- `fix: handle provider validation error [REQ-002]`
- `refactor: use config file for auto_execution_order [REQ-022]`

## Post-Commit

### 1. Version Update (if releasing)
- [ ] Update VERSION file
- [ ] Update Cargo.toml version
- [ ] Update README.md version badge

### 2. SPEC Status Update
- [ ] Update SPEC/01-REQUIREMENTS.md status
- [ ] Mark REQ as 🟢 Done if complete

### 3. Changelog (if applicable)
- [ ] Update SPEC/05-CHANGELOG.md

## Release Checklist (if applicable)

- [ ] `cargo build --release` succeeds
- [ ] Binary tested on target platform
- [ ] NPM package updated (README-NPM.md)
- [ ] Git tag created
- [ ] NPM publish successful
