docs(skills): report-mappa-issue 0.1.0→0.2.0 — English translation, bilingual triggers (task:1086)
This commit is contained in:
@@ -1,113 +1,117 @@
|
|||||||
---
|
---
|
||||||
name: report-mappa-issue
|
name: report-mappa-issue
|
||||||
author: ours
|
author: ours
|
||||||
version: 0.1.0
|
version: 0.2.0
|
||||||
description: >
|
description: >
|
||||||
Use when working with mappa (MCP tools `mcp__mappa__*`, HTTP-роуты, скилы на
|
Use when working with mappa (MCP tools `mcp__mappa__*`, HTTP routes, mappa
|
||||||
mappa) and anything deviates from the expected workflow: 500/5xx, «entity not
|
skills) and anything deviates from the expected workflow: 500/5xx, "entity
|
||||||
found» для id, который должен существовать, неожиданная форма ответа,
|
not found" for an id that must exist, unexpected response shape, timeouts,
|
||||||
таймауты, молчаливые сбои, неверный статус, нестабильность. Report it by
|
silent failures, wrong status, instability. Report it by mail to `mappa` AND
|
||||||
mail to `mappa` AND `.workshop` — never swallow, never only-local-log, never
|
`.workshop` — never swallow, never only-local-log, never only in-chat.
|
||||||
only in-chat. TEMPORARY skill: active while mappa is unstable; retire when
|
TEMPORARY skill: active while mappa is unstable; retire when stabilized.
|
||||||
stabilized. Triggers: «маппа отдала 500», «entity not found», «неожиданный
|
Triggers (bilingual): «маппа отдала 500», «entity not found», «неожиданный
|
||||||
ответ от mappa», «mappa вернула», "mappa returned 500", "entity not found",
|
ответ от mappa», «mappa вернула», "mappa returned 500", "entity not found",
|
||||||
unexpected mappa response.
|
"unexpected mappa response".
|
||||||
---
|
---
|
||||||
|
|
||||||
# report-mappa-issue
|
# report-mappa-issue
|
||||||
|
|
||||||
Любое отклонение от ожидаемого mappa-воркфлоу репортится **почтой в `mappa`
|
Any deviation from the expected mappa workflow is reported **by mail to `mappa`
|
||||||
и `.workshop`** — немедленно, с evidence. Не глотать, не прятать в локальный
|
and `.workshop`** — immediately, with evidence. Never swallow, never hide it in
|
||||||
лог, не откладывать «до сборника».
|
a local log, never postpone "until a digest".
|
||||||
|
|
||||||
> ⚠️ **TEMPORARY (временный скил):** действует, пока mappa нестабильна. Это
|
> ⚠️ **TEMPORARY skill:** active while mappa is unstable. It is a stopgap for
|
||||||
> stopgap для сбора сигналов к стабилизации. Когда mappa стабилизируется
|
> collecting signals toward stabilization. When mappa stabilizes (a week
|
||||||
> (неделя без репортов) — скил отзывается: репорты становятся обычными
|
> without reports) — this skill is retired: reports become ordinary bug tasks.
|
||||||
> баг-тасками. Владелец решения об отзыве — workshop.
|
> The owner of the retirement decision is workshop.
|
||||||
|
|
||||||
## When to use
|
## When to use
|
||||||
|
|
||||||
Репортить, когда в ходе работы с mappa произошло **любое** из:
|
Report when, during work with mappa, **any** of the following happens:
|
||||||
|
|
||||||
- **5xx / 500 / 502** на любом вызове (`task_*`, `wiki_*`, `inbox_*`, `entity_*`,
|
- **5xx / 500 / 502** on any call (`task_*`, `wiki_*`, `inbox_*`, `entity_*`,
|
||||||
`admin_*`, `graph_*`, HTTP-роуты).
|
`admin_*`, `graph_*`, HTTP routes).
|
||||||
- **«Entity not found» / 404** для id/ref, который **должен** существовать
|
- **"Entity not found" / 404** for an id/ref that **must** exist (you know you
|
||||||
(знаешь, что создавал; видишь в свежем ответе; ссылается другое письмо/таска).
|
created it; you see it in a fresh response; another letter/task references it).
|
||||||
- **Неожиданная форма ответа** — поля не совпадают с документированными,
|
- **Unexpected response shape** — fields don't match the documented ones,
|
||||||
пустой `rows` где ожидались данные, новый/неожиданный тип в ответе.
|
empty `rows` where data was expected, a new/unexpected type in the response.
|
||||||
- **Таймауты / зависания** вызова.
|
- **Timeouts / hangs** on a call.
|
||||||
- **Молчаливый сбой** — вызов «успешен», но эффекта нет (таска не создалась,
|
- **Silent failure** — the call "succeeded" but had no effect (task not
|
||||||
письмо не ушло, статус не поменялся).
|
created, letter not delivered, status unchanged).
|
||||||
- **Ретрай сработал** — даже если повторный вызов прошёл: сама нестабильность
|
- **Retry worked** — even if the repeated call succeeded: the instability
|
||||||
— сигнал для стабилизации (пометь `retry: resolved`).
|
itself is a signal for stabilization (mark `retry: resolved`).
|
||||||
- **Неверный/неожиданный статус** сущности, рассинхрон борда и реальности.
|
- **Wrong/unexpected entity status**, board vs reality desync.
|
||||||
|
|
||||||
**Ретраи допустимы** (1–2 с паузой), но репорт — независимо от исхода ретрая:
|
**Retries are allowed** (1–2 with a pause), but the report happens regardless
|
||||||
случай 500 → репорт; случай 500→ретрай→ок → репорт с `retry: resolved`.
|
of the retry outcome: case 500 → report; case 500 → retry → ok → report with
|
||||||
|
`retry: resolved`.
|
||||||
|
|
||||||
## When NOT to use
|
## When NOT to use
|
||||||
|
|
||||||
- **Ожидаемый 404** — сущность действительно не существует и не должна
|
- **Expected 404** — the entity genuinely does not exist and should not
|
||||||
(никогда не создавалась; удалена по дизайну). Проверь перед репортом, что
|
(never created; deleted by design). Before reporting, check that the entity
|
||||||
сущность обязана была быть.
|
was required to exist.
|
||||||
- **Документированные известные ограничения** (например, «verify на проде
|
- **Documented known limitations** (e.g. "verify on prod is impossible by
|
||||||
невозможен по дизайну», «прод stale до редеплоя» — если это задокументировано
|
design", "prod is stale until redeploy" — if documented and known to the
|
||||||
и известно команде mappa).
|
mappa team).
|
||||||
- **Отклонения НЕ от mappa** — VDS/docker (→ using-vds-ops), projects-meta кэш
|
- **Deviations NOT from mappa** — VDS/docker (→ using-vds-ops), projects-meta
|
||||||
(документированная сталезность), провайдеры моделей. Только mappa.
|
cache (documented staleness), model providers. Only mappa.
|
||||||
- **Уже зарепорченный тот же инцидент** — не дублируй (см. Dedup).
|
- **The same incident already reported** — don't duplicate (see Dedup).
|
||||||
|
|
||||||
## Core pattern — репорт
|
## Core pattern — the report
|
||||||
|
|
||||||
Каждый вызов: `mcp__mappa__inbox_send` в **оба** адреса (`mappa` и `.workshop`,
|
Each call: `mcp__mappa__inbox_send` to **both** addresses (`mappa` and
|
||||||
адреса из адресной книги `~/projects/.wiki/concepts/projects-address-book.md`),
|
`.workshop`, addresses from the address book
|
||||||
`from` = своё имя папки. Формат письма:
|
`~/projects/.wiki/concepts/projects-address-book.md`), `from` = your own
|
||||||
|
folder name. Letter format:
|
||||||
|
|
||||||
```
|
```
|
||||||
Subject: [mappa-issue] <симптом> @ <тул/эндпоинт> (<дата>)
|
Subject: [mappa-issue] <symptom> @ <tool/endpoint> (<date>)
|
||||||
|
|
||||||
Body:
|
Body:
|
||||||
- Expected: <что должно было произойти по воркфлоу/докам>
|
- Expected: <what should have happened per workflow/docs>
|
||||||
- Actual: <ошибка/статус/ответ — текст сообщения или короткий сниппет>
|
- Actual: <error/status/response — message text or a short snippet>
|
||||||
- Call: <тул + ключевые параметры / эндпоинт + project>
|
- Call: <tool + key parameters / endpoint + project>
|
||||||
- Retry: <сработал ли ретрай, сколько попыток>
|
- Retry: <did the retry work, how many attempts>
|
||||||
- Recurrence: <первый раз / повторяется — сколько раз за сессию>
|
- Recurrence: <first time / repeats — how many times this session>
|
||||||
- Context: <проект, сессия, какой флоу шёл>
|
- Context: <project, session, which flow was running>
|
||||||
```
|
```
|
||||||
|
|
||||||
Одно письмо = **один инцидент** (симптом × эндпоинт). Рекуррентность — в том же
|
One letter = **one incident** (symptom × endpoint). Recurrence goes in the same
|
||||||
письме (`recurrence: 5 раз за 2 часа`), не новый репорт на каждый вызов.
|
letter (`recurrence: 5 times in 2 hours`), not a new report per call.
|
||||||
|
|
||||||
## Common mistakes / rationalizations
|
## Common mistakes / rationalizations
|
||||||
|
|
||||||
| Рационализация | Реальность |
|
| Rationalization | Reality |
|
||||||
|---|---|
|
|---|---|
|
||||||
| «Mappa упала — письмо не дойдёт, зачем писать» | Письмо — сущность в Mappa (карв-аут, без лиза). При оживлении сервиса оно будет в инбоксе получателя. Пиши всегда. |
|
| "Mappa is down — the letter won't arrive, why write" | A letter is an entity in Mappa (carve-out, no lease). When the service revives, it will be in the recipient's inbox. Always write. |
|
||||||
| «Расскажу человеку в чате» | Человек не всегда в сессии, команда mappa чат не видит. Письмо — durable и кросс-сессионно. |
|
| "I'll tell the human in chat" | The human is not always in session; the mappa team doesn't see chat. A letter is durable and cross-session. |
|
||||||
| «Запишу в локальный лог» | Локальный лог не виден команде mappa. Цель репорта — видимость у получателей. (Локальная запись — дополнительно, не вместо.) |
|
| "I'll write it in the local log" | The local log is invisible to the mappa team. The goal of the report is visibility for recipients. (Local recording is extra, not instead.) |
|
||||||
| «Ретрай сработал — значит ок» | Нестабильность — сам по себе сигнал. Репорть с `retry: resolved`. |
|
| "The retry worked — so it's fine" | The instability itself is a signal. Report with `retry: resolved`. |
|
||||||
| «Это мелочь, не буду спамить» | Пока mappa нестабильна — любой сигнал материал для стабилизации. Dedup защищает от спама, не молчание. |
|
| "It's a small thing, I won't spam" | While mappa is unstable — any signal is material for stabilization. Dedup protects against spam, silence does not. |
|
||||||
| «Соберу несколько и отпишусь разом» | Первое вхождение — немедленно. Рекуррентность докидывай в то же письмо. |
|
| "I'll collect several and report at once" | First occurrence — immediately. Recurrence gets appended to the same letter. |
|
||||||
| «Это наверняка уже известно mappa» | Неизвестно, пока не зарепорчено. Репорт — это и есть способ сделать известным. |
|
| "Mappa surely already knows this" | Unknown until reported. The report is exactly how it becomes known. |
|
||||||
|
|
||||||
## Red flags — STOP
|
## Red flags — STOP
|
||||||
|
|
||||||
- Поймал ошибку mappa и продолжил молча (без репорта).
|
- Caught a mappa error and silently continued (no report).
|
||||||
- Записал только локально / сказал только в чате — письма нет.
|
- Recorded only locally / said only in chat — no letter.
|
||||||
- Пропустил «entity not found», не проверив, должен ли id существовать.
|
- Skipped "entity not found" without checking whether the id must exist.
|
||||||
- Отложил репорт «на потом» без письма и без таски.
|
- Postponed the report "for later" without a letter and without a task.
|
||||||
- Зарепортил, но не в оба адреса (`mappa` и `.workshop`).
|
- Reported but not to both addresses (`mappa` and `.workshop`).
|
||||||
|
|
||||||
## Cross-agent
|
## Cross-agent
|
||||||
|
|
||||||
Канал — mappa inbox (`inbox_send` / `inbox.monitor`), общий для всех агентов
|
Channel — mappa inbox (`inbox_send` / `inbox.monitor`), shared by all agents
|
||||||
(pi: `mcp__mappa__inbox_send`; Claude Code: те же MCP-тулы; headless — то же).
|
(pi: `mcp__mappa__inbox_send`; Claude Code: the same MCP tools; headless — the
|
||||||
Адресация — строго из адресной книги (`inter-session-messaging` канон).
|
same). Addressing strictly from the address book (`inter-session-messaging`
|
||||||
|
canon).
|
||||||
|
|
||||||
## Out of scope
|
## Out of scope
|
||||||
|
|
||||||
- **Не чинит mappa** — диагностика/починка сервиса отдельно; скил только
|
- **Does not fix mappa** — service diagnosis/repair is separate; this skill
|
||||||
репортит. (Глубокий диагноз — `diagnosing-bugs` / `using-vds-ops` для инфры.)
|
only reports. (Deep diagnosis — `diagnosing-bugs` / `using-vds-ops` for
|
||||||
- **Не репортит чужие сервисы** — только отклонения от mappa-воркфлоу.
|
infra.)
|
||||||
- **Не заменяет** `inter-session-messaging` (механика отправки — там, этот скил
|
- **Does not report other services** — only deviations from the mappa workflow.
|
||||||
задаёт политику «что считать инцидентом»).
|
- **Does not replace** `inter-session-messaging` (the send mechanics live
|
||||||
|
there; this skill defines the policy "what counts as an incident").
|
||||||
|
|||||||
Reference in New Issue
Block a user