A two-step validation skill (mechanical + LLM-based) for the Vocabulary Sentence Drill module. Use when the user requests to test, evaluate, review, or fix issues with "vocabulary-sentence-drill.json" or when adding brand new Sentence Drill questions.
This skill ensures that questions inside translation-oriented arrays (.json files such as vocabulary-sentence-drill.json) are both mechanically sound and semantically correct.
The validation consists of two phases:
<t> tag rules, and the options format.Run the provided Python script to execute a mechanical check on all questions.
python3 .agent/skills/vocabulary-sentence-drill-tester/scripts/mechanical_tester.py <path/to/json/file>
This script will quickly ensure that:
<t>...</t><t>...</t> EXACTLY matches the first option in the options array (the correct answer).tr (Turkish) translation property exists.If there are any errors, use replace_file_content or multi_replace_file_content on the tested JSON file to fix them mechanically before proceeding to the Semantic Review.
Because the JSON file can contain hundreds of questions, use the batch_viewer.py script to chunk through questions.
Unless the user specifies an ID or range, ask the user which chunk or specific IDs they want to review, or evaluate a sample of 5-10 questions to ensure the module works flawlessly.
# Example: Review 5 questions starting from index 0
python3 .agent/skills/vocabulary-sentence-drill-tester/scripts/batch_viewer.py <path/to/json/file> 0 5
For each question, evaluate the following:
<t> tag): Does the word inside the <t> tag logically belong in that sentence? Is it the correct part of speech compared to the rest of the sentence?If you find anything confusing or incorrect, report it to the user or fix it directly if you are certain.
The vocabulary-sentence-drill.json format is strict. If you edit the file, ensure the format matches precisely:
[
"ID",
"Sentence with target inside <t>...</t>",
{
"tr": "Turkish translation",
"en": "English translation"
},
[
"Correct Answer (must exactly match text inside <t>)",
"Distractor 1",
"Distractor 2",
"Distractor 3"
]
]