#!/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}")