
delete-entry
by tkgally
In-progress Japanese-English learner's dictionary
SKILL.md
name: delete-entry description: Guidelines for safely deleting dictionary entries while properly updating indexes and cross-references.
Safely Deleting Dictionary Entries
Use this skill when you need to remove an entry from the dictionary. This ensures all indexes and cross-references are properly updated.
When to Delete an Entry
Valid reasons for deletion:
- Duplicate entry - Another entry exists for the same word (see
resolve-duplicatesskill) - Erroneous entry - Entry contains fundamental errors that cannot be corrected
- Out of scope - Word doesn't belong in a learner's dictionary (too obscure, offensive, etc.)
- Merged into another entry - Content has been incorporated elsewhere
Do NOT delete entries just because they need improvement - use revise-entries skill instead.
Pre-Deletion Checklist
Before deleting any entry:
- Confirm deletion is necessary - Can the entry be fixed instead?
- Note the entry details for later reference:
- Entry ID (e.g.,
00123_taberu) - Reading (e.g.,
たべる) - Headword (e.g.,
{食べる|たべる}) - File path (e.g.,
entries/00000/00123_taberu.json)
- Entry ID (e.g.,
- Check for cross-references to this entry from other entries
- Decide if word should return to candidates (if it still needs an entry later)
Step 1: Find Cross-References to This Entry
Search for other entries that reference the entry you're deleting:
# Search by reading
grep -r '"reading": "たべる"' entries/ --include="*.json" -l
# Search by headword text (without furigana)
grep -r '食べる' entries/ --include="*.json" -l
# Search in cross_references arrays specifically
grep -r '"cross_references"' entries/ -A 20 | grep -B 5 '"reading": "たべる"'
Step 2: Update Cross-References in Other Entries
For each entry that references the one being deleted:
Option A: Remove the cross-reference
If the reference is no longer relevant:
// Before
"cross_references": [
{"type": "related", "reading": "たべる", "headword": "{食べる|たべる}", "label": "to eat"}
]
// After (remove the reference)
"cross_references": []
Option B: Update to point to replacement entry
If a better entry exists (e.g., after merging duplicates):
// Update the reading/headword/label to match the kept entry
"cross_references": [
{"type": "related", "reading": "たべる", "headword": "{食べる|たべる}", "label": "to eat"}
]
Option C: Keep as informational reference
If the cross-reference is still useful even without a target entry, you may keep it. The reference will simply not link to anything.
Step 3: Delete the Entry File
# Remove the entry file
rm entries/{range}/{entry_id}.json
# Example:
rm entries/04500/04567_taberu.json
Verify deletion:
ls entries/04500/04567_taberu.json # Should return "No such file"
Step 4: Update Indexes
Run the index update script:
python3 build/update_indexes.py
This script automatically:
- Removes the entry from
entries_index.json - Updates entry counts
- Syncs with
candidate_words.json
Step 5: Optionally Re-add to Candidates
If the word should eventually have an entry (just not this flawed one):
- Check if
update_indexes.pyalready re-added it to candidates - If not, manually add to
candidate_words.json:
{
"reading": "たべる",
"headword": "食べる",
"english": "to eat",
"notes": "Previous entry deleted due to [reason]. Needs new entry."
}
Step 6: Rebuild the Flat File
python3 build/build_flat.py
This updates the website data. Without this step, the deleted entry may still appear on the live site.
Step 7: Validate
python3 build/validate.py
Confirm:
- No errors about missing files
- No broken cross-references (if you updated them)
- Entry count matches expected total
Complete Workflow Example
# 1. Note the entry to delete
# ID: 04567_taberu, Reading: たべる, Path: entries/04500/04567_taberu.json
# 2. Find cross-references
grep -r '"reading": "たべる"' entries/ --include="*.json" -l
# 3. Update any cross-references found (edit those files)
# 4. Delete the entry
rm entries/04500/04567_taberu.json
# 5. Update indexes
python3 build/update_indexes.py
# 6. Rebuild flat file
python3 build/build_flat.py
# 7. Validate
python3 build/validate.py
# 8. Commit changes
git add entries/ docs/ *.json PROJECT_STATUS.md
git commit -m "Remove duplicate/erroneous entry: 04567_taberu"
git push
Cross-Reference Format Reference
When updating cross-references, use this format:
{
"type": "related", // or: pair, antonym, keigo, synonym, contrast, see_also
"reading": "よむ", // hiragana reading
"headword": "{読む|よむ}", // with furigana (for disambiguation)
"label": "to read" // optional human-readable label
}
Cross-reference types:
pair- Transitive/intransitive verb pairsantonym- Opposite meaningskeigo- Honorific/humble equivalentssynonym- Similar meaningscontrast- Often confused wordsrelated- Semantically relatedsee_also- General reference
Troubleshooting
"Entry still appears on website"
- Did you run
build_flat.py? - Clear browser cache or check
docs/flat_dictionary.json
"Validation shows broken cross-reference"
- Search for the deleted entry's reading in all files
- Update or remove stale references
"Index counts don't match"
- Run
update_indexes.pyagain - Check for orphaned files in entries directory
Safety Notes
-
Always back up first if deleting multiple entries:
git stash # or commit current state first -
Delete one at a time when learning - run validation after each
-
Never delete without checking cross-references - broken links degrade dictionary quality
-
Document deletions in commit messages for future reference
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon