Files
nifodea/.agent/task-manifest.json
T
2026-07-22 12:40:42 +03:00

80 lines
3.6 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"$schema": "metaagent-task-manifest",
"version": "1.0",
"session_id": "metaagent-003",
"goal": "i18n (ru/en) — инфраструктура и обёртка строк, контроль актуальности переводов",
"created_at": "2026-07-22T18:00:00Z",
"tasks": [
{
"id": "T9",
"title": "i18n инфраструктура (cli/i18n.py)",
"description": "Создан модуль cli/i18n.py с Translator, t(), set_lang(), setup_i18n(). Язык: CF_LANG (env), по умолчанию 'ru'. Русские переводы — полные, английский — скелет (fallback на ru).",
"type": "feature",
"files": ["cli/i18n.py"],
"depends_on": [],
"acceptance_criteria": [
"t() возвращает русский текст при CF_LANG=ru",
"t() возвращает русский текст при CF_LANG=en (fallback)",
"t('nonexistent') возвращает 'nonexistent'",
"setup_i18n() читает CF_LANG из окружения"
],
"status": "completed"
},
{
"id": "T10",
"title": "Обёртка CLI-строк в t()",
"description": "Все user-facing строки в cli/main.py и cli/config.py заменены на вызовы t('key', ...). Русский словарь содержит ~150 ключей.",
"type": "refactor",
"files": ["cli/main.py", "cli/config.py"],
"depends_on": ["T9"],
"acceptance_criteria": [
"Все help-строки typer.Option/Argument через t()",
"Все console.print сообщения через t()",
"Все docstrings оставлены как комментарии (typer не использует)",
"ruff check проходит"
],
"status": "completed"
},
{
"id": "T11",
"title": "AI-промпты через i18n",
"description": "prompt.analyze, prompt.advice, prompt.scenario_comparison добавлены в словарь i18n, prompts.py использует t().",
"type": "refactor",
"files": ["ai/prompts.py"],
"depends_on": ["T9"],
"acceptance_criteria": [
"ANALYZE_PROMPT = t('prompt.analyze')",
"ADVICE_PROMPT = t('prompt.advice')",
"SCENARIO_COMPARISON_PROMPT = t('prompt.scenario_comparison')"
],
"status": "completed"
},
{
"id": "T12",
"title": "Тесты i18n",
"description": "test_i18n.py: базовые тесты Translator, t(), set_lang, fallback, неизвестный ключ.",
"type": "test",
"files": ["tests/test_i18n.py"],
"depends_on": ["T9"],
"acceptance_criteria": [
"pytest tests/test_i18n.py проходит",
"Покрытие: ru default, en fallback, неизвестный ключ, format args"
],
"status": "completed"
},
{
"id": "T13",
"title": "Аудит и контроль актуальности переводов",
"description": "Периодическая проверка: все ли ключи из TRANSLATIONS['ru'] имеют соответствующий перевод в TRANSLATIONS['en']. При добавлении новых фич — новые ключи должны добавляться в оба словаря.",
"type": "audit",
"files": ["cli/i18n.py"],
"depends_on": ["T9"],
"acceptance_criteria": [
"Все ru-ключи имеют en-перевод или fallback",
"При добавлении нового t('key') он регистрируется в _r()"
],
"status": "pending"
}
]
}