fipi-bank личная копия открытого банка ФИПИ Методология →
← к списку заданий
Математика ЕГЭ (профильный) Биология ОГЭ Математика ОГЭ Русский язык ЕГЭ Русский язык ОГЭ

Первоисточники

Официальные документы ФИПИ, на основании которых построена методология ниже — открываются напрямую, без пересказа.

Methodology: mapping the rus_ege / rus_oge banks to official exam task numbers

Question this answers: the open FIPI bank tags every Russian-language question with КЭС codes (codifiers, e.g. 3.8.7 Знаки препинания в сложном предложении) and an answer_type_code, but not the official task number (ЕГЭ №1-27, ОГЭ №1-13). This document derives the mapping from FIPI's own 2026/2027 documents (read directly) and is explicit about where it is exact, where it is a group, and where the bank mixes exam years. It mirrors MATH_OGE_METHODOLOGY.md; the rule table is encoded in scraper/assign_rus_task_numbers.py (tests: scraper/test_assign_rus_task_numbers.py).

Primary sources (official, fetched 2026-11-11, read directly)

From FIPI's page fipi.ru/{ege,oge}/demoversii-specifikacii-kodifikatory (links to doc.fipi.ru, plain curl from the Mac works, no RU-IP needed). Each year is one zip with three PDFs:

Exam Year Zip Documents inside
ЕГЭ русский язык 2026 (ratified) ru_11_2026.zip РУ-11 ЕГЭ 2026 СПЕЦ (specification), ... КОДИФ (codifier), ... ДЕМО (demo variant)
ЕГЭ русский язык 2027 (draft, "ПРОЕКТ") ru_11_2027.zip СПЕЦ, КОДИФ, ДЕМО
ОГЭ русский язык 2026 ru_9_2026.zip РУ-9 ОГЭ 2026_СПЕЦ, _КОДИФ, _ДЕМО (+ unrelated "Итоговое собеседование" PDFs, not used)
ОГЭ русский язык 2027 (draft) ru_9_2027.zip СПЕЦ, КОДИФ, ДЕМО (+ собеседование)

Primary source = the 2027 draft documents (owner's requirement, 2026-11-11); 2026 is kept as a cross-check. The "Обобщённый план" appendix of the 2027 specification was re-read from the PDFs and diffed token by token against 2026 (second independent check, 2026-11-11): ЕГЭ identical in numbering, КЭС codes, levels and scores (only hyphenation and the row order of task 26 in the PDF text layer differ; total still 27 tasks / 50 points / 210 min). ОГЭ identical in numbering and codes (13 tasks); the only substantive difference: max score of task 13 is 8 in 2027 vs 7 in 2026, total 38 vs 37. The task wording in the tables below is from the 2026 demo (the 2027 demo keeps the same task types). So the number -> КЭС mapping holds for 2027 as is; where 2026 differs (ОГЭ 13 score) it is marked.

Where the documents are on disk: PDFs are re-hosted on the VM under /opt/fipi-bank/media/methodology_sources/rus_ege|rus_oge/{2026,2027}_{specifikatsiya,kodifikator,demo}.pdf (the media/ folder is git-ignored; same layout as math/bio). The dashboard page /methodology?subject=rus_ege|rus_oge links them and renders this file.

Exam structure

ОГЭ (13 tasks, 235 min, 37 points). Task 1 = сжатое изложение of a listened text (audio; open answer), tasks 2-12 short answer (11 tasks), task 13 = сочинение (13.1/13.2/13.3, open). Tasks 2-3 share text 1, tasks 10-13 share text 2.

ОГЭ: task number -> КЭС -> answer type (2026 spec appendix + demo)

№ What it is КЭС in the spec Answer Bank signature
1 Сжатое изложение of a listened text 1.6 open extended_answer 1.6 (43 rows, all with audio)
2 Grammatical basis of sentences 4.22 digits multi_choice 4.22
3 Characteristics of sentences (syntax) 4.21.8, 4.26, 4.27 digits multi_choice, those 3 codes
4 Punctuation rules <-> example sentences 7.26 3 digits matching 7.26
5 Punctuation in text (знаки препинания: запятые, тире, двоеточие, кавычки) 7.26 digits short_answer; the bank tags it with the whole section 7 (22 codes 7.1-7.26)
6 Explanation of a word's spelling 6.14 digits multi_choice 6.14
7 Fill in missing letters 6.14 digits short_answer 6.14
8 Grammar norm (put the word in the right form) 5.3 word short_answer 5.3
9 Replace a phrase by a synonymous one (управление -> согласование) 4.28.1 phrase short_answer; bank tags 4.20.1, 4.20.3, 4.23, 4.28.1
10 Смысловой анализ текста 2.6 digits multi_choice 2.6
11 Выразительные средства лексики 8.2 digits multi_choice 8.2
12 Lexical analysis of a word 4.2.15 word short_answer 4.2.15
13 Сочинение 13.1-13.3 1.10 open extended_answer 1.10

The "22 codes on ~17% of OGE" question - resolved

Measured on the live DB (2026-11-11): 76 of 1100 rus_oge questions (6.9%, not 17%) carry 22 codifiers. All 76 are the same signature: short_answer, hint "Впишите правильный ответ", text "Расставьте знаки препинания. Укажите цифры, на месте которых должны стоять запятые", codes 7.1-7.16, 7.18, 7.20, 7.21, 7.23, 7.25, 7.26 (the whole punctuation section). It is task 5 (FIPI's appendix gives it code 7.26, the bank tagged "the whole section" because a comma-placement item may test any punctuation rule). It is not the изложение (task 1 is 1.6, one code, with audio) - that guess from the probe does not hold. Task 5 and task 4 both have code 7.26, but task 4 is matching and task 5 is short_answer, so they are separated exactly. (Where the 17% from the probe came from was not established.)

What is exact vs. best-effort - read this before trusting a number

ОГЭ: fully exact. 1100/1100: every one of the 13 tasks has a unique (answer_type, КЭС) signature in this bank; the 'Задание №k' hint (groups of 2 for tasks 2-3, of 4 for tasks 10-13) agrees on all 552 checkable rows.

  1. ОГЭ task 5's 22-code tag is "whole section", so no sub-rule inside section 7 can be read from the data.

Result of the dry-run on the real bank (2026-11-11, DB read via SELECT only)

ОГЭ (1100): task 1: 43, 2: 80, 3: 80, 4: 80, 5: 76, 6: 100, 7: 90, 8: 90, 9: 69, 10: 98, 11: 98, 12: 98, 13: 98 (all exact).

Implementation and how to run

scraper/assign_rus_task_numbers.py - dry-run by default (read-only); --apply writes ege_task_* for rus_ege rows and oge_task_* for rus_oge rows, only rows whose three columns would change (idempotent), in one transaction, scoped by subject. --jsonl gives an offline dry-run from an exported file. --show N lists N example fipi_code/ids per non-exact bucket. Re-run whenever the rule table changes or the bank is re-scraped.

Dashboard labels (web/app.py, 2026-11-11)

web/app.py has its own label tables for rus_ege (RUS_EGE_TASK_LABELS, RUS_EGE_TASK_GROUP_LABELS) and rus_oge (OGE_TASK_LABELS["rus_oge"]); ege labels are looked up by the row's subject, never by a bare number (earlier, rus №18 was shown with math's "Планиметрия"). Source of every label = the "Обобщённый план" of the 2027 draft specification (same as 2026). Labels:

ОГЭ: 1 сжатое изложение; 2 грамматическая основа; 3 синтаксическая характеристика предложений; 4 знаки препинания: правила и примеры (соответствие); 5 знаки препинания (расстановка знаков препинания в тексте); 6 орфография: объяснение написания; 7 орфография: пропущенные буквы; 8 грамматические нормы; 9 грамматическая синонимия словосочетаний; 10 смысловой анализ текста; 11 выразительные средства лексики; 12 лексический анализ слова; 13 сочинение (13.1-13.3; 8 баллов в 2027, 7 в 2026).

Filter values for these subjects are subject-scoped (en:rus_ege:18, eg:rus_ege:22, on:rus_oge:5), so picking rus 18 never matches math 18; the legacy n:/g: (math) values now exclude rus_ege. Tests: web/test_app.py.