MCP batch_create: параметры команд в описании и в ошибке 422 (#44) #45

Merged
aep merged 1 commits from feat/44-mcp-param-hints into main 2026-10-15 22:16:52 +03:00
Owner

Closes #44. Bounded-задача, без OpenSpec change.

Что сделано

  • commands.SPEC: у каждого типа команды hints (формат значения: new:<n>, task|epic, YYYY-MM-DD, «статус или список-путь», «имя спринта или backlog», «логическое имя из link_types», логин Jira, список, true|false) и note (условие на набор: «хотя бы одно поле» у ensure_fields, «keys или jql» у refresh).
  • commands.describe() собирает строку на тип из SPEC: обязательные, затем необязательные в [ ]. Описание MCP batch_create строится из него, предупреждение про метку AWPCA сохранено. Новые типы и параметры (#43) попадут в описание сами.
  • Ошибки validate «нет …» и «лишние параметры …» дописывают ожидаемый набор: команда 1 (ensure_status): нет target; ожидаются key, target; … лишние параметры force; ожидаются source, target, link_type; необязательные replace.

Тесты

  • test_batch_create_description_lists_params_from_spec берёт описание через mcp.list_tools() (ровно то, что видит клиент) и сверяет с SPEC: каждый тип, обязательные и необязательные параметры, подсказки.
  • test_missing_param_error_names_expected, test_unknown_param_error_names_expected (с необязательными и без них), test_spec_hints_name_known_params (подсказки только к существующим параметрам).
  • make check зелёный: pytest 338, lint и vitest 205.

Rulings I made

  • R-1 Спека specs/mcp и specs/commands не менялась (bounded-задача): параметры в описании batch_create и ожидаемый набор в тексте 422 спекой не закреплены. Если нужно закрепить, это одна строка в требовании batch_create при следующем change моста (например, #43).
  • R-2 Подсказки форматов хранятся в SPEC рядом с required/optional, а не отдельным словарём: один источник для валидации и описания.

Findings

Маркер Суть Статус
R-1 спека не закрепляет параметры в описании и в 422 deferred

🤖 Generated with Claude Code

Closes #44. Bounded-задача, без OpenSpec change. ## Что сделано - `commands.SPEC`: у каждого типа команды `hints` (формат значения: `new:<n>`, `task|epic`, `YYYY-MM-DD`, «статус или список-путь», «имя спринта или backlog», «логическое имя из link_types», логин Jira, список, true|false) и `note` (условие на набор: «хотя бы одно поле» у `ensure_fields`, «keys или jql» у `refresh`). - `commands.describe()` собирает строку на тип из `SPEC`: обязательные, затем необязательные в `[ ]`. Описание MCP `batch_create` строится из него, предупреждение про метку AWPCA сохранено. Новые типы и параметры (#43) попадут в описание сами. - Ошибки `validate` «нет …» и «лишние параметры …» дописывают ожидаемый набор: `команда 1 (ensure_status): нет target; ожидаются key, target`; `… лишние параметры force; ожидаются source, target, link_type; необязательные replace`. ## Тесты - `test_batch_create_description_lists_params_from_spec` берёт описание через `mcp.list_tools()` (ровно то, что видит клиент) и сверяет с `SPEC`: каждый тип, обязательные и необязательные параметры, подсказки. - `test_missing_param_error_names_expected`, `test_unknown_param_error_names_expected` (с необязательными и без них), `test_spec_hints_name_known_params` (подсказки только к существующим параметрам). - `make check` зелёный: pytest 338, lint и vitest 205. ## Rulings I made - **R-1** Спека `specs/mcp` и `specs/commands` не менялась (bounded-задача): параметры в описании `batch_create` и ожидаемый набор в тексте 422 спекой не закреплены. Если нужно закрепить, это одна строка в требовании `batch_create` при следующем change моста (например, #43). - **R-2** Подсказки форматов хранятся в `SPEC` рядом с `required`/`optional`, а не отдельным словарём: один источник для валидации и описания. ## Findings | Маркер | Суть | Статус | |---|---|---| | R-1 | спека не закрепляет параметры в описании и в 422 | deferred | 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 1 commit 2026-10-15 22:13:37 +03:00
Описание MCP-инструмента batch_create собирается из SPEC (commands.describe):
обязательные и необязательные параметры каждого типа с подсказками формата
(hints) и условием на набор (note). Ошибки validate «нет …» и «лишние
параметры …» называют ожидаемый набор параметров типа.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aep merged commit 68de173c24 into main 2026-10-15 22:16:52 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aep/sdlc-hub#45
No description provided.