원클릭으로
resolve-duplicates
Guidelines for identifying duplicate dictionary entries, selecting which to keep, and safely removing unneeded ones.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Guidelines for identifying duplicate dictionary entries, selecting which to keep, and safely removing unneeded ones.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | resolve-duplicates |
| description | Guidelines for identifying duplicate dictionary entries, selecting which to keep, and safely removing unneeded ones. |
Use this skill when duplicate entries are detected during validation, or when you suspect multiple entries exist for the same word.
Duplicates are entries with the same reading AND same headword. The validation script (build/validate.py) checks for this:
key = (reading, headword) # Duplicates share both values
NOT duplicates (these are valid separate entries):
Run validation to find duplicates:
python3 build/validate.py 2>&1 | grep -i "duplicate"
Or search manually:
# Find entries with the same reading
grep -r '"reading": "たべる"' entries/
# Find entries with similar headwords
grep -r '食べる' entries/
Read both (or all) entries carefully. Check:
Are they truly the same lexical item?
If they're NOT the same (rare):
Choose the entry with better quality. Evaluate:
| Criterion | Higher Priority |
|---|---|
| Definition depth | More complete explanations |
| Example quality | Natural, varied, useful examples |
| Notes richness | Covers usage, collocations, learner traps |
| Cross-references | Links to related entries |
| Vocabulary tier | Has appropriate tier assigned (if any) |
| Furigana | All kanji properly annotated |
Tie-breaker: Keep the entry with the lower ID number (older entry).
Before deleting, check if the inferior entry has unique content worth preserving:
If so, edit the keeper entry first to incorporate the valuable content:
# Read both entries
cat entries/00000/00123_taberu.json
cat entries/04500/04567_taberu.json
# Edit the keeper to add any missing valuable content
# Then delete the duplicate
Use the delete-entry skill for safe deletion. The process:
Delete the entry file:
rm entries/path/to/duplicate_entry.json
Update indexes:
python3 build/update_indexes.py
Rebuild the flat file:
python3 build/build_flat.py
Verify deletion:
python3 build/validate.py
# 1. Find duplicates
python3 build/validate.py 2>&1 | grep "Duplicate"
# 2. Read both entries (example)
cat entries/00000/00123_taberu.json
cat entries/04500/04567_taberu.json
# 3. Decide: Keep 00123_taberu (better examples), delete 04567_taberu
# 4. Check if 04567_taberu has content worth merging
# (If yes, edit 00123_taberu first to add the content)
# 5. Delete the duplicate
rm entries/04500/04567_taberu.json
# 6. Update indexes and rebuild
python3 build/update_indexes.py
python3 build/build_flat.py
# 7. Validate
python3 build/validate.py
If other entries reference the deleted duplicate:
Search for references:
grep -r '"reading": "たべる"' entries/ --include="*.json" | grep cross_references
Update references to point to the kept entry's details (or remove if no longer relevant)
The delete-entry skill provides detailed guidance on this.
To avoid creating duplicates in the future:
Always search before creating:
grep -r '"reading": "newword"' entries/
grep -r 'headword_kanji' entries/
Check candidate_words.json - words there may already have entries
Run validation frequently during entry creation sessions
update_indexes.pybuild_flat.py