feat(skill): mappa-presentation v1.1.0 — серверные display/card verbatim (UTC+Z), fallback до деплоя

- серверные display/card (task:1176/1177, репо 0bf09c6): копировать verbatim, row → display / карточка → card
- даты в серверных полях — UTC+Z (row YYYY-MM-DD / card YYYY-MM-DDTHH:MMZ), без конвертации
- шаблоны — fallback-канон до деплоя v0.20.0 (проверять /health)
- принцип 5 (даты) переписан: серверные поля verbatim / fallback — локальное время
This commit is contained in:
2026-08-25 23:34:14 +03:00
parent 3ea7e53f99
commit c6dfa9349d

View File

@@ -1,20 +1,21 @@
--- ---
name: mappa-presentation name: mappa-presentation
author: ours author: ours
version: 1.0.0 version: 1.1.0
description: > description: >
The single standard for showing Mappa entities to the human — the answer The single standard for showing Mappa entities to the human — the answer
format an agent renders for the eyes: list rows (board/inbox/search) and format an agent renders for the eyes: list rows (board/inbox/search) and
full cards (one entity). Two modes, fixed field order, dates shown in the full cards (one entity). Two modes, fixed field order; server display/card
session's local time (converted from mappa UTC), never raw JSON. Mandatory fields copied verbatim (row → display, card → card, dates UTC+Z);
fallback templates render local time; never raw JSON. Mandatory
for ANY display of mappa entities for ANY display of mappa entities
(task/inbox/wiki/brainstorm/session/handoff/repo/commit/operator/project) — (task/inbox/wiki/brainstorm/session/handoff/repo/commit/operator/project) —
«покажи таски», «что на досках», «письма», «какой статус», «дай «покажи таски», «что на досках», «письма», «какой статус», «дай
подробнее», any answer carrying entities. Old name — trigger-synonym: подробнее», any answer carrying entities. Old name — trigger-synonym:
mappa-display. Complements (does not replace) convention #1028 (ref mappa-display. Complements (does not replace) convention #1028 (ref
format), task status emoji (mappa-task-work), search cards (wiki:2661); format), task status emoji (mappa-task-work), search cards (wiki:2661);
server-side display/card fields (when they arrive) are copied verbatim — server-side display/card fields (task:1176/1177) copied verbatim —
the templates here are the canon fallback. the templates here are the canon fallback until the deploy (v0.20.0).
--- ---
# mappa-presentation # mappa-presentation
@@ -37,23 +38,27 @@ about presentation.
3. **The card carries ALL fields** of the template. Do not trim "to avoid 3. **The card carries ALL fields** of the template. Do not trim "to avoid
clutter": the human re-asks precisely because a field was dropped. clutter": the human re-asks precisely because a field was dropped.
4. **Field order is fixed** (per template), do not rearrange. 4. **Field order is fixed** (per template), do not rearrange.
5. **Dates — stored UTC, shown local and human.** Mappa stores and returns 5. **Dates — server fields: UTC+Z verbatim; fallback: local and human.**
UTC (canonical machine truth — the server never converts). The agent renders Mappa stores and returns UTC (canonical machine truth — the server never
in the session's local timezone (the operator's machine): converts). If the entity carries server `display`/`card` — copy the date
row `YYYY-MM-DD`, card `YYYY-MM-DD HH:MM` — no seconds, no milliseconds, verbatim as rendered (UTC + `Z`: row `YYYY-MM-DD`, card `YYYY-MM-DDTHH:MMZ`),
no `T`/`Z`. Zone marker (e.g. `(+03:00)`) — optional, at most once per no conversion. Fallback (agent-rendered): show local (operator's machine):
card; omit in a single-machine setup. If the local timezone is unknown to row `YYYY-MM-DD`, card `YYYY-MM-DD HH:MM` — no seconds, no `T`/`Z`; if the
the agent — show UTC with an explicit `Z`. Never invent a zone. local timezone is unknown to the agent — show UTC with an explicit `Z`.
Never invent a zone.
6. **Refs always full-name** (`task:N`, `inbox:N`, `wiki:N`, … — convention 6. **Refs always full-name** (`task:N`, `inbox:N`, `wiki:N`, … — convention
#1028), never `#<internal id>`, never short aliases. #1028), never `#<internal id>`, never short aliases.
## Server-side display/card fields (priority) ## Server-side display/card fields (priority)
When mappa starts returning ready-made `display` (row) and `card` (markdown Серверные `display` (row) и `card` (markdown) поля реализованы (task:1176/1177,
block) fields on entities — **copy them verbatim** in the matching mode репо 0bf09c6; каналы: /entities/:id, /wiki/:project/:slug, /wiki/:slug,
(row/card). The templates below are the canon fallback and for composing /search/full, /task/:id, /task/list) — **копировать verbatim** в
lists until server fields exist. If a server field exists but looks broken — соответствующем режиме (row → display, карточка → card). Даты в серверных
render per template and mention the discrepancy. полях — UTC с суффиксом Z (row YYYY-MM-DD / card YYYY-MM-DDTHH:MMZ), не
конвертировать. Шаблоны ниже — fallback-канон ДО деплоя (деплой: v0.20.0,
проверять /health) и для составления списков. Если серверное поле есть, но
выглядит битым — рендерить по шаблону и упомянуть расхождение.
--- ---