Debt-marker self-match

The deferred-debt surfacer reported its own documentation as outstanding debt, on every session start.

The regex

const LEADER = (?:\/\/|#|--|;|\/\*|\*)
DEBT_MARKER_RE = new RegExp(`${LEADER}\s*${DEBT_TOKEN}:\s*(.+)`, 'i')

Two properties combine into the bug: a bare * counts as a comment leader (for JSDoc continuation lines), and only whitespace is allowed between leader and token. So a JSDoc line whose example marker uses a real // parses as a live marker.

Try it

the bug (old docstring) the fix (placeholder) a genuine marker backtick-quoted prose shell-comment marker

Measured, before and after

FileBeforeAfter
lib/debt-markers.ts00
posttool/write/debt-marker-tracker.ts10
instructions-loaded/session-rules-audit.ts00

Counts produced by running DEBT_MARKER_RE line-by-line over each file. The session-start ledger showed 2 entries because a worktree carried a second copy of the same file.

Why it mattered

A ledger that is permanently non-empty is one an operator learns to scroll past. The failure mode is not the noise itself, it is the real marker that gets missed later because the surfacer had already cried wolf every session.

The fix

One docstring line, plus a guard test so the convention is enforced instead of remembered. lib/debt-markers.ts already wrote it correctly; the tracker did not.

- *   // ork-debt: <choice>, upgrade to <path>, when <trigger>
+ *   <leader> ork-debt: <choice>, upgrade to <path>, when <trigger>

New test __tests__/lib/debt-markers-no-self-match.test.ts asserts zero self-matches across all three machinery files, checks the roster still points at real files (so a rename cannot make it pass vacuously), and pins that the regex still fires on a genuine marker.