Skip to content

feat(i18n): add self-contained Russian localization - #410

Open
w3lld1 wants to merge 18 commits into
rohitg00:mainfrom
w3lld1:feat/ru-localization-v2
Open

feat(i18n): add self-contained Russian localization#410
w3lld1 wants to merge 18 commits into
rohitg00:mainfrom
w3lld1:feat/ru-localization-v2

Conversation

@w3lld1

@w3lld1 w3lld1 commented Aug 12, 2026

Copy link
Copy Markdown

What this PR does

Adds a self-contained, production-ready Russian localization: runtime/CI/tooling plus the complete reviewed corpus of 536 translated lesson documents in this PR.

Kind of change

  • New lesson
  • Fix to an existing lesson
  • Translation
  • New output (prompt, skill, agent, MCP server)
  • Docs / website / tooling

Included translation corpus

  • 503 translated core phase lessons under i18n/ru/phases/**/docs/ru.md
  • 33 translated Claude certification lessons under i18n/ru/certifications/claude/lessons/**/docs/ru.md
  • 536 total translated lesson documents in this PR
  • i18n/ru/.quality/manifest.json with complete source/target hashes and structured review evidence
  • Russian README.md, STYLE_GUIDE.md, and GLOSSARY.md

The PR contains 557 changed files total: 536 translated documents and 21 localization/runtime/CI/quality files. Generated caches are intentionally excluded.

Runtime and quality infrastructure

  • registers Russian as a production language;
  • loads the self-contained translation from the current checkout/ref first;
  • retains the generated translations branch as an incremental-publication fallback;
  • falls back to canonical English only when neither translation source exists;
  • supports core and Claude certification lessons, including locale retention and page-aware availability;
  • keeps certification quizzes canonical in English with an explicit notice;
  • preserves canonical/social metadata and protects against stale-response races;
  • adds a fail-closed Russian corpus audit covering the complete inventory;
  • validates source/target hashes, manifest schema, allowed statuses, review evidence, Markdown structure, exact fenced blocks, visible metadata, and descriptive image alt text;
  • protects reviewed targets from automatic NLLB overwrite and stale-source replacement;
  • audits the exact detached candidate before every generated translations-branch publication retry.

Validation

  • Independent exact-SHA release review: APPROVE
  • Russian corpus audit: 536/536 approved, 0 missing/stale/invalid
  • Python tests: 21/21
  • Translation workflow tests: 16/16
  • Runtime i18n tests: 16/16
  • README localization tests: 6/6 and deterministic --check
  • Core audit: 503 lessons, 0 issues
  • Certification audit: 33 lessons, 8 assessments, 295 questions, 0 issues
  • Translation dry-runs: 503 core + 33 certification cache hits, 0 rewritten
  • Production site build
  • Local self-contained browser smoke for Russian core and certification routes
  • No English lesson, code, output, or quiz files changed

Checklist

  • Code runs without errors with the listed dependencies
  • No source lesson, code, output, or quiz files were modified
  • Tested locally / rendered output matches the source curriculum
  • Generated translation caches are not committed

Phase / lesson

All 503 current phase lessons and all 33 Claude certification lessons.

Notes for reviewer

The 536 translated documents, manifest, glossary, and style guide are byte-identical to the independently approved corpus. The Russian README is deterministically regenerated from the current source and has separate fail-closed tests.

Two trailing-space sequences inside fenced blocks are intentionally preserved because they are byte-identical to canonical English protected content. Removing them would violate the exact fenced-block integrity contract.

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Too many files!

This PR contains 569 files, which is 269 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: dc3b53c8-2b5e-41df-8c88-b2f4277c841c

📥 Commits

Reviewing files that changed from the base of the PR and between 7c33235 and 807b868.

📒 Files selected for processing (569)
  • .github/workflows/curriculum.yml
  • .github/workflows/translate.yml
  • .gitignore
  • README.md
  • docs/i18n.md
  • i18n/ar/README.md
  • i18n/de/README.md
  • i18n/es/README.md
  • i18n/fr/README.md
  • i18n/hi/README.md
  • i18n/it/README.md
  • i18n/ja/README.md
  • i18n/ko/README.md
  • i18n/pt/README.md
  • i18n/ru/.quality/manifest.json
  • i18n/ru/GLOSSARY.md
  • i18n/ru/README.md
  • i18n/ru/STYLE_GUIDE.md
  • i18n/ru/certifications/claude/lessons/00-certification-strategy/docs/ru.md
  • i18n/ru/certifications/claude/lessons/01-claude-product-and-model-landscape/docs/ru.md
  • i18n/ru/certifications/claude/lessons/02-model-selection-and-token-economics/docs/ru.md
  • i18n/ru/certifications/claude/lessons/03-prompting-and-task-decomposition/docs/ru.md
  • i18n/ru/certifications/claude/lessons/04-context-knowledge-memory-and-caching/docs/ru.md
  • i18n/ru/certifications/claude/lessons/05-output-evaluation-and-validation/docs/ru.md
  • i18n/ru/certifications/claude/lessons/06-governance-safety-and-responsible-use/docs/ru.md
  • i18n/ru/certifications/claude/lessons/07-workflow-design-and-human-handoffs/docs/ru.md
  • i18n/ru/certifications/claude/lessons/08-messages-api-and-application-lifecycle/docs/ru.md
  • i18n/ru/certifications/claude/lessons/09-structured-output-and-defensive-parsing/docs/ru.md
  • i18n/ru/certifications/claude/lessons/10-tool-use-and-agentic-loops/docs/ru.md
  • i18n/ru/certifications/claude/lessons/11-mcp-server-design-and-integration/docs/ru.md
  • i18n/ru/certifications/claude/lessons/12-claude-agent-sdk-and-hooks/docs/ru.md
  • i18n/ru/certifications/claude/lessons/13-application-security-and-secrets/docs/ru.md
  • i18n/ru/certifications/claude/lessons/14-evals-testing-debugging-and-observability/docs/ru.md
  • i18n/ru/certifications/claude/lessons/15-claude-code-for-development-teams/docs/ru.md
  • i18n/ru/certifications/claude/lessons/16-multi-agent-orchestration-and-delegation/docs/ru.md
  • i18n/ru/certifications/claude/lessons/17-agent-sdk-sessions-subagents-and-context/docs/ru.md
  • i18n/ru/certifications/claude/lessons/18-tool-contracts-errors-and-progressive-discovery/docs/ru.md
  • i18n/ru/certifications/claude/lessons/19-claude-code-memory-rules-skills-and-ci/docs/ru.md
  • i18n/ru/certifications/claude/lessons/20-reliable-extraction-batch-and-reviewers/docs/ru.md
  • i18n/ru/certifications/claude/lessons/21-long-context-reliability-provenance-and-escalation/docs/ru.md
  • i18n/ru/certifications/claude/lessons/22-business-discovery-requirements-and-slas/docs/ru.md
  • i18n/ru/certifications/claude/lessons/23-end-to-end-architecture-and-value-tradeoffs/docs/ru.md
  • i18n/ru/certifications/claude/lessons/24-rag-retrieval-and-data-pipelines/docs/ru.md
  • i18n/ru/certifications/claude/lessons/25-integration-protocols-identity-and-least-privilege/docs/ru.md
  • i18n/ru/certifications/claude/lessons/26-production-observability-latency-and-cost/docs/ru.md
  • i18n/ru/certifications/claude/lessons/27-enterprise-governance-compliance-and-hitl/docs/ru.md
  • i18n/ru/certifications/claude/lessons/28-stakeholder-communication-adrs-and-lifecycle/docs/ru.md
  • i18n/ru/certifications/claude/lessons/29-associate-workflow-capstone/docs/ru.md
  • i18n/ru/certifications/claude/lessons/30-developer-application-capstone/docs/ru.md
  • i18n/ru/certifications/claude/lessons/31-architect-foundations-scenario-capstone/docs/ru.md
  • i18n/ru/certifications/claude/lessons/32-architect-professional-system-capstone/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/01-dev-environment/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/02-git-and-collaboration/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/03-gpu-setup-and-cloud/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/04-apis-and-keys/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/05-jupyter-notebooks/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/06-python-environments/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/07-docker-for-ai/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/08-editor-setup/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/09-data-management/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/10-terminal-and-shell/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/11-linux-for-ai/docs/ru.md
  • i18n/ru/phases/00-setup-and-tooling/12-debugging-and-profiling/docs/ru.md
  • i18n/ru/phases/01-math-foundations/01-linear-algebra-intuition/docs/ru.md
  • i18n/ru/phases/01-math-foundations/02-vectors-matrices-operations/docs/ru.md
  • i18n/ru/phases/01-math-foundations/03-matrix-transformations/docs/ru.md
  • i18n/ru/phases/01-math-foundations/04-calculus-for-ml/docs/ru.md
  • i18n/ru/phases/01-math-foundations/05-chain-rule-and-autodiff/docs/ru.md
  • i18n/ru/phases/01-math-foundations/06-probability-and-distributions/docs/ru.md
  • i18n/ru/phases/01-math-foundations/07-bayes-theorem/docs/ru.md
  • i18n/ru/phases/01-math-foundations/08-optimization/docs/ru.md
  • i18n/ru/phases/01-math-foundations/09-information-theory/docs/ru.md
  • i18n/ru/phases/01-math-foundations/10-dimensionality-reduction/docs/ru.md
  • i18n/ru/phases/01-math-foundations/11-singular-value-decomposition/docs/ru.md
  • i18n/ru/phases/01-math-foundations/12-tensor-operations/docs/ru.md
  • i18n/ru/phases/01-math-foundations/13-numerical-stability/docs/ru.md
  • i18n/ru/phases/01-math-foundations/14-norms-and-distances/docs/ru.md
  • i18n/ru/phases/01-math-foundations/15-statistics-for-ml/docs/ru.md
  • i18n/ru/phases/01-math-foundations/16-sampling-methods/docs/ru.md
  • i18n/ru/phases/01-math-foundations/17-linear-systems/docs/ru.md
  • i18n/ru/phases/01-math-foundations/18-convex-optimization/docs/ru.md
  • i18n/ru/phases/01-math-foundations/19-complex-numbers/docs/ru.md
  • i18n/ru/phases/01-math-foundations/20-fourier-transform/docs/ru.md
  • i18n/ru/phases/01-math-foundations/21-graph-theory/docs/ru.md
  • i18n/ru/phases/01-math-foundations/22-stochastic-processes/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/01-what-is-machine-learning/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/02-linear-regression/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/03-logistic-regression/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/04-decision-trees/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/05-support-vector-machines/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/06-knn-and-distances/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/07-unsupervised-learning/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/08-feature-engineering/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/09-model-evaluation/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/10-bias-variance/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/11-ensemble-methods/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/12-hyperparameter-tuning/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/13-ml-pipelines/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/14-naive-bayes/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/15-time-series/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/16-anomaly-detection/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/17-imbalanced-data/docs/ru.md
  • i18n/ru/phases/02-ml-fundamentals/18-feature-selection/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/01-the-perceptron/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/02-multi-layer-networks/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/03-backpropagation/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/04-activation-functions/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/05-loss-functions/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/06-optimizers/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/07-regularization/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/08-weight-initialization/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/09-learning-rate-schedules/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/10-mini-framework/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/11-intro-to-pytorch/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/12-intro-to-jax/docs/ru.md
  • i18n/ru/phases/03-deep-learning-core/13-debugging-neural-networks/docs/ru.md
  • i18n/ru/phases/04-computer-vision/01-image-fundamentals/docs/ru.md
  • i18n/ru/phases/04-computer-vision/02-convolutions-from-scratch/docs/ru.md
  • i18n/ru/phases/04-computer-vision/03-cnns-lenet-to-resnet/docs/ru.md
  • i18n/ru/phases/04-computer-vision/04-image-classification/docs/ru.md
  • i18n/ru/phases/04-computer-vision/05-transfer-learning/docs/ru.md
  • i18n/ru/phases/04-computer-vision/06-object-detection-yolo/docs/ru.md
  • i18n/ru/phases/04-computer-vision/07-semantic-segmentation-unet/docs/ru.md
  • i18n/ru/phases/04-computer-vision/08-instance-segmentation-mask-rcnn/docs/ru.md
  • i18n/ru/phases/04-computer-vision/09-image-generation-gans/docs/ru.md
  • i18n/ru/phases/04-computer-vision/10-image-generation-diffusion/docs/ru.md
  • i18n/ru/phases/04-computer-vision/11-stable-diffusion/docs/ru.md
  • i18n/ru/phases/04-computer-vision/12-video-understanding/docs/ru.md
  • i18n/ru/phases/04-computer-vision/13-3d-vision-nerf/docs/ru.md
  • i18n/ru/phases/04-computer-vision/14-vision-transformers/docs/ru.md
  • i18n/ru/phases/04-computer-vision/15-real-time-edge/docs/ru.md
  • i18n/ru/phases/04-computer-vision/16-vision-pipeline-capstone/docs/ru.md
  • i18n/ru/phases/04-computer-vision/17-self-supervised-vision/docs/ru.md
  • i18n/ru/phases/04-computer-vision/18-open-vocab-clip/docs/ru.md
  • i18n/ru/phases/04-computer-vision/19-ocr-document-understanding/docs/ru.md
  • i18n/ru/phases/04-computer-vision/20-image-retrieval-metric/docs/ru.md
  • i18n/ru/phases/04-computer-vision/21-keypoint-pose/docs/ru.md
  • i18n/ru/phases/04-computer-vision/22-3d-gaussian-splatting/docs/ru.md
  • i18n/ru/phases/04-computer-vision/23-diffusion-transformers-rectified-flow/docs/ru.md
  • i18n/ru/phases/04-computer-vision/24-sam3-open-vocab-segmentation/docs/ru.md
  • i18n/ru/phases/04-computer-vision/25-vision-language-models/docs/ru.md
  • i18n/ru/phases/04-computer-vision/26-monocular-depth/docs/ru.md
  • i18n/ru/phases/04-computer-vision/27-multi-object-tracking/docs/ru.md
  • i18n/ru/phases/04-computer-vision/28-world-models-video-diffusion/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/01-text-processing/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/02-bag-of-words-tfidf/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/03-word-embeddings-word2vec/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/04-glove-fasttext-subword/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/05-sentiment-analysis/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/06-named-entity-recognition/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/07-pos-tagging-parsing/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/08-cnns-rnns-for-text/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/09-sequence-to-sequence/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/10-attention-mechanism/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/11-machine-translation/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/12-text-summarization/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/13-question-answering/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/14-information-retrieval-search/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/15-topic-modeling/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/16-text-generation-pre-transformer/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/17-chatbots-rule-to-neural/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/18-multilingual-nlp/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/19-subword-tokenization/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/20-structured-outputs-constrained-decoding/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/21-nli-textual-entailment/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/22-embedding-models-deep-dive/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/23-chunking-strategies-rag/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/24-coreference-resolution/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/25-entity-linking/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/26-relation-extraction-kg/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/27-llm-evaluation-frameworks/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/28-long-context-evaluation/docs/ru.md
  • i18n/ru/phases/05-nlp-foundations-to-advanced/29-dialogue-state-tracking/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/01-audio-fundamentals/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/02-spectrograms-mel-features/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/03-audio-classification/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/04-speech-recognition-asr/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/05-whisper-architecture-finetuning/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/06-speaker-recognition-verification/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/07-text-to-speech/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/08-voice-cloning-conversion/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/09-music-generation/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/10-audio-language-models/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/11-real-time-audio-processing/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/12-voice-assistant-pipeline/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/13-neural-audio-codecs/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/14-voice-activity-detection-turn-taking/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/15-streaming-speech-to-speech-moshi-hibiki/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/16-anti-spoofing-audio-watermarking/docs/ru.md
  • i18n/ru/phases/06-speech-and-audio/17-audio-evaluation-metrics/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/01-why-transformers/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/02-self-attention-from-scratch/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/03-multi-head-attention/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/04-positional-encoding/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/05-full-transformer/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/06-bert-masked-language-modeling/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/07-gpt-causal-language-modeling/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/08-t5-bart-encoder-decoder/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/09-vision-transformers/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/10-audio-transformers-whisper/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/11-mixture-of-experts/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/12-kv-cache-flash-attention/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/13-scaling-laws/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/14-build-a-transformer-capstone/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/15-attention-variants/docs/ru.md
  • i18n/ru/phases/07-transformers-deep-dive/16-speculative-decoding/docs/ru.md
  • i18n/ru/phases/08-generative-ai/01-generative-models-taxonomy-history/docs/ru.md
  • i18n/ru/phases/08-generative-ai/02-autoencoders-vae/docs/ru.md
  • i18n/ru/phases/08-generative-ai/03-gans-generator-discriminator/docs/ru.md
  • i18n/ru/phases/08-generative-ai/04-conditional-gans-pix2pix/docs/ru.md
  • i18n/ru/phases/08-generative-ai/05-stylegan/docs/ru.md
  • i18n/ru/phases/08-generative-ai/06-diffusion-ddpm-from-scratch/docs/ru.md
  • i18n/ru/phases/08-generative-ai/07-latent-diffusion-stable-diffusion/docs/ru.md
  • i18n/ru/phases/08-generative-ai/08-controlnet-lora-conditioning/docs/ru.md
  • i18n/ru/phases/08-generative-ai/09-inpainting-outpainting-editing/docs/ru.md
  • i18n/ru/phases/08-generative-ai/10-video-generation/docs/ru.md
  • i18n/ru/phases/08-generative-ai/11-audio-generation/docs/ru.md
  • i18n/ru/phases/08-generative-ai/12-3d-generation/docs/ru.md
  • i18n/ru/phases/08-generative-ai/13-flow-matching-rectified-flows/docs/ru.md
  • i18n/ru/phases/08-generative-ai/14-evaluation-fid-clip-score/docs/ru.md
  • i18n/ru/phases/08-generative-ai/19-visual-autoregressive-var/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/01-mdps-states-actions-rewards/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/02-dynamic-programming/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/03-monte-carlo-methods/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/04-q-learning-sarsa/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/05-dqn/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/06-policy-gradients-reinforce/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/07-actor-critic-a2c-a3c/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/08-ppo/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/09-reward-modeling-rlhf/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/10-multi-agent-rl/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/11-sim-to-real-transfer/docs/ru.md
  • i18n/ru/phases/09-reinforcement-learning/12-rl-for-games/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/01-tokenizers/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/02-building-a-tokenizer/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/03-data-pipelines/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/04-pre-training-mini-gpt/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/05-scaling-distributed/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/06-instruction-tuning-sft/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/07-rlhf/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/08-dpo/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/09-constitutional-ai-self-improvement/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/10-evaluation/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/11-quantization/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/12-inference-optimization/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/13-building-complete-llm-pipeline/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/14-open-models-architecture-walkthroughs/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/15-speculative-decoding-eagle3/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/16-differential-attention-v2/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/17-native-sparse-attention/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/18-multi-token-prediction/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/19-dualpipe-parallelism/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/20-deepseek-v3-walkthrough/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/21-jamba-hybrid-ssm-transformer/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/22-async-hogwild-inference/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/25-speculative-decoding/docs/ru.md
  • i18n/ru/phases/10-llms-from-scratch/34-gradient-checkpointing/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/01-prompt-engineering/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/02-few-shot-cot/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/03-structured-outputs/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/04-embeddings/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/05-context-engineering/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/06-rag/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/07-advanced-rag/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/08-fine-tuning-lora/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/09-function-calling/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/10-evaluation/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/11-caching-cost/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/12-guardrails/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/13-production-app/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/14-model-context-protocol/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/15-prompt-caching/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/16-langgraph-state-machines/docs/ru.md
  • i18n/ru/phases/11-llm-engineering/17-agent-framework-tradeoffs/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/01-vision-transformer-patch-tokens/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/02-clip-contrastive-pretraining/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/03-blip2-qformer-bridge/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/04-flamingo-gated-cross-attention/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/05-llava-visual-instruction-tuning/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/06-any-resolution-patch-n-pack/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/07-open-weight-vlm-recipes/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/08-llava-onevision-single-multi-video/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/09-qwen-vl-family-dynamic-fps/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/10-internvl3-native-multimodal/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/11-chameleon-early-fusion-tokens/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/12-emu3-next-token-for-generation/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/13-transfusion-autoregressive-diffusion/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/14-show-o-discrete-diffusion-unified/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/15-janus-pro-decoupled-encoders/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/16-mio-any-to-any-streaming/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/17-video-language-temporal-grounding/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/18-long-video-million-token/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/19-audio-language-whisper-to-af3/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/20-omni-models-thinker-talker/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/21-embodied-vlas-openvla-pi0-groot/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/22-document-diagram-understanding/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/23-colpali-vision-native-rag/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/24-multimodal-rag-cross-modal/docs/ru.md
  • i18n/ru/phases/12-multimodal-ai/25-multimodal-agents-computer-use/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/01-the-tool-interface/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/02-function-calling-deep-dive/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/03-parallel-and-streaming-tool-calls/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/04-structured-output/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/05-tool-schema-design/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/06-mcp-fundamentals/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/07-building-an-mcp-server/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/08-building-an-mcp-client/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/09-mcp-transports/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/10-mcp-resources-and-prompts/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/11-mcp-sampling/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/12-mcp-roots-and-elicitation/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/13-mcp-async-tasks/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/14-mcp-apps/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/15-mcp-security-tool-poisoning/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/16-mcp-security-oauth-2-1/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/17-mcp-gateways-and-registries/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/18-mcp-auth-production/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/19-a2a-protocol/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/20-opentelemetry-genai/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/21-llm-routing-layer/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/22-skills-and-agent-sdks/docs/ru.md
  • i18n/ru/phases/13-tools-and-protocols/23-capstone-tool-ecosystem/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/01-the-agent-loop/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/02-rewoo-plan-and-execute/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/03-reflexion-verbal-rl/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/04-tree-of-thoughts-lats/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/05-self-refine-and-critic/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/06-tool-use-and-function-calling/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/07-memory-virtual-context-memgpt/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/08-memory-blocks-sleep-time-compute/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/09-hybrid-memory-mem0/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/10-skill-libraries-voyager/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/11-planning-htn-and-evolutionary/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/12-anthropic-workflow-patterns/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/13-langgraph-stateful-graphs/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/14-autogen-actor-model/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/15-crewai-role-based-crews/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/16-openai-agents-sdk/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/17-claude-agent-sdk/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/18-agno-and-mastra-runtimes/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/19-benchmarks-swebench-gaia/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/20-benchmarks-webarena-osworld/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/21-computer-use-agents/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/22-voice-agents-pipecat-livekit/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/23-otel-genai-conventions/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/24-agent-observability-platforms/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/25-multi-agent-debate/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/26-failure-modes-agentic/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/27-prompt-injection-defense/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/28-orchestration-patterns/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/29-production-runtimes/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/30-eval-driven-agent-development/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/31-agent-workbench-why-models-fail/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/32-minimal-agent-workbench/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/33-instructions-as-executable-constraints/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/34-repo-memory-and-state/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/35-initialization-scripts/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/36-scope-contracts/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/37-runtime-feedback-loops/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/38-verification-gates/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/39-reviewer-agent/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/40-multi-session-handoff/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/41-workbench-for-real-repos/docs/ru.md
  • i18n/ru/phases/14-agent-engineering/42-agent-workbench-capstone/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/01-long-horizon-agents/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/02-star-family-reasoning/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/03-alphaevolve-evolutionary-coding/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/04-darwin-godel-machine/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/05-ai-scientist-v2/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/06-automated-alignment-research/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/07-recursive-self-improvement/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/08-bounded-self-improvement/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/09-coding-agent-landscape/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/10-claude-code-permission-modes/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/11-browser-agents/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/12-durable-execution/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/13-cost-governors/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/14-kill-switches-canaries/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/15-propose-then-commit/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/16-checkpoints-rollback/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/17-constitutional-ai/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/18-llama-guard/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/19-anthropic-rsp/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/20-openai-preparedness-deepmind-fsf/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/21-metr-external-evaluation/docs/ru.md
  • i18n/ru/phases/15-autonomous-systems/22-cais-caisi-societal-risk/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/01-why-multi-agent/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/02-fipa-acl-heritage/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/03-communication-protocols/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/04-primitive-model/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/05-supervisor-orchestrator-pattern/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/06-hierarchical-architecture/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/07-society-of-mind-debate/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/08-role-specialization/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/09-parallel-swarm-networks/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/10-group-chat-speaker-selection/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/11-handoffs-and-routines/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/12-a2a-protocol/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/13-shared-memory-blackboard/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/14-consensus-and-bft/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/15-voting-debate-topology/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/16-negotiation-bargaining/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/17-generative-agents-simulation/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/18-theory-of-mind-coordination/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/19-swarm-optimization-pso-aco/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/20-marl-maddpg-qmix-mappo/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/21-agent-economies/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/22-production-scaling-queues-checkpoints/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/23-failure-modes-mast-groupthink/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/24-evaluation-coordination-benchmarks/docs/ru.md
  • i18n/ru/phases/16-multi-agent-and-swarms/25-case-studies-2026-sota/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/01-managed-llm-platforms/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/02-inference-platform-economics/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/03-gpu-autoscaling-kubernetes/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/04-vllm-serving-internals/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/05-eagle3-speculative-decoding/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/06-sglang-radixattention/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/07-tensorrt-llm-blackwell/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/08-inference-metrics-goodput/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/09-production-quantization/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/10-cold-start-mitigation/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/11-multi-region-kv-locality/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/12-edge-inference/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/13-llm-observability/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/14-prompt-semantic-caching/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/15-batch-apis/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/16-model-routing/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/17-disaggregated-prefill-decode/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/18-vllm-production-stack-lmcache/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/19-ai-gateways/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/20-shadow-canary-progressive/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/21-ab-testing-llm-features/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/22-load-testing-llm-apis/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/23-sre-for-ai/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/24-chaos-engineering-llm/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/25-security-secrets-audit/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/26-compliance-frameworks/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/27-finops-llms/docs/ru.md
  • i18n/ru/phases/17-infrastructure-and-production/28-self-hosted-serving-selection/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/01-instruction-following-alignment-signal/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/02-reward-hacking-goodhart/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/03-direct-preference-optimization-family/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/04-sycophancy-rlhf-amplification/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/05-constitutional-ai-rlaif/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/06-mesa-optimization-deceptive-alignment/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/07-sleeper-agents-persistent-deception/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/08-in-context-scheming-frontier-models/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/09-alignment-faking/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/10-ai-control-subversion/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/11-scalable-oversight-weak-to-strong/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/12-red-teaming-pair-automated-attacks/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/13-many-shot-jailbreaking/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/14-ascii-art-visual-jailbreaks/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/15-indirect-prompt-injection/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/16-red-team-tooling-garak-llamaguard-pyrit/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/17-wmdp-dual-use-evaluation/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/18-frontier-safety-frameworks-rsp-pf-fsf/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/19-model-welfare-research/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/20-bias-representational-harm/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/21-fairness-criteria-group-individual-counterfactual/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/22-differential-privacy-for-llms/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/23-watermarking-synthid-stable-signature-c2pa/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/24-regulatory-frameworks-eu-us-uk-korea/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/25-echoleak-cves-for-ai/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/26-model-system-dataset-cards/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/27-data-provenance-training-governance/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/28-alignment-research-ecosystem/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/29-moderation-systems-openai-perspective-llamaguard/docs/ru.md
  • i18n/ru/phases/18-ethics-safety-alignment/30-dual-use-risk-cyber-bio-chem-nuclear/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/01-terminal-native-coding-agent/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/02-rag-over-codebase/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/03-realtime-voice-assistant/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/04-multimodal-document-qa/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/05-autonomous-research-agent/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/06-devops-troubleshooting-agent/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/07-end-to-end-fine-tuning-pipeline/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/08-production-rag-chatbot/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/09-code-migration-agent/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/10-multi-agent-software-team/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/11-llm-observability-dashboard/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/12-video-understanding-pipeline/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/13-mcp-server-with-registry/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/14-speculative-decoding-server/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/15-constitutional-safety-harness/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/16-github-issue-to-pr-agent/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/17-personal-ai-tutor/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/20-agent-harness-loop-contract/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/21-tool-registry-schema-validation/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/22-jsonrpc-stdio-transport/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/23-function-call-dispatcher/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/24-plan-execute-control-flow/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/25-verification-gates-observation-budget/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/26-sandbox-runner-denylist/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/27-eval-harness-fixture-tasks/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/28-observability-otel-traces/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/29-end-to-end-coding-task-demo/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/30-bpe-tokenizer-from-scratch/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/31-tokenized-dataset-sliding-window/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/32-token-positional-embeddings/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/33-multihead-self-attention/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/34-transformer-block/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/35-gpt-model-assembly/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/36-training-loop-eval/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/37-loading-pretrained-weights/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/38-classifier-finetuning/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/39-instruction-tuning-sft/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/40-dpo-from-scratch/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/41-eval-pipeline/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/42-large-corpus-downloader/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/43-hdf5-tokenized-corpus/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/44-cosine-lr-warmup/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/45-gradient-clipping-amp/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/46-gradient-accumulation/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/47-checkpoint-save-resume/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/48-distributed-fsdp-ddp/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/49-lm-eval-harness/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/50-hypothesis-generator/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/51-literature-retrieval/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/52-experiment-runner/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/53-result-evaluator/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/54-paper-writer/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/55-critic-loop/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/56-iteration-scheduler/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/57-end-to-end-research-demo/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/58-vision-encoder-patches/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/59-vit-transformer/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/60-projection-layer-modality-align/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/61-cross-attention-fusion/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/62-vision-language-pretraining/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/63-multimodal-eval/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/64-chunking-strategies-advanced/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/65-hybrid-retrieval-bm25-dense/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/66-reranker-cross-encoder/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/67-query-rewriting-hyde/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/68-rag-eval-precision-recall/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/69-end-to-end-rag-system/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/70-task-spec-format/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/71-classical-metrics/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/72-code-exec-metric/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/73-perplexity-calibration/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/74-leaderboard-aggregation/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/75-end-to-end-eval-runner/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/76-collective-ops-from-scratch/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/77-data-parallel-ddp/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/78-zero-parameter-sharding/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/79-pipeline-parallel/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/80-checkpoint-sharded-resume/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/81-end-to-end-distributed-train/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/82-jailbreak-taxonomy/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/83-prompt-injection-detector/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/84-refusal-evaluation/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/85-content-classifier-integration/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/86-constitutional-rules-engine/docs/ru.md
  • i18n/ru/phases/19-capstone-projects/87-end-to-end-safety-gate/docs/ru.md
  • i18n/tr/README.md
  • i18n/zh/README.md
  • languages.json
  • scripts/audit_ru_translations.py
  • scripts/build_readme_i18n.py
  • scripts/readme_translations.py
  • scripts/test_translate_workflow.py
  • scripts/tests/test_audit_ru_translations.py
  • scripts/tests/test_readme_i18n.py
  • scripts/translate_lessons.py
  • site/build.js
  • site/content-source.js
  • site/lang-picker.js
  • site/lesson.html
  • site/tests/runtime-i18n.test.js

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

📝 Walkthrough

Walkthrough

The PR adds Claude certification translation scopes, sharded publication, Russian translation quality audits, expanded Russian README localization, and runtime support for translated certification lessons with English fallbacks.

Changes

Internationalization pipeline

Layer / File(s) Summary
Scoped translation engine
scripts/translate_lessons.py, scripts/test_translate_workflow.py
Translation discovery, validation, caching, orphan cleanup, reviewed-target protection, certification scopes, and CLI coverage now support core and Claude certification lessons.
Sharded translation workflow and publication
.github/workflows/translate.yml, docs/i18n.md, .gitignore, languages.json
The workflow builds scope-specific matrices, validates shards, audits Russian outputs, publishes selected slices and caches, and documents the new scope and CLI behavior.
Russian translation audit and CI validation
scripts/audit_ru_translations.py, scripts/tests/test_audit_ru_translations.py, .github/workflows/curriculum.yml
The fail-closed auditor validates manifests, hashes, approval metadata, encoding, content, and Markdown structure. CI runs the auditor and related localization tests.
Russian README generation and coverage
scripts/build_readme_i18n.py, scripts/readme_translations.py, i18n/ru/README.md, scripts/tests/test_readme_i18n.py
Russian prose and structural README translations were expanded. Rendering and coverage tests validate translation completeness and protected content.
Runtime lesson localization
site/build.js, site/content-source.js, site/lang-picker.js, site/lesson.html, site/tests/runtime-i18n.test.js
Runtime metadata, repository URLs, lesson loading, certification language selection, localized navigation, fallback behavior, and related tests now support translated lessons.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related PRs

Suggested reviewers: rohitg00

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 9.90% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the main change: adding self-contained Russian localization infrastructure and content.
Description check ✅ Passed The description directly explains the Russian localization, runtime support, quality infrastructure, translated corpus, and validation results.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/translate.yml (1)

261-264: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Handle never-created paths separately. git add -f -- "$SLICE" "$CACHE" fails when a path matches neither the worktree nor the index, so a legitimate no-op fails the job. Stage each path only when it exists or has tracked entries. git add -f already stages deletions under a tracked $SLICE; do not add -A.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/translate.yml around lines 261 - 264, Update the staging
logic surrounding the shown publish-copy commands to handle never-created $SLICE
and $CACHE paths separately: invoke git add -f for each path only when it exists
in the worktree or has tracked index entries, while retaining deletion staging
for tracked $SLICE paths and not adding -A.
🧹 Nitpick comments (6)
scripts/tests/test_audit_ru_translations.py (1)

63-70: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Start the audit with sys.executable.

"python3" resolves through PATH, so the subprocess can run a different interpreter than the test runner. sys.executable keeps both on the same interpreter and also removes the Ruff S607 partial-path finding.

♻️ Proposed refactor
+import sys
+
     def run_audit(self, root: Path, *args: str) -> subprocess.CompletedProcess[str]:
         return subprocess.run(
-            ["python3", str(SCRIPT), "--root", str(root), *args],
+            [sys.executable, str(SCRIPT), "--root", str(root), *args],
             text=True,
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/tests/test_audit_ru_translations.py` around lines 63 - 70, Update the
run_audit method to invoke SCRIPT using sys.executable instead of the hardcoded
"python3" command, preserving the existing arguments and subprocess behavior.

Source: Linters/SAST tools

scripts/audit_ru_translations.py (1)

33-33: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Reuse the module-level FENCE_RE instead of the inline duplicate.

Line 81 recompiles the same pattern that FENCE_RE already holds, and FENCE_RE has no other use. FENCE_RE.match(candidate) behaves identically for a single line. This removes the duplication and the per-line compile lookup.

♻️ Proposed refactor
-        match = re.match(r"^ {0,3}(`{3,}|~{3,})([^\n]*)$", candidate)
+        match = FENCE_RE.match(candidate)

Also applies to: 79-81

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/audit_ru_translations.py` at line 33, Update the fence parsing logic
around the line-79–81 candidate check to reuse the module-level FENCE_RE via
FENCE_RE.match(candidate), removing the inline re.compile call while preserving
identical matching behavior.
site/lesson.html (1)

3554-3556: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Localize the quiz notice text.

The notice renders only when the page language is not English, but the text is hardcoded English. A Russian reader sees an English sentence inside translated prose. Map the notice text by language code, and keep English as the fallback.

♻️ Proposed change to localize the notice
-        if (certificationLesson && document.documentElement.lang !== 'en') {
-          html += '<div class="quiz-language-note">Certification quizzes remain in English.</div>';
-        }
+        if (certificationLesson && document.documentElement.lang !== 'en') {
+          var QUIZ_NOTES = { ru: 'Вопросы сертификации остаются на английском языке.' };
+          var note = QUIZ_NOTES[document.documentElement.lang] || 'Certification quizzes remain in English.';
+          html += '<div class="quiz-language-note">' + escapeHtml(note) + '</div>';
+        }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@site/lesson.html` around lines 3554 - 3556, Update the certificationLesson
notice block to select the quiz-language message from the page language code,
providing the appropriate localized text and retaining English as the fallback.
Keep the existing non-English display condition and append the selected message
through the existing html construction.
site/tests/runtime-i18n.test.js (1)

166-192: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Mount the picker to cover the option list.

getElementById returns null at line 177, so mount never runs. The test only exercises the init else-branch. The test name claims the picker accepts Russian and is not hidden, but the assertions do not check the rendered option list. The main change in site/lang-picker.js is the certification filter in renderList at line 96, which stays uncovered.

Return a stub host element with a classList, appendChild, and querySelector, then assert that the list contains ru and omits tr.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@site/tests/runtime-i18n.test.js` around lines 166 - 192, Update the test
setup around getElementById and the DOMContentLoaded callback so the picker
mounts against a stub host implementing classList, appendChild, and
querySelector. Capture the rendered option list, then assert it includes the
Russian option and excludes the Turkish option, exercising renderList’s
certification-language filtering while preserving the existing current-language
assertion.
docs/i18n.md (1)

68-71: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Document the combined local cache file.

scripts/translate_lessons.py line 50 returns i18n/<lang>/.translate-cache.json for a core run without --phase. This section lists only the per-phase and certification cache files. Add the combined cache so a local full run is not surprising.

📝 Proposed wording
 Every lesson is keyed by the `sha256` of its English source. Core phase jobs use
 `i18n/<lang>/.cache/<phase>.json`; the Claude certification job uses
-`i18n/<lang>/.cache/certifications-claude.json`. Caches are written per lesson
-and **published to the `translations` branch when the job finishes**. So:
+`i18n/<lang>/.cache/certifications-claude.json`. A full local core run without
+`--phase` uses the single combined `i18n/<lang>/.translate-cache.json` instead.
+Caches are written per lesson and **published to the `translations` branch when
+the job finishes**. So:
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/i18n.md` around lines 68 - 71, The cache documentation in docs/i18n.md
omits the combined local cache returned by scripts/translate_lessons.py for core
runs without --phase. Update the cache-file list near the phase and
certification entries to include i18n/<lang>/.translate-cache.json, while
preserving the existing published-cache descriptions.
.github/workflows/translate.yml (1)

68-93: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Declare set -euo pipefail in the prepare step.

The regression tests run this script with bash -euo pipefail -c (see scripts/test_translate_workflow.py line 209 and line 235). The workflow itself runs with the default GitHub shell, which enables -e but not -u or -o pipefail. The tested behavior and the production behavior therefore differ.

Without pipefail, a failure of find or grep in the PHASE_LIST pipeline is not fatal. PHASE_LIST then becomes empty, CORE_SLICES becomes [], and the translate job is skipped instead of failing.

♻️ Proposed change
         run: |
+          set -euo pipefail
           # Pushes cover every publishable source. Manual runs retain the prior
           # core default and can explicitly select certifications/claude or all.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/translate.yml around lines 68 - 93, Add set -euo pipefail
at the start of the prepare step’s multiline shell script before the
SELECTED_SCOPE logic. Ensure the existing PHASE_LIST pipeline and subsequent
variable references execute with strict error, unset-variable, and
pipeline-failure handling.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@i18n/ru/README.md`:
- Around line 993-997: Replace the Unicode box-drawing diagram for the outputs/
directory in the README with a Mermaid or SVG representation showing prompts/
and skills/ (including SKILL.md), then regenerate the README while preserving
the documented structure.

In `@languages.json`:
- Around line 67-68: Before enabling ci for the nllb Russian entry in
languages.json, add and publish the required i18n/ru/.quality/manifest.json so
it is present in the translations branch and all Russian shards pass the quality
gate.

In `@scripts/audit_ru_translations.py`:
- Around line 180-189: Update the metadata checks in the translation-audit
function by removing inline code spans and Markdown link destinations from
target_prose before assigning metadata_surface. Keep visible link text and
surrounding prose intact, then run the existing English metadata label/value
checks against the cleaned first 15 lines.

In `@scripts/test_translate_workflow.py`:
- Around line 363-373: Update the invoke helper to preserve the integer status
returned directly by TRANSLATOR.main() when no SystemExit is raised, while
retaining the existing SystemExit handling for raised exits. Ensure
reviewed-target failures returning 2 are reported as nonzero instead of falling
through to code = 0.

In `@scripts/tests/test_audit_ru_translations.py`:
- Around line 167-176: Update test_target_must_be_nonempty_utf8 so each
payload’s manifest target_sha256 is replaced with that payload’s SHA-256 before
run_audit, allowing validation to reach the content checks. Assert the specific
empty-target and invalid-UTF-8 detail for the corresponding payload instead of
only checking structurally_invalid.

In `@site/content-source.js`:
- Around line 95-111: Update loadLessonDocument so translationUrl(path,
requested) is invoked inside the promise chain, ensuring synchronous
invalid-language errors are converted into rejections handled by the existing
catch fallback. Preserve the current behavior for valid translations and English
embedded or canonical content.

In `@site/lang-picker.js`:
- Around line 208-215: Update isLessonPage() to identify lesson pages from the
pathname or page filename rather than the presence of the path query parameter.
Preserve path-link handling for lesson.html while ensuring init() still calls
applyDir(current()) on index.html even when path and lang query parameters are
present.

---

Outside diff comments:
In @.github/workflows/translate.yml:
- Around line 261-264: Update the staging logic surrounding the shown
publish-copy commands to handle never-created $SLICE and $CACHE paths
separately: invoke git add -f for each path only when it exists in the worktree
or has tracked index entries, while retaining deletion staging for tracked
$SLICE paths and not adding -A.

---

Nitpick comments:
In @.github/workflows/translate.yml:
- Around line 68-93: Add set -euo pipefail at the start of the prepare step’s
multiline shell script before the SELECTED_SCOPE logic. Ensure the existing
PHASE_LIST pipeline and subsequent variable references execute with strict
error, unset-variable, and pipeline-failure handling.

In `@docs/i18n.md`:
- Around line 68-71: The cache documentation in docs/i18n.md omits the combined
local cache returned by scripts/translate_lessons.py for core runs without
--phase. Update the cache-file list near the phase and certification entries to
include i18n/<lang>/.translate-cache.json, while preserving the existing
published-cache descriptions.

In `@scripts/audit_ru_translations.py`:
- Line 33: Update the fence parsing logic around the line-79–81 candidate check
to reuse the module-level FENCE_RE via FENCE_RE.match(candidate), removing the
inline re.compile call while preserving identical matching behavior.

In `@scripts/tests/test_audit_ru_translations.py`:
- Around line 63-70: Update the run_audit method to invoke SCRIPT using
sys.executable instead of the hardcoded "python3" command, preserving the
existing arguments and subprocess behavior.

In `@site/lesson.html`:
- Around line 3554-3556: Update the certificationLesson notice block to select
the quiz-language message from the page language code, providing the appropriate
localized text and retaining English as the fallback. Keep the existing
non-English display condition and append the selected message through the
existing html construction.

In `@site/tests/runtime-i18n.test.js`:
- Around line 166-192: Update the test setup around getElementById and the
DOMContentLoaded callback so the picker mounts against a stub host implementing
classList, appendChild, and querySelector. Capture the rendered option list,
then assert it includes the Russian option and excludes the Turkish option,
exercising renderList’s certification-language filtering while preserving the
existing current-language assertion.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: a431d7d5-68ad-416b-ac35-a2b89fa74bca

📥 Commits

Reviewing files that changed from the base of the PR and between 7c33235 and 173a1cb.

📒 Files selected for processing (18)
  • .github/workflows/curriculum.yml
  • .github/workflows/translate.yml
  • .gitignore
  • docs/i18n.md
  • i18n/ru/README.md
  • languages.json
  • scripts/audit_ru_translations.py
  • scripts/build_readme_i18n.py
  • scripts/readme_translations.py
  • scripts/test_translate_workflow.py
  • scripts/tests/test_audit_ru_translations.py
  • scripts/tests/test_readme_i18n.py
  • scripts/translate_lessons.py
  • site/build.js
  • site/content-source.js
  • site/lang-picker.js
  • site/lesson.html
  • site/tests/runtime-i18n.test.js

Comment thread i18n/ru/README.md Outdated
Comment thread languages.json
Comment thread scripts/audit_ru_translations.py Outdated
Comment thread scripts/test_translate_workflow.py
Comment thread scripts/tests/test_audit_ru_translations.py Outdated
Comment thread site/content-source.js
Comment thread site/lang-picker.js
@w3lld1 w3lld1 changed the title feat(i18n): add production Russian localization feat(i18n): add self-contained Russian localization Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant