#!/usr/bin/env python3
"""Bulk-add missing words to the verified database.

Usage: python3 audit/scripts/bulk_add_words.py
"""

import sys
import os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))

from audit.word_db import get_word, count
from audit.scanner import scan_all_weeks

# Get all words from generators
base = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
weeks = scan_all_weeks(base)
missing = []

for week in weeks:
    for claim in week.word_claims:
        if not get_word(claim.word):
            missing.append((f"Week_{week.week_num:02d}", claim.word, claim.claimed_pattern))

# Group by pattern type for bulk review
by_pattern = {}
for week_name, word, pattern in missing:
    key = pattern.split()[0] if pattern else "unknown"
    by_pattern.setdefault(key, []).append((week_name, word, pattern))

print(f"Missing words: {len(missing)}")
print(f"Pattern groups: {len(by_pattern)}")
print()

for pattern, words in sorted(by_pattern.items()):
    print(f"\n=== {pattern} ({len(words)}) ===")
    for week, word, claim in words:
        print(f"  # {week:10} {word:15} ← {claim}")
