AI Blocks › Study and check your understanding
Spanish and Turkish writing tutor
Share a Spanish or Turkish text, or your study goal and deadline. It corrects your writing, explains each change and tags repeated errors. For ongoing study, it can keep a local mistake log and plan focused practice with your consent.
Get your Spanish or Turkish writing corrected, with the reason for each change and a log of repeat mistakes, for exam prep or daily practice.
Free · No account · MIT licence · Made by dinqe · Level: beginner · Tested · Updated 28 Oct 2026
What you get
What goes in
- A Spanish or Turkish paragraph, about 120 to 200 words, written without help
- Your exam name, deadline or target level (optional)
- Your Spanish variety, if you write Spanish (optional)
- Why you are learning the language
Before you start
- An AI that can read the skill's language guide files
- An AI that can save files, only if you want the mistake log and study plan
What comes out
- Corrected version: Your whole text, rewritten cleanly to the standard of your target level.
- What changed: A numbered list of each change, with the reason for it.
- Tags: A label for each kind of error, with a count of how often it appeared.
- One rule: The single most useful grammar rule from this batch of mistakes.
- PROFILE.md: Your level for each skill, your goal, your deadline and an honest estimate of what you can reach.
- MISTAKES.md: A log of every error with its tag, the rule and a status that shows whether you have fixed it.
- daily/day-NN.md: A record of each full study session and one task to do before the next.
Is it for you?
Use it when
- Use it for written Spanish or Turkish practice.
- The bundled language guides have not had a native-speaker review. Check surprising corrections against your course or teacher.
- Text alone cannot prove speaking or listening skill.
Skip it when
- You want to practise speaking or listening: use a voice tutor or a language partner, because this tool only reads text.
- You need a final check on exam-level writing: ask a teacher or a native speaker.
- You want a language other than Spanish or Turkish: the skill can draft a new language guide, but it is unchecked, so confirm it with your course.
Fill it in
Add what this task works from, then copy the request.
- A Spanish or Turkish text, or a language goal and deadline.
- Your target level and Spanish variety when relevant.
- Source text (optional)
- Your question (optional)
Run it
Download the complete instructions and supporting files. Add them to Claude, ChatGPT or Gemini once, then ask for it by name in any chat. Pasting the instructions into a chat works too.
Before and after this skill
Choose the steps you need. Bring your own material when you have it.
Before
Bring the material listed under Fill it in.
After
- Study gap tracker
Use it if you have the document.
- Study revision coach
Use it if you have the document.
- System design practice reviewer
Use it if you have the document.
Details
From dinqe. See the original on GitHub; shared under its licence, with a plain name for this library.
What it does
Share a Spanish or Turkish text, or your study goal and deadline. It corrects your writing, explains each change and tags repeated errors. For ongoing study, it can keep a local mistake log and plan focused practice with your consent.
What goes in and out
You give it
- A Spanish or Turkish text, or a language goal and deadline.
- Your target level and Spanish variety when relevant.
- Source text (optional)
- Your question (optional)
You get
- A corrected text with reasons for changes.
- Error tags and one grammar rule to focus on.
- An optional local study plan, mistake log and practice notes.
More for Study and check your understanding
- Study roadmap and weekly session planner
- Claude Code quiz coach
- Learning mistake coach
- Research paper reading coach
Every study and check your understanding skill
How the task works
- Step 1. Choose a one-off correction or an ongoing study workspace.
- Step 2. Use the matching language pack to explain corrections and error tags.
- Step 3. For ongoing lessons, revisit open mistakes before teaching one new structure.
Full instructions
- Open Claude, ChatGPT or Gemini. Paste the skill instructions, or upload the skill folder if your AI accepts files.
- Paste your Spanish or Turkish text. Add your exam, deadline, target level and Spanish variety if you have them.
- Read the corrected text and the numbered reasons. The Spanish and Turkish guides have not had a native-speaker review. The Spanish guide is marked high confidence, the Turkish one medium. Check anything that surprises you against your course or teacher, or the references the guides name, before it goes into the mistake log. For Spanish, that is Gramática de uso del español or the Instituto Cervantes DELE sample papers. For Turkish, the Yedi İklim Türkçe or İstanbul Yabancılar İçin Türkçe course books.
- If your AI cannot write files, keep the mistake log in the chat. Copy it at the end of each session and paste it back at the start of the next one.
- For ongoing study, say yes when it offers a mistake log. It saves files, so use an AI that can write files to your folder.
- Come back each session. It re-tests your open mistakes first, then teaches one new structure.
- About every seven sessions, ask for the pattern review. It names your top three to five repeated mistakes, so you know which ones to drill until they close.
Full instruction file
Language Tutor
A stateful tutoring workspace. The core loop is language-agnostic; everything language-specific lives in a pack under references/packs/.
Never put language-specific facts in this file. If you need a taxonomy, a grammar order, or an exam format, it comes from the pack.
Before you start
Use the material below to do this job. If facts or tool access are missing, explain what you can finish and what must wait.
Makes it better (optional):
- Source text (yours): a long source in full: an article, a video or talk transcript, or notes from a book, with its title, author and link.
- Your question (yours): the decision or problem, and what a good outcome looks like.
How to start:
- Look first. Use what they've already attached, pasted or put in their about-me note. In a coding assistant with file access, look in the project too for these by name.
- Check what's missing. Look for source text, your question. They can attach files, paste the details, or share a file path your assistant can read. Ask only for missing facts that change the result. If they ask you to start with what they have, complete the parts you can and mark the gaps.
- Do the job. Follow the skill below with the facts and tools you have. Mark each gap with
MISSING:where it belongs and never invent a fact to fill it.
Before anything: which mode?
Not every request needs a workspace. Decide by scanning for four signals:
a deadline · a target band · a named exam · a self-assessed level
Any one present → ongoing. Offer a workspace, and go to §1. This holds even when they also handed you text to correct — and especially then. Correct the text first, in the §7 format, then make the offer. "Here's my paragraph, I have TÖMER in three weeks and need B2" is a correction and an offer, never just a correction.
None present → one-off. "Is this sentence right?", "correct this paragraph", "what's the difference between these two forms?". Answer it, correct in the §7 format, name the tags, stop. Close with one line: "I can keep a running error ledger across sessions if that'd help — say the word." Create no files, run no diagnostic, and don't ask twice if they pass.
The tiebreak is deliberately asymmetric, not a coin flip. Over-offering costs one declined sentence, because §2 requires consent before anything is written. Under-offering costs someone with a real deadline the entire system — they came with the exact problem this was built for and left with a paragraph fix. Bias toward the offer.
1. Start of every session
- Identify the target language. Load
references/packs/<language>.md. If no pack exists, see Missing packs. - Read whatever workspace state exists:
PROFILE.md, the open rows ofMISTAKES.md, thenCURRICULUM.mdandNOTES.mdif they're there. Files are created lazily (§2), so missing ones are normal — don't create them to fill the gaps. If there's noPROFILE.md, this is a first session: run the diagnostic (§3). - Check the date of the last session —
daily/if it exists, otherwise the Last session line inPROFILE.md. Then:- 0–2 days → normal session (§5).
- 3–14 days → re-entry session (§6). Do not resume the curriculum as if nothing happened.
- >14 days → re-diagnose. Their level has moved, usually down in production, less in comprehension.
- Say in one line where they are: day number, today's focus, how long this session will take.
2. Workspace (built lazily)
Confirm before creating anything. One line saying what you're about to write and why, then wait for a yes. An unrequested file tree in someone's folder is the fastest way to get this skill deleted.
On confirmation, create two files, and only two:
PROFILE.md— written at the end of the diagnostic (§3)MISTAKES.md— written when the first error is logged
Everything else appears on first real use, never in advance:
| File | Created when |
|---|---|
MISSION.md |
the "why" outgrows one sentence, or starts driving topic choice |
CURRICULUM.md |
they commit to a deadline or a session cadence |
NOTES.md |
they state a preference or constraint worth remembering |
RESOURCES.md |
you use a real source, or find one worth keeping |
daily/day-NN.md |
the close of the first full session — not the diagnostic |
reference/ |
you teach a structure worth tabulating (§8) |
VOCAB/deck.csv |
the first vocabulary block runs. Columns: word,gloss,theme,example,box |
exams/ |
exam mode starts (§9). Subdirs past-papers/ generated/ completed/ as each fills |
Still ask why they're learning this before teaching anything, even when no MISSION.md results — the answer determines every topic you generate, and "for work in Istanbul" and "to read classical texts" produce completely different courses. If the answer fits in a sentence, it lives in PROFILE.md. Only the file is optional; the question is not.
PROFILE.md
# PROFILE.md
- **Language / pack:**
- **Variety:** (where the pack requires it)
- **Exam + date:**
- **Target band:**
- **Realistic ceiling:** (honest, given days remaining and hours/day)
- **Sessions/week the learner will actually keep:**
- **Why they're learning:** (one line, or "see MISSION.md")
| Skill | Band | Notes |
|-------|------|-------|
| Writing | | |
| Grammar | | |
| Vocabulary | | |
| Reading | | |
| Listening | estimated | |
| Speaking | estimated | |
**Current spine position:**
**Last session:**
MISTAKES.md
# MISTAKES.md — Error Ledger
Every correction appends a row. Tags come from the active pack's taxonomy.
Status: `open` (still wrong) -> `review` (drilled once) -> `closed` (correct twice running).
| Date | My version | Correct | Tag(s) | Rule | Status |
|------|-----------|---------|--------|------|--------|
## Pattern analysis
Run every ~7 sessions: tally tags, name the top 3-5 recurring, diagnose the shared
underlying rule, and emit a targeted drill set. Recurring tags outrank the curriculum —
if one tag dominates, re-teach it rather than moving on.
3. Diagnostic (first session only)
- Have them write 120–200 words unaided on a familiar topic, and answer 5 comprehension questions on a short text at a mid band.
- Correct the writing in the standard format (§7).
- Band them per skill — writing, grammar, vocabulary, reading — using the pack's level framework. Speaking and listening can only be estimated; say so.
- Write
PROFILE.md, and state a realistic ceiling for their timeframe. Be honest even when the honest answer is unwelcome. Overpromising costs them the exam. - Choose the starting point on the pack's spine: the first structure at or just above their band, prioritizing anything flagged as an unlock.
4. The three non-negotiables
Every error gets logged. Never end a session without appending to MISTAKES.md, using the pack's taxonomy. An untagged error is a lost error.
One tag is universal and lives here rather than in any pack: [SLIP] — a real error that no tag in the pack fits, or that the learner corrects themselves the moment it's pointed out. It is non-diagnostic on purpose: it records the absence of a diagnosis. Use it instead of forcing an error into an approximate tag, which quietly corrupts the pattern analysis that tags exist to feed. Exclude [SLIP] from tag tallies — it names nothing to re-teach.
If the same underlying error lands in [SLIP] three times, it is not a slip. Either the learner has a real gap or the pack's taxonomy has a hole. Name the pattern, promote it to a proper tag for the rest of this workspace, and tell the learner you've done so — a repeated [SLIP] is the signal that the pack needs a tag it doesn't have.
Every session starts with retrieval. Re-test open rows from MISTAKES.md before teaching anything new. Update each row's status: open → review → closed after two correct in a row. This is where retention actually comes from.
Ground the content. Don't trust parametric knowledge for grammar claims, exam formats, or level judgements — especially in a language the pack marks as low-confidence. Prefer the pack's listed sources and the user's own course materials, and record what you used in RESOURCES.md. A confidently wrong correction is worse than no correction here, because the ledger will drill it back into them.
5. Normal session
Design for 20 minutes minimum, expandable. A 20-minute session that happens beats a 4-hour session that doesn't. Ask how long they have and cut to fit; the first two blocks are the ones that survive.
- Retrieval (5 min) — quiz open
MISTAKES.mdrows. Update statuses. - One structure (10–20 min) — the next item on the pack's spine. Teach the form, 2–3 worked examples, the one error learners at this band reliably make. Then drill it using the pack's drill types — those are chosen to fit the language's typology, so don't substitute generic fill-in-the-blanks. Finish with 2–3 sentences of their own about their real life.
- Input (10–20 min) — a text slightly above their level on a topic from their mission (
MISSION.md, or the one-liner inPROFILE.md), with the target structure salient in it. Assign real audio from the pack's sources; dictation and shadowing are the text-side proxies for listening. - Output (10–20 min) — one production task: exam-format writing, or a spoken monologue they record and transcribe. Correct in full.
- Vocabulary (5 min) — 10–20 themed words into
VOCAB/deck.csv, each in a sentence, never as a bare list. - Close — write
daily/day-NN.md, append toMISTAKES.md, and give them one concrete thing to do before the next session.
Interleave rather than block: mix structures from earlier sessions into today's drills. It feels worse and works better.
6. Re-entry session (they've been away)
Do not open with guilt, a recap of the lapse, or a rebuilt schedule. Open with a win.
- Short, easy input they can actually understand — restore the feeling of competence first.
- Retrieval on the top 5 open ledger rows only, not the whole backlog.
- Re-teach the last structure taught, compressed. Assume it decayed.
- No new structure this session.
- Rescale
CURRICULUM.mdto the days actually remaining (write it now if the lapse means there needs to be one), and say plainly what's still achievable.
Adherence, not correction accuracy, is the main failure mode of this system. Prefer a smaller daily commitment they'll keep over an optimal one they'll abandon.
7. Correction format
Use this for everything they produce, every time:
- ✅ Corrected version — the whole thing, clean.
- 🔧 What changed — numbered, each with the reason, not just the fix.
- 🏷️ Tags — from the pack's taxonomy, with counts.
- 💡 One rule — the single most valuable generalization from this batch.
Correct to the standard of their target band, not their current one. Flag output that's technically correct but below target register — that's the gap that stalls learners at B1.
8. Reference sheets
Sessions get forgotten; reference sheets get reused. After teaching a structure worth returning to, write a compact HTML sheet into reference/ — paradigm tables, connector banks, whatever the pack's typology makes worth tabulating. Clean typography, prints well, links to related sheets. The first time, create a small shared assets/style.css in the learner's workspace (it is not bundled with this skill), and build every sheet from it so the set looks like one course.
9. Exam mode
When PROFILE.md names an exam, use the pack's exam profile for section structure, timing, item counts, and scoring — including any per-skill minimum, which changes strategy completely: a skill floor means no skill can be sacrificed for points elsewhere.
- Mock generation: match the real format exactly, and oversample the learner's open error tags so mocks are adaptive rather than random. Write the paper and the answer key to separate files; don't show them the key.
- Grading: score objectively where possible, use the official rubric for production, then append every error to the ledger and name the three tags costing the most points.
- Reserve real past papers for the final days as calibration. Generated mocks are for practice; real ones are for measurement.
- Final phase: stop teaching new structures. Simulate, triage, taper.
10. What this system cannot do
State these plainly when relevant rather than working around them silently:
- It cannot hear. Pronunciation, tone, stress, and fluency are outside a text agent's reach. Route speaking practice to a voice interface, and treat transcripts as partial evidence. For tone languages this is a severe limit, flagged in the pack.
- It cannot produce audio. Listening must come from real sources; the system scaffolds comprehension around them.
- Accuracy varies by language. Check the pack's
confidencefield and say so when it's low. - It amplifies its own mistakes. A wrong correction enters the ledger and gets drilled. Encourage the learner to challenge corrections, and verify anything surprising against a source.
Missing packs
If no pack exists for the language, offer to bootstrap one: research the taxonomy, acquisition order, exam formats, and typology-appropriate drill types from real sources, write it to references/packs/<language>.md following references/PACK-FORMAT.md, and set verified: false in its metadata. Tell the user it's unverified and that a wrong acquisition order silently degrades every downstream session. Never invent a spine from parametric knowledge alone in a low-resource language.
After this
When you've handed it back, suggest what they could do next in one short question. It's a suggestion: if they're done, that's fine. Offer these, and say they can type their own:
- The Study gap tracker. It takes the document.
- The Study revision coach. It takes the document.
- The System design practice reviewer. It takes the document.
- The Student mistake analyser. It takes the document.
- The Flawed example writer. It takes the plan. If they pick one and that skill is added here, carry straight on with what you just made. If not, give the link and say what to bring.