**Examples:**
```bash
# Review only Kiwi Duet calls from a specific filter
skraak calls classify --folder ./data --reviewer dave --bind k=Kiwi \
--filter opensoundscape-kiwi-1.2 --species Kiwi+Duet
# Review all Kiwi calls (any calltype)
skraak calls classify --folder ./data --reviewer dave --bind k=Kiwi --species Kiwi
```
**Changes:**
- `tools/calls_classify.go` — Added `Species` and `CallType` fields to `ClassifyConfig`;
extended `getFilteredSegments()` with `segmentMatchesFilters()` for AND-composable
filter+species+calltype matching; prune data files with no matching segments on load
- `cmd/calls_classify.go` — Parse `--species` flag (rejects duplicates), zero-segment
guard before TUI launch, comprehensive `printClassifyUsage()`
## [2026-03-29] Codebase consistency improvements
**Changes:**
- `tools/import_file.go` — Single DB connection per `ImportFile()` call (was 3), uses
`validateHierarchyIDs()`, passes `ctx` and `*sql.DB` to helpers
- `tools/import_files.go` — Extracted `validateHierarchyIDs()` for reuse
- `tools/bulk_file_import.go` — `bulkCreateCluster` uses `db.BeginLoggedTx()` for
transaction audit logging
- `cmd/common.go` — Extracted `initEventLog()` helper, replacing 14 instances of
6-line event log boilerplate across 7 cmd files
- `tools/export.go` — Documented why `fmt.Sprintf` for table names is safe (hardcoded manifest)
- `tools/location.go` — Fixed `Exec` → `ExecContext` for context propagation consistency
- `utils/cluster_import.go` — Exported `LocationData` and `GetLocationData` for cross-package use
- Removed duplicate godoc comments on several tool functions