agentleFS
AlekseiULAlekseiUL/heisenberg-team/skills/quality-check/SKILL.md

quality-check

Skill17 starsChanged 18 days agoMITView on GitHub

Отдел контроля качества (ОТК). Обязательная проверка ЛЮБОГО материала перед сдачей. Три режима: контент для {{PAID_GROUP_NAME}}, GitHub публикация, Telegram пост. Триггеры: 'проверь качество', 'ОТК', 'quality check', 'прогони чеклист', 'проверка перед публикацией'.

  • Reads credentials

10 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Files
SKILL.md

Quality Check - Отдел контроля качества (ОТК)

Назначение

Обязательная проверка ЛЮБОГО материала перед сдачей {{OWNER_NAME}}. Это последний рубеж перед публикацией. Если ОТК не пройден - материал возвращается на доработку.

Главный принцип: НЕ НАВРЕДИ

Любой продукт который мы выпускаем - скилл, инструкция, агент, PDF - должен быть "стерильным":

  • Работает на ЛЮБОЙ ОС (macOS, Linux, Windows/WSL)
  • Работает с ЛЮБОЙ моделью (Claude, GPT, Gemini, локальные)
  • НЕ ломает то что уже стоит у человека (скиллы, кроны, конфиг, память)
  • НЕ перезаписывает чужие файлы без явного предупреждения
  • AGENT.md всегда начинает с "просканируй что уже есть" перед изменениями
  • Легко устанавливается и легко удаляется (инструкция по откату)
  • Зависимости: ноль или минимум, все проверяются перед использованием

Если продукт не проходит этот принцип - он не готов. Точка.

Кто проходит ОТК:

  • Валера (Тимлид) - ОБЯЗАТЕЛЬНО перед сдачей каждого продукта
  • {{AGENT_NICKNAME}} - при самостоятельном создании материалов
  • Продюсер - финальная проверка собранного пакета

Принцип: никто не проверяет сам себя. Если Валера создал - ОТК прогоняет Продюсер или {{AGENT_NICKNAME}}. Если {{AGENT_NICKNAME}} создал - прогоняет сам, но по жёсткому чеклисту без исключений.


Как запускать

Определи режим по типу материала:

МатериалРежим
MD + PDF + AGENT.md для платной группыA: Контент
Репозиторий для GitHubB: GitHub
Пост для Telegram каналаC: Пост
Скилл или агентD: Скилл/Агент
Любая комбинацияПрогнать ВСЕ применимые режимы

Режим A: Контент для {{PAID_GROUP_NAME}}

A1. Комплектность файлов

- [ ] MD-файл (инструкция для человека, 350-500 строк)
- [ ] PDF-файл (красиво свёрстанный, Arial шрифты, кириллица)
- [ ] AGENT.md (инструкция для агента, идемпотентные шаги)
- [ ] Пост-анонс для Telegram (отдельный файл или в пакете)

A2. Стиль текста

Сверить с skills/copywriter/references/voice-dictionary.md:

# Автоматическая проверка запрещённых паттернов
FILE="путь_к_файлу"

# Длинные тире (должны быть дефисы с пробелами)
grep -n "—" "$FILE" && echo "❌ НАЙДЕНЫ длинные тире (—)! Заменить на дефис (-)" || echo "✅ Тире ок"

# AI-мусор
grep -niE "отличный вопрос|давайте рассмотрим|рад помочь|безусловно|является|данный подход|в рамках|на сегодняшний день|в целом|таким образом" "$FILE" && echo "❌ НАЙДЕН AI-мусор!" || echo "✅ AI-мусор не найден"

# Канцелярит
grep -niE "осуществлять|посредством|в связи с тем|на основании|в соответствии|надлежащим образом|вышеуказанн" "$FILE" && echo "❌ НАЙДЕН канцелярит!" || echo "✅ Канцелярит не найден"

Ручная проверка:

- [ ] Язык разговорный, как в мессенджере, не как в журнале
- [ ] Нет пустых фраз и воды
- [ ] Конкретика: числа, команды, примеры
- [ ] Дефис (-) вместо длинного тире (—) ВЕЗДЕ
- [ ] Нет "Отличный вопрос!", "Давайте рассмотрим", "является"

A3. Формат PDF

Сверить с skills/methodologist/references/pdf-design-standard.md:

- [ ] A4, портрет, белый фон
- [ ] Поля: 25-30 мм бока, 20 мм верх, 25 мм низ
- [ ] Титульная: тёмный баннер (#3D4553), синяя линия (#4A90D9)
- [ ] Шрифт: Arial (НЕ DejaVu, НЕ Helvetica) - кириллица без квадратов
- [ ] Нумерация страниц
- [ ] Колонтитул с названием серии
- [ ] Текст не вылезает за границы
- [ ] Код в блоках читаемый (моноширинный шрифт, фон #F5F5F5)

A4. Контент (стандарт методолога)

Сверить с skills/methodologist/references/pdf-content-standard.md:

- [ ] Структура: Зачем → Что делаем → Пошагово → Проверка → Troubleshooting
- [ ] Время выполнения указано (20-60 минут)
- [ ] Команды в блоках кода (copy-paste ready)
- [ ] Все команды проверены через --help на реальной системе
- [ ] Чеклист "всё работает" в конце
- [ ] Troubleshooting: минимум 3 типичные проблемы

A5. AGENT.md (для агента подписчика)

- [ ] ШАГ 0 ОБЯЗАТЕЛЕН: "Просканируй текущую систему" (ОС, модель, существующие скиллы, структура папок)
- [ ] Шаги идемпотентные (можно запустить повторно без поломок)
- [ ] Перед каждым шагом: "Проверь, не настроено ли уже"
- [ ] НЕ перезаписывает существующие файлы без предупреждения
- [ ] НЕ удаляет и НЕ меняет чужие скиллы, кроны, конфиги
- [ ] Работает с ЛЮБОЙ моделью (Claude, GPT, Gemini, локальные)
- [ ] Работает на ЛЮБОЙ ОС (macOS, Linux, Windows/WSL)
- [ ] Нет объяснений "зачем" - только "что делать"
- [ ] Все пути относительные или с переменными ($HOME, $OPENCLAW_HOME)
- [ ] Нет hardcoded значений (порты, ID, пути, имена агентов)
- [ ] Если нужны зависимости - проверить наличие, предложить установку, НЕ ставить молча
- [ ] После установки: проверка что система работает как раньше + новый функционал

A5b. Совместимость и безопасность установки

- [ ] Продукт НЕ ломает существующую архитектуру пользователя
- [ ] НЕ конфликтует с уже установленными скиллами
- [ ] НЕ перезаписывает память, конфиги, auth-профили
- [ ] Если есть конфликт - предупредить, спросить, дать выбор
- [ ] Инструкция по УДАЛЕНИЮ продукта (откат) есть или описана
- [ ] Протестировано на "чистой" системе (только OpenClaw без кастомов)

A6. Персональные данные

# Полный скан - ОБЯЗАТЕЛЬНО для КАЖДОГО файла
PATTERNS="{{OWNER_NAME}}|{{OWNER_SURNAME}}|{{OWNER_USERNAME}}"
PATTERNS+="|{{FAMILY_MEMBER_1}}|{{FAMILY_MEMBER_2}}|{{PET_NAME}}"
PATTERNS+="|{{OWNER_TELEGRAM_ID}}|{{SECOND_USER_TELEGRAM_ID}}|{{TELEGRAM_CHANNEL}}|@{{TELEGRAM_CHANNEL}}|@{{OWNER_USERNAME}}"
PATTERNS+="|{{AGENT_NICKNAME}}"
PATTERNS+="|{{CITY}}|{{DISTRICT}}|{{CITY}}|{{COUNTRY}}|georgia|{{HOMETOWN}}|{{BIRTH_CITY}}"
PATTERNS+="|операционка|ОПЕРАЦИОНКА|{{PAID_CHANNEL_ID}}|{{EXTRA_CHAT_ID}}"
PATTERNS+="|{{LOCAL_PATH}}"
PATTERNS+="|{{USERNAME_1}}|{{USERNAME_2}}"
PATTERNS+="|sk-ant-|ghp_|gho_|xai-|AIzaSy"
PATTERNS+="|[0-9]+:AA[A-Za-z0-9_-]{30}"

grep -rniE "$PATTERNS" "$FILE" \
  | grep -v "YOUR_\|example\|placeholder\|шаблон\|замените"
- [ ] Grep чистый (0 результатов) или все найденные - ложные срабатывания
- [ ] Нет реальных API ключей, токенов, паролей
- [ ] Нет реальных email адресов
- [ ] Нет абсолютных путей (/Users/...)

A7. Disclaimer (если применимо)

- [ ] Медицина: "Не заменяет очный осмотр врача"
- [ ] Финансы: "Не является финансовой рекомендацией"
- [ ] Цвет disclaimer: приглушённый красный (#C0392B)

Режим B: GitHub публикация

B1. Структура репозитория

- [ ] README.md: описание, установка (< 2 мин), использование, примеры
- [ ] LICENSE (MIT)
- [ ] .gitignore настроен
- [ ] Нет лишних файлов (.DS_Store, .env, node_modules/, __pycache__/)

B2. README качество

- [ ] Первый абзац: ЧТО это и ЗАЧЕМ (30 секунд чтения)
- [ ] Установка: copy-paste команды
- [ ] Примеры использования: минимум 2
- [ ] Скриншоты или GIF (если UI)
- [ ] Ссылки рабочие (проверить!)
- [ ] Язык: русский основной, английский для названий/команд

B3. Безопасность (КРИТИЧНО)

Запустить полный скан из режима A6 по ВСЕМ файлам:

grep -rniE "$PATTERNS" . \
  --include="*.md" --include="*.py" --include="*.sh" \
  --include="*.json" --include="*.js" --include="*.yaml" \
  | grep -v ".git/"

Дополнительно:

- [ ] Нет абсолютных путей - только относительные или переменные
- [ ] Нет hardcoded портов (18789, 18790, 18800)
- [ ] Нет ID чатов/групп
- [ ] Нет внутренних кодовых имён агентов
- [ ] Примеры используют generic данные (your-bot, your-channel, user@example.com)

B4. Универсальность и совместимость

- [ ] Работает на macOS + Linux + Windows/WSL
- [ ] Нет зависимости от конкретной модели (Claude/GPT/Gemini/локальные)
- [ ] Нет зависимости от конкретных скиллов или агентов пользователя
- [ ] Зависимости: минимум, все указаны в README, проверка наличия перед использованием
- [ ] Первый запуск: понятно что произойдёт
- [ ] НЕ ломает существующую систему пользователя
- [ ] НЕ перезаписывает чужие файлы без спроса
- [ ] Инструкция по удалению/откату есть

B5. Публикация

- [ ] Репо: сначала private, потом public (если решили)
- [ ] Description и topics заполнены
- [ ] Social preview загружен (если есть баннер)
- [ ] Первый коммит чистый (нет истории с утечками)

Режим C: Telegram пост

C1. Формат

- [ ] Длина: до 4096 символов (лимит Telegram)
- [ ] Если с фото: caption до 1024 символов
- [ ] Макс 1-2 эмодзи (не новогодняя ёлка)
- [ ] Абзацы: короткие, 2-3 предложения
- [ ] Жирный (**) для ключевых мыслей (1-3 раза за пост, не больше)

C2. Стиль

Сверить с voice-dictionary:

- [ ] Энергичный, прямой, дружелюбный
- [ ] Нет длинных тире (—) - только дефис (-)
- [ ] Нет AI-мусора ("Отличный!", "Давайте рассмотрим")
- [ ] Нет канцелярита ("является", "осуществлять")
- [ ] Конкретика > абстракции
- [ ] Пишем "я сделал" а не "было реализовано"

C3. Содержание

- [ ] Ценность: читатель уходит с чем-то полезным
- [ ] CTA: есть призыв к действию (но не кричащий)
- [ ] Ссылки: рабочие, не битые
- [ ] Если упоминаем продукт/инструмент - ссылка есть

Режим D: Скилл или Агент

D1. Скилл

- [ ] Frontmatter: name, description, triggers заполнены
- [ ] Description: одно предложение, понятно что делает
- [ ] Triggers: минимум 3, на русском и английском
- [ ] Структура: Роль → Когда активируется → Алгоритм → Формат вывода
- [ ] Примеры использования есть
- [ ] related_skills указаны (если есть связи)
- [ ] Валидация OpenClaw: файл не ломает парсер
- [ ] Портативность: работает на любой модели (Claude/GPT/Gemini)
- [ ] Нет hardcoded путей, ID, токенов
- [ ] Не конфликтует с другими скиллами (уникальные triggers)
- [ ] Легко устанавливается: скопировал в skills/ → работает

D2. Агент

- [ ] AGENTS.md: роль, команда, скиллы, пайплайн
- [ ] SOUL.md: характер, стиль, границы
- [ ] USER.md: контекст владельца
- [ ] IDENTITY.md: кто я, как общаюсь
- [ ] TOOLS.md: инструменты и правила
- [ ] MEMORY.md: начальная память
- [ ] memory/: lessons.md, patterns.md, projects-log.md
- [ ] Прозрачность: блок уведомлений в AGENTS.md
- [ ] memorySearch: включён или обоснованно выключен

Формат отчёта ОТК

После прогона всех применимых режимов - выдать отчёт:

## ОТК: [Название материала]
**Режим:** A/B/C/D
**Дата:** YYYY-MM-DD
**Проверил:** [кто]

### Результат: ✅ PASSED / ❌ FAILED

### Найденные проблемы:
1. ❌ [описание] → [как исправить]
2. ⚠️ [некритичное] → [рекомендация]

### Проверено:
- ✅ Стиль текста (voice-dictionary)
- ✅ Формат PDF (design-standard)
- ✅ Персональные данные (grep чистый)
- ✅ Команды проверены (--help)
...

Если FAILED: вернуть на доработку с конкретным списком что исправить. Если PASSED: материал готов к сдаче {{OWNER_NAME}}.


Чего НЕ проверяет ОТК

  • Стратегическую ценность контента (это решает {{OWNER_NAME}})
  • Нужен ли этот материал вообще (это решает Продюсер)
  • Маркетинговую эффективность (это Митя)
  • Техническую корректность кода (это Валера при создании)

ОТК проверяет ОФОРМЛЕНИЕ, СТИЛЬ, БЕЗОПАСНОСТЬ и СООТВЕТСТВИЕ СТАНДАРТАМ.


Версия: 1.0 | Создан: 2026-03-10

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.