notes

============================ 260915

1 повторение ошибки: ссылка «1 Регистрация УЦ» см. , поз. коллекции — работает, но её метки нет (неразрыный пробел и пустое поле) 2 в чём проблема создания Содержания автозаполняемого, причины изменени подхода? (если его трудно сделать — оставь, мне это несложно) 3 ожидаю что во всех таблицах сценариев столбцы будут иметь размеры: 1 9 5,24 cm (прекрасно, что тонкость линий и заливка шапки сработали) 4 status_before — помнишь, было указание для tech_writer составить пояснительный текст перед postman-json? его нет. 5 прошу нумеровать выдачу решения задачи (один мой набор замечаний и требований → один номер твоего ответа, текущий номер: 01) 6 обновил правила для журнала:

Журнал проекта PKI

Журнал требований, решений, событий и изменений проекта по теме PKI. Ведёт Claude Code по поручению А.М. Новые записи дат добавляются сверху (ниже правил ведения).

Правила ведения:

  • одна запись в начало журнала = дата (заголовок ##)

  • в случае объёмных задач наименование подзаголовка ###

    • выделение № ответа на запрос (сквозной по проекту) тип + суть; типы: Требование / Решение / Событие / Изменение;

  • ссылаться на файлы артефактов, не дублировать их содержимое;

  • решения и требования записывать дословно или с пометкой «!ai переформулировано».


7 прошу собрать все требования которые были упомянуты в этом чате и значимые изложить в /opt/pki/requirements.md (чтобы не было, как в п.1 — теряются)


0 /opt/pki/work/ps01/ПМИ_РР_ОИОК_v02.docx 'Действие: Выполнить запрос «1 Регистрация УЦ» 37' — я вижу "37", как ссылку но /opt/pki/work/ps01/ПМИ_РР_ОИОК_v03.docx 'Действие: Выполнить запрос «1 Регистрация УЦ» см. Приложение Б, поз. 37 коллекции' — тут я вижу выделенными (как поле) только неразрывные пробелы, хотя ссылками они не являются — и не вижу, что "Приложение Б" и "37" выделены как поля, хотя ссылками они являются == хотелось бы видеть ссылку, как в предыдущем варианте (и вряд ли целесообразно использовать поля: для Коллекция Postman _RefHeading__Toc2539_1042737173 и 37 _RefNumPara__2517_1042737173

плюс проверь целостность ПМИ_РР_ОИОК_v03.docx — он открывается как untitled и иногда крэшит LO 1 /opt/pki/r1/260915_bruno_report_АКК.html — ознакомься и выдай черновик главы ПМИ "Формат отчёта по автоматизированному исполнению проверок" (в документ вставлять пока не надо) 2 /opt/pki/r4_serviceChainCode/Ротация каналов_260714.html — ознакомься и выдай черновик ЧТЗ и ПМИ (в md-формате) идеи тестирования уточним в диалоге


по 02.0 — так и открывается untitled 1 (для файла ПМИ_РР_ОИОК_v02.docx такого нет)

02.1 — мне не нужен был анализ отчёта, мне нужна была версия, как этот отчёт будет выглядеть внутри ПМИ, как глава Б.1 — где этот документ?

по 02.2 моя неточность,

нужна именно глава ЧТЗ 4.2.4 Создание функций маршрутизации запросов в распределённых реестрах

02.2+ "Схема приведена на рисунке (источник — приложение к описанию решения)" — Дис, я ОГОРЧЁН, ты забыл флоу документов ЧТЗ не может ссылаться на более поздний документ. 02.2++ ограничение: событие ротации каналов и исполнение этой функции выполняется вручную

и для ПМИ раздел А.4 Проверка создания функций маршрутизации запросов в распределённых реестрах (приложение Б и Б.1 пока не нужно)


к 03

Приложение А.5 Автоматизированное исполнение проверок А.5.1 Коллекция Postman Преамбула и ```json код-блок` А.5.2 Формат отчёта

уточняю про преамбулу:

теперь это "В коллекции объявлена переменная status_before" — не нужно*?

а это таки нужно: Для справки, остальные переменные коллекции: - host, mcc_port, iitaca_ogrn — заполнены (стенд 45.131.40.89:8080, тестовый ОГРН 1027700067340); - auth_token — заполняется перед прогоном реальным ключом (в коллекции пусто); - accreditationID — служебная: заполняется автоматически из ответа запроса «6 Создание аккредитации».

к 02.1 текущую версию оставить для истории, в главу А.5.2 нужно другое содержание см. документ /opt/pki/work/ps01/ПМИ_РР_ОИОК_A52_отчёт.md вставь туда содержимое второй вкладки отчёта bruno, то есть по каждой записи, такое (с тегом details для md) —

ИЭП-1-4.2.1.11. Функция взаимодействия с внешними информационными системами/1 Регистрация УЦ - 2/2 Passed REQUEST INFORMATION File ИЭП-1-4.2.1.11. Функция взаимодействия с внешними информационными системами/1 Регистрация УЦ Request Method POST Request URL http://45.131.40.89:8080/ca/create RESPONSE INFORMATION Response Code 200 Response time 2316 ms Test duration 2316 ms REQUEST HEADERS Header Name Header Value x-api-key ******** content-type application/json auth_token AX2RPXPcbpbwakmt9CwefCsO6VZOE6m5Z5dHcZkkpUU= REQUEST BODY { "subjectOGRN": "1127747030300", "subjectINN": "7743020560", "subjectName": "АКЦИОНЕРНОЕ ОБЩЕСТВО "ИНФОТЕКС ИНТЕРНЕТ ТРАСТ"", "subjectAddress": "107078, Москва, г. Москва, ул. Мишина, д. 56, стр. 2, эт. 2, пом. IX, ком. 11" } RESPONSE HEADERS Header Name Header Value content-type application/json vary Origin x-request-id 090536f1-63be-4c71-b8a3-154dde5e28aa date Tue, 15 Sep 2026 08:32:35 GMT content-length 528 RESPONSE BODY { "id": "32200046-4ba6-7b06-aad9-e84c59e69929", "subjectOGRN": "1127747030300", "subjectINN": "7743020560", "subjectName": "АКЦИОНЕРНОЕ ОБЩЕСТВО "ИНФОТЕКС ИНТЕРНЕТ ТРАСТ"", "subjectAddress": "107078, Москва, г. Москва, ул. Мишина, д. 56, стр. 2, эт. 2, пом. IX, ком. 11", "subjectSite": "", "subjectMail": "", "subjectPhone": "", "updatedAt": "", "updateCAReason": "", "linkCAReason": "", "version": 1, "createdAtCC": "2026-09-15T08:32:33Z", "updatedAtCC": "2026-09-15T08:32:33Z" } ASSERTIONS INFORMATION Expression Operator Operand Status Error No Data TESTS INFORMATION Description Status Error HTTP 200 pass Запись создана pass

— естественно, в табличном формате, примерно так, как это есть у bruno

про ротацию каналов ещё читаю


пока читаю про ротацию каналов сделай 4 md файла на базе /opt/pki/r2+3_Certificates/3 Описание реестра_сертификатов.html /opt/pki/r2+3_Certificates/Диаграммы описания решения Реестры сертификатов.md это будут главы ЧТЗ:

(ВАЖНО — подчеркнуть различия между УКЭП и УНЭП)

4.2.2 Создание распределённых реестров данных о сертификатах УКЭП и событиях жизненного цикла сертификатов УКЭП 4.2.3 Создание распределённых реестров данных о сертификатах УНЭП и событиях жизненного цикла сертификатов УНЭП

и главы для ПМИ: А.2 Проверка создания распределённых реестров данных о сертификатах УКЭП и событиях жизненного цикла сертификатов УКЭП А.3 Проверка создания распределённых реестров данных о сертификатах УНЭП и событиях жизненного цикла сертификатов УНЭП


Спасибо, хорошо. 1 отфильтруй все эти документы, чтобы там не было "А.М." и прочих вопросительных моментов, только принятые решения.

2 запусти tech_writer, пусть сделает по мотивам "подчёркнуты явно в каждом пункте (как просили)" выжимку — один параграф на 20-50 строк для преамбулы ЧТЗ 4.2.3: общий сборник ключевых отличий ведения Сертификатов УНЭП в отличие от УКЭП (про УКЭП тут писать не надо, всё сказано) только про отличия УНЭП с обоснованием целесообразности ведения разных каналов или даже высоких рисков ведения общих каналов (с отдной стороны есть требования прказа 795 ФСБ, и они редко меняются для УКЭП, а с другой стороны слабо отрегулированные УНЭП, которые меняются часто и непредсказуемо, поэтому чейнкод ДОЛЖЕН допускать определённую гибкость, как и содержание структур данных)

3 для вопросительных моментов /opt/pki/work/OQ.md — пишешь в чате, дублируешь там.


по 06

весьма хорошо, благодарю

1 Работы выполняются в соответствии с пунктами ___/4.2.2.5/АКК, ___/4.2.2.7/АКК, ___/4.2.2.1/АКК, ___/4.2.2.11/АКК Заявки № ___ надо Работы выполняются в соответствии с пунктами /4.2.2.1, 4.2.2.5, 4.2.2.11 Заявки № ИЭП-1

по замечаниям, некоторым прошёлся, уточнил формат, ждём ответы коллег по остальным замечаниям.

добавь сюда вопросы по документу Ротация каналов_260714

============================ 260914

0 аннотация должна соответствовать названию [Дис, прошу проверять весь документ на соответствие требуемым исправлениям]

1 Описание решения Документ «Описание структур данных, процессов, методов реестра аккредитованных удостоверяющих центров» от 31.08.2026 — а) не нужна дата, б) теперь это 4 документа (в соответствии с группами функций из ЧТЗ)

2 заголовок приложений четвертого уровня не подхватился из ott

3 ссылку на №строки postman-коллекции надо дополнить так: "см. <Приложение Б>, поз. <№строки> коллекции", где в угловых скобках — кросс-ссылка.

4 Оглавление должно содержать стили RT_Contents1-2-3-4

Сделай пожалуйста только odt-файл ПМИ, опираясь на актуальный ott и его стили (включая RT_Tab01) я извлёк /opt/pki/work/formats/styles.xml — есть стиль таблиц:

<table:table-template table:name="RT_Tab01" table:first-row-end-column="row" table:first-row-start-column="row" table:last-row-end-column="row" table:last-row-start-column="row">

<table:first-row table:style-name="RT_5f_Tab01.1"/>

<table:last-row table:style-name="RT_5f_Tab01.2"/>

<table:first-column table:style-name="RT_5f_Tab01.3"/>

<table:last-column table:style-name="RT_5f_Tab01.4"/>

<table:body table:style-name="RT_5f_Tab01.9"/>

<table:even-rows table:style-name="RT_5f_Tab01.5"/>

<table:odd-rows table:style-name="RT_5f_Tab01.6"/>

<table:even-columns table:style-name="RT_5f_Tab01.7"/>

<table:odd-columns table:style-name="RT_5f_Tab01.8"/>

<table:background table:style-name="RT_5f_Tab01.10"/>

<loext:first-row-even-column table:style-name="RT_5f_Tab01.15"/>

<loext:last-row-even-column table:style-name="RT_5f_Tab01.16"/>

<loext:first-row-end-column table:style-name="RT_5f_Tab01.12"/>

<loext:first-row-start-column table:style-name="RT_5f_Tab01.11"/>

<loext:last-row-end-column table:style-name="RT_5f_Tab01.14"/>

<loext:last-row-start-column table:style-name="RT_5f_Tab01.13"/>


что ж, будем уточнять: 0 при открытии libre office Writer ругнулся, что файл повреждён, но смог открыть.

1 было требование после см. и поз. ставить неразрывный пробел — не выполнено 2 odt пытается открыть макросы — они нужны? 3 ссылки на коллекцию не работают "Создание аккредитации» см. Error: Reference source not found, поз. коллекции" 4 нумерация заголовков не отображается (хотя в стиле указано использование RT_Header_Num)


продожается сообщение о повреждённом файле, но открывается номера у заголовков не появились и у RT_Code тоже нет номеров, хотя ссылка на стиль нумерованного списка у стиля есть автоформат к таблицам не применен, ширина столбца "№" не соответствует требованию ранее ссылка «1 Регистрация УЦ» см. , поз. коллекции — работает, но её метки нет (неразрыный пробел и пустое поле)


сможешь запустить утилиту преобразования odt в md-файл? тогда у тебя будет набор различий из того, что ты ожидал (/opt/pki/work/ps01/ПМИ_РР_ОИОК_v02.md) и того что получилось из odt-файла.


/opt/pki/work/formats/чтз&пми.html — этот файл я создал используя встроенный в Libre Office экспорт в XHTML попробуй тоже (форматирование ползает, но хотя бы видны все элементы, в т.ч. номера списков)

Сформируй (создай .claude/agents/tech-writer.md — нужен именно «писатель с подключением к MCP и RAG» (где-то созданы наши эмбеддинги /mnt/d/mcp/rag/pki.db инструментами sqlite/qwen_embedding для поиска по pki.db))

нижеследующий текст пусть tech-writer переработает под стили из RAG и его добавит в "Примечание к ручному тестированию" перед json-данными

В переменную status_before ничего указывать не нужно — она служебная, её значение заполняется автоматически в ходе прогона:

- Tests-скрипт запроса «16 Статус на дату (действует)» сохраняет в неё весь JSON-ответ: pm.environment.set('status_before', JSON.stringify(r)); - Запрос «17 Статус на дату в прошлом после отмены» читает её и сравнивает новый ответ с сохранённым: pm.expect(r).to.deep.equal(JSON .parse(pm.environment.get('status_before'))); — так проверяется темпоральность: статус на прошлую дату не изменился после отмены события. То есть это внутренний буфер между двумя шагами сценария. Начальное значение можно оставить пустой строкой (как в коллекции). Для справки, остальные переменные коллекции: - host, mcc_port, iitaca_ogrn — заполнены (стенд 45.131.40.89:8080, тестовый ОГРН 1027700067340); - auth_token — заполняется перед прогоном реальным ключом (в коллекции пусто); - accreditationID — тоже служебная: заполняется автоматически из ответа запроса «6 Создание аккредитации».

ОГРН (последняя цифра — контрольная сумма) 1027700067339 "Информация об УЦ находится в реестре" 1027700067328 1127747031840 - ОК https://www.kholenkov.ru/data-validation/ogrn/

1127747031830 1127747031829 1127747031818 1127747031807 1127747031400 — тут можно просто две цифры менять одинаковых )) 1127747030300

ИНН 7743020560 — был 7728168971 — стал (не проходит)

запиши в OQ+ 10-значный ИНН Вычислить сумму произведений цифр ИНН (с 1-й по 9-ю) на следующие коэффициенты — 2, 4, 10, 3, 5, 9, 4, 6, 8 (т.е. 2 * ИНН[1] + 4 * ИНН[2] + ...). Вычислить остаток от деления полученной суммы на 11. Сравнить младший разряд полученного остатка от деления с младшим разрядом ИНН. Если они равны, то ИНН верный.


1 TESTS INFORMATION Description Status Error Запись создана fail expected { …(14) } to have deep property 'subjectOGRN' of undefined, but got '1127747031818' HTTP 200 pass

16 RESPONSE BODY { "error": "ESIAMSP (peer0.esiapeer.ru:7051): chaincode response 500, error: ERR-0602 Нет действительных записей аккредитации до указанной даты" } TESTS INFORMATION Description Status Error HTTP 200 fail expected 500 to equal 200 Признак действует fail expected { Object (error) } to have deep property 'status'

17 RESPONSE BODY { "error": "ESIAMSP (peer0.esiapeer.ru:7051): chaincode response 500, error: ERR-0602 Нет действительных записей аккредитации до указанной даты" } TESTS INFORMATION Description Status Error HTTP 200 fail expected 500 to equal 200 Историчность: статус не изменился fail unexpected token: 'undefined'

18 TESTS INFORMATION Description Status Error Тестовый УЦ в перечне fail expected [ '1027700067328', …(2) ] to include undefined HTTP 200 pass


Поручи tech-writer: переработать текущий документ /opt/pki/work/ps01/ПМИ_РР_ОИОК_v02.md в /opt/pki/work/ps01/ПМИ_РР_ОИОК_v02+.md с точным сохранением структуры, но с увеличением языкового соответствия RAG-базе и с раскрытием неясных моментов (отдельно предоставить краткий отчёт об изменениях и их причинах и целях /opt/pki/work/ps01/ПМИ_РР_ОИОК_v02_report.md)

============================ 260913

1 Это рабочая кухня — из документа убрана — спасибо. сформулируй признаки подобных ошибок и запиши в CLAUDE.md (это значимо)

2 "единственная роль — демонстрирующий требование" — "единственная роль — демонстрирующий соответствие функции требованиям"

3 я обновил файл /opt/pki/work/formats/чтз&пми.ott

см применение стилей, начинающихся с "RT_" Заголовки (в т.ч. для приложений), списки, содержание, Таблица

проверь, сможешь ли собрать docx документ, использующий только эти стили. всего ли хватает?


Замечательно, мы движемся в верную сторону, спасибо.

0 Дис. прошу убрать из имени "минимизацию" _v02 и т.д. можно (это внутренние версии, мои) а когда документ пойдёт Заказчику, будем вести внизу Лист регистрации изменений"

1 "требования не предусмотрено: ведение сведений о сертификатах ключей проверки электронных подписей, выдаваемых удостоверяющими центрами;" тут надо использовать RT_ListMarked- (я применил примеры и стили в /opt/pki/work/formats/чтз&пми.ott)

2 Содержание и другие "заголовки" (которые не должны быть в оглавлении) используем стиль RT_ЗаголовокАбзаца

3 весь текст использует стиль и базируется на нём: RT_ТекстОсн ("не должно быть default Paragraph style" или "Основной текст документа" все стили должны быть RT_*, кстати, обрати внимание на группу стилей Table styles, в ней есть RT_Tab02 — таблицы тоже должны быть в стиле, и это подтянет стиль текста)

4 следующий важный момент: ранее полагал я, что будет три ЧТЗ и три ПМИ согласно заявкам. теперь это не так: будет 1 ТЗ, 1 Заявка, но три вида работ:

Создание новой функции (без взаимодействия с внешними информационными системами) ИЭП-1/4.2.1.1 с работами: Функция регистрации в распределённых реестрах данных о сертификатах УКЭП и событиях жизненного цикла сертификатов УКЭП Функция регистрации в распределённых реестрах данных о сертификатах УНЭП и событиях жизненного цикла сертификатов УНЭП Функция регистрации в распределённых реестрах данных об аккредитации удостоверяющих центров

Создание новой функции обработки данных ИЭП-1/4.2.1.5 с работами: Функция формирования представления данных о сертификатах УКЭП и событиях жизненного цикла сертификатов УКЭП Функция формирования представления данных о сертификатах УНЭП и событиях жизненного цикла сертификатов УНЭП Функция формирования представления данных об аккредитации удостоверяющих центров Функция маршрутизации запросов в распределённых реестрах

Создание функции взаимодействия с внешними информационными системами ИЭП-1/4.2.1.11 с работами: Функция взаимодействия с внешними информационными системами в части получения и передачи данных о сертификатах УКЭП и событиях жизненного цикла сертификатов УКЭП Функция взаимодействия с внешними информационными системами в части получения и передачи данных о сертификатах УНЭП и событиях жизненного цикла сертификатов УНЭП Функция взаимодействия с внешними информационными системами в части получения и передачи данных об аккредитации удостоверяющих центров

В итоге получаем одно ЧТЗ с четырьмя позициями внутри 4.2 Требования к проводимым работам Работы по развитию инфраструктуры, обеспечивающей информационно-технологическое взаимодействие информационных систем, используемых для предоставления государственных и муниципальных услуг и исполнения государственных и муниципальных функций в электронной форме делятся (согласно ТЗ и детализации работ в Заявке) на следующие группы функций.

4.2.1 Создание распределённых реестров данных об аккредитации удостоверяющих центров 4.2.2 Создание распределённых реестров данных о сертификатах УКЭП и событиях жизненного цикла сертификатов УКЭП 4.2.3 Создание распределённых реестров данных о сертификатах УНЭП и событиях жизненного цикла сертификатов УНЭП 4.2.4 Создание функций маршрутизации запросов в распределённых реестрах

[Дис, это понятно изложено? Переспрашивай, если что]

На текущиий момент мы пересобираем ЧТЗ и ПМИ в этой парадигме (но пункты 4.2.2-4.2.4 только заголовки, без наполнения)


спасибо, в целом, хорошо.

0 файлы теперь называются ЧТЗ_РР_ОИОК_вХХ и ПМИ_РР_ОИОК_вХХ

и заголовок ЧТЗ соответственно указанию выше, пропустил ты

хотя неясно, почему и желательно исправить: 1 в ott не видно стиля таблиц и 2 RT_Заголовок_4 в итоговом документе выглядит не так как в ott (на примере 8.1.1.1 Ф 4) и 3 у заголовков итогового документа стили заголовков ссылаются на стили WWNum11 (в ott такого даже нет, кончается на WWNum8) а в ott на RT_HeaderNum

По ПМИ, его заголовок тоже должен соответствовать ЧТЗ

(к слову, "Описание решения" тоже станет единым документом, считай, мы работаем с первой главой)

4 в терминах добавить ТЗ (как и в ЧТЗ)

5 надо переструктурировать А1 под те самые три вида работ, что упомянуты как составные части Заявки [Дис, это понятно? и пересортировать, я проставил порядковые номера]

3 ИЭП-1/4.2.1.1: во введении к этому разделу ПМИ надо написать [Дис, вызови агента-писателя, пусть обогатит литературно, в соответствии с RAG-языком следующие тезисы: функции без взаимодействия с внешними системами уже протестированы на предыдущих шагах, но для соответствия требованиям ниже приводятся проверки, демонстрирующие работу этих функций] 3 А.1.1 Проверка ведения записи «Удостоверяющий центр» 3 А.1.2 Проверка ведения истории аккредитации с отменённым событием 1 ИЭП-1/4.2.1.11: 1 А.1.3 Проверка реализации функции регистрации нового удостоверяющего центра 1 А.1.4 Проверка реализации функций изменения и дополнения сведений об удостоверяющем центре 1 А.1.5 Проверка реализации функции создания аккредитации удостоверяющего центра 1 А.1.6 Проверка реализации функции изменения статуса аккредитации (статусная модель) 1 А.1.7 Проверка реализации функции отмены события 2 ИЭП-1/4.2.1.5: 2 А.1.8 Проверка реализации функции получения периодов действия аккредитации 2 А.1.9 Проверка реализации функции получения статуса аккредитации на заданную дату 2 А.1.10 Проверка реализации функции получения сведений по фильтру

Далее новое приложение (протокол и акт передвинь в конец)

создай новую postman-коллекцию в соответствии с актуальными Шагами (мы планировали уменьшить число шагов)

и в ней определи разделы для тестирования, знаешь, как делается? примерно так: // В Tests-скрипте const expectedResponse = JSON.parse(pm.environment.get("expected_response")); const actualResponse = pm.response.json();

pm.test("Response matches the expected structure", function () { pm.expect(actualResponse).to.deep.equal(expectedResponse); });

— проверять только значимые параметры, используя pm.expect(actualResponse).to.deep.include({ ... })

коллекцию поместить в приложение Б используюя стиль RT_Code этот стиль - с нумерацией, соответственно, строки типа: '49. "name": "2 Регистрация УЦ",' являются якорями для того или иного Шага и должны быть адресованы из описания шагов в Приложении А

============================ 260912

Уважаемый, скажи пожалуйста, где ты в примерах документов встречал сообщение
о том что эта версия сокращена или претерпела изменения? в документах,
примеры которых я тебе давал встречаются ли идеи о том, как документы
создавались?
"Версия 02 — минимизированная: проверяются существенные функции; детальные
переборы значений, форматов и кодов ошибок не выполняются." — я очень не
доволен

"Убираю, вместе с ещё одной мета-строкой в А.3.2 (примечание про стенд)" — сначала поясни, о чем речь.

далее: 1 "Демонстрирующий" — убираем везде (у нас только одна роль, поэтому бессмысленно её приводить в каждой строке, следует сообщить об этом один раз в описании испытаний (там же, где IP-адрес)

2 "Основной" — убираем, все шаги по умолчанию основные, а если это не так, указываем: (альтернативный для шага-1)

3 сейчас в таблицах docx все столбцы по 5,08 cm. можешь ли сделать первый столбец (№) 1,10 cm второй 9,06 cm а третий 5,08 cm?

4 заголовки не изменились (и нумерация их вставлена текстом, а не признаком outlined-list) я вложил шаблон, посмотри как устроены заголовки /opt/pki/work/formats/чтз.ott


встреча по ЧТЗ ПМИ

Татьяна — объединение документов от команд

команда сдаёт техписам "4.2.1" а потом техписы собирают

оформление не нужно и не важно, важно сколько пунктов (сколько функций) пунктов заявки (текстовую заявку)

не закапываться в детали особенно ПМИ (разумно, верхнеуровнево и понятно)

(на примере А.4 всё убрать кроме А.4.7 — главный пункт)

прямо копи-пейст "функция" предусловия (если есть!) действие-результат, 2-3 шага для каждой функции(!) итого 20-30 шагов (для некоторых функций, может быть 1 шаг)

плюс примеры негативных проверок (отдельным документом)

? методы... — в минимуме curl (хвостик)

? группировки функций — нет (если очень надо, то подзаголовки внутри функции) ? ПМИ ИБ Убрать?

всего на час (то есть 15 мин на рассказ и 35 мин на испытания и 10 мин запас)

Клину или Ильину (если ПМИ нет — хуже проходит, вопросы по ТЗ)