feat(skills): frontmatter-summary дисциплина (wiki:2661) + wiki.search в MCP-поверхности [skip-tdd: visual]

- mappa-knowledge 1.2.0→1.3.0: карточный поиск wiki.search в MCP-таблице (entity_search остаётся как fallback полных тел); блок Frontmatter-summary — при create/update/promote писать summary: одной строкой в frontmatter
- mappa-brainstorm-promote 1.4.0→1.5.0: summary-дисциплина при wiki_create спеки (service channel)
- dist пересобраны
This commit is contained in:
2026-08-25 08:58:01 +03:00
parent c213997e1d
commit 9b606f79bb
4 changed files with 10 additions and 4 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -1,7 +1,7 @@
--- ---
name: mappa-brainstorm-promote name: mappa-brainstorm-promote
author: ours author: ours
version: 1.4.0 version: 1.5.0
description: > description: >
Finalize a matured brainstorm buffer on the boss's desk Finalize a matured brainstorm buffer on the boss's desk
(~/projects/.workshop/.brainstorm/): ask routing (workshop-meta → local (~/projects/.workshop/.brainstorm/): ask routing (workshop-meta → local
@@ -121,7 +121,7 @@ description: >
4. **Если domain + service channel (mappa-борд, fold-in 1):** 4. **Если domain + service channel (mappa-борд, fold-in 1):**
- **Create — карв-аут, лиз НЕ нужен** (wiki:2660): `task_create`/`wiki_create` - **Create — карв-аут, лиз НЕ нужен** (wiki:2660): `task_create`/`wiki_create`
без claim_token (интерактивный контракт, поллер вне mappa). без claim_token (интерактивный контракт, поллер вне mappa).
- **Спека → вики-сущность:** `mcp__mappa__wiki_create(project, slug, body)` (или `wiki_update(project, id, version, …)`, если страница уже есть). Если спека уже в вики проекта (wiki:NNNN) — не дублировать, описание импл-тасок ссылается на неё. - **Спека → вики-сущность:** `mcp__mappa__wiki_create(project, slug, body)` (или `wiki_update(project, id, version, …)`, если страница уже есть). Если спека уже в вики проекта (wiki:NNNN) — не дублировать, описание импл-тасок ссылается на неё. **Frontmatter-summary (wiki:2661):** при создании пиши `summary:` одной строкой в frontmatter — карточки `wiki.search` и поиск по вики читают его.
- **Pointers-таска НЕ нужна**, если спека уже в вики проекта — дыра pointers закрыта инлайн (описание импл-тасок прямо ссылается на спеку). - **Pointers-таска НЕ нужна**, если спека уже в вики проекта — дыра pointers закрыта инлайн (описание импл-тасок прямо ссылается на спеку).
- **Импл-таски:** `mcp__mappa__task_create(project, slug, title, description, status='ready')`**ПОСЛЕДОВАТЕЛЬНО, не батчем** (см. NB в шаге 7). - **Импл-таски:** `mcp__mappa__task_create(project, slug, title, description, status='ready')`**ПОСЛЕДОВАТЕЛЬНО, не батчем** (см. NB в шаге 7).
- **Review-umbrella:** сервисная таска `mcp__mappa__task_create(status='blocked', blocker=<номера импл-тасок>)`. - **Review-umbrella:** сервисная таска `mcp__mappa__task_create(status='blocked', blocker=<номера импл-тасок>)`.

View File

@@ -1,7 +1,7 @@
--- ---
name: mappa-knowledge name: mappa-knowledge
author: ours author: ours
version: 1.2.0 version: 1.3.0
description: > description: >
Цикл работы со знаниями проекта в Mappa (Karpathy LLM Wiki, канал = Цикл работы со знаниями проекта в Mappa (Karpathy LLM Wiki, канал =
mappa-сущности): ingest → query → lint + граф-слой для mappa-сущности): ingest → query → lint + граф-слой для
@@ -66,7 +66,8 @@ README/ADR (не персистентная база знаний), проект
| Операция | Тул | Примечание | | Операция | Тул | Примечание |
|---|---|---| |---|---|---|
| Чтение страницы | `mcp__mappa__wiki_get(project?, slug)` | чтение — карв-аут | | Чтение страницы | `mcp__mappa__wiki_get(project?, slug)` | чтение — карв-аут |
| Поиск страниц | `mcp__mappa__entity_search(q, type='wiki', project?, scope?, limit)` | ILIKE по body/title | | Поиск страниц | `mcp__mappa__entity_search(q, type='wiki', project?, scope?, limit)` | ILIKE по body/title (полные тела) |
| Карточный поиск | `mcp__mappa__wiki.search(q, scope?, project?, projects?, limit?)` | карточки {ref, project, slug, title, summary, snippet, related} — без тел (wiki:2661) |
| Создать страницу | `mcp__mappa__wiki_create(project, slug, body)` | **карв-аут без лиза** | | Создать страницу | `mcp__mappa__wiki_create(project, slug, body)` | **карв-аут без лиза** |
| Обновить страницу | `mcp__mappa__wiki_update(project, id, title?, body?, version)` | **version-based**: конфликт → 409 → retry со свежей version из wiki_get | | Обновить страницу | `mcp__mappa__wiki_update(project, id, title?, body?, version)` | **version-based**: конфликт → 409 → retry со свежей version из wiki_get |
| Путь между сущностями | `mcp__mappa__graph_path({from, to})` | кратчайшая цепочка, BFS | | Путь между сущностями | `mcp__mappa__graph_path({from, to})` | кратчайшая цепочка, BFS |
@@ -79,6 +80,11 @@ contract, wiki:2660).** `wiki_create` не требует claim_token; `wiki_upd
принимает ожидаемую `version` (свежую из `wiki_get`) — конфликт → 409 → принимает ожидаемую `version` (свежую из `wiki_get`) — конфликт → 409 →
re-GET → retry. re-GET → retry.
**Frontmatter-summary (wiki:2661, карточный поиск).** При create/update/
promote пиши `summary:` — ОДНУ строку-суть в frontmatter страницы (`---\ntitle: …\nsummary: одна строка\n---`). Карточки `wiki.search` читают его
(без summary карточка беднее — fallback только сниппет). Информацию-дубликат
в body не вставляй: summary компилируется один раз, в frontmatter.
**Рефы и id (#1037/#1028).** Публичная поверхность несёт per-type реф полным **Рефы и id (#1037/#1028).** Публичная поверхность несёт per-type реф полным
именем первым полем: `ref: "wiki:3"` (решение 20, конвенция #1028), `num` именем первым полем: `ref: "wiki:3"` (решение 20, конвенция #1028), `num`
следом, глобальный `id` — internal (последним). Для `wiki_update` нужен следом, глобальный `id` — internal (последним). Для `wiki_update` нужен