Operant Studio
OPER-14

chore(ledger): investigate + normalize legacy PORT-* (4) and SENT-* (7) tickets on portico team

Body

## Context
Prefix audit on `Task.identifier` shows:
- POR-* = 295 tickets (correct)
- OPER-* = 8 tickets (correct)
- **PORT-*** = 4 tickets on portico team — likely a legacy 5-char-slice bug in an earlier `nextIdentifier()`
- **SENT-*** = 7 tickets on portico team — unknown origin (possibly `sentinel` sub-slug or an experimental prefix)

Small but confusing for filters and reports.

## Acceptance Criteria
- [ ] Report the 4 PORT-* and 7 SENT-* tickets (identifier, title, status, createdAt, creator)
- [ ] Decide: rename in place vs. archive vs. leave as-is
- [ ] If rename: script with rollback, run against a Neon branch first
- [ ] If archive: soft-delete with `deletedAt`
- [ ] Confirm `nextIdentifier()` cannot regenerate these prefixes (add regression test on the slice logic)

## Files Touched
- operant-studio/apps/web/src/lib/task-identifier.ts (regression test)
- operant-studio/scripts/normalize-legacy-prefixes.ts (new, if renaming)

## Dependencies
- None

## Verification
Post-run query: `SELECT DISTINCT split_part(identifier,'-',1) FROM "Task"` returns only agreed prefixes.

Attachments

Loading attachments…

Comments

Loading comments…