diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 1538e00f4..ea80c96e5 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -40,6 +40,25 @@ "./skills/web-artifacts-builder", "./skills/webapp-testing" ] + }, + { + "name": "ai-pmo-skills", + "description": "AI-PMO Skills for construction and infrastructure project management including Gantt planning, progress tracking, risk analysis, executive dashboards, stakeholder communications, forecasting, and contract management", + "source": "./", + "strict": false, + "skills": [ + "./skills/gantt-planner", + "./skills/progress-tracker", + "./skills/risk-analyzer", + "./skills/executive-dashboard", + "./skills/letter-generator", + "./skills/forecast-engine", + "./skills/contract-analyzer", + "./skills/act-processor", + "./skills/deviation-alert", + "./skills/resource-allocator", + "./skills/telegram-worklog" + ] } ] } diff --git a/skills/act-processor/SKILL.md b/skills/act-processor/SKILL.md new file mode 100644 index 000000000..9c9726ef3 --- /dev/null +++ b/skills/act-processor/SKILL.md @@ -0,0 +1,216 @@ +--- +name: act-processor +description: Обработка и генерация актов КС-2, КС-3 и других закрывающих документов. Используй когда пользователь говорит "обработай акт", "сформируй КС-2", "закрывающие документы", "акт выполненных работ", "справка о стоимости". +--- + +# Act Processor — Обработка актов выполненных работ + +## Назначение + +Работа с актами и закрывающими документами: +- Обработка входящих актов КС-2, КС-3 +- Генерация актов на основе данных о выполнении +- Проверка соответствия сметам и договору +- Формирование пакета закрывающих документов + +## Формы документов + +### КС-2 (Акт о приёмке выполненных работ) +Унифицированная форма для фиксации объёмов и стоимости выполненных работ. + +### КС-3 (Справка о стоимости выполненных работ) +Сводный документ для оплаты, суммирует данные из КС-2. + +### КС-6а (Журнал учёта выполненных работ) +Накопительная ведомость по проекту. + +## Структура КС-2 + +``` +┌─────────────────────────────────────────────────────────────┐ +│ АКТ │ +│ О ПРИЁМКЕ ВЫПОЛНЕННЫХ РАБОТ │ +│ № ___ │ +├─────────────────────────────────────────────────────────────┤ +│ Стройка: ________________________________________________ │ +│ Объект: _________________________________________________ │ +│ Договор: № ___ от _______ │ +│ Отчётный период: с ___ по ___ │ +├─────────────────────────────────────────────────────────────┤ +│ № │ Наименование │ Ед. │ Кол-во │ Цена │ Стоимость │ +│ │ работ │ изм │ │ │ │ +├───┼──────────────┼─────┼────────┼──────┼────────────────────┤ +│ 1 │ Разработка │ м³ │ 1000 │ 500 │ 500 000 │ +│ │ грунта │ │ │ │ │ +├───┼──────────────┼─────┼────────┼──────┼────────────────────┤ +│ │ ИТОГО: │ │ │ │ 500 000 │ +└───┴──────────────┴─────┴────────┴──────┴────────────────────┘ +│ Сдал: Подрядчик │ Принял: Заказчик │ +│ _____________ │ _____________ │ +└──────────────────────────┴──────────────────────────────────┘ +``` + +## Workflow + +### Режим 1: Обработка входящего акта + +**Шаг 1:** Загрузка документа +- Поддерживаемые форматы: PDF, Excel, Word +- Извлечение данных: номер, дата, объёмы, стоимость + +**Шаг 2:** Верификация +- Проверка соответствия смете +- Проверка расценок (ФГИС ЦС, договорные) +- Проверка объёмов (не более остатка по договору) +- Арифметическая проверка + +**Шаг 3:** Формирование заключения +``` +✅ Проверка акта КС-2 № 5 от 25.01.2026 + +Объёмы: ✓ Соответствуют смете +Расценки: ✓ Соответствуют договору +Арифметика: ✓ Корректна +Остаток по договору: 2 500 000 ₽ + +Рекомендация: К ПОДПИСАНИЮ +``` + +### Режим 2: Генерация акта + +**Шаг 1:** Сбор данных +- Данные о выполнении из progress-tracker +- Расценки из сметы/договора +- Период отчётности + +**Шаг 2:** Формирование акта +- Заполнение шапки (реквизиты, договор, период) +- Заполнение табличной части (работы, объёмы, стоимость) +- Расчёт итогов + +**Шаг 3:** Генерация пакета документов +1. КС-2 (Excel) +2. КС-3 (Excel) +3. Сопроводительное письмо (Word) +4. Счёт на оплату (опционально) + +## Проверки + +### Соответствие смете +```python +# Проверка: объём в акте ≤ объём в смете - ранее закрыто +остаток_по_смете = смета.объём - сумма(ранее_закрыто) +if акт.объём > остаток_по_смете: + ❌ "Превышение объёма по позиции {название}" +``` + +### Соответствие расценкам +```python +if акт.расценка != договор.расценка: + ❌ "Расценка не соответствует договору" + expected: договор.расценка + actual: акт.расценка +``` + +### Арифметика +```python +if акт.объём * акт.расценка != акт.стоимость: + ❌ "Арифметическая ошибка" + expected: акт.объём * акт.расценка + actual: акт.стоимость +``` + +## Примеры использования + +### Пример 1: Проверка входящего акта +``` +Пользователь: Проверь акт КС-2 от субподрядчика [прикладывает файл] + +Claude: +📋 Проверка акта КС-2 № 12 от 25.01.2026 +Субподрядчик: ООО "СтройМонтаж" +Договор: № 45-2025 от 01.06.2025 + +**Результаты проверки:** + +✅ Реквизиты: корректны +✅ Период: 01.01.2026 - 25.01.2026 +✅ Объёмы: соответствуют журналу работ + +⚠️ Замечания: +1. Позиция 3 "Укладка асфальтобетона": + - В акте: 1200 м² + - Остаток по договору: 1000 м² + - Превышение: 200 м² (требует допсоглашение) + +2. Позиция 7 "Монтаж ограждений": + - Расценка в акте: 1500 ₽/п.м. + - Расценка по договору: 1400 ₽/п.м. + - Разница: +100 ₽/п.м. + +**Рекомендация:** Вернуть на доработку с замечаниями +``` + +### Пример 2: Генерация акта +``` +Пользователь: Сформируй акт КС-2 по проекту "Мост №5" за январь + +Claude: +📝 Формирую акт КС-2... + +**Данные из progress-tracker:** +- Проект: Мост №5 +- Период: 01.01.2026 - 31.01.2026 +- Выполнено работ: 12 позиций +- Общая стоимость: 4 500 000 ₽ + +**Генерирую документы:** +1. КС-2_Мост5_январь_2026.xlsx +2. КС-3_Мост5_январь_2026.xlsx +3. Сопроводительное_КС_Мост5.docx + +**Сводка:** +| Раздел | Стоимость | +|--------|-----------| +| Земляные работы | 1 200 000 | +| Бетонные работы | 2 800 000 | +| Арматурные работы | 500 000 | +| **ИТОГО:** | **4 500 000** | +``` + +### Пример 3: Накопительный итог +``` +Пользователь: Покажи сколько закрыто по договору с начала работ + +Claude: +📊 Накопительный итог по договору № 125-2025 + +**Договор:** 15 000 000 ₽ +**Период:** март 2025 - январь 2026 + +| Месяц | КС-2 № | Сумма | Накопительно | % | +|-------|--------|-------|--------------|---| +| Март | 1 | 1 200 000 | 1 200 000 | 8% | +| Апрель | 2 | 1 800 000 | 3 000 000 | 20% | +| Май | 3 | 2 500 000 | 5 500 000 | 37% | +| ... | ... | ... | ... | ... | +| Январь | 10 | 4 500 000 | 12 000 000 | 80% | + +**Остаток:** 3 000 000 ₽ (20%) +**Прогноз закрытия:** февраль 2026 +``` + +## Интеграция + +- **progress-tracker** — данные о выполнении работ +- **contract-analyzer** — условия договора, расценки +- **letter-generator** — сопроводительные письма +- **xlsx** — генерация Excel-файлов +- **1С:ERP** — синхронизация с бухгалтерией + +## Выходные документы + +1. **КС-2_[проект]_[период].xlsx** — акт о приёмке +2. **КС-3_[проект]_[период].xlsx** — справка о стоимости +3. **Сопроводительное_КС_[проект].docx** — письмо +4. **Реестр_актов_[проект].xlsx** — накопительная ведомость diff --git a/skills/contract-analyzer/SKILL.md b/skills/contract-analyzer/SKILL.md new file mode 100644 index 000000000..ba8072628 --- /dev/null +++ b/skills/contract-analyzer/SKILL.md @@ -0,0 +1,263 @@ +--- +name: contract-analyzer +description: Анализ договоров и контрактов, выявление рисков и ключевых условий. Используй когда пользователь говорит "проанализируй договор", "что по контракту", "условия оплаты", "штрафы по договору", "сроки по договору", "обязательства". +--- + +# Contract Analyzer — Анализ договоров + +## Назначение + +Комплексный анализ договоров подряда: +- Извлечение ключевых условий +- Выявление рисков и "подводных камней" +- Проверка на типичные проблемные пункты +- Сравнение с типовыми условиями +- Формирование справки по договору + +## Ключевые разделы для анализа + +### 1. Предмет договора +- Объект строительства +- Состав работ +- Проектная документация +- Ссылки на сметы + +### 2. Сроки +- Начало работ +- Окончание работ +- Промежуточные этапы +- Условия продления +- Основания для переноса + +### 3. Цена и порядок оплаты +- Твёрдая / приблизительная цена +- Авансирование +- Промежуточные платежи +- Удержания (гарантийные, резервные) +- Срок оплаты после подписания актов + +### 4. Ответственность сторон +- Неустойка за просрочку +- Штрафы за нарушения +- Ограничение ответственности +- Страхование + +### 5. Изменение и расторжение +- Порядок изменения объёмов +- Порядок изменения цены +- Основания расторжения +- Последствия расторжения + +### 6. Приёмка работ +- Порядок уведомления +- Сроки приёмки +- Основания для отказа +- Гарантийные обязательства + +## Чек-лист анализа + +### Критические пункты (🔴) + +| Пункт | Риск | На что смотреть | +|-------|------|-----------------| +| Твёрдая цена | Рост затрат | Механизм пересмотра при инфляции >10% | +| Штраф >0.1%/день | Высокие санкции | Предел ответственности, взаимность | +| Удержание >10% | Заморозка средств | Условия возврата, сроки | +| Гарантия >5 лет | Долгие обязательства | Объём гарантийных работ | +| Срок оплаты >30 дней | Кассовый разрыв | Влияние на cash flow | + +### Важные пункты (🟡) + +| Пункт | Риск | На что смотреть | +|-------|------|-----------------| +| Приёмка "при устранении всех замечаний" | Затягивание приёмки | Сроки устранения, существенность | +| "По дополнительному согласованию" | Неопределённость | Какие именно условия | +| Односторонний отказ заказчика | Риск прекращения | Компенсация выполненного | + +### Стандартные пункты (🟢) + +| Пункт | Норма | +|-------|-------| +| Неустойка | 0.03-0.1% в день | +| Гарантия | 2-5 лет | +| Срок оплаты | 10-30 дней | +| Аванс | 10-30% | +| Удержание | 3-5% | + +## Workflow + +### Шаг 1: Загрузка договора + +Поддерживаемые форматы: +- PDF (сканы с OCR) +- Word (.docx) +- Текстовые файлы + +### Шаг 2: Извлечение данных + +Автоматически извлекаем: +```yaml +contract: + number: "125-2025" + date: "15.03.2025" + parties: + customer: "АО Ямалавтодор" + contractor: "ООО Ваша Компания" + subject: "Строительство моста через р. Полуй" + price: + value: 150_000_000 + type: "твёрдая" + vat: "включая НДС 20%" + dates: + start: "01.04.2025" + end: "30.11.2025" + payment: + advance: 30% + interim: "ежемесячно по КС-2" + term: "15 рабочих дней" + retention: 5% + penalties: + contractor_delay: "0.1% в день, max 10%" + customer_delay: "0.05% в день, max 5%" + warranty: "5 лет" +``` + +### Шаг 3: Анализ рисков + +Для каждого пункта: +1. Сравниваем с рыночной практикой +2. Оцениваем финансовое влияние +3. Формулируем риск и рекомендацию + +### Шаг 4: Формирование справки + +Выходной документ: +- Резюме (1 страница) +- Ключевые условия (таблица) +- Анализ рисков (матрица) +- Рекомендации +- Чек-лист для исполнения + +## Примеры использования + +### Пример 1: Полный анализ договора +``` +Пользователь: Проанализируй договор [прикладывает файл] + +Claude: +📋 АНАЛИЗ ДОГОВОРА № 125-2025 + +**Стороны:** +- Заказчик: АО "Ямалавтодор" +- Подрядчик: ООО "Ваша Компания" + +**Предмет:** Строительство моста через р. Полуй, км 45+200 + +**Ключевые параметры:** +| Параметр | Значение | Оценка | +|----------|----------|--------| +| Цена | 150 млн ₽ (твёрдая) | 🟡 | +| Сроки | 01.04 - 30.11.2025 (8 мес) | 🟢 | +| Аванс | 30% (45 млн) | 🟢 | +| Срок оплаты | 15 р.д. | 🟢 | +| Удержание | 5% | 🟢 | +| Неустойка | 0.1%/день, max 10% | 🟡 | +| Гарантия | 5 лет | 🟡 | + +**Выявленные риски:** + +🔴 **Критические:** +1. П. 5.3 — Неустойка несимметрична (0.1% vs 0.05%) + - Риск: Высокие санкции при задержке + - Рекомендация: Согласовать равные условия + +🟡 **Важные:** +2. П. 7.2 — Твёрдая цена без механизма пересмотра + - Риск: Рост цен на материалы + - Рекомендация: Добавить индексацию при инфляции >10% + +3. П. 9.1 — Гарантия 5 лет без ограничения объёма + - Риск: Неограниченные гарантийные обязательства + - Рекомендация: Ограничить 2% от цены договора + +**Чек-лист исполнения:** +☐ Получить аванс до начала работ +☐ Еженедельно фиксировать прогресс +☐ Акты КС-2 — ежемесячно до 25 числа +☐ Уведомлять о рисках в течение 3 дней +``` + +### Пример 2: Поиск конкретного условия +``` +Пользователь: Какие штрафы по договору с Ямалавтодором? + +Claude: +💰 Штрафные санкции по Договору № 125-2025: + +**За нарушение сроков:** +| Сторона | Размер | Предел | Основание | +|---------|--------|--------|-----------| +| Подрядчик | 0.1%/день | 10% от цены | П. 8.2 | +| Заказчик | 0.05%/день | 5% от цены | П. 8.3 | + +**Расчёт при задержке 30 дней:** +- Подрядчик: 150 млн × 0.1% × 30 = 4.5 млн ₽ +- Заказчик: 150 млн × 0.05% × 30 = 2.25 млн ₽ + +**Иные штрафы:** +- Нарушение ТБ: 100 000 ₽ за случай (п. 8.5) +- Некачественные материалы: 200 000 ₽ (п. 8.6) + +⚠️ Внимание: неустойка несимметрична в пользу Заказчика +``` + +### Пример 3: Основания для продления +``` +Пользователь: На каком основании можно продлить сроки? + +Claude: +📅 Основания для продления сроков (Договор № 125-2025): + +**По п. 4.5 срок продлевается при:** +1. Форс-мажор (п. 10) — документально подтверждённый +2. Приостановка работ по инициативе Заказчика (п. 4.6) +3. Изменение объёмов работ >10% (п. 6.2) +4. Задержка передачи документации >5 дней (п. 3.2) +5. Неблагоприятные погодные условия (п. 4.7): + - Температура ниже -30°C + - Ветер более 15 м/с + - Осадки, препятствующие работам + +**Порядок продления:** +1. Уведомить Заказчика в течение 3 рабочих дней +2. Предоставить обосновывающие документы +3. Согласовать дополнительное соглашение + +**Шаблон письма:** → используй letter-generator +``` + +## Интеграция + +- **risk-analyzer** — передача контрактных рисков +- **letter-generator** — письма по условиям договора +- **gantt-planner** — сроки из договора в график +- **act-processor** — условия приёмки и оплаты + +## База знаний + +### Нормативные документы +- ГК РФ, глава 37 (Подряд) +- ФЗ-44 (для госконтрактов) +- Градостроительный кодекс + +### Типовые формы +- Типовой договор подряда +- Дополнительное соглашение +- Акт приёмки-передачи + +## Выходные документы + +1. **Анализ_договора_[номер].docx** — полный анализ +2. **Ключевые_условия_[номер].xlsx** — таблица условий +3. **Чек-лист_[номер].xlsx** — для контроля исполнения +4. **Риски_контракта_[номер].xlsx** — матрица рисков diff --git a/skills/deviation-alert/SKILL.md b/skills/deviation-alert/SKILL.md new file mode 100644 index 000000000..9fc9021b3 --- /dev/null +++ b/skills/deviation-alert/SKILL.md @@ -0,0 +1,330 @@ +--- +name: deviation-alert +description: Автоматические уведомления об отклонениях и критических событиях. Используй когда пользователь говорит "настрой уведомления", "алерты", "триггеры оповещений", "кого уведомлять", "эскалация". +--- + +# Deviation Alert — Система уведомлений + +## Назначение + +Автоматическое уведомление о критических отклонениях: +- Отклонения от графика (SPI) +- Отклонения от бюджета (CPI) +- Срабатывание рисков +- Пропуск вех +- Критические события + +## Пороги оповещений + +### По срокам (SPI) + +| Уровень | SPI | Отклонение | Действие | +|---------|-----|------------|----------| +| 🟢 Норма | >0.95 | <5% | Мониторинг | +| 🟡 Внимание | 0.85-0.95 | 5-15% | Уведомление РП | +| 🟠 Предупреждение | 0.75-0.85 | 15-25% | Уведомление РП + PMO | +| 🔴 Критично | <0.75 | >25% | Эскалация на ГД | + +### По бюджету (CPI) + +| Уровень | CPI | Отклонение | Действие | +|---------|-----|------------|----------| +| 🟢 Норма | >0.95 | <5% | Мониторинг | +| 🟡 Внимание | 0.90-0.95 | 5-10% | Уведомление РП | +| 🟠 Предупреждение | 0.85-0.90 | 10-15% | Уведомление РП + ФД | +| 🔴 Критично | <0.85 | >15% | Эскалация на ГД | + +### По вехам + +| Событие | Порог | Действие | +|---------|-------|----------| +| Приближение вехи | 7 дней | Напоминание РП | +| Приближение вехи | 3 дня | Напоминание РП + PMO | +| Пропуск вехи | 0 дней | Эскалация на PMO | +| Задержка вехи | >7 дней | Эскалация на ГД | + +### По рискам + +| Событие | Действие | +|---------|----------| +| Триггер риска сработал | Уведомление владельца риска | +| Риск реализовался | Уведомление РП + PMO | +| Критический риск | Эскалация на ГД | + +## Матрица эскалации + +``` + Уровень 1 Уровень 2 Уровень 3 + (Информация) (Внимание) (Критично) + +Получатель: РП РП + PMO ГД + все + +Срок реакции: 24 часа 8 часов 2 часа + +Формат: Email Email + Email + + Telegram Telegram + + Звонок +``` + +## Типы уведомлений + +### 1. Плановые + +| Уведомление | Периодичность | Получатели | +|-------------|---------------|------------| +| Еженедельный статус | Пн 09:00 | Все РП, PMO | +| Ежемесячный отчёт | 1-е число | ГД, ФД, ГИ | +| Напоминание о вехе | За 7, 3, 1 день | РП проекта | + +### 2. Событийные + +| Триггер | Уведомление | Получатели | +|---------|-------------|------------| +| SPI < 0.85 | "Критическое отставание" | РП, PMO | +| CPI < 0.90 | "Перерасход бюджета" | РП, ФД | +| Веха просрочена | "Пропуск контрольной точки" | РП, PMO, Заказчик | +| Риск сработал | "Реализация риска" | Владелец, РП | + +### 3. Экстренные + +| Событие | Действие | +|---------|----------| +| Авария/инцидент | Немедленно всем | +| Останов работ | ГД + все заинтересованные | +| Претензия заказчика | ГД, юрист, РП | + +## Каналы уведомлений + +### Email +- Формальные уведомления +- Отчёты с вложениями +- Требующие документирования + +### Telegram +- Оперативные алерты +- Краткие статусы +- Требующие быстрой реакции + +### SMS (опционально) +- Только критические события +- Для ключевых лиц (ГД, ФД) + +## Формат уведомлений + +### Email: Критическое отклонение + +``` +Тема: 🔴 [КРИТИЧНО] Проект "Мост №5" — отставание от графика + +Уважаемый [Имя], + +Обнаружено критическое отклонение по проекту "Мост №5". + +МЕТРИКИ: +• SPI = 0.72 (критический порог: 0.75) +• Отставание: 28% +• Прогноз задержки: 35 дней + +ПРИЧИНА: +Задержка поставки металлоконструкций (поставщик ООО "МеталлСервис") + +РЕКОМЕНДУЕМЫЕ ДЕЙСТВИЯ: +1. Активировать резервного поставщика +2. Рассмотреть ускорение других работ +3. Подготовить уведомление заказчику + +Требуется решение в течение 24 часов. + +-- +AI-PMO System +``` + +### Telegram: Оперативный алерт + +``` +🔴 АЛЕРТ: Мост №5 + +SPI = 0.72 ⬇️ +Отставание: 28% + +Причина: задержка металла + +Действия: +• Резервный поставщик +• Ускорение других работ + +@РуководительПроекта — срочно + +[Подробнее в отчёте] +``` + +### Telegram: Напоминание о вехе + +``` +📅 ВЕХА через 3 дня + +Проект: Мост №5 +Веха: Завершение опор +Дата: 29.01.2026 + +Готовность: 85% +Прогноз: ⚠️ риск задержки + +@РуководительПроекта +``` + +## Workflow настройки + +### Шаг 1: Определение правил + +```yaml +alert_rules: + - name: "Критическое отставание" + trigger: + metric: SPI + operator: "<" + value: 0.75 + severity: critical + recipients: + - role: project_manager + - role: pmo_director + - role: general_director + channels: + - email + - telegram + + - name: "Приближение вехи" + trigger: + event: milestone_approaching + days_before: 7 + severity: info + recipients: + - role: project_manager + channels: + - email +``` + +### Шаг 2: Настройка получателей + +```yaml +recipients: + project_manager: + projects: ["Проект А"] + email: "pm@company.ru" + telegram: "@pm_ivanov" + + pmo_director: + projects: ["*"] # все проекты + email: "pmo@company.ru" + telegram: "@pmo_director" + + general_director: + projects: ["*"] + email: "gd@company.ru" + telegram: "@gd_petrov" + escalation_only: true # только критические +``` + +### Шаг 3: Мониторинг + +Система автоматически: +1. Проверяет метрики каждые 15 минут +2. Сравнивает с порогами +3. Генерирует уведомления +4. Отслеживает доставку + +## Примеры использования + +### Пример 1: Настройка алертов +``` +Пользователь: Настрой уведомления по проекту Мост №5 + +Claude: +⚙️ НАСТРОЙКА УВЕДОМЛЕНИЙ: Мост №5 + +**Текущие правила:** + +| Событие | Порог | Получатели | Канал | +|---------|-------|------------|-------| +| SPI < 0.85 | Внимание | РП | Email | +| SPI < 0.75 | Критично | РП, PMO, ГД | Email + Telegram | +| CPI < 0.90 | Внимание | РП, ФД | Email | +| Веха -7 дней | Напоминание | РП | Email | +| Веха просрочена | Критично | РП, PMO | Email + Telegram | + +**Получатели проекта:** +- РП: Иванов И.И. (ivanov@..., @ivanov_pm) +- PMO: Петров П.П. (pmo@..., @pmo_director) +- ФД: Сидоров С.С. (fd@..., @fd_sidorov) + +Хотите изменить настройки? +``` + +### Пример 2: Симуляция алерта +``` +Пользователь: Покажи как будет выглядеть алерт при SPI=0.70 + +Claude: +📧 ПРЕДПРОСМОТР АЛЕРТА + +**Email:** +───────────────────────────────── +Тема: 🔴 [КРИТИЧНО] Мост №5 — SPI = 0.70 + +Проект "Мост №5" требует немедленного внимания. + +• SPI = 0.70 (порог: 0.75) +• Отставание: 30% +• Прогноз задержки: 40+ дней + +Требуется совещание в течение 24 часов. +───────────────────────────────── + +**Telegram:** +🔴 КРИТИЧНО: Мост №5 +SPI = 0.70 ⬇️⬇️ +Отставание: 30% +@ivanov_pm @pmo_director @gd_petrov +───────────────────────────────── + +**Получатели:** +✉️ ivanov@..., pmo@..., gd@... +📱 @ivanov_pm, @pmo_director, @gd_petrov +``` + +### Пример 3: История алертов +``` +Пользователь: Покажи все алерты за последнюю неделю + +Claude: +📋 ИСТОРИЯ АЛЕРТОВ: 20-26.01.2026 + +| Дата | Проект | Тип | Severity | Статус | +|------|--------|-----|----------|--------| +| 26.01 | Мост №5 | SPI < 0.85 | 🟡 | Принято к сведению | +| 25.01 | Развязка | Веха просрочена | 🔴 | Эскалировано | +| 24.01 | Дорога | Риск сработал | 🟠 | Закрыто | +| 22.01 | Мост №5 | Веха -3 дня | ℹ️ | Выполнено | +| 20.01 | Развязка | CPI < 0.90 | 🟡 | В работе | + +**Статистика:** +- Всего алертов: 5 +- Критических: 1 +- Время реакции (сред.): 4 часа +- Закрыто: 2 +- В работе: 3 +``` + +## Интеграция + +- **progress-tracker** — источник метрик (SPI, CPI) +- **risk-analyzer** — триггеры рисков +- **gantt-planner** — вехи и дедлайны +- **executive-dashboard** — сводка алертов +- **notification-hub** — отправка уведомлений + +## Выходные документы + +1. **Настройки_алертов_[проект].yaml** — конфигурация +2. **История_алертов_[период].xlsx** — журнал уведомлений +3. **Отчёт_эскалаций_[период].xlsx** — статистика эскалаций diff --git a/skills/executive-dashboard/SKILL.md b/skills/executive-dashboard/SKILL.md new file mode 100644 index 000000000..134a47bd2 --- /dev/null +++ b/skills/executive-dashboard/SKILL.md @@ -0,0 +1,246 @@ +--- +name: executive-dashboard +description: Еженедельные дашборды и отчёты для генерального директора и топ-менеджмента. Используй когда пользователь говорит "отчёт для ГД", "недельная сводка", "дашборд руководству", "статус портфеля", "executive summary", "отчёт директору". +--- + +# Executive Dashboard — Отчётность для руководства + +## Назначение + +Формирование сжатых, информативных отчётов для топ-менеджмента: +- Статус портфеля проектов +- Ключевые метрики и KPI +- Проблемы, требующие решения +- Риски и прогнозы +- Рекомендации по действиям + +## Принципы отчётности для руководства + +### 1. Краткость +- Максимум 1-2 страницы +- Только ключевые цифры +- Без технических деталей + +### 2. Визуальность +- Светофор статусов (🟢🟡🔴) +- Графики трендов +- Сравнение план/факт + +### 3. Actionable +- Чёткие проблемы +- Конкретные рекомендации +- Требуемые решения + +### 4. Регулярность +- Еженедельно: краткая сводка +- Ежемесячно: детальный анализ +- Ad-hoc: по запросу + +## Структура еженедельного отчёта + +### 1. Заголовок +``` +ЕЖЕНЕДЕЛЬНЫЙ ОТЧЁТ PMO +Период: 20-26 января 2026 +Дата отчёта: 27.01.2026 +``` + +### 2. Светофор портфеля + +| Проект | Сроки | Бюджет | Риски | Общий статус | +|--------|-------|--------|-------|--------------| +| Мост №5 | 🟡 | 🟢 | 🟡 | 🟡 | +| Дорога М-51 | 🟢 | 🟢 | 🟢 | 🟢 | +| Развязка Салехард | 🔴 | 🟡 | 🔴 | 🔴 | + +**Сводка:** 5 проектов в работе +- 🟢 В графике: 2 +- 🟡 Требуют внимания: 2 +- 🔴 Критические: 1 + +### 3. Ключевые метрики + +| Показатель | План | Факт | Δ | Тренд | +|------------|------|------|---|-------| +| Освоение бюджета | 120 млн | 108 млн | -10% | ↓ | +| Выполнение работ | 45% | 42% | -3% | → | +| Загрузка техники | 80% | 75% | -5% | ↑ | +| Индекс SPI (средний) | 1.00 | 0.93 | -0.07 | ↓ | +| Индекс CPI (средний) | 1.00 | 0.96 | -0.04 | → | + +### 4. Топ-5 проблем + +| # | Проблема | Проект | Влияние | Ответственный | Требуется решение | +|---|----------|--------|---------|---------------|-------------------| +| 1 | Задержка поставки металла | Развязка | Срыв на 3 недели | ОМТС | Альтернативный поставщик | +| 2 | Нехватка операторов экскаватора | Дорога М-51 | -20% производительности | HR | Наём/аутсорс | +| 3 | Претензия заказчика по качеству | Мост №5 | Штраф 2 млн | Главный инженер | Переговоры | + +### 5. Критические риски + +| Риск | Проект | Вероятность | Влияние | Статус | +|------|--------|-------------|---------|--------| +| Распутица в апреле | Все | Высокая | Остановка 3 недели | Мониторинг | +| Банкротство субподрядчика | Развязка | Средняя | Срыв сроков | Активный | + +### 6. Финансовая сводка + +``` +БЮДЖЕТ ПОРТФЕЛЯ: 500 млн ₽ + +Освоено: ████████░░ 160 млн (32%) +План: ██████████ 175 млн (35%) +Отклонение: -15 млн (-3%) + +Прогноз на конец года: +- При текущем темпе: 485 млн (экономия 15 млн) +- При ускорении: 510 млн (перерасход 10 млн) +``` + +### 7. Требующие решения вопросы + +| # | Вопрос | Варианты | Рекомендация | Срок | +|---|--------|----------|--------------|------| +| 1 | Увеличение бюджета Развязки на 5 млн | Да / Нет / Частично | Да, с дополнительным контролем | 30.01 | +| 2 | Смена субподрядчика на Мосту №5 | Сохранить / Заменить | Заменить, есть альтернатива | 02.02 | + +### 8. Прогноз на следующую неделю + +- Ожидается поставка металла (Развязка) — контроль +- Начало бетонных работ (Мост №5) — погода +- Приёмка этапа заказчиком (Дорога М-51) — подготовка + +## Workflow + +### Шаг 1: Сбор данных + +Автоматически агрегируй данные из: +1. **progress-tracker** — статусы проектов, SPI/CPI +2. **risk-analyzer** — реестр рисков +3. **gantt-planner** — графики, вехи +4. **1С** — финансовые данные + +### Шаг 2: Анализ + +1. Рассчитай агрегированные метрики портфеля +2. Выдели топ-5 проблем по влиянию +3. Определи статус каждого проекта (светофор) +4. Сформулируй требующие решения вопросы + +### Шаг 3: Генерация отчёта + +**Формат Word (основной):** +- 1-2 страницы +- Таблицы и визуализация +- Чёткая структура + +**Формат Excel (приложение):** +- Детальные данные +- Графики +- Drill-down возможность + +**Формат для Telegram:** +- Сжатая сводка +- Только критические алерты + +## Примеры использования + +### Пример 1: Еженедельный отчёт +``` +Пользователь: Подготовь отчёт для генерального за эту неделю + +Claude: +📊 Формирую еженедельный отчёт PMO... + +**Сбор данных:** +- Проекты: 5 активных +- Период: 20-26 января 2026 + +**Анализ:** +- Критических проблем: 1 (Развязка Салехард) +- Средних проблем: 3 +- Рисков в работе: 8 + +**Генерирую документы:** +1. Еженедельный_отчёт_PMO_26.01.2026.docx (2 стр.) +2. Приложение_детали_26.01.2026.xlsx + +**Ключевое для ГД:** +⚠️ Требуется решение по увеличению бюджета Развязки на 5 млн ₽ до 30.01 +``` + +### Пример 2: Срочный статус +``` +Пользователь: Быстро дай статус по всем проектам + +Claude: +📋 СТАТУС ПОРТФЕЛЯ (26.01.2026) + +🟢 Дорога М-51: в графике, SPI=1.02 +🟢 Благоустройство: в графике, SPI=1.05 +🟡 Мост №5: -3 дня, SPI=0.95 +🟡 Ремонт участка: -2%, CPI=0.98 +🔴 Развязка: КРИТИЧНО, -3 недели, SPI=0.78 + +**Требуется внимание:** Развязка Салехард +``` + +### Пример 3: Ежемесячный отчёт +``` +Пользователь: Подготовь ежемесячный отчёт за январь + +Claude: +📊 Формирую ежемесячный отчёт... + +Структура: +1. Резюме месяца (1 стр.) +2. Статус каждого проекта (5 стр.) +3. Финансовый анализ (2 стр.) +4. Анализ рисков (1 стр.) +5. План на февраль (1 стр.) +6. Приложения (Excel) + +[Генерирую документы...] +``` + +## Шаблоны визуализации + +### Светофор в Excel +``` +=IF(SPI>=0.95,"🟢",IF(SPI>=0.85,"🟡","🔴")) +``` + +### Условное форматирование +- Зелёный фон: отклонение < 5% +- Жёлтый фон: отклонение 5-15% +- Красный фон: отклонение > 15% + +### Мини-графики (sparklines) +Тренд за последние 4 недели в одной ячейке + +## Интеграция + +- **progress-tracker** — данные о выполнении +- **risk-analyzer** — данные о рисках +- **gantt-planner** — данные о сроках +- **letter-generator** — письма по итогам +- **notification-hub** — рассылка отчёта + +## Рассылка + +### Email (через notification-hub) +- Кому: Генеральный директор, Финансовый директор, Главный инженер +- Когда: Понедельник 09:00 +- Формат: PDF + Excel + +### Telegram +- Канал: #pmo-reports +- Когда: После email-рассылки +- Формат: Сжатая сводка + ссылка на документы + +## Выходные документы + +1. **Еженедельный_отчёт_PMO_[дата].docx** — основной отчёт +2. **Приложение_[дата].xlsx** — детальные данные +3. **Ежемесячный_отчёт_[месяц]_[год].docx** — месячный отчёт +4. **Презентация_PMO_[дата].pptx** — для совещаний diff --git a/skills/forecast-engine/SKILL.md b/skills/forecast-engine/SKILL.md new file mode 100644 index 000000000..0af5dd9a1 --- /dev/null +++ b/skills/forecast-engine/SKILL.md @@ -0,0 +1,248 @@ +--- +name: forecast-engine +description: Прогнозирование сроков завершения и итоговой стоимости проекта. Используй когда пользователь говорит "когда закончим", "прогноз", "EAC", "ETC", "прогноз бюджета", "прогноз сроков", "сценарный анализ". +--- + +# Forecast Engine — Прогнозирование проекта + +## Назначение + +Прогнозирование ключевых параметров проекта: +- Срок завершения (EAC Date) +- Итоговая стоимость (EAC Cost) +- Остаток работ (ETC) +- Сценарный анализ "что если" +- Вероятность завершения в срок/бюджет + +## Методы прогнозирования + +### 1. EVM-based (Earned Value) + +**EAC (Estimate at Completion) — Прогноз итоговой стоимости:** + +| Метод | Формула | Когда использовать | +|-------|---------|-------------------| +| Типичный | EAC = BAC / CPI | Текущая эффективность сохранится | +| Атипичный | EAC = AC + (BAC - EV) | Отклонение разовое, дальше по плану | +| Комбинированный | EAC = AC + (BAC - EV) / (CPI × SPI) | Отклонения и по срокам, и по стоимости | + +**ETC (Estimate to Complete) — Сколько осталось:** +``` +ETC = EAC - AC +``` + +### 2. Trend-based (По тренду) + +Анализ скорости выполнения за последние N периодов: + +``` +Средняя скорость = Σ(Выполнено за период) / N периодов +Остаток работ = 100% - Текущий % +Прогноз завершения = Сегодня + (Остаток / Скорость) +``` + +### 3. Monte Carlo (Вероятностный) + +Симуляция 1000+ сценариев с учётом: +- Разброса длительностей (оптимист/пессимист) +- Корреляции между задачами +- Вероятности рисков + +Результат: распределение вероятностей завершения + +## Workflow + +### Шаг 1: Сбор данных + +Из progress-tracker получаем: +- Плановые показатели (PV, BAC) +- Фактические показатели (EV, AC) +- Историю выполнения (тренд) + +### Шаг 2: Расчёт прогнозов + +```python +# Базовые расчёты EVM +BAC = 10_000_000 # Бюджет +AC = 4_800_000 # Фактические затраты +EV = 4_500_000 # Освоенный объём + +CPI = EV / AC # 0.9375 +SPI = EV / PV # 0.90 + +# Прогноз стоимости (типичный) +EAC = BAC / CPI # 10_666_667 ₽ + +# Прогноз остатка +ETC = EAC - AC # 5_866_667 ₽ + +# Отклонение от бюджета +VAC = BAC - EAC # -666_667 ₽ (перерасход) +``` + +### Шаг 3: Прогноз сроков + +```python +# На основе SPI +плановый_срок = 180 # дней +прошло = 90 # дней +выполнено = 45% # по факту + +# Прогноз при текущем темпе +оставшийся_срок = (100% - 45%) / (45% / 90 дней) +# = 55% / 0.5%/день = 110 дней + +прогноз_завершения = сегодня + 110 дней +отклонение = (90 + 110) - 180 = +20 дней +``` + +### Шаг 4: Сценарный анализ + +Три сценария: +- **Оптимистичный:** Темп увеличится на 20% +- **Базовый:** Текущий темп сохранится +- **Пессимистичный:** Темп снизится на 20% + +## Визуализация прогнозов + +### S-кривая с прогнозом + +``` + % + 100 │ ╱╱╱ Оптимистичный + │ ╱╱╱╱ + 75 │ ╱╱╱╱╱──────── Базовый + │ ╱╱╱╱╱ ╲╲╲ + 50 │ ████╱╱ ╲╲╲── Пессимистичный + │ █████ ← Факт + 25 │ ████ + │ ███ + 0 └──────────────────────────── + Янв Фев Мар Апр Май Июн +``` + +### Воронка прогноза (Monte Carlo) + +``` +Вероятность завершения к дате: + +01.05.2026: ████░░░░░░ 40% +15.05.2026: ██████░░░░ 60% +01.06.2026: ████████░░ 80% +15.06.2026: █████████░ 90% +01.07.2026: ██████████ 99% + +Наиболее вероятная дата: 20.05.2026 (P50) +``` + +## Примеры использования + +### Пример 1: Базовый прогноз +``` +Пользователь: Когда закончим проект "Мост №5"? + +Claude: +📊 ПРОГНОЗ ЗАВЕРШЕНИЯ: Проект "Мост №5" + +**Текущий статус (26.01.2026):** +- Выполнено: 45% +- Плановое выполнение: 50% +- SPI = 0.90 (отстаём) + +**Прогноз сроков:** +| Сценарий | Дата завершения | Отклонение | +|----------|-----------------|------------| +| Оптимистичный | 25.05.2026 | +10 дней | +| Базовый | 05.06.2026 | +21 день | +| Пессимистичный | 20.06.2026 | +36 дней | + +**Прогноз бюджета:** +- BAC (бюджет): 10 000 000 ₽ +- EAC (прогноз): 10 666 667 ₽ +- Перерасход: 666 667 ₽ (+6.7%) + +**Рекомендации:** +1. Добавить вторую смену на бетонные работы +2. Ускорить поставку металлоконструкций +3. При сохранении темпа — уведомить заказчика о рисках +``` + +### Пример 2: Сценарный анализ +``` +Пользователь: Что будет если добавим ещё одну бригаду? + +Claude: +📈 СЦЕНАРНЫЙ АНАЛИЗ: +1 бригада + +**Исходные данные:** +- Текущий темп: 0.5% в день +- Остаток работ: 55% + +**Сценарий: +1 бригада (+30% производительность)** +- Новый темп: 0.65% в день +- Остаток дней: 55% / 0.65% = 85 дней (было 110) +- Экономия: 25 дней + +**Затраты на ускорение:** +- Доп. ФОТ: 1 500 000 ₽ +- Доп. техника: 500 000 ₽ +- Итого: 2 000 000 ₽ + +**Выгода:** +- Избежание неустойки (25 дней × 0.1%): 2 500 000 ₽ +- Чистая выгода: 500 000 ₽ + +**Рекомендация:** ✅ Целесообразно +``` + +### Пример 3: Вероятностный прогноз +``` +Пользователь: Какова вероятность закончить в срок? + +Claude: +🎲 ВЕРОЯТНОСТНЫЙ АНАЛИЗ (Monte Carlo, 10000 симуляций) + +**Плановая дата:** 15.05.2026 + +**Распределение вероятностей:** +``` +P10 (90% вероятность): 01.06.2026 +P50 (50% вероятность): 20.05.2026 +P90 (10% вероятность): 08.05.2026 +``` + +**Вероятность завершения к плановой дате:** +████░░░░░░ 35% + +**Факторы неопределённости:** +1. Погода (влияние на бетонные работы): ±10 дней +2. Поставка металла: ±7 дней +3. Производительность бригад: ±15% + +**Для достижения P80:** +- Необходим запас: +15 дней +- Рекомендуемый срок: 30.05.2026 +``` + +## Интеграция + +- **progress-tracker** — исходные данные (PV, EV, AC) +- **risk-analyzer** — вероятности рисков для Monte Carlo +- **gantt-planner** — обновление графика по прогнозам +- **executive-dashboard** — прогнозы в отчёты руководству +- **deviation-alert** — алерты при ухудшении прогноза + +## Автоматический пересчёт + +Прогнозы пересчитываются: +- Еженедельно (планово) +- При изменении факта >5% +- При срабатывании риска +- По запросу пользователя + +## Выходные документы + +1. **Прогноз_[проект]_[дата].xlsx** — детальный прогноз +2. **Сценарии_[проект].xlsx** — сценарный анализ +3. **Monte_Carlo_[проект].xlsx** — вероятностный анализ +4. **Тренд_[проект].xlsx** — исторический тренд с экстраполяцией diff --git a/skills/gantt-planner/SKILL.md b/skills/gantt-planner/SKILL.md new file mode 100644 index 000000000..ec3e85a28 --- /dev/null +++ b/skills/gantt-planner/SKILL.md @@ -0,0 +1,156 @@ +--- +name: gantt-planner +description: Создание и обновление графиков Ганта в Excel для строительных проектов. Используй когда пользователь говорит "построй график", "обнови Ганта", "спланируй работы", "КП", "календарный план", "график производства работ", "ППР", "вехи проекта". +--- + +# Gantt Planner — Планировщик графиков проекта + +## Назначение + +Создание профессиональных диаграмм Ганта в Excel для строительных и инфраструктурных проектов с учётом: +- Зависимостей между работами +- Критического пути +- Распределения ресурсов +- Вех (milestones) +- Сезонных ограничений (для северных регионов) + +## Workflow + +### Шаг 1: Сбор исходных данных + +Запроси у пользователя: +1. **Источник данных:** + - Контракт/договор (сроки, объёмы) + - Техническое задание + - Смета/ведомость объёмов работ + - Существующий график (для обновления) + +2. **Параметры проекта:** + - Дата начала и окончания + - Ключевые вехи (приёмка, ввод в эксплуатацию) + - Ограничения (погода, сезонность, ресурсы) + +### Шаг 2: Формирование WBS + +Построй иерархическую структуру работ: + +``` +1. Подготовительный период + 1.1 Мобилизация техники + 1.2 Обустройство стройплощадки + 1.3 Геодезическая разбивка +2. Основной период + 2.1 Земляные работы + 2.2 Устройство основания + 2.3 Укладка покрытия +3. Завершающий период + 3.1 Благоустройство + 3.2 Демобилизация + 3.3 Сдача заказчику +``` + +### Шаг 3: Определение зависимостей + +Типы связей: +- **FS (Finish-to-Start)** — стандартная (предыдущая заканчивается → следующая начинается) +- **SS (Start-to-Start)** — параллельный старт +- **FF (Finish-to-Finish)** — параллельное завершение +- **Lag** — задержка между работами + +### Шаг 4: Расчёт критического пути + +1. Определи длительность каждой работы +2. Рассчитай ранние и поздние сроки +3. Найди работы с нулевым резервом — это критический путь +4. Выдели критический путь красным цветом + +### Шаг 5: Генерация Excel + +Используй скилл **xlsx** для создания файла со структурой: + +**Лист 1: Диаграмма Ганта** +| № | Код WBS | Наименование работ | Длительность | Начало | Окончание | Предшественник | Ресурсы | [Календарная шкала] | +|---|---------|-------------------|--------------|--------|-----------|----------------|---------|---------------------| + +**Лист 2: Ресурсы** +| Ресурс | Тип | Доступность | Загрузка по периодам | +|--------|-----|-------------|----------------------| + +**Лист 3: Вехи** +| № | Веха | Плановая дата | Фактическая дата | Статус | +|---|------|---------------|------------------|--------| + +## Форматирование графика + +### Цветовая кодировка: +- **Красный** — критический путь +- **Синий** — работы с резервом +- **Зелёный** — завершённые работы +- **Жёлтый** — текущие работы +- **Серый** — будущие работы +- **Ромб** — вехи (milestones) + +### Масштаб времени: +- Для проектов <3 мес → дни +- Для проектов 3-12 мес → недели +- Для проектов >12 мес → месяцы + +## Особенности для строительства + +### Сезонность (ЯНАО, Арктика): +- Строительный сезон: июнь — август +- Зимний период: ограниченные работы +- Распутица: апрель-май, сентябрь-октябрь + +### Типовые работы дорожного строительства: +1. Подготовка территории +2. Земляные работы (выемка, насыпь) +3. Устройство дорожной одежды +4. Укладка асфальтобетона +5. Обустройство (знаки, разметка, ограждения) +6. Благоустройство + +## Примеры использования + +### Пример 1: Новый график +``` +Пользователь: Построй график для ремонта дороги 5 км, срок 3 месяца + +Claude: +1. Анализирую типовой состав работ для дорожного ремонта +2. Формирую WBS из 15 работ +3. Устанавливаю зависимости +4. Рассчитываю критический путь +5. Генерирую Excel с диаграммой Ганта +``` + +### Пример 2: Обновление графика +``` +Пользователь: Обнови график, земляные работы задержались на 2 недели + +Claude: +1. Загружаю текущий график +2. Сдвигаю земляные работы на 2 недели +3. Пересчитываю зависимые работы +4. Проверяю влияние на критический путь +5. Генерирую обновлённый Excel +``` + +## Интеграция + +- **xlsx** — для генерации Excel-файлов +- **progress-tracker** — для сопоставления план/факт +- **risk-analyzer** — для оценки рисков по срокам +- **1С:PM** — источник данных о проектах + +## Шаблоны + +Используй шаблоны из: +- `~/Desktop/Рабочие Проекты/05_Образование/Диплом MBA/Дипломная работа MBA/Приложения Excel/Диаграм Ганта Вехи.xlsx` +- `~/Desktop/Рабочие Проекты/05_Образование/Диплом MBA/Дипломная работа MBA/Приложения Excel/Гант Вехи.xlsx` + +## Выходные документы + +1. **График_проекта_[название]_[дата].xlsx** — основной файл +2. **Критический_путь_[название].xlsx** — анализ критического пути +3. **Ресурсная_гистограмма_[название].xlsx** — загрузка ресурсов diff --git a/skills/letter-generator/SKILL.md b/skills/letter-generator/SKILL.md new file mode 100644 index 000000000..afab05995 --- /dev/null +++ b/skills/letter-generator/SKILL.md @@ -0,0 +1,308 @@ +--- +name: letter-generator +description: Генерация официальных писем заказчику и контрагентам. Используй когда пользователь говорит "напиши письмо", "уведоми заказчика", "претензия", "запрос продления", "исходящее письмо", "уведомление о рисках", "письмо подрядчику". +--- + +# Letter Generator — Генератор деловых писем + +## Назначение + +Создание официальных писем для: +- Уведомления заказчика о рисках/проблемах +- Запроса продления сроков +- Претензий и требований +- Согласования изменений +- Передачи документации + +## Типы писем + +### 1. Уведомительные +- О начале/завершении этапа +- Об обнаруженных обстоятельствах +- О необходимости решения + +### 2. Запросные +- Продление сроков +- Дополнительное финансирование +- Согласование изменений +- Предоставление документации + +### 3. Претензионные +- О нарушении сроков оплаты +- О несоответствии документации +- Требование устранения недостатков + +### 4. Сопроводительные +- К актам КС-2, КС-3 +- К исполнительной документации +- К счетам на оплату + +## Структура письма (ГОСТ Р 7.0.97-2016) + +``` +┌─────────────────────────────────────────────────────────────┐ +│ БЛАНК ОРГАНИЗАЦИИ │ +│ ООО "Ваша Компания" │ +│ ИНН/КПП, адрес, телефон │ +├─────────────────────────────────────────────────────────────┤ +│ Исх. № _____ от _______ Генеральному директору │ +│ На № _____ от _______ ООО "Заказчик" │ +│ Ф.И.О. │ +│ Адрес │ +├─────────────────────────────────────────────────────────────┤ +│ О продлении сроков выполнения работ │ +│ по Договору № ___ от ___ │ +├─────────────────────────────────────────────────────────────┤ +│ │ +│ Уважаемый Иван Иванович! │ +│ │ +│ [Текст письма] │ +│ │ +│ Приложение: │ +│ 1. Акт о выявленных обстоятельствах на 2 л. │ +│ 2. Фотоматериалы на 5 л. │ +│ │ +│ С уважением, │ +│ │ +│ Генеральный директор А.С. Гребешок │ +│ │ +│ Исполнитель: Иванов И.И. │ +│ Тел.: +7 (XXX) XXX-XX-XX │ +└─────────────────────────────────────────────────────────────┘ +``` + +## Workflow + +### Шаг 1: Определение типа письма + +Запроси у пользователя: +1. Тип письма (уведомление, запрос, претензия) +2. Адресат (заказчик, субподрядчик, поставщик) +3. Тема (сроки, оплата, качество, изменения) +4. Ссылка на договор (номер, дата) +5. Суть вопроса + +### Шаг 2: Сбор данных + +Используй данные из: +- **contract-analyzer** — условия договора, ссылки на пункты +- **risk-analyzer** — описание рисков +- **progress-tracker** — данные о ходе работ +- **gantt-planner** — сроки, отклонения + +### Шаг 3: Формирование текста + +Принципы: +1. **Официальный стиль** — деловой русский язык +2. **Конкретика** — даты, номера, суммы +3. **Ссылки** — на пункты договора, нормативные акты +4. **Обоснование** — причины, доказательства +5. **Чёткое требование** — что ожидаем от адресата + +### Шаг 4: Генерация документа + +Используй скилл **docx** для создания: +- Формат: A4, поля по ГОСТ +- Шрифт: Times New Roman, 14 pt +- Межстрочный интервал: 1.5 +- Выравнивание: по ширине + +## Шаблоны писем + +### 1. Уведомление о рисках срыва сроков + +``` +О рисках нарушения сроков выполнения работ +по Договору № ___ от ___ + +Уважаемый [Имя Отчество]! + +В соответствии с п. ___ Договора № ___ от ___ уведомляем Вас +о возникновении обстоятельств, которые могут повлиять на сроки +выполнения работ. + +В ходе выполнения работ по [наименование объекта] выявлены +следующие обстоятельства: + +1. [Описание обстоятельства 1] +2. [Описание обстоятельства 2] + +Указанные обстоятельства возникли по причинам, не зависящим +от Подрядчика, а именно: [причины]. + +Прогнозируемый срок задержки составляет ___ календарных дней. + +Просим рассмотреть возможность продления сроков выполнения работ +по Договору до [новая дата]. + +Приложение: +1. Акт о выявленных обстоятельствах на ___ л. +2. Фотоматериалы на ___ л. +``` + +### 2. Запрос продления сроков + +``` +О продлении сроков выполнения работ +по Договору № ___ от ___ + +Уважаемый [Имя Отчество]! + +В соответствии с п. ___ Договора № ___ от ___ просим продлить +срок выполнения работ по [наименование этапа/объекта] +на ___ календарных дней. + +Основание для продления: + +1. [Обстоятельство 1] — подтверждается [документ] +2. [Обстоятельство 2] — подтверждается [документ] + +В соответствии с п. ___ Договора указанные обстоятельства +являются основанием для продления сроков без применения +штрафных санкций. + +Просим подписать дополнительное соглашение о продлении сроков. + +Приложение: +1. Проект дополнительного соглашения на ___ л. в 2 экз. +2. Обосновывающие документы на ___ л. +``` + +### 3. Претензия о задержке оплаты + +``` +ПРЕТЕНЗИЯ +о нарушении сроков оплаты выполненных работ +по Договору № ___ от ___ + +Уважаемый [Имя Отчество]! + +Между ООО "Ваша Компания" (Подрядчик) и [Заказчик] заключён +Договор № ___ от ___ на выполнение работ по [предмет договора]. + +В соответствии с условиями Договора (п. ___) оплата выполненных +работ производится в течение ___ рабочих дней с даты подписания +Акта КС-2. + +Акт № ___ от ___ на сумму ___ руб. подписан [дата подписания]. +Срок оплаты истёк [дата истечения]. +На дату настоящей претензии оплата не произведена. +Просрочка составляет ___ дней. + +В соответствии с п. ___ Договора за просрочку оплаты начисляется +неустойка в размере ___% от суммы задолженности за каждый день +просрочки. + +Сумма неустойки на [текущая дата] составляет ___ руб. + +ТРЕБУЕМ: +1. Оплатить задолженность в размере ___ руб. в срок до [дата]. +2. Оплатить неустойку в размере ___ руб. + +В случае неисполнения требований будем вынуждены обратиться +в Арбитражный суд. + +Приложение: +1. Копия Акта КС-2 № ___ от ___ +2. Расчёт неустойки +``` + +### 4. Сопроводительное к актам + +``` +О направлении актов выполненных работ +по Договору № ___ от ___ + +Уважаемый [Имя Отчество]! + +Направляем Вам для рассмотрения и подписания акты выполненных +работ за [период]: + +1. Акт о приёмке выполненных работ (КС-2) № ___ от ___ + на сумму ___ руб. +2. Справка о стоимости выполненных работ (КС-3) № ___ от ___ + на сумму ___ руб. + +Просим рассмотреть и подписать акты в течение ___ рабочих дней +в соответствии с п. ___ Договора. + +При наличии замечаний просим направить мотивированный отказ +в указанный срок. + +Приложение: +1. Акт КС-2 № ___ на ___ л. в 2 экз. +2. Справка КС-3 № ___ на ___ л. в 2 экз. +3. Счёт на оплату № ___ на ___ л. +``` + +## Примеры использования + +### Пример 1: Письмо о рисках +``` +Пользователь: Напиши письмо заказчику что по проекту Мост №5 +есть риск задержки из-за обнаруженных подземных коммуникаций + +Claude: +📝 Формирую письмо-уведомление... + +**Данные:** +- Договор: № 125-2025 от 15.03.2025 +- Заказчик: АО "Ямалавтодор" +- Получатель: Петров Иван Сергеевич +- Причина: Обнаруженные подземные коммуникации (не в проекте) +- Прогноз задержки: 14 дней + +**Ссылки на договор:** +- П. 5.3 — порядок уведомления о препятствиях +- П. 7.2 — основания для продления сроков + +[Генерирую документ: Исх_уведомление_Мост5_риски_26.01.2026.docx] +``` + +### Пример 2: Претензия +``` +Пользователь: Напиши претензию поставщику металла о задержке поставки + +Claude: +📝 Формирую претензию... + +**Данные из contract-analyzer:** +- Договор поставки: № 45-2025 от 01.12.2025 +- Срок поставки по договору: 15.01.2026 +- Фактическая дата поставки: не поставлено +- Просрочка: 11 дней +- Неустойка по договору: 0.1% в день +- Сумма поставки: 5 000 000 руб. +- Сумма неустойки: 55 000 руб. + +[Генерирую документ: Претензия_ООО_Металлсервис_26.01.2026.docx] +``` + +## Реквизиты организации + +При генерации письма используй реквизиты из профиля организации: + +```yaml +organization: + name: ООО "Ваша Компания" + inn: XXXXXXXXXX + kpp: XXXXXXXXX + address: г. Город, ул. Улица, д. XX + phone: +7 (XXX) XXX-XX-XX + email: info@company.ru + director: Иванов Иван Иванович +``` + +## Интеграция + +- **contract-analyzer** — пункты договора, условия +- **risk-analyzer** — описание рисков +- **progress-tracker** — данные о выполнении +- **docx** — генерация Word-документа +- **notification-hub** — отправка письма + +## Выходные документы + +1. **Исх_[тема]_[дата].docx** — письмо в формате Word +2. **Исх_[тема]_[дата].pdf** — PDF для отправки +3. **Реестр_исходящих_[год].xlsx** — журнал исходящей корреспонденции diff --git a/skills/progress-tracker/SKILL.md b/skills/progress-tracker/SKILL.md new file mode 100644 index 000000000..f0b38571e --- /dev/null +++ b/skills/progress-tracker/SKILL.md @@ -0,0 +1,198 @@ +--- +name: progress-tracker +description: Сопоставление план/факт, расчёт отклонений и индексов выполнения проекта. Используй когда пользователь говорит "как идут работы", "отклонения", "план-факт", "процент выполнения", "SPI", "CPI", "освоенный объём", "EVM". +--- + +# Progress Tracker — Контроль выполнения проекта + +## Назначение + +Мониторинг хода выполнения проекта через: +- Сопоставление плановых и фактических показателей +- Расчёт индексов выполнения (SPI, CPI) +- Метод освоенного объёма (EVM) +- Визуализация отклонений +- Прогнозирование завершения + +## Ключевые метрики + +### Earned Value Management (EVM) + +| Метрика | Формула | Описание | +|---------|---------|----------| +| **PV** (Planned Value) | По графику | Плановый объём на дату | +| **EV** (Earned Value) | % выполнения × Бюджет | Освоенный объём | +| **AC** (Actual Cost) | Факт затраты | Фактические затраты | +| **SV** (Schedule Variance) | EV - PV | Отклонение по срокам | +| **CV** (Cost Variance) | EV - AC | Отклонение по стоимости | +| **SPI** (Schedule Performance Index) | EV / PV | Индекс выполнения сроков | +| **CPI** (Cost Performance Index) | EV / AC | Индекс выполнения бюджета | +| **EAC** (Estimate at Completion) | BAC / CPI | Прогноз итоговой стоимости | +| **ETC** (Estimate to Complete) | EAC - AC | Осталось потратить | + +### Интерпретация индексов + +| SPI | CPI | Статус | +|-----|-----|--------| +| >1 | >1 | Опережаем график, экономия бюджета | +| >1 | <1 | Опережаем график, перерасход бюджета | +| <1 | >1 | Отстаём от графика, экономия бюджета | +| <1 | <1 | Отстаём от графика, перерасход — КРИТИЧНО | + +### Пороги оповещения + +- **Зелёный:** SPI/CPI > 0.95 +- **Жёлтый:** SPI/CPI 0.85 - 0.95 +- **Красный:** SPI/CPI < 0.85 + +## Workflow + +### Шаг 1: Загрузка данных + +Источники данных: +1. **План:** + - График Ганта (gantt-planner) + - Бюджет проекта + - Базовая линия (baseline) + +2. **Факт:** + - Акты КС-2, КС-3 + - Журнал производства работ + - Данные из 1С:PM / 1С:ERP + +### Шаг 2: Расчёт отклонений + +Для каждой работы/этапа рассчитай: + +``` +Работа: "Земляные работы" +├── План: 1000 м³, 500 000 ₽, 01.06 - 15.06 +├── Факт: 800 м³, 480 000 ₽, 01.06 - 18.06 +├── Отклонение по объёму: -20% +├── Отклонение по стоимости: -4% +├── Отклонение по срокам: +3 дня +└── Статус: ОТСТАЁМ +``` + +### Шаг 3: Расчёт EVM + +```python +# Пример расчёта +BAC = 10_000_000 # Бюджет проекта +План_выполнения = 0.50 # 50% должно быть выполнено +Факт_выполнения = 0.45 # 45% выполнено +AC = 4_800_000 # Фактические затраты + +PV = BAC * План_выполнения # 5 000 000 +EV = BAC * Факт_выполнения # 4 500 000 +SV = EV - PV # -500 000 (отстаём) +CV = EV - AC # -300 000 (перерасход) +SPI = EV / PV # 0.90 +CPI = EV / AC # 0.94 +EAC = BAC / CPI # 10 638 298 (прогноз итоговой стоимости) +``` + +### Шаг 4: Генерация отчёта + +Используй скилл **xlsx** для создания Excel: + +**Лист 1: Сводка проекта** +| Показатель | План | Факт | Отклонение | % | +|------------|------|------|------------|---| +| Выполнение работ | 50% | 45% | -5% | | +| Освоение бюджета | 5 000 000 | 4 500 000 | -500 000 | -10% | +| Затраты | 5 000 000 | 4 800 000 | -200 000 | -4% | + +**Лист 2: План-факт по работам** +| № | Работа | План объём | Факт объём | % | План ₽ | Факт ₽ | Отклонение | +|---|--------|-----------|-----------|---|--------|--------|------------| + +**Лист 3: EVM анализ** +| Дата | PV | EV | AC | SV | CV | SPI | CPI | +|------|-----|-----|-----|-----|-----|------|------| + +**Лист 4: S-кривая** +График с тремя линиями: PV, EV, AC + +## Визуализация + +### S-кривая (Cumulative) +``` + ₽ + │ ╱──── PV (план) + │ ╱ ╱─── EV (освоено) + │ ╱ ╱╱─── AC (затрачено) + │ ╱ ╱╱ + │╱ ╱╱ + └──────────── Время +``` + +### Светофор статуса +``` +🟢 В графике 🟡 Риск 🔴 Критично + SPI > 0.95 0.85-0.95 < 0.85 +``` + +## Примеры использования + +### Пример 1: Еженедельный статус +``` +Пользователь: Как идут работы по проекту "Мост №5"? + +Claude: +📊 Статус проекта "Мост №5" на 26.01.2026 + +**Общий прогресс:** 45% (план 50%) — отстаём на 5% + +**Индексы выполнения:** +- SPI = 0.90 🟡 (отстаём от графика) +- CPI = 0.94 🟡 (небольшой перерасход) + +**Прогноз:** +- EAC = 10.6 млн ₽ (бюджет 10 млн ₽) +- Завершение: +2 недели от плана + +**Топ-3 отклонения:** +1. Земляные работы: -20% объёма (погода) +2. Поставка арматуры: задержка 5 дней +3. Бетонные работы: не начаты (ждём арматуру) + +**Рекомендации:** +- Ускорить поставку арматуры +- Добавить вторую смену на земляные работы +``` + +### Пример 2: Загрузка акта КС-2 +``` +Пользователь: Загрузи данные из акта КС-2 за январь + +Claude: +1. Считываю акт КС-2 +2. Извлекаю: объёмы, стоимость, период +3. Обновляю фактические данные в трекере +4. Пересчитываю индексы +5. Генерирую обновлённый отчёт +``` + +## Интеграция + +- **gantt-planner** — источник плановых данных +- **act-processor** — обработка актов КС-2 +- **risk-analyzer** — передача данных об отклонениях +- **executive-dashboard** — агрегация для отчётов руководству +- **1С:PM** — синхронизация план/факт + +## Автоматические алерты + +При обнаружении критических отклонений автоматически уведомляй через **deviation-alert**: + +- SPI < 0.85 → Уведомление РП и PMO +- CPI < 0.85 → Уведомление РП, PMO, финансовый директор +- Задержка вехи > 7 дней → Уведомление всех стейкхолдеров + +## Выходные документы + +1. **План_факт_[проект]_[дата].xlsx** — детальный отчёт +2. **EVM_анализ_[проект].xlsx** — анализ освоенного объёма +3. **S_кривая_[проект].xlsx** — визуализация прогресса +4. **Статус_проекта_[дата].docx** — текстовый отчёт diff --git a/skills/resource-allocator/SKILL.md b/skills/resource-allocator/SKILL.md new file mode 100644 index 000000000..d35059fa1 --- /dev/null +++ b/skills/resource-allocator/SKILL.md @@ -0,0 +1,272 @@ +--- +name: resource-allocator +description: Распределение и оптимизация ресурсов по проектам. Используй когда пользователь говорит "распредели ресурсы", "кто свободен", "какая техника доступна", "загрузка бригад", "оптимизация ресурсов", "конфликт ресурсов". +--- + +# Resource Allocator — Распределение ресурсов + +## Назначение + +Оптимальное распределение ресурсов между проектами: +- Персонал (бригады, специалисты) +- Техника (экскаваторы, самосвалы, краны) +- Материалы +- Анализ загрузки и выявление конфликтов + +## Типы ресурсов + +### Трудовые ресурсы + +| Категория | Единица | Целевая загрузка | +|-----------|---------|------------------| +| ИТР | чел.-день | 85-95% | +| Рабочие | чел.-смена | 80-90% | +| Бригады | бригадо-смена | 75-85% | + +### Техника + +| Категория | Единица | Целевая загрузка | +|-----------|---------|------------------| +| Экскаваторы | маш.-час | 75-85% | +| Самосвалы | маш.-час | 80-90% | +| Краны | маш.-час | 60-70% | +| Бульдозеры | маш.-час | 70-80% | + +### Материалы + +| Категория | Управление | +|-----------|------------| +| Основные материалы | Just-in-time, минимальный запас | +| Критичные материалы | Страховой запас 2-4 недели | +| Расходные | Постоянный запас | + +## Workflow + +### Шаг 1: Инвентаризация ресурсов + +Создаём реестр доступных ресурсов: + +```yaml +resources: + personnel: + - name: "Бригада №1 (земляные работы)" + type: brigade + capacity: 8 # человек + skills: [excavation, grading] + base_location: "База Салехард" + availability: 100% + + - name: "Бригада №2 (бетонные работы)" + type: brigade + capacity: 6 + skills: [concrete, formwork, reinforcement] + base_location: "База Салехард" + availability: 100% + + equipment: + - name: "Экскаватор Hitachi ZX200" + type: excavator + capacity: 200 # м³/смена + location: "Объект Мост №5" + availability: 85% + + - name: "Автокран КС-55713" + type: crane + capacity: 25 # тонн + location: "База" + availability: 100% +``` + +### Шаг 2: Сбор потребностей + +Из gantt-planner получаем: +- Какие работы запланированы +- Когда и какие ресурсы нужны +- Объёмы и длительности + +```yaml +requirements: + - project: "Мост №5" + task: "Устройство опор" + period: "01.02 - 28.02.2026" + needs: + - type: brigade + skill: concrete + quantity: 2 + - type: crane + capacity: ">20т" + quantity: 1 +``` + +### Шаг 3: Матчинг и оптимизация + +Алгоритм распределения: + +1. **Приоритизация проектов** (по критичности, штрафам) +2. **Назначение критических ресурсов** (узкие места) +3. **Заполнение оставшихся потребностей** +4. **Балансировка загрузки** +5. **Выявление конфликтов** + +### Шаг 4: Выявление конфликтов + +``` +⚠️ КОНФЛИКТ РЕСУРСОВ + +Ресурс: Автокран КС-55713 +Период: 15.02 - 20.02.2026 + +Запрос 1: Мост №5 (опоры) — 100% +Запрос 2: Развязка (пролёты) — 50% +Итого: 150% — ПЕРЕГРУЗКА + +Варианты решения: +1. Привлечь доп. кран (аренда) +2. Сдвинуть работы на Развязке на +5 дней +3. Работать в 2 смены на Мосту (ускорить) +``` + +## Визуализация + +### Ресурсная гистограмма + +``` +Экскаватор Hitachi ZX200 + Янв Фев Мар Апр Май + ▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓░░ ▓▓▓▓▓▓ ░░░░░░ +Загрузка: 95% 90% 65% 85% 0% +Проект: Мост Мост Мост Дорога - + +█ = назначено, ░ = свободно +⚠️ Март: недозагрузка +``` + +### Матрица ресурсов по проектам + +| Ресурс | Мост №5 | Дорога М-51 | Развязка | Свободно | +|--------|---------|-------------|----------|----------| +| Бригада №1 | 80% | - | 20% | - | +| Бригада №2 | 100% | - | - | - | +| Экскаватор 1 | 85% | 15% | - | - | +| Кран | 60% | - | 40% | - | + +## Примеры использования + +### Пример 1: Запрос доступных ресурсов +``` +Пользователь: Какая техника свободна на следующей неделе? + +Claude: +🚜 ДОСТУПНЫЕ РЕСУРСЫ: 27.01 - 02.02.2026 + +**Полностью свободны:** +| Ресурс | Тип | Местоположение | +|--------|-----|----------------| +| Бульдозер Т-170 | бульдозер | База | +| Самосвал КамАЗ-6520 №3 | самосвал | Мост №5 | + +**Частично свободны:** +| Ресурс | Занят | Свободен | Где | +|--------|-------|----------|-----| +| Экскаватор Hitachi | 60% | 40% | Мост №5 | +| Автокран КС-55713 | 70% | 30% | Развязка | + +**Полностью заняты:** +- Бригада №1, №2 (Мост №5) +- Экскаватор CAT 320 (Дорога М-51) +``` + +### Пример 2: Распределение ресурсов +``` +Пользователь: Распредели бригады на февраль + +Claude: +📋 РАСПРЕДЕЛЕНИЕ БРИГАД: Февраль 2026 + +**Бригада №1 (земляные работы):** +| Период | Проект | Работы | Загрузка | +|--------|--------|--------|----------| +| 01-10.02 | Мост №5 | Обратная засыпка | 100% | +| 11-20.02 | Дорога М-51 | Земляное полотно | 100% | +| 21-28.02 | Развязка | Выемка | 80% | + +**Бригада №2 (бетонные работы):** +| Период | Проект | Работы | Загрузка | +|--------|--------|--------|----------| +| 01-28.02 | Мост №5 | Бетонирование опор | 100% | + +**Бригада №3 (монтаж):** +| Период | Проект | Работы | Загрузка | +|--------|--------|--------|----------| +| 01-15.02 | Развязка | Монтаж пролётов | 100% | +| 16-28.02 | Мост №5 | Монтаж балок | 85% | + +**Итоговая загрузка:** 95% (целевая: 80-85%) +⚠️ Рекомендация: запас на непредвиденные работы мал +``` + +### Пример 3: Решение конфликта +``` +Пользователь: На 15 февраля нужен кран и на Мосту, и на Развязке + +Claude: +⚠️ КОНФЛИКТ: Автокран КС-55713, 15.02.2026 + +**Потребности:** +1. Мост №5: Монтаж балки, 8:00-16:00 (8 часов) +2. Развязка: Монтаж опалубки, 10:00-14:00 (4 часа) + +**Варианты решения:** + +**Вариант 1: Последовательно (рекомендуется)** +- 08:00-12:00: Мост №5 (4 часа) +- 13:00-17:00: Развязка (4 часа) +- 18:00-22:00: Мост №5 (4 часа, продление) +✅ Без доп. затрат, требует согласования сверхурочных + +**Вариант 2: Аренда доп. крана** +- Кран на Мост: свой +- Кран на Развязку: аренда (25т) +- Стоимость: ~80 000 ₽/день +❌ Дополнительные затраты + +**Вариант 3: Сдвиг работ** +- Работы на Развязке: +1 день (на 16.02) +- Влияние на график: минимальное (резерв 3 дня) +✅ Без доп. затрат + +Рекомендую: **Вариант 1** или **Вариант 3** +``` + +## Оптимизация загрузки + +### Целевые показатели + +``` +ЗАГРУЗКА РЕСУРСОВ: Февраль 2026 + + Факт Цель Статус +Бригады: 95% 80-85% ⚠️ Перегрузка +Экскаваторы: 78% 75-85% ✅ Норма +Краны: 65% 60-70% ✅ Норма +Самосвалы: 82% 80-90% ✅ Норма + +Рекомендации: +1. Перераспределить часть работ с Бригады №1 на субподряд +2. Создать резерв 15-20% на непредвиденные работы +``` + +## Интеграция + +- **gantt-planner** — потребности в ресурсах из графика +- **progress-tracker** — фактическая выработка +- **forecast-engine** — прогноз потребностей +- **executive-dashboard** — сводка по загрузке +- **1С:PM** — синхронизация назначений + +## Выходные документы + +1. **Распределение_ресурсов_[период].xlsx** — план распределения +2. **Загрузка_техники_[период].xlsx** — гистограмма загрузки +3. **Конфликты_ресурсов_[дата].xlsx** — выявленные конфликты +4. **Матрица_ресурсов_[период].xlsx** — ресурсы по проектам diff --git a/skills/risk-analyzer/SKILL.md b/skills/risk-analyzer/SKILL.md new file mode 100644 index 000000000..1d9916363 --- /dev/null +++ b/skills/risk-analyzer/SKILL.md @@ -0,0 +1,240 @@ +--- +name: risk-analyzer +description: Идентификация, оценка и анализ рисков проекта. Используй когда пользователь говорит "оцени риски", "что может сорваться", "риск-анализ", "матрица рисков", "угрозы проекту", "митигация", "реестр рисков". +--- + +# Risk Analyzer — Анализ рисков проекта + +## Назначение + +Комплексный анализ рисков строительных проектов: +- Идентификация рисков по категориям +- Оценка вероятности и влияния +- Построение матрицы рисков +- Разработка стратегий митигации +- Мониторинг триггеров рисков + +## Категории рисков + +### 1. Технические риски +- Ошибки в проектной документации +- Несоответствие геологии проекту +- Технологические сложности +- Качество материалов + +### 2. Организационные риски +- Нехватка квалифицированного персонала +- Проблемы с субподрядчиками +- Сбои в логистике +- Коммуникационные проблемы + +### 3. Финансовые риски +- Рост цен на материалы +- Задержки финансирования +- Валютные колебания +- Банкротство контрагентов + +### 4. Внешние риски +- Погодные условия (критично для ЯНАО) +- Изменения законодательства +- Действия заказчика +- Форс-мажор + +### 5. Контрактные риски +- Неточности в договоре +- Изменение объёмов работ +- Претензии заказчика +- Штрафные санкции + +## Методология оценки + +### Шкала вероятности + +| Уровень | Значение | Описание | +|---------|----------|----------| +| 1 | Очень низкая | <10%, редко случается | +| 2 | Низкая | 10-30%, иногда случается | +| 3 | Средняя | 30-50%, периодически | +| 4 | Высокая | 50-70%, часто случается | +| 5 | Очень высокая | >70%, почти наверняка | + +### Шкала влияния + +| Уровень | Значение | По срокам | По бюджету | +|---------|----------|-----------|------------| +| 1 | Незначительное | <1 неделя | <5% | +| 2 | Небольшое | 1-2 недели | 5-10% | +| 3 | Умеренное | 2-4 недели | 10-20% | +| 4 | Значительное | 1-2 месяца | 20-40% | +| 5 | Критическое | >2 месяцев | >40% | + +### Матрица рисков + +``` +Влияние + 5 │ 5 10 15 20 25 + 4 │ 4 8 12 16 20 + 3 │ 3 6 9 12 15 + 2 │ 2 4 6 8 10 + 1 │ 1 2 3 4 5 + └────────────────────── + 1 2 3 4 5 Вероятность + +🟢 1-4: Низкий риск (мониторинг) +🟡 5-9: Средний риск (план митигации) +🟠 10-15: Высокий риск (активное управление) +🔴 16-25: Критический риск (немедленные действия) +``` + +## Workflow + +### Шаг 1: Идентификация рисков + +Методы: +1. **Анализ документации** — изучи контракт, ТЗ, проект +2. **Checklist** — пройдись по типовым рискам строительства +3. **Экспертная оценка** — запроси опыт команды +4. **Исторический анализ** — lessons learned из прошлых проектов + +### Шаг 2: Оценка рисков + +Для каждого риска определи: +``` +Риск: "Задержка поставки металлоконструкций" +├── Категория: Организационный +├── Вероятность: 4 (высокая) — поставщик загружен +├── Влияние: 4 (значительное) — критический путь +├── Оценка: 4 × 4 = 16 🔴 КРИТИЧЕСКИЙ +├── Триггер: Отсутствие подтверждения отгрузки за 2 недели +└── Владелец: Начальник ОМТС +``` + +### Шаг 3: Разработка стратегий + +Стратегии реагирования: + +| Стратегия | Описание | Когда применять | +|-----------|----------|-----------------| +| **Избежание** | Изменить план, чтобы исключить риск | Критические риски | +| **Передача** | Страхование, субподряд | Финансовые риски | +| **Снижение** | Уменьшить вероятность или влияние | Большинство рисков | +| **Принятие** | Осознанно принять риск | Низкие риски | + +### Шаг 4: Генерация документов + +Используй **xlsx** для создания: + +**Лист 1: Реестр рисков** +| № | Риск | Категория | P | I | Score | Стратегия | Мероприятие | Владелец | Срок | Статус | +|---|------|-----------|---|---|-------|-----------|-------------|----------|------|--------| + +**Лист 2: Матрица рисков** +Визуальная матрица 5×5 с размещением рисков + +**Лист 3: План митигации** +| № | Риск | Мероприятие | Ресурсы | Бюджет | Срок | Ответственный | +|---|------|-------------|---------|--------|------|---------------| + +**Лист 4: Мониторинг** +| № | Риск | Триггер | Индикатор | Частота проверки | Текущий статус | +|---|------|---------|-----------|------------------|----------------| + +## Типовые риски строительства в ЯНАО + +### Климатические +| Риск | P | I | Период | Митигация | +|------|---|---|--------|-----------| +| Сильные морозы (<-40°C) | 5 | 4 | Дек-Фев | Планировать основные работы на лето | +| Распутица | 4 | 3 | Апр-Май, Сен-Окт | Создать запас материалов | +| Полярная ночь | 5 | 2 | Ноя-Янв | Освещение, сокращённые смены | +| Ветер >15 м/с | 3 | 3 | Круглый год | Мониторинг прогноза | + +### Геотехнические +| Риск | P | I | Митигация | +|------|---|---|-----------| +| Деградация мерзлоты | 3 | 5 | Термостабилизация, сваи | +| Пучение грунтов | 4 | 4 | Дренаж, теплоизоляция | +| Высокий уровень грунтовых вод | 3 | 3 | Водопонижение | + +### Логистические +| Риск | P | I | Митигация | +|------|---|---|-----------| +| Ограничение завоза (бездорожье) | 4 | 4 | Северный завоз, запасы | +| Срыв поставки материалов | 3 | 4 | Альтернативные поставщики | +| Поломка техники | 3 | 3 | Резерв, запчасти на объекте | + +## Примеры использования + +### Пример 1: Анализ рисков нового проекта +``` +Пользователь: Оцени риски по проекту строительства моста в Салехарде + +Claude: +📊 Анализ рисков: Мост в Салехарде + +**Выявлено рисков:** 15 +- Критических (🔴): 3 +- Высоких (🟠): 5 +- Средних (🟡): 4 +- Низких (🟢): 3 + +**Топ-3 критических риска:** + +1. **Деградация мерзлоты под опорами** (Score: 20) + - P=4, I=5 + - Митигация: Термостабилизация грунта, усиление фундаментов + - Бюджет митигации: 5 млн ₽ + +2. **Задержка северного завоза** (Score: 16) + - P=4, I=4 + - Митигация: Заказ материалов за 6 мес, резерв на объекте + - Бюджет митигации: 2 млн ₽ + +3. **Короткий строительный сезон** (Score: 15) + - P=5, I=3 + - Митигация: Двухсменная работа, максимум работ июнь-август + - Бюджет митигации: 3 млн ₽ + +**Общий резерв на риски:** 15 млн ₽ (12% от бюджета) + +[Генерирую Excel с полным реестром рисков...] +``` + +### Пример 2: Мониторинг триггеров +``` +Пользователь: Проверь триггеры рисков по текущим проектам + +Claude: +⚠️ Сработавшие триггеры: + +🔴 Проект "Дорога М-51": +- Триггер: Поставщик не подтвердил отгрузку за 2 недели +- Риск: Задержка поставки битума +- Рекомендация: Активировать резервного поставщика + +🟡 Проект "Мост №5": +- Триггер: Прогноз морозов <-30°C на следующую неделю +- Риск: Остановка бетонных работ +- Рекомендация: Ускорить текущий этап, подготовить укрытия +``` + +## Интеграция + +- **progress-tracker** — получение данных об отклонениях +- **gantt-planner** — влияние рисков на график +- **executive-dashboard** — сводка рисков для руководства +- **deviation-alert** — уведомления о сработавших триггерах +- **letter-generator** — письма заказчику о рисках + +## Шаблоны + +Используй шаблоны из диплома MBA: +- `~/Desktop/Рабочие Проекты/05_Образование/Диплом MBA/Дипломная работа MBA/Приложения Excel/Матрица рисков.xlsx` +- `~/Desktop/Рабочие Проекты/05_Образование/Диплом MBA/Дипломная работа MBA/Приложения Excel/Ключевые показатели риски.xlsx` + +## Выходные документы + +1. **Реестр_рисков_[проект]_[дата].xlsx** — полный реестр +2. **Матрица_рисков_[проект].xlsx** — визуальная матрица +3. **План_митигации_[проект].xlsx** — план мероприятий +4. **Отчёт_по_рискам_[проект].docx** — аналитический отчёт diff --git a/skills/skill-matcher/SKILL.md b/skills/skill-matcher/SKILL.md new file mode 100644 index 000000000..68c0a3226 --- /dev/null +++ b/skills/skill-matcher/SKILL.md @@ -0,0 +1,126 @@ +--- +name: skill-matcher +description: Intelligent skill recommendation and activation system. Use when: (1) user asks what skills are available, (2) user needs help choosing the right skill for a task, (3) user wants to find and install new skills, (4) analyzing ANY prompt to determine which skills would help, (5) user says "подбери скилл", "какой скилл использовать", "recommend skills". This skill should activate automatically at session start to analyze user intent and suggest relevant skills. +--- + +# Skill Matcher + +Automatically analyzes user prompts and recommends the most relevant skills from installed plugins and external catalogs. + +## Workflow + +### Phase 1: Analyze User Intent + +Extract from user's message: +1. **Task type**: document creation, coding, design, communication, testing +2. **Keywords**: file formats (.pdf, .docx), tools (MCP, webapp), domains (brand, slides) +3. **Action verbs**: create, edit, analyze, test, build, design + +### Phase 2: Match Skills + +1. **Scan local skills** using `scripts/scan_skills.py` +2. **Match by category** (see Category Mapping below) +3. **Rank by relevance**: exact keyword match > category match > partial match +4. **Search external catalogs** if no local match (see [external-sources.md](references/external-sources.md)) + +### Phase 3: Recommend & Activate + +Output format: +``` +📋 **Recommended skills for your task:** + +1. **[skill-name]** ⭐ (high relevance) + → [why this skill matches your task] + +2. **[skill-name]** (medium relevance) + → [why this skill might help] + +💡 Reply with skill number to activate, or "all" for all recommended. +``` + +After user confirms, activate the skill by mentioning it in context. + +## Category Mapping + +| Category | Keywords | Skills | +|----------|----------|--------| +| **Documents** | pdf, docx, word, excel, xlsx, powerpoint, pptx, slides, spreadsheet, document, форма, документ, презентация, таблица | pdf, docx, pptx, xlsx | +| **Development** | mcp, server, api, webapp, web app, artifact, component, код, сервер | mcp-builder, web-artifacts-builder | +| **Design** | art, design, canvas, theme, visual, frontend, ui, дизайн, тема, искусство | algorithmic-art, canvas-design, frontend-design, theme-factory | +| **Communication** | brand, guidelines, internal, memo, announcement, slack, gif, бренд, коммуникация | brand-guidelines, internal-comms, slack-gif-creator | +| **Testing** | test, qa, testing, webapp test, тест | webapp-testing | +| **Meta** | skill, create skill, новый скилл | skill-creator | + +## Quick Reference + +### Document Tasks +- "Create a presentation" → **pptx** +- "Edit PDF form" → **pdf** +- "Write a Word document" → **docx** +- "Build a spreadsheet" → **xlsx** + +### Development Tasks +- "Build MCP server" → **mcp-builder** +- "Create web artifact" → **web-artifacts-builder** +- "Test my webapp" → **webapp-testing** + +### Design Tasks +- "Generate algorithmic art" → **algorithmic-art** +- "Design a theme" → **theme-factory** +- "Create UI mockup" → **frontend-design** + +### Communication Tasks +- "Write internal announcement" → **internal-comms** +- "Apply brand guidelines" → **brand-guidelines** +- "Create Slack GIF" → **slack-gif-creator** + +## Resources + +- Full skill catalog: [skill-catalog.md](references/skill-catalog.md) +- External sources for new skills: [external-sources.md](references/external-sources.md) +- Scan local skills: `python scripts/scan_skills.py` + +## When No Skill Matches + +If user's task doesn't match any existing skill: + +### Step 1: Search External Catalogs +Check [external-sources.md](references/external-sources.md) for skills that might help. + +### Step 2: Propose Creating New Skill +If no external skill found, suggest creating a custom skill: + +``` +🔧 **Подходящий скилл не найден** + +Для этой задачи нет готового скилла. Варианты: + +1. **Создать новый скилл** с помощью skill-creator + → Скилл будет сохранён и доступен для будущих задач + +2. **Выполнить задачу без скилла** + → Просто сделаю задачу, но без специализированных инструкций + +Что предпочитаешь? +``` + +### When to Suggest skill-creator +- Task is repetitive (user will do it again) +- Task requires specific workflow/steps +- Task involves specialized domain knowledge +- User explicitly wants to automate similar tasks + +### When NOT to Suggest skill-creator +- One-time simple task +- Task is too generic +- User just wants quick answer + +## Auto-Activation Rules + +This skill activates automatically when: +1. Session starts (analyze first user message) +2. User explicitly asks about skills +3. User's task doesn't have an obvious approach +4. Keywords from Category Mapping are detected + +When activated silently (at session start), provide brief recommendation only if highly relevant skills exist. Don't interrupt if user's task is straightforward. diff --git a/skills/skill-matcher/references/external-sources.md b/skills/skill-matcher/references/external-sources.md new file mode 100644 index 000000000..ec555fe97 --- /dev/null +++ b/skills/skill-matcher/references/external-sources.md @@ -0,0 +1,133 @@ +# External Skill Sources + +Reference for finding and installing skills from external catalogs when local skills don't match user needs. + +## Official Sources + +### Anthropic Skills Repository +**URL**: https://github.com/anthropics/skills +**Type**: Official skill library from Anthropic +**How to install**: +```bash +# Add marketplace (one-time) +claude plugin marketplace add anthropics/skills + +# Install specific plugin sets +claude plugin install document-skills@anthropic-agent-skills +claude plugin install example-skills@anthropic-agent-skills +``` + +### Claude Skills via API +**URL**: https://claude.com/blog/extending-claude-capabilities-with-skills-mcp-servers +**Type**: Skills available in Claude.ai for paid plans +**Note**: These are automatically available in Claude.ai web interface + +--- + +## Community Sources + +### MCP Servers Directory +**URL**: https://mcpservers.org +**Type**: Community-maintained MCP server catalog +**Search**: Browse by category or search by functionality + +### MCP Market +**URL**: https://mcpmarket.com +**Type**: MCP tools and skills marketplace +**Features**: Skill workflows, tutorials, examples + +### Awesome MCP Servers +**URL**: https://github.com/punkpeye/awesome-mcp-servers +**Type**: Curated list of MCP servers +**Categories**: AI tools, development, productivity + +--- + +## Installation Commands + +### Add a marketplace +```bash +claude plugin marketplace add / +``` + +### List available plugins from marketplace +```bash +claude plugin marketplace list +``` + +### Install a plugin +```bash +claude plugin install @ +``` + +### List installed plugins +```bash +claude plugin list +``` + +### Remove a plugin +```bash +claude plugin uninstall +``` + +--- + +## Search Strategy + +When local skills don't match user needs: + +1. **Search official repo first** + - Check https://github.com/anthropics/skills/tree/main/skills + - Look for matching skill names or descriptions + +2. **Search MCP directories** + - Use https://mcpservers.org search + - Check category pages relevant to user's task + +3. **Web search for specific needs** + - Query: "claude code skill [task] site:github.com" + - Query: "mcp server [functionality]" + +4. **Suggest creating custom skill** + - If no existing skill matches, recommend using skill-creator + - Help user design a custom skill for their workflow + +--- + +## Skill Quality Indicators + +When recommending external skills, consider: + +| Indicator | Good Sign | Warning Sign | +|-----------|-----------|--------------| +| Stars | 100+ stars | < 10 stars | +| Updates | Recent commits | No updates > 6 months | +| Documentation | Clear SKILL.md | Missing docs | +| Source | anthropics/ org | Unknown author | +| License | Apache 2.0, MIT | No license | + +--- + +## Common External Skills by Category + +### Data & Analytics +- BigQuery skills +- Database connectors +- Data visualization + +### Cloud & DevOps +- AWS deployment +- Docker management +- CI/CD workflows + +### Productivity +- Calendar integration +- Note-taking +- Task management + +### Communication +- Email drafting +- Social media +- Translation + +For specific needs not covered by installed skills, search external sources and recommend installation. diff --git a/skills/skill-matcher/references/skill-catalog.md b/skills/skill-matcher/references/skill-catalog.md new file mode 100644 index 000000000..abc4d0f93 --- /dev/null +++ b/skills/skill-matcher/references/skill-catalog.md @@ -0,0 +1,169 @@ +# Skill Catalog + +Complete reference of available skills organized by category. + +## Document Skills + +### pdf +**Purpose**: PDF manipulation - extract text/tables, create PDFs, merge/split, handle forms +**Keywords**: pdf, form, extract, merge, split, fillable, document +**Triggers**: +- "Fill out this PDF form" +- "Extract text from PDF" +- "Merge these PDFs" +- "Создай PDF" / "Заполни форму" + +### docx +**Purpose**: Word document creation, editing, tracked changes, comments +**Keywords**: docx, word, document, track changes, comments, редактирование +**Triggers**: +- "Create a Word document" +- "Edit this docx file" +- "Add tracked changes" +- "Создай документ Word" + +### pptx +**Purpose**: PowerPoint presentation creation and editing +**Keywords**: pptx, powerpoint, presentation, slides, презентация, слайды +**Triggers**: +- "Create a presentation" +- "Make slides about..." +- "Сделай презентацию" + +### xlsx +**Purpose**: Excel spreadsheet creation and manipulation +**Keywords**: xlsx, excel, spreadsheet, таблица, эксель +**Triggers**: +- "Create a spreadsheet" +- "Build an Excel file" +- "Сделай таблицу" + +--- + +## Development Skills + +### mcp-builder +**Purpose**: Create MCP (Model Context Protocol) servers +**Keywords**: mcp, server, protocol, api, integration, сервер +**Triggers**: +- "Build an MCP server" +- "Create MCP integration" +- "Сделай MCP сервер" + +### web-artifacts-builder +**Purpose**: Build complex web artifacts with React, state management, shadcn/ui +**Keywords**: artifact, webapp, react, component, web, артефакт, компонент +**Triggers**: +- "Create a web artifact" +- "Build interactive component" +- "Создай веб-артефакт" + +### webapp-testing +**Purpose**: Test web applications, QA workflows +**Keywords**: test, testing, qa, webapp, тест, тестирование +**Triggers**: +- "Test this webapp" +- "Run QA checks" +- "Протестируй приложение" + +--- + +## Design Skills + +### algorithmic-art +**Purpose**: Generate algorithmic/generative art +**Keywords**: art, generative, algorithm, visual, искусство, генеративный +**Triggers**: +- "Generate algorithmic art" +- "Create generative visuals" +- "Сделай генеративное искусство" + +### canvas-design +**Purpose**: Design on HTML canvas +**Keywords**: canvas, draw, graphics, рисование, графика +**Triggers**: +- "Draw on canvas" +- "Create canvas graphics" + +### frontend-design +**Purpose**: Frontend UI/UX design +**Keywords**: frontend, ui, ux, design, interface, интерфейс, дизайн +**Triggers**: +- "Design a UI" +- "Create frontend mockup" +- "Сделай дизайн интерфейса" + +### theme-factory +**Purpose**: Create themes and color schemes +**Keywords**: theme, colors, scheme, dark mode, тема, цвета +**Triggers**: +- "Create a theme" +- "Design color scheme" +- "Сделай тему оформления" + +--- + +## Communication Skills + +### brand-guidelines +**Purpose**: Apply brand colors, style guidelines, visual standards +**Keywords**: brand, guidelines, style, visual, бренд, стиль +**Triggers**: +- "Apply brand guidelines" +- "Use company colors" +- "Примени брендбук" + +### internal-comms +**Purpose**: Write internal communications, memos, announcements +**Keywords**: internal, memo, announcement, communication, объявление, коммуникация +**Triggers**: +- "Write internal announcement" +- "Create company memo" +- "Напиши внутреннее объявление" + +### slack-gif-creator +**Purpose**: Create animated GIFs optimized for Slack +**Keywords**: gif, slack, animation, animated, гиф, анимация +**Triggers**: +- "Create Slack GIF" +- "Make animated GIF" +- "Сделай гифку для Slack" + +--- + +## Meta Skills + +### skill-creator +**Purpose**: Create new custom skills +**Keywords**: skill, create, custom, новый скилл +**Triggers**: +- "Create a new skill" +- "Build custom skill" +- "Создай новый скилл" + +### skill-matcher (this skill) +**Purpose**: Recommend and activate appropriate skills +**Keywords**: recommend, match, find skill, подбери скилл +**Triggers**: +- "What skills are available?" +- "Which skill should I use?" +- "Какой скилл использовать?" + +--- + +## Skill Selection Matrix + +| User Intent | Primary Skill | Secondary Options | +|-------------|---------------|-------------------| +| Create document | docx | pdf (if form needed) | +| Create presentation | pptx | - | +| Work with data | xlsx | - | +| Fill PDF form | pdf | - | +| Build server | mcp-builder | - | +| Create UI component | web-artifacts-builder | frontend-design | +| Test application | webapp-testing | - | +| Generate art | algorithmic-art | canvas-design | +| Apply branding | brand-guidelines | theme-factory | +| Write announcement | internal-comms | - | +| Make GIF | slack-gif-creator | - | +| Create new skill | skill-creator | - | diff --git a/skills/skill-matcher/scripts/scan_skills.py b/skills/skill-matcher/scripts/scan_skills.py new file mode 100755 index 000000000..218378c01 --- /dev/null +++ b/skills/skill-matcher/scripts/scan_skills.py @@ -0,0 +1,142 @@ +#!/usr/bin/env python3 +""" +Scan local Claude Code skills and output their metadata as JSON. + +Usage: + python scan_skills.py [--path PATH] [--format FORMAT] + +Options: + --path PATH Custom plugins path (default: ~/.claude/plugins) + --format FORMAT Output format: json, table, or brief (default: json) +""" + +import os +import json +import re +import argparse +from pathlib import Path +from typing import Dict, List, Optional + + +def parse_skill_md(file_path: Path) -> Optional[Dict]: + """Parse SKILL.md file and extract metadata.""" + try: + content = file_path.read_text(encoding='utf-8') + except Exception as e: + return None + + # Extract YAML frontmatter + frontmatter_match = re.match(r'^---\s*\n(.*?)\n---', content, re.DOTALL) + if not frontmatter_match: + return None + + frontmatter = frontmatter_match.group(1) + + # Parse name and description from frontmatter + name_match = re.search(r'^name:\s*(.+)$', frontmatter, re.MULTILINE) + desc_match = re.search(r'^description:\s*(.+?)(?=\n[a-z]+:|$)', frontmatter, re.MULTILINE | re.DOTALL) + + if not name_match: + return None + + name = name_match.group(1).strip().strip('"\'') + description = desc_match.group(1).strip().strip('"\'') if desc_match else "" + + # Clean up multiline descriptions + description = ' '.join(description.split()) + + return { + 'name': name, + 'description': description, + 'path': str(file_path.parent), + 'file': str(file_path) + } + + +def scan_skills_directory(base_path: Path) -> List[Dict]: + """Scan directory for SKILL.md files and collect metadata.""" + skills = [] + + # Search patterns for skill locations + search_patterns = [ + base_path / "**" / "SKILL.md", + ] + + skill_files = set() + for pattern in search_patterns: + skill_files.update(base_path.glob("**/SKILL.md")) + + for skill_file in sorted(skill_files): + metadata = parse_skill_md(skill_file) + if metadata: + skills.append(metadata) + + return skills + + +def get_default_plugins_path() -> Path: + """Get default Claude plugins path.""" + home = Path.home() + return home / ".claude" / "plugins" + + +def format_output(skills: List[Dict], format_type: str) -> str: + """Format skills output based on requested format.""" + if format_type == "json": + return json.dumps(skills, indent=2, ensure_ascii=False) + + elif format_type == "table": + if not skills: + return "No skills found." + + lines = [] + lines.append(f"{'Name':<25} {'Description':<60}") + lines.append("-" * 85) + + for skill in skills: + name = skill['name'][:24] + desc = skill['description'][:59] if skill['description'] else "(no description)" + lines.append(f"{name:<25} {desc:<60}") + + return "\n".join(lines) + + elif format_type == "brief": + if not skills: + return "No skills found." + + return "\n".join(f"- {s['name']}: {s['description'][:80]}..." + if len(s['description']) > 80 + else f"- {s['name']}: {s['description']}" + for s in skills) + + return json.dumps(skills, indent=2, ensure_ascii=False) + + +def main(): + parser = argparse.ArgumentParser(description="Scan Claude Code skills") + parser.add_argument("--path", type=str, help="Custom plugins path") + parser.add_argument("--format", type=str, default="json", + choices=["json", "table", "brief"], + help="Output format") + + args = parser.parse_args() + + plugins_path = Path(args.path) if args.path else get_default_plugins_path() + + if not plugins_path.exists(): + print(json.dumps({"error": f"Path not found: {plugins_path}"}, indent=2)) + return 1 + + skills = scan_skills_directory(plugins_path) + + # Sort by name + skills.sort(key=lambda x: x['name'].lower()) + + output = format_output(skills, args.format) + print(output) + + return 0 + + +if __name__ == "__main__": + exit(main()) diff --git a/skills/telegram-worklog/SKILL.md b/skills/telegram-worklog/SKILL.md new file mode 100644 index 000000000..0d11c164b --- /dev/null +++ b/skills/telegram-worklog/SKILL.md @@ -0,0 +1,314 @@ +--- +name: telegram-worklog +description: Сбор данных о выполненных работах с участков через Telegram-бот. Используй когда пользователь говорит "журнал производства работ", "ежедневный отчёт", "данные с участка", "отчёт прораба", "телеграм журнал", "сбор данных с участков", "электронный журнал работ". +--- + +# Telegram Work Log — Электронный журнал производства работ + +## Назначение + +Сбор ежедневных отчётов о выполненных работах с участков через Telegram-бот: +- Приём данных от прорабов и мастеров +- Структурирование информации о работах +- Хранение в базе данных +- Экспорт для анализа и отчётов +- Интеграция с progress-tracker для план/факт анализа + +## Структура отчёта + +### Обязательные поля + +1. **Проект** — название или код проекта +2. **Участок/Секция** — место выполнения работ +3. **Дата** — дата выполнения работ +4. **Выполненные работы** — описание выполненных работ +5. **Объёмы** — количество с единицами измерения (м³, м², м, шт, тонн) + +### Дополнительные поля + +6. **Персонал** — количество человек, ФИО ключевых специалистов +7. **Техника** — используемая техника и оборудование +8. **Погода** — погодные условия (температура, осадки, ветер) +9. **Проблемы/Риски** — выявленные проблемы или риски +10. **План на завтра** — запланированные работы на следующий день +11. **Фото/Документы** — прикреплённые файлы + +## Формат сообщений в Telegram + +### Вариант 1: Пошаговый диалог (рекомендуется) + +Бот задаёт вопросы последовательно, пользователь отвечает: + +``` +Бот: 📝 Начало отчёта о работах + Выберите проект: + [Кнопка: Мост №5] [Кнопка: Развязка] [Кнопка: Другое] + +Пользователь: [Нажимает "Мост №5"] + +Бот: Укажите участок/секцию: + (например: "Опоры 1-3", "Пролёт 2", "Участок А") + +Пользователь: Опоры 1-3 + +Бот: Какие работы выполнены сегодня? + (опишите подробно) + +Пользователь: Бетонирование опор №1 и №2, установка арматуры на опору №3 + +Бот: Укажите объёмы выполненных работ: + (формат: количество + единица, например: "50 м³", "120 м²") + +Пользователь: 45 м³ бетона, 2.5 тонн арматуры + +Бот: Количество персонала? + (например: "5 человек" или "Бригада Иванова - 5 чел.") + +Пользователь: 5 человек + +Бот: Использовалась техника? + (например: "Бетононасос, кран 25т" или "Нет") + +Пользователь: Бетононасос, кран 25т + +Бот: Погодные условия? + (например: "Ясно, +5°C" или "Дождь, +2°C") + +Пользователь: Ясно, +5°C + +Бот: Были проблемы или риски? + (опишите или напишите "Нет") + +Пользователь: Нет + +Бот: План работ на завтра? + (опишите или напишите "Без изменений") + +Пользователь: Бетонирование опоры №3, подготовка к монтажу пролёта + +Бот: Прикрепите фото (если есть) или нажмите "Пропустить" + +Пользователь: [Прикрепляет фото или нажимает "Пропустить"] + +Бот: ✅ Отчёт сохранён! + ID: #12345 + Проект: Мост №5 + Участок: Опоры 1-3 + Дата: 26.01.2026 + + Отчёт будет доступен для просмотра администраторам. +``` + +### Вариант 2: Структурированное сообщение (для опытных пользователей) + +Пользователь отправляет одно сообщение в структурированном формате: + +``` +/отчёт + +Проект: Мост №5 +Участок: Опоры 1-3 +Дата: 26.01.2026 + +Работы: Бетонирование опор №1 и №2, установка арматуры на опору №3 +Объёмы: 45 м³ бетона, 2.5 тонн арматуры +Персонал: 5 человек +Техника: Бетононасос, кран 25т +Погода: Ясно, +5°C +Проблемы: Нет +План на завтра: Бетонирование опоры №3, подготовка к монтажу пролёта +``` + +Бот парсит структурированное сообщение и сохраняет данные. + +## Workflow обработки + +### Шаг 1: Приём данных + +1. Пользователь запускает бота командой `/start` или `/отчёт` +2. Бот определяет роль пользователя (прораб, мастер, администратор) +3. Для прорабов/мастеров — запускается процесс создания отчёта +4. Для администраторов — показывается меню управления + +### Шаг 2: Валидация данных + +Проверка обязательных полей: +- Проект должен существовать в системе +- Дата не может быть в будущем (или не более чем на 1 день вперёд) +- Объёмы должны содержать число и единицу измерения +- Работы не должны быть пустыми + +### Шаг 3: Сохранение в БД + +Структура таблицы `work_reports`: + +```sql +CREATE TABLE work_reports ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + report_id TEXT UNIQUE NOT NULL, -- Уникальный ID отчёта (#12345) + project_name TEXT NOT NULL, + section TEXT NOT NULL, + report_date DATE NOT NULL, + work_description TEXT NOT NULL, + volumes TEXT, -- JSON: [{"value": 45, "unit": "м³", "material": "бетон"}] + personnel_count INTEGER, + personnel_details TEXT, + equipment TEXT, + weather TEXT, + issues TEXT, + next_day_plan TEXT, + attachments TEXT, -- JSON: [{"type": "photo", "file_id": "..."}] + reporter_telegram_id INTEGER NOT NULL, + reporter_name TEXT, + status TEXT DEFAULT 'submitted', -- submitted, approved, rejected + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + approved_at TIMESTAMP, + approved_by INTEGER +); +``` + +### Шаг 4: Уведомления + +После сохранения: +- Подтверждение пользователю с ID отчёта +- Уведомление администраторам (если настроено) +- Интеграция с progress-tracker для обновления фактических данных + +## Административные команды + +### Просмотр отчётов + +``` +/reports_today — список всех отчётов за сегодня +/report — детальная информация об отчёте +/reports_project <название> — отчёты по проекту +/reports_date <дата> — отчёты за дату (формат: ДД.ММ.ГГГГ) +``` + +### Экспорт данных + +``` +/export_today — экспорт всех отчётов за сегодня в CSV +/export_date <дата> — экспорт за дату +/export_project <название> — экспорт по проекту +``` + +### Управление + +``` +/approve — одобрить отчёт +/reject <причина> — отклонить отчёт с причиной +/users — список пользователей +/stats — статистика по отчётам +``` + +## Формат экспорта CSV + +```csv +ID,Дата,Проект,Участок,Работы,Объёмы,Персонал,Техника,Погода,Проблемы,План на завтра,Автор,Статус +#12345,26.01.2026,Мост №5,Опоры 1-3,"Бетонирование опор №1 и №2, установка арматуры на опору №3","45 м³ бетона, 2.5 тонн арматуры",5 человек,Бетононасос кран 25т,Ясно +5°C,Нет,"Бетонирование опоры №3, подготовка к монтажу пролёта",Иванов И.И.,submitted +``` + +## Интеграция с другими скиллами + +### progress-tracker + +После сохранения отчёта автоматически: +1. Извлекаются объёмы выполненных работ +2. Обновляются фактические данные в progress-tracker +3. Пересчитываются индексы SPI/CPI +4. Генерируются алерты при отклонениях + +### deviation-alert + +При обнаружении проблем в отчёте: +- Автоматическое создание алерта +- Уведомление руководителя проекта +- Эскалация критических проблем + +### gantt-planner + +Объёмы из отчётов используются для: +- Обновления фактического прогресса в графике Ганта +- Корректировки сроков при необходимости + +## Примеры использования + +### Пример 1: Создание отчёта + +``` +Пользователь: /отчёт + +Claude (через бота): +📝 Начало отчёта о работах +Выберите проект: +[Мост №5] [Развязка] [Дорога А-123] + +[Пользователь выбирает проект и заполняет данные] + +✅ Отчёт сохранён! +ID: #12345 +Проект: Мост №5 +Участок: Опоры 1-3 +Дата: 26.01.2026 + +Данные переданы в систему мониторинга. +``` + +### Пример 2: Просмотр отчётов администратором + +``` +Администратор: /reports_today + +Бот: +📊 Отчёты за сегодня (26.01.2026) + +1. #12345 — Мост №5, Опоры 1-3 + Работы: Бетонирование опор + Объёмы: 45 м³ бетона + Автор: Иванов И.И. + Статус: ✅ Подтверждён + +2. #12346 — Развязка, Участок Б + Работы: Укладка асфальта + Объёмы: 120 м² + Автор: Петров П.П. + Статус: ⏳ На проверке + +Всего: 2 отчёта +``` + +### Пример 3: Экспорт данных + +``` +Администратор: /export_today + +Бот: +📥 Генерация CSV файла... + +[Отправляет файл work_reports_2026-01-26.csv] + +✅ Экспортировано 2 отчёта +Файл готов для импорта в Excel или 1С:PM +``` + +## Выходные документы + +1. **work_reports_[дата].csv** — экспорт отчётов за дату +2. **work_reports_[проект].csv** — экспорт по проекту +3. **work_reports_summary_[период].xlsx** — сводный отчёт (через xlsx skill) + +## Безопасность и права доступа + +### Роли пользователей + +- **Прораб/Мастер** — может создавать отчёты, просматривать свои отчёты +- **Руководитель проекта** — может просматривать отчёты по своим проектам, одобрять/отклонять +- **PMO/Администратор** — полный доступ ко всем отчётам, экспорт, статистика + +### Валидация + +- Проверка существования проекта +- Проверка прав доступа к проекту +- Валидация формата данных +- Защита от дублирования отчётов (один отчёт на участок в день)