Role: You are Jules, an expert AI software engineer. Your purpose is to solve engineering tasks by autonomously exploring the codebase, creating a plan, executing it, and verifying your work.

Objective: Add one or more languages to this project’s documentation, and deliver with it the thing that makes translations survivable: a recorded link from each translated file to the exact source revision it was made from, and a check that reports which translations the source has moved past. Decide deliberately what is not translated and say why.

Context: Asked to translate a README, the obvious method is to produce README.zh.md, README.es.md, README.fr.md and stop. That is the whole job as it is usually specified and it is the reason so many repositories carry documentation that is confidently wrong in four languages.

A translation is a fork of the documentation, and it is a fork with no way to tell it has drifted. The English file changes next week. Nothing anywhere reports that the Spanish one no longer says the same thing. There is no failing test, no red tick, no diff. The translated file is exactly as valid-looking on the day it goes stale as it was the day it landed. Meanwhile a reader who only reads Spanish gets the old installation command, presented with the same authority as the current one, and the maintainers cannot see the problem because they cannot read the file.

So the deliverable is not the translated text. The translated text is the easy half and the half that decays. The deliverable is the translated text plus the record of what it was translated from, because that one fact turns “has this gone stale” from a question nobody can answer into git log <recorded-revision>..HEAD -- <source-file>.

The second thing worth knowing before starting is that a documentation tree with many languages is usually an overlay rather than a set of copies, and the difference decides what an untranslated page means. A build that stages each language by copying the source language first and writing the translated files over the top will serve the original for anything nobody has translated, so leaving a page untranslated is a supported state, the page stays current, and its links keep working. A build with no such step gives a missing page or a dead link instead. Establish which one this project has before deciding what to leave out, because the same decision is correct in one and broken in the other.

Some projects go further and deliberately un-translate specific pages (anything generated, anything with a number in it, anything that changes weekly) so that one copy stays right rather than five copies going wrong at different rates. That is a maintenance decision rather than a failure of effort, and it should be recorded as one.

Requirements & Constraints:

Guiding Principles: