claude: sync ucnl-market-memory and obsidian-memory skills

- rewrite ucnl-market-memory/SKILL.md with final layout (accounts/products/campaigns/markets + insights/conversations/inbox), extended frontmatter (sensitive flag), domain routing table with border examples
- refresh obsidian-memory/SKILL.md with the same domain-routing section placed at top, matching examples, and updated description with negative trigger
This commit is contained in:
2026-04-20 14:10:04 +03:00
parent 9a2414def3
commit 8213ff750a
2 changed files with 187 additions and 171 deletions
+35 -28
View File
@@ -1,6 +1,6 @@
---
name: obsidian-memory
description: Protocol for using creator/obsidian-vault (Gitea repo at h3fq32.golive.ru) as Claude's long-term memory for the user's PERSONAL projects (infrastructure, embedded, 1C-consulting, lotus-eletre, uspeak trademark, homework-*, claude-skills, etc.). Trigger when the user references past work ("my X project", "we decided Y", "remember that..."), asks Claude to remember/save/update/forget something, mentions a personal project by name, or whenever a substantive insight, decision, or fact surfaces that's worth preserving between sessions. Also covers answering non-trivial project questions that benefit from previously stored context. Describes vault layout, frontmatter conventions, Gitea REST API mechanics (read/list/search/create/update), naming rules, and write permissions. Do NOT trigger for simple one-off technical questions or casual chat that doesn't involve the user's ongoing projects or personal context. Do NOT trigger for UCN marketing/sales topics — clients, distributors, leads, trade shows (INNOPROM etc.), pricing/КП, product marketing for uWave/Zima2/uSpeak/USBL product lines, export deals, regional markets — those belong to the separate `ucnl-market-memory` skill and its own vault `ucnlmarket/ucnl-market-memory`.
description: Protocol for using creator/obsidian-vault (Gitea repo at h3fq32.golive.ru) as Claude's long-term memory for personal and R&D projects of Arthur Abelentsev. Trigger when the user references past work ("my X project", "we decided Y", "remember that..."), asks Claude to remember/save/update/forget something, mentions a project by name (lotus-eletre, uspeak-trademark, homework-*, 1c-<client>, pcb-*, obsidian, claude-skills), or whenever a substantive insight, decision, or fact surfaces that's worth preserving between sessions. Covers personal context, infrastructure (gitea/traefik/mikrotik/xray), embedded firmware, PCB design, 1C consulting for any client, R&D on UCN products (acoustics, firmware, algorithms), legal/trademark work, travel, vehicle/hardware, and general life. Also covers answering non-trivial project questions that benefit from previously stored context. Describes vault layout, frontmatter conventions, Gitea REST API mechanics (read/list/search/create/update), naming rules, and write permissions. Do NOT trigger for: simple one-off technical questions or casual chat that doesn't involve the user's ongoing projects. Do NOT trigger for UCN marketing/sales commercial work (clients, distributors, quotes, exhibitions, pricing, product marketing for uWave/Zima2/uSpeak) — that is handled by a separate ucnl-market-memory skill and a separate repo (ucnlmarket/ucnl-market-memory).
---
# obsidian-memory
@@ -9,6 +9,32 @@ description: Protocol for using creator/obsidian-vault (Gitea repo at h3fq32.gol
Vault — обычный git-репо в Gitea, хранит markdown-заметки с YAML-frontmatter.
Claude читает и пишет заметки через Gitea REST API.
## Разграничение доменов — прочитать первым
У пользователя **два репо памяти** с жёстким разделением:
| Домен | Репо | Скилл |
|---|---|---|
| Личные проекты Артура, инфраструктура, embedded, 1С-консалтинг (любые клиенты), R&D по UCN-продуктам, legal/trademark, быт | `creator/obsidian-vault` | **этот скилл** |
| Маркетинг и продажи UCN (клиенты, дистрибьюторы, выставки, КП, экспорт, product marketing uWave/Zima2/uSpeak/USBL) | `ucnlmarket/ucnl-market-memory` | `ucnl-market-memory` |
**Правило жёсткое:** материалы из одного домена НЕ попадают в репо
другого. Если тема пограничная — спросить пользователя, не додумывать.
**Примеры границы:**
| Запрос | Куда |
|---|---|
| «Прошивка uWave — обновить через STM32CubeProg» | R&D → **этот скилл** |
| «Письмо Mavi Marine по срокам поставки» | sales UCN → `ucnl-market-memory` |
| «Расчёт TDOA для uWave USBL» | R&D/алгоритмы → **этот скилл** |
| «Слайд для INNOPROM KSA 2026» | маркетинг UCN → `ucnl-market-memory` |
| «ТЗ на 1С для Teplovin» | 1С не-UCN → **этот скилл** |
| «Скидка дистрибьютору X» | sales UCN → `ucnl-market-memory` |
«UCN как клиент внутреннего 1С-проекта» — дефолт этот скилл (технический
слой), но с коммерческой частью (бюджет, контракт) — уточнить.
## Where things live
- **Gitea:** `https://git.h3fq32.golive.ru`
@@ -20,26 +46,6 @@ Claude читает и пишет заметки через Gitea REST API.
Если ни там, ни там его нет — попросить пользователя один раз в начале,
в последующих вызовах использовать.
## Domain routing — жёсткое правило
Есть **два независимых vault'а**, каждый под свою область:
| Домен | Vault | Skill |
|---|---|---|
| Личное: infra, embedded, 1С-консалтинг не-UCN, lotus-eletre, uspeak-trademark, homework-*, claude-skills, быт | `creator/obsidian-vault` | **этот** (`obsidian-memory`) |
| Маркетинг и продажи UCN: клиенты, дистрибьюторы, лиды, выставки, КП, экспорт, продуктовый маркетинг uWave/Zima2/uSpeak/USBL | `ucnlmarket/ucnl-market-memory` | `ucnl-market-memory` |
Содержимое одного домена **не попадает** во второй vault. Пограничные
случаи (например, внедрение 1С для самой UCN как клиента) — спрашивать
у пользователя явно, не угадывать. По умолчанию: техническая сторона
(BSL-код, архитектура, миграция) → obsidian-vault; коммерческая
сторона (стоимость контракта, отношения с заказчиком, внутренние
условия) → ucnl-market-memory.
Если пользователь говорит «запомни что uWave продаётся Mavi Marine
за X» — это UCN sales, сюда писать нельзя. Если говорит «на моём
Bambu Lab ASA печатается при 260°C» — это личное, не в ucnl-market-memory.
## Vault layout
```
@@ -134,7 +140,9 @@ sources: # опционально: откуда знание
Если разговор касается проекта/системы/темы, по которым у пользователя
может быть накопленный контекст:
1. **Поиск по теме.** Content-поиск по vault через API:
1. **Проверить домен.** Если это маркетинг/продажи UCN — СТОП,
переключиться на `ucnl-market-memory` skill.
2. **Поиск по теме.** Content-поиск по vault через API:
```
GET /api/v1/repos/creator/obsidian-vault/search?q=<keyword>&type=code
```
@@ -143,10 +151,10 @@ sources: # опционально: откуда знание
```
GET /api/v1/repos/creator/obsidian-vault/contents/claude/memory/projects
```
2. **Читаем top-3..5 самых релевантных.** Приоритет: свежесть (`updated`),
3. **Читаем top-3..5 самых релевантных.** Приоритет: свежесть (`updated`),
явный `project` match, высокий `relevance`. Исключить `private: true`
из ответов (но прочитать можно).
3. **Использовать контекст** в ответе естественно, без меты про «я
4. **Использовать контекст** в ответе естественно, без меты про «я
нашёл заметку...».
### 2. Когда НЕ искать
@@ -156,6 +164,7 @@ sources: # опционально: откуда знание
- Разговорная болтовня, приветствия
- Одноразовые операции
- Вопросы, где пользователь сам дал весь нужный контекст в сообщении
- Темы маркетинга/продаж UCN — это не сюда
### 3. В процессе разговора
@@ -301,7 +310,5 @@ curl -sS -X POST -H "Authorization: token $TOKEN" \
и не упоминать.
- **Честно флагить противоречия** между тем что в vault и что говорит
пользователь, не исправляя молча.
- **Не трогать чужой домен.** UCN sales/marketing → только в
`ucnlmarket/ucnl-market-memory` через skill `ucnl-market-memory`.
Никогда не дублировать материалы между vault'ами — это не sync,
это один источник истины на домен.
- **Не писать в `ucnlmarket/ucnl-market-memory` из этого контекста.**
Если тема всплыла UCN-sales — переключиться на `ucnl-market-memory` skill.