|
1 | 1 | # Текущее состояние |
2 | 2 |
|
3 | | -## Согласованный контракт (2026-10-02 redesign + 2026-10-03 critic tools) |
| 3 | +## Согласованный контракт (thin pipeline, 2026-10-04) |
4 | 4 |
|
5 | 5 | Semantic flow в `REQUIREMENTS_RU.md`: |
6 | 6 |
|
7 | 7 | 1. Файлы PR + дотянутые missing-target зависимости. |
8 | 8 | 2. Direction: только «нужен перевод?» + направление (Python владеет Git-ops). |
9 | | -3. Prep: placeholders + **identifier atoms** (underscore + CamelCase product) + |
10 | | - presentation map from old target (atoms, CLI flags, short ALLCAPS, colon-form). |
11 | | -4. Whole-file translate (old target = presentation reference only when present) → **draft**. |
12 | | -5. Critic = обязательный tool-using gate (§4.1): DeepSeek всегда, scope = |
13 | | - source PR delta + previous EN; Python drop out-of-delta findings; |
14 | | - workspace + read/grep/apply_patch + mandatory re-read → **reviewed**. |
15 | | -6. Arbiter только на reviewed bytes: GREEN / YELLOW / RED (judge-only, no repair). |
| 9 | +3. Thin whole-file DeepSeek (или unique string replacements без модели). |
| 10 | +4. Publication gates fail-closed: source-locale echo, split-backtick, missing |
| 11 | + includes. Один retry; иначе null. |
| 12 | +5. Tool-using critic **снят**. Reviewed = gated publish. |
| 13 | +6. Arbiter на reviewed bytes: GREEN / YELLOW / RED (judge-only, no repair). |
16 | 14 | 7. YELLOW = успех; RED = continue / ручная правка + `doc_verify`. |
17 | | -8. Soft-publish diagnostics ≠ reader-facing product success. |
18 | | -9. Режимы: `doc_translate`, `doc_verify`, `doc_continue`. |
| 15 | +8. Режимы: `doc_translate`, `doc_verify`, `doc_continue`. |
19 | 16 |
|
20 | | -## Код vs новый critic contract (2026-10-03) |
| 17 | +## Live evidence that forced the cutover |
21 | 18 |
|
22 | | -| Item | Status | |
23 | | -|---|---| |
24 | | -| Identifier atoms / presentation map / draft-reviewed gate | **DONE** (prior) | |
25 | | -| P2 BlobDepot golden harness (one-shot critic era) | **DONE** (prior) | |
26 | | -| REQUIREMENTS §4.1 tool-using critic | **DONE (docs)** + adversarial fixups | |
27 | | -| Plan `knowledge/tool-using-critic-plan.md` | **DONE (docs)** + adversarial fixups | |
28 | | -| Runtime tool loop / client `tool_calls` | **DONE** P1a–g offline + P2 live smoke | |
29 | | -| P0 live DeepSeek tools capability probe | **PASS / GO** — `knowledge/p0-deepseek-tools-probe.md` | |
30 | | -| Offline stub-tool integration tests | **PASS** (`pytest -m 'not live'`, 2026-10-03) | |
31 | | -| P2 live tool-critic smoke (`--wait wait`) | **PASS** (2026-10-03) — `tests/live/test_tool_critic_live.py` | |
| 19 | +- [#54993](https://github.com/ydb-platform/ydb/pull/54993) / [#55003](https://github.com/ydb-platform/ydb/pull/55003) |
| 20 | + (source [#46837](https://github.com/ydb-platform/ydb/pull/46837)): critic |
| 21 | + burn / mangled identifiers. |
| 22 | +- [#54994](https://github.com/ydb-platform/ydb/pull/54994) (source |
| 23 | + [#42314](https://github.com/ydb-platform/ydb/pull/42314)): CI `recovery.md` |
| 24 | + published with **41 lines still Russian**; critic budget RED. |
| 25 | +- Local PoC: same scope via thin DeepSeek → 8/8 OK, 0 Cyrillic, 0 mangling |
| 26 | + (`SINTJURI_SECRET_KEY` + `YANDEX_CLOUD_FOLDER`). |
32 | 27 |
|
33 | | -> [!success] Local BlobDepot critic+arbiter → GREEN (YC grant) |
34 | | -> Arbiter noise from [#54927](https://github.com/ydb-platform/ydb/pull/54927) fixed: |
35 | | -> default-GREEN prompt, drop bad snippets / «не требуется», drop source-only TOC |
36 | | -> demands (`selfheal.md`). Live harness PASS GREEN |
37 | | -> (`scripts/probe_blobdepot_critic_live.py`, research |
38 | | -> `knowledge/blobdepot-critic-research.md`). Residual prose (`Blob depot`) may |
39 | | -> remain editorial but no longer blocks the gate. |
| 28 | +## Tip pin |
40 | 29 |
|
41 | | -## Critic TRANSPORT (runs 37009373894 → 37027975808) — real root cause |
42 | | - |
43 | | -Not «provider flaky». Translator OK; critic 2× `TRANSPORT`, `http_status=null`. |
44 | | - |
45 | | -| Run | tip | wall per critic attempt | limiter | |
46 | | -|---|---|---|---| |
47 | | -| 37009373894 | pre-timeout bump | ~182s | **our** urllib 180s | |
48 | | -| 37027975808 | `4f2867c` (600s) | ~273s | **provider** silent wall | |
49 | | - |
50 | | -Fix on tip: one pair/chunk, relevant glossary only, cap `max_output_tokens`. |
51 | | -Tool-using critic keeps one-pair chunking; patches shrink generation further. |
52 | | - |
53 | | -## Quality classes on #54842 / #54888 lineage |
54 | | - |
55 | | -Manual review of [#54888](https://github.com/ydb-platform/ydb/pull/54888) |
56 | | -(source [#50839](https://github.com/ydb-platform/ydb/pull/50839) BlobDepot): |
57 | | -structure/links/images largely OK; residual prose/literals (`--wait wait`, |
58 | | -awkward phrasing, inconsistent inline-code). Whole-file critic did not reliably |
59 | | -apply fixes. Tool-using critic is the agreed remedy (not arbiter↔repair loops). |
60 | | - |
61 | | -## BlobDepot translation lineage (2026-10-03 P2) |
62 | | - |
63 | | -- Source: [#50839](https://github.com/ydb-platform/ydb/pull/50839) (merged) |
64 | | -- Stale [#54888](https://github.com/ydb-platform/ydb/pull/54888) closed; branch |
65 | | - `translation/pr-50839` deleted. |
66 | | -- New open translation: [#54924](https://github.com/ydb-platform/ydb/pull/54924) |
67 | | -- Workflow: [37100488317](https://github.com/ydb-platform/ydb/actions/runs/37100488317) |
68 | | - (`doc_translate` label on #50839, action `@v1.0.1` = tip `164f3e6`) |
69 | | - |
70 | | -## Live clean re-run history |
71 | | - |
72 | | -- 2026-10-02: tip then produced #54877 → … → **#54888** (one-shot critic era). |
73 | | -- 2026-10-03: P2 tool-critic live PASS; clean re-run → **#54924** (workflow in progress). |
74 | | - |
75 | | -## YC / live model env (names found vs missing) |
76 | | - |
77 | | -**Found:** `YANDEX_API_KEY`, `YANDEX_FOLDER_ID`, `YDBDOC_MODEL*`, |
78 | | -`YDBDOC_MODEL_HTTP_TIMEOUT_SECONDS`, `YDBDOC_DAILY_BUDGET_RUB`, `YDBDOC_LIVE`, |
79 | | -smoke aliases `YC_API_KEY` / `YDBDOC_YC_API_KEY` / `YC_FOLDER_ID` / |
80 | | -`YDBDOC_MODEL_TRANSLATE`, hardcoded `OPENAI_ENDPOINT` / `NATIVE_ENDPOINT`. |
81 | | - |
82 | | -**Missing for grant-limited paid tests:** grant id / remaining quota env names; |
83 | | -unified live creds (prod `YANDEX_*` vs smoke `YC_*`). DeepSeek tool_calls |
84 | | -proof: **done** (`knowledge/p0-deepseek-tools-probe.md`). Production tools |
85 | | -feature-flag dual-path **rejected** (rollback = tip revert). Details: |
86 | | -`knowledge/tool-using-critic-plan.md`. |
| 30 | +Workflow `ydbdoc-review.yml` uses |
| 31 | +`ydb-platform/ydbdoc-review-ng/.github/actions/doc-review@v1.0.1`. |
| 32 | +Move `v1.0.1` with thin-pipeline tip after push. |
0 commit comments