SuperAPI AI Directory

anibon-world-identity

General & other

View repository

Updated 10-16 03:04

About this skill

Anibon World Identity Verification

Overview & Triggers

LLMs hallucinate game names from post-cutoff patches. Thai Whisper output is phonetic — model wrong on both sources. Must verify against local references.

Priority Chain

Local references → cached story refs → reference SRT → websearch fallback

a. Check local game & event references

references/INDEX.md lists available game, Tokusatsu, and cultural event knowledge files (including anime gacha games, Tokusatsu / Project R.E.D. like Tokusatsu_Project_RED.md, and Japanese event conventions/cuisines like Japan_Event_Convention.md). This is the fastest and most reliable source.

b. Check cached story refs

python3 scripts/fetch_story_ref.py --list or browse references/stories/ for previously fetched synopses (dir is auto-created on first fetch).

c. Reference SRT (if reference video URL exists)

yt-dlp --write-subs --sub-lang en --skip-download <ref_url>
python3 scripts/align_ref_timeline.py <srt> <chunks/> > alignment.json

Parse SRT for character/location names. Use align_ref_timeline.py to match ref timestamps against stream chunks automatically.

d. Build name map

Thai transcript phoneme → verified EN name from sources above

e. Scan chunks at story boundary

For each candidate, match against verified map

f. Websearch fallback

Only if local + cached + SRT all insufficient:

python3 scripts/fetch_story_ref.py --game "HSR" --scene "Planarcadia 4.0"

g. Reject

Training-data inference, older-version character, unconfirmed phonetic match

DB Bootstrap

Run these before World Identity lookups for applicable games:

python3 scripts/fetch_fgo_db.py --check --db "../reference/FGO and DATA/atlas_fgo.db" || \
  python3 scripts/fetch_fgo_db.py --db "../reference/FGO and DATA/atlas_fgo.db"
python3 scripts/fetch_ygo_db.py --check --db "../reference/Yu-Gi-Oh DATA/ygo_cards.db" || \
  python3 scripts/fetch_ygo_db.py --db "../reference/Yu-Gi-Oh DATA/ygo_cards.db"
python3 scripts/fetch_pokemon_db.py --check --db "references/Pokemon DATA/pokemon.db" || \
  python3 scripts/fetch_pokemon_db.py --db "references/Pokemon DATA/pokemon.db"

Mandatory Pokémon Naming Rules

Whenever any Pokémon species, entity, or stream topic is detected:

  1. Primary Name MUST be in Thai: Always output the Thai community/English-sound name (name_th_english_sound) or official Thai name (name_th_official) first.
    • Example: แบกซ์แคลิเบอร์ (Baxcalibur), ม้าดำ (Spectrier), การ์โชมป์ (Garchomp), เป็ดต้นหอม (Farfetch'd).
  2. Dual-Lookup Verification: Cross-check candidate strings against references/Pokemon DATA/pokemon.db matching name_en, name_th_official, or name_th_english_sound.
  3. No Bare English Names: Never output bare English Pokémon names alone (e.g. write แบกซ์แคลิเบอร์ (Baxcalibur) or แบกซ์แคลิเบอร์, not just Baxcalibur).

When to Skip

  • Stream covers well-known characters/games within training data cutoff
  • No game/character names detected in the chunk signal
  • User explicitly says "no need to verify"