find-vendor

Единый оркестратор поиска подрядчика. Принимает запрос на естественном языке, конвертирует его в JSON, фильтрует и ранжирует подрядчиков из Baserow, суммирует отзывы через LLM и показывает результат в чате. Используй этот скилл когда менеджер описывает, какой специалист ему нужен.

Best use case

find-vendor is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Единый оркестратор поиска подрядчика. Принимает запрос на естественном языке, конвертирует его в JSON, фильтрует и ранжирует подрядчиков из Baserow, суммирует отзывы через LLM и показывает результат в чате. Используй этот скилл когда менеджер описывает, какой специалист ему нужен.

Teams using find-vendor should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/find-vendor/SKILL.md --create-dirs "https://raw.githubusercontent.com/ai-mindset-org/pos-sprint/main/skills/find-vendor/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/find-vendor/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How find-vendor Compares

Feature / Agentfind-vendorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Единый оркестратор поиска подрядчика. Принимает запрос на естественном языке, конвертирует его в JSON, фильтрует и ранжирует подрядчиков из Baserow, суммирует отзывы через LLM и показывает результат в чате. Используй этот скилл когда менеджер описывает, какой специалист ему нужен.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# find-vendor — Поиск подрядчика

## Шаг 1: Разбор запроса (NL → JSON)

Прочитай запрос из `$ARGUMENTS` или из диалога и сгенерируй JSON,
соответствующий `schemas/agent1_output.schema.json`.

**Обязательные поля** (если не указаны — задай уточняющие вопросы, не переходи дальше):
- `source` — язык оригинала (формат: `en_us`, `de_de`, ...)
- `target` — язык перевода
- `type` — тип услуги: `Translation`, `Editing`, `Proofreading`

**Псевдонимы типов:**
- Translation: перевод, translation, перевести
- Editing: редактура, редактирование, editing
- Proofreading: вычитка, proofreading

**Псевдонимы доменов:** MMO, Warhammer, MTPE, Юридичка/юрид, Шутеры

**Значения по умолчанию:**
- `top_n`: 5
- `include_unavailable`: false
- `ranking_weights`: rate=0.3, score=0.25, recommendation=0.2, reliability=0.15, domain_match=0.1
- `max_rate_eur`: null

**Специфика:**
Если менеджер упоминает жанр, тематику, франшизу или особый навык
(например: JRPG, стихи, Warhammer 40K, аниме, мюзикл) —
извлеки ключевые слова в `specialty_keywords` (массив строк)
и выбери релевантные таблицы из каталога ниже → запиши их ID в `specialty_table_ids`.
Если специфики нет — оба поля оставь пустыми массивами.

**Каталог specialty-таблиц (статический):**
```
DB 216 — жанры игр:
  919: Survival horror        922: SOULS-like
  925: Shoot'em up            951: Battle Royale
  960: JRPG                   972: Colony sim
  973: CCG/ККИ                976: Файтинги
  981: Симуляторы             985: ММОRPG
  986: Гонки                  989: Головоломки
  994: Стратегии              995: МОВА
  996: ММО-шутеры             997: Вампиры/РПГ/хорроры

DB 217 — франшизы/вселенные:
  924: Snoopy/Book of Life    956: Rick & Morty
  959: Monster Hunter         961: Harry Potter
  962: Final Fantasy          963: Family Guy/Walking Dead/American Dad
  964: Eve Online             965: Dune
  967: DnD                   968: Disney/Pixar
  969: Disciples              971: Crash Bandicoot
  974: Blizzard               982: Warhammer
  983: Star Trek/Star Wars    1010: BioShock/Dishonored/Wolfenstein/System Shock/Deus Ex

DB 221 — другие темы:
  946: Стритбол/баскетбол/волейбол/скейтбординг
  958: Ninja Edition          970: Crypto
  977: Техника (корабли/поезда/самолёты)
  979: Стихи                  980: Скандинавская мифология
  984: Футбол                 990: Военные корабли
  991: Боевые искусства       992: Байкерство/мотоциклы
  993: Аниме                  1005: Сервисы (твич/дискорд)
  1013: Азия (культура/традиции)
```

Сгенерируй `request_id` (UUID v4):
```bash
py -c "import uuid; print(uuid.uuid4())"
```

Сохрани JSON во временный файл:
```bash
cat > /tmp/fv_request.json << 'EOF'
{ ... сгенерированный JSON ... }
EOF
```

## Шаг 2: Ранжирование через Baserow

```bash
PYTHONPATH=src py scripts/agent2_rank_baserow.py /tmp/fv_request.json \
  --base-url "$BASEROW_BASE_URL" \
  --token "$BASEROW_API_TOKEN" \
  --vendor-rates-table-id "$BASEROW_VENDOR_RATES_TABLE_ID" \
  --language-vendors-table-id "$BASEROW_LANGUAGE_VENDORS_TABLE_ID" \
  --reliability-form-table-id "$BASEROW_RELIABILITY_FORM_TABLE_ID" \
  > /tmp/fv_agent2.json
```

Прочитай `/tmp/fv_agent2.json` через Read tool.

Если переменные окружения не настроены — объясни пользователю какие нужно задать
(`BASEROW_BASE_URL`, `BASEROW_API_TOKEN`, `BASEROW_VENDOR_RATES_TABLE_ID`,
`BASEROW_LANGUAGE_VENDORS_TABLE_ID`, `BASEROW_RELIABILITY_FORM_TABLE_ID`)
и остановись.

## Шаг 3: LLM-анализ отзывов и специфики

Для каждого кандидата из `top_candidates` прочитай:
- `feedback_summary.highlights`, `feedback_summary.risks`, `feedback_summary.form_comments`
- `important_facts` — важные факты из профиля подрядчика
- `specialty_data` — массив ответов из опросов по тематикам/жанрам/франшизам

Дополнительно загрузи сырые комментарии из Baserow через MCP:
```
mcp__baserow__list_rows(table_id=<BASEROW_RELIABILITY_FORM_TABLE_ID>)
```
Отфильтруй строки по email кандидата (поле `Vendor`).
Поля для анализа: `За что можно похвалить`, `За что можно поругать`,
`Дополнительная информация`.

На основе всех собранных данных сформируй для каждого кандидата:
- **summary** — 1-2 предложения: что говорят менеджеры в целом
- **highlights_llm** — 2-3 сильных стороны
- **risks_llm** — риски (если есть)
- **sentiment** — positive / neutral / negative
- **specialty_match** — если менеджер указал специфику (specialty_keywords непустой):
  проверь `specialty_data` и `important_facts` — есть ли у кандидата
  релевантный опыт? Напиши 1-2 предложения с конкретными деталями из ответов.
  Если данных нет — пиши «Данных о специфике нет».

Правила: опирайся только на реальные данные. Если отзывов нет — пиши
«Отзывов нет». Не придумывай.

## Шаг 4: Вывод результатов в чате

Отформатируй и выведи результаты в Markdown:

```
## Результаты поиска: {source} → {target}, {type}{, до X EUR}

Найдено кандидатов: **N**
{Отсеяно M: причины}

---

### 1. {Имя} — {match_score}%

| | |
|---|---|
| **Email** | ... |
| **Ставка** | ... EUR |
| **Оценка** | ... |
| **Рекомендация** | ... |
| **Надёжность** | ... |
| **Статус** | ... |
| **Часовой пояс** | ... |
| **Mattermost** | да/нет |
| **Домены** | ... |
| **CAT** | ... |
| **Важные факты** | ... (если есть) |

**Отзывы менеджеров:** {summary}
- Хвалят: {highlights_llm}
- Риски: {risks_llm}
- Специфика: {specialty_match} (если менеджер запрашивал специфику)
```

Не отправляй в Mattermost — только показывай в чате.
Сохрани финальный agent2 output в `/tmp/fv_agent2.json` для возможного
последующего использования.

Related Skills

writing-content

7
from ai-mindset-org/pos-sprint

Интерактивный процесс написания текстов для вайб-маркетинга на основе Julian Shapiro framework. **Новые возможности (v2.0):** - Research & Gap Analysis (Perplexity → WebSearch fallback) - Scoring 0-5 вместо binary (Novelty + Resonance + Hook + Clarity) - AI-Slop Detection на всех этапах (10 типов patterns) - 3 варианта intro с self-scoring - Markdown export всех промежуточных результатов **Русские triggers:** "напиши пост по шапиро", "написать статью по фреймворку шапиро", "создай текст в стиле julian shapiro", "помоги написать контент по методу shapiro", "контент по julian shapiro фреймворку", "пост по julian shapiro", "напиши в стиле шапиро" **English triggers:** "write content using julian shapiro framework", "create post with shapiro method", "write article shapiro style", "help with julian shapiro writing" **Generic triggers:** "напиши статью", "помоги написать контент", "создай текст", "начать писать", "хочу написать пост", "нужна помощь с текстом", "write content", "write article", "создай контент", "придумай идею для статьи", or requests help with content creation process.

Content & DocumentationClaude

YT Transcribe — YouTube → Whisper → Obsidian

7
from ai-mindset-org/pos-sprint

Транскрибирует YouTube-видео через mlx-whisper (Apple Silicon, Metal-native) с параллельными чанками.

/tg-saved v2 — Telegram Saved Messages → Deep Analysis → Obsidian

7
from ai-mindset-org/pos-sprint

## Назначение

summarize-comments

7
from ai-mindset-org/pos-sprint

Делает LLM-выжимку из комментариев менеджеров об одном или нескольких подрядчиках. Используй этот скилл когда нужно понять что говорят менеджеры о конкретном подрядчике, или получить JSON с выжимкой для дальнейшей обработки.

skill-security

7
from ai-mindset-org/pos-sprint

This skill activates when the user mentions "security audit", "skill audit", "проверка безопасности скилла", "аудит скилла", "skill-security", "проверить скилл", "пересобрать скилл", "rebuild skill", "security check", "dual memory audit", "credential isolation check". Also activates on /skill-security command. Use this skill when the user wants to audit, validate, or rebuild any Claude Code skill for security compliance.

session-status

7
from ai-mindset-org/pos-sprint

Statusline shown in Claude Code UI status bar via settings.json. No action needed in responses.

session-save

7
from ai-mindset-org/pos-sprint

Compress and save current session context for handoff to next session. Use when: (1) context pressure >50%, (2) user says "сохрани сессию", "session save", "checkpoint", (3) before ending a long productive session, (4) switching to a different task mid-session. Supports named sessions: /session-save vpn-fix

continue-session

7
from ai-mindset-org/pos-sprint

Restore context from a named or latest session checkpoint. Use when: (1) user says "продолжи", "continue", "что было в прошлой сессии", (2) starting work after a crash or context overflow, (3) "resume", "восстанови контекст", "где я остановился". Supports named sessions: /continue vpn-fix

compress

7
from ai-mindset-org/pos-sprint

Info-Compressor: compress text/context by 60-70% without losing meaning. Use when: (1) context pressure >50%, (2) user says "сжать", "compress", "compact", (3) need to fit more context into remaining window, (4) preparing handoff blob for next session.

seo-strategist

7
from ai-mindset-org/pos-sprint

Strategic SEO planning and analysis toolkit for site-wide optimization, keyword research, technical SEO audits, and competitive positioning. Complements content-creator's on-page SEO with strategic planning, topic cluster architecture, and SEO roadmap generation. Use for keyword strategy, technical SEO audits, SERP analysis, site architecture planning, or when user mentions SEO strategy, keyword research, technical SEO, or search rankings.

roi-razvitie-draft

7
from ai-mindset-org/pos-sprint

Generates a draft meeting document for the weekly "Roi Развитие" (Wednesday, product Roi Navigator). Use when the user asks for a draft for the meeting, for Wednesday's doc, for "Roi Развитие", or for the weekly team meeting agenda.

project-knowledge-base

7
from ai-mindset-org/pos-sprint

Collects, structures and maintains a Project Knowledge Base (PKB.md) in Obsidian for a marketing agency. Aggregates data from Google Drive, Gmail, Telegram (group chat and DMs via MTProto), moo.team tasks/comments, and local Obsidian meeting transcripts. Uses async parallel collection and a two-stage LLM pipeline for init. Use when the user wants to initialize, update or enrich a project's knowledge base, mentions PKB, project knowledge base, синхронизация проекта, база знаний проекта, init_project_knowledge, update_project_knowledge, or ad_hoc_add_context.