fix(ready): prevent wisps from appearing in bd ready

Add multiple layers of defense against misclassified wisps:
- Importer auto-detects -wisp- pattern and sets ephemeral flag
- GetReadyWork excludes -wisp- IDs via SQL LIKE clause
- Doctor check 26d detects misclassified wisps in JSONL

This addresses recurring issue where wisps with missing ephemeral
flag would pollute bd ready output after JSONL import.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
dennis
2026-01-12 23:49:22 -08:00
committed by gastown/crew/dennis
parent 12c7bef159
commit f703237c3d
5 changed files with 204 additions and 81 deletions

View File

@@ -577,6 +577,11 @@ func runDiagnostics(path string) doctorResult {
result.Checks = append(result.Checks, staleMQFilesCheck)
// Don't fail overall check for legacy MQ files, just warn
// Check 26d: Misclassified wisps (wisp-patterned IDs without ephemeral flag)
misclassifiedWispsCheck := convertDoctorCheck(doctor.CheckMisclassifiedWisps(path))
result.Checks = append(result.Checks, misclassifiedWispsCheck)
// Don't fail overall check for misclassified wisps, just warn
// Check 27: Expired tombstones (maintenance)
tombstonesExpiredCheck := convertDoctorCheck(doctor.CheckExpiredTombstones(path))
result.Checks = append(result.Checks, tombstonesExpiredCheck)