---
name: weekly-check
description: "Еженедельный разбор: техобслуживание + самоанализ + созвон Антон/Андрей. Триггеры: 'maintenance', 'техобслуживание', 'ТО агента', 'weekly maintenance', 'проверь настройки', 'self review', 'самоанализ', 'обзор недели', 'weekly review', 'weekly check', 'еженедельный разбор', 'созвон с андреем', 'weekly sync'"
---

# Weekly Check -- Еженедельный разбор

Объединённый скилл: техобслуживание инфраструктуры + самоанализ сессий + созвон с Андреем.

## Маршрутизация

| Триггер | Секция |
|---------|--------|
| `maintenance`, `техобслуживание`, `ТО агента`, `weekly maintenance`, `проверь настройки` | S1 Техобслуживание |
| `self review`, `самоанализ`, `обзор недели`, `weekly review` | S2 Самоанализ |
| `созвон с андреем`, `weekly sync`, `еженедельный разбор` | S3 Созвон Антон/Андрей |
| `weekly check` | S1 + S2 + S3 (полный разбор) |

| Задача | Секция |
|--------|--------|
| Проверка инфраструктуры | S1 |
| Анализ ошибок и улучшений | S2 |
| Созвон с Андреем (команда) | S3 |
| Полный еженедельный разбор | S1 + S2 + S3 |

**Расписание:** воскресенье вечером (подготовка) → созвон Антон/Андрей по договорённости.

---

# S1. Техобслуживание

10 чеклистов. По каждому: проверить, зафиксировать статус, исправить если возможно.

## 1.1 Git-хуки

```bash
ls -la ~/.claude/hooks/
cat ~/.claude/hooks/*.sh 2>/dev/null | head -50
```

- [ ] Хуки существуют и исполняемые (`chmod +x`)
- [ ] Хуки не дублируют друг друга
- [ ] Pre-commit хуки не блокируют работу
- [ ] Post-commit хуки корректно отрабатывают

## 1.2 Скиллы (Skills)

```bash
ls ~/.claude/skills/*/SKILL.md | wc -l
for f in ~/.claude/skills/*/SKILL.md; do echo "--- $(dirname $f | xargs basename)"; head -5 "$f"; done
```

- [ ] Все скиллы имеют YAML frontmatter (name, description)
- [ ] Нет дубликатов по функциональности
- [ ] Триггеры не конфликтуют между скиллами
- [ ] Скиллы актуальны (нет устаревших инструкций)

## 1.3 Агенты

```bash
ls ~/.claude/agents/*.md 2>/dev/null
```

- [ ] Агенты в `~/.claude/agents/` актуальны
- [ ] Системные промпты не устарели
- [ ] Нет агентов-дубликатов

## 1.4 Скрипты

```bash
ls ~/.claude/scripts/
for f in ~/.claude/scripts/*.sh; do bash -n "$f" 2>&1 && echo "OK: $f" || echo "FAIL: $f"; done
```

- [ ] Все `.sh` скрипты проходят `bash -n` (синтаксис)
- [ ] Все скрипты имеют `set -euo pipefail`
- [ ] Скрипты исполняемые (`chmod +x`)
- [ ] Нет скриптов, которые больше не используются

## 1.5 Cron / периодические задачи

```bash
crontab -l 2>/dev/null || echo "No crontab"
```

- [ ] Cron задачи актуальны
- [ ] Нет задач, ссылающихся на несуществующие скрипты
- [ ] Логи cron не переполняют диск

## 1.6 LaunchAgents (macOS)

```bash
ls ~/Library/LaunchAgents/pro.artvision.* 2>/dev/null
for f in ~/Library/LaunchAgents/pro.artvision.*; do
  plutil -lint "$f" 2>&1
  launchctl list | grep "$(basename $f .plist)" 2>/dev/null || echo "NOT LOADED: $f"
done
```

- [ ] Все plist файлы валидны (`plutil -lint`)
- [ ] Агенты загружены (`launchctl list`)
- [ ] Скрипты, на которые ссылаются агенты, существуют
- [ ] Логи не переполняют диск
- [ ] CallTouch мониторинг (`pro.artvision.calltouch-otido`) работает

## 1.7 VPS и удалённые сервисы

```bash
# Проверка доступности VPS (из infrastructure.md)
# ssh vps "pm2 list && df -h && free -m"
```

- [ ] VPS доступен по SSH
- [ ] pm2 процессы запущены
- [ ] Диск не заполнен (>20% свободно)
- [ ] RAM не исчерпана
- [ ] Бэкапы актуальны

## 1.8 Git репозитории

```bash
for repo in /Users/antonk/artvision-data /Users/antonk/artvision-tg-bot /Users/antonk/devops-agent; do
  echo "=== $repo ==="
  cd "$repo" 2>/dev/null && git status --short && git stash list
done
```

- [ ] Нет незакоммиченных изменений в рабочих репо
- [ ] Нет забытых stash записей
- [ ] Remote в актуальном состоянии (`git fetch --dry-run`)
- [ ] TODO.md в каждом репо актуален

## 1.9 Токены и API

```bash
# Проверка валидности токенов (НЕ показывать значения!)
python3 -c "
import json
with open('/Users/antonk/artvision-data/tokens.json') as f:
    tokens = json.load(f)
for section in tokens:
    if isinstance(tokens[section], dict):
        keys = list(tokens[section].keys())
        print(f'{section}: {len(keys)} keys ({', '.join(keys[:5])})')
    else:
        print(f'{section}: value set')
"
```

- [ ] `tokens.json` парсится без ошибок
- [ ] Все необходимые секции присутствуют (telegram, asana, topvisor, yandex)
- [ ] Токены не просрочены (проверить API-вызовом где возможно)
- [ ] Нет токенов в открытых файлах (кроме tokens.json)

## 1.10 CLAUDE.md и правила

```bash
cat ~/.claude/CLAUDE.md
ls ~/.claude/rules/
for f in ~/.claude/rules/*.md; do echo "--- $f ---"; wc -l "$f"; done
```

- [ ] `CLAUDE.md` актуален, ссылки на rules корректны
- [ ] Все файлы в `~/.claude/rules/` читаемы
- [ ] Нет конфликтов между правилами
- [ ] MEMORY.md актуален (даты, контакты, проекты)
- [ ] Проектные `.claude/rules/` в репо не конфликтуют с глобальными

## Формат отчёта S1

```markdown
## Техобслуживание -- [дата]

| Компонент | Статус | Проблемы | Действия |
|-----------|--------|----------|----------|
| Git-хуки | OK/WARN/FAIL | описание | что сделано |
| Скиллы | OK/WARN/FAIL | описание | что сделано |
| Агенты | OK/WARN/FAIL | описание | что сделано |
| Скрипты | OK/WARN/FAIL | описание | что сделано |
| Cron | OK/WARN/FAIL | описание | что сделано |
| LaunchAgents | OK/WARN/FAIL | описание | что сделано |
| VPS | OK/WARN/FAIL | описание | что сделано |
| Git repos | OK/WARN/FAIL | описание | что сделано |
| Токены/API | OK/WARN/FAIL | описание | что сделано |
| CLAUDE.md | OK/WARN/FAIL | описание | что сделано |
```

---

# S2. Самоанализ

5 шагов. Цель: найти паттерны ошибок, потерянное время, удачные решения. Предложить улучшения.

## 2.1 Сбор данных сессий

```bash
# Последние сессии за неделю
claude sessions list 2>/dev/null | head -20

# История коммитов за неделю по всем репо
for repo in /Users/antonk/artvision-data /Users/antonk/artvision-tg-bot /Users/antonk/devops-agent; do
  echo "=== $(basename $repo) ==="
  cd "$repo" 2>/dev/null && git log --oneline --since="7 days ago" --all 2>/dev/null | head -20
done
```

Собрать:
- Количество сессий за неделю
- Основные задачи (из коммитов и TODO)
- Время на задачи (примерная оценка по объёму коммитов)

## 2.2 Анализ паттернов

Что искать:
- **Повторяющиеся ошибки** -- одна и та же проблема возникала >1 раза
- **Потерянное время** -- задачи, на которые ушло непропорционально много усилий
- **Удачные решения** -- подходы, которые сработали хорошо и стоит зафиксировать
- **Новые инструменты** -- скрипты/команды, которые были созданы и полезны
- **Пробелы в знаниях** -- области, где пришлось долго разбираться

Источники:
- git log (коммиты за неделю)
- TODO.md файлы (что было запланировано vs что сделано)
- MEMORY.md (что было добавлено/изменено)
- lessons*.md (что было записано как урок)

## 2.3 Предложения улучшений

По каждой находке сформировать предложение:

| Категория | Куда применить | Формат |
|-----------|----------------|--------|
| Новое правило | `~/.claude/rules/*.md` | Добавить правило |
| Новый урок | `memory/lessons*.md` | Добавить запись |
| Новый скилл | `~/.claude/skills/*/SKILL.md` | Создать скилл |
| Обновление памяти | `memory/MEMORY.md` | Обновить секцию |
| Новый хук | `~/.claude/hooks/` | Создать скрипт |
| Новый агент | `~/.claude/agents/` | Создать промпт |
| Новый скрипт | `~/.claude/scripts/` | Создать скрипт |

**Правила предложений:**
- Не предлагать то, что уже есть
- Приоритет: автоматизация > документация > напоминания
- Каждое предложение = конкретное действие, не абстрактная рекомендация

## 2.4 Формат отчёта S2

```markdown
## Самоанализ -- [дата]

### Статистика недели
- Сессий: N
- Коммитов: N (artvision-data: X, tg-bot: Y, devops: Z)
- Основные задачи: [список]

### Повторяющиеся ошибки
1. [описание] -- встречалось N раз -- причина -- решение

### Потерянное время
1. [задача] -- причина задержки -- как избежать

### Удачные решения (зафиксировать)
1. [решение] -- контекст -- куда записать

### Новые инструменты
1. [скрипт/команда] -- назначение -- статус (используется/одноразовый)

### Пробелы в знаниях
1. [область] -- что нужно изучить -- приоритет

### Предложения улучшений
1. [действие] -- категория -- приоритет (high/medium/low)
```

## 2.5 Применение

После формирования отчёта:

1. **Показать отчёт пользователю** -- дождаться подтверждения
2. **Применить одобренные изменения:**
   - Обновить CLAUDE.md / rules если нужно
   - Обновить MEMORY.md (новые уроки, контакты, проекты)
   - Создать/обновить скиллы
   - Создать скрипты/хуки
3. **Закоммитить изменения** в соответствующие репо
4. **Обновить TODO.md** -- добавить задачи на следующую неделю если есть

---

# S3. Созвон Антон/Андрей (внутренний weekly sync)

Созвоны команды проводятся **в рамках еженедельного разбора**. Входной канал задач: TG-чат **«av.pro - ИИ для задач»** (ID `-5159176702`). Туда сваливаются новые задачи между созвонами — на созвоне разбираем.

## 3.1 Подготовка (до созвона)

1. **Экспорт чата** (новые сообщения с прошлого разбора):
   ```bash
   python3 ~/.claude/scripts/tg-chat-export.py \
     --chat-id -5159176702 \
     --since YYYY-MM-DD \
     -o /Users/antonk/artvision-data/processes/weekly-sync/avpro-ii-chat-YYYY-MM-DD.md
   ```
2. **Парсинг задач из чата** → TaskCreate + добавление в `TODO.md` под секцию `### Еженедельный разбор (созвон Антон/Андрей)` с указанием источника.
3. **Сбор контекста:**
   - `git log --since="7 days ago"` по всем репо
   - Asana overdue (кэш `~/.claude/state/asana-overdue.cache`)
   - PROJECTS.md `>>` действия
   - Статусы платящих клиентов (`knowledge/clients/`)

## 3.2 Agenda созвона (стандартная)

| # | Блок | Время | Артефакт |
|---|------|-------|----------|
| 1 | Разбор чата av.pro (новые задачи) | 10 мин | `processes/weekly-sync/avpro-ii-chat-*.md` |
| 2 | Проливы — оплата + распределение по клиентам | 5 мин | Payment log |
| 3 | Клиенты: статус по каждому (revenue actions) | 15 мин | `plans/weekly-plan-W*.md` |
| 4 | Presale pipeline: новые лиды, КП, встречи | 10 мин | `presale/TODO.md` |
| 5 | Блокеры/риски (overdue Asana, долги, отчёты) | 5 мин | `asana-overdue.cache` |
| 6 | План на следующую неделю (задачи Андрею) | 10 мин | TODO.md + Asana |
| 7 | Разное (Топвизор, инструменты, инфра) | 5 мин | — |

**Итого:** ~60 мин.

## 3.3 Формат конспекта созвона

Сохранять в `processes/weekly-sync/sync-YYYY-MM-DD.md`:

```markdown
# Weekly Sync Антон/Андрей — YYYY-MM-DD

## Разбор чата av.pro
- Источник: `processes/weekly-sync/avpro-ii-chat-YYYY-MM-DD.md`
- Новые задачи: [N]
- Закрыто на созвоне: [N]

## Решения
| # | Решение | Кто | Дедлайн |
|---|---------|-----|---------|
| 1 | ... | Андрей | YYYY-MM-DD |

## Блокеры
- [описание] — кому эскалировать

## План Андрею на неделю
- [ ] задача [client:X] [due:YYYY-MM-DD]
- [ ] ...

## План Антону на неделю
- [ ] ...
```

## 3.4 После созвона (автоматизация)

1. Все решения → Asana (через `mcp__asana__asana_create_task`) БЕЗ assignee — спросить у пользователя кто исполнитель
2. Задачи → `TODO.md` с тегами `[priority:]` `[client:]` `[due:]`
3. Конспект → commit + push
4. Обновить `plans/weekly-plan-W*.md` — план факт недели

## 3.5 Триггер "следующий разбор"

После созвона — создать TaskCreate "Следующий weekly sync Антон/Андрей" с датой (через 7 дней). Это входит в checkpoint автоматически.

---

# Полный еженедельный разбор (S1 + S2 + S3)

При триггере `weekly check` или `еженедельный разбор`:

1. **S1** — техобслуживание (таблица статусов)
2. **S2** — самоанализ (паттерны ошибок, удачные решения)
3. **S3** — подготовка к созвону Антон/Андрей:
   - Экспорт чата av.pro
   - TaskCreate для новых задач
   - Agenda + контекст
4. Показать объединённый отчёт пользователю
5. После созвона — конспект + применение решений
6. Commit + push
