Adds System > Maintenance > "Pair category and tags" (pair_metadata), a
reviewed plan that fills the empty category and empty tag set of prompts
Pair node runs created before #546, from their non-archived saved pairs.
- Only Pair-created prompts (earliest pair has them as the positive, saved
within 2 s), only empty fields, only when every pair with a value agrees.
- Archived, edited (updated_at not within 2 s of created_at), conflicting
and over-20-tag fields are kept and listed first in the plan.
- Apply recomputes the fingerprint inside BEGIN IMMEDIATE and writes guarded
statements; a guard that hits nothing rolls everything back. Never writes
prompt_pairs, prompt_pair_tags, updated_at, tags or Library state.
- Follows the safety backup policy like the other operations.
- The job's downloadable report lists every filled prompt (no 200-row cap):
Job.record_counted(complete=True).
- D192: the row beyond the concept, mapped in the concept comparison.