В уроке 15-27 вы сделали отчёт одной кнопкой. Теперь — два шага дальше: навык, чтобы весь порядок работы с отчётом запускался одной командой /monthly-report, и расписание, чтобы отчёт собирался сам. Плюс где расписание работает, а где нет.
In lesson 15-27 you built a one-click report. Now two steps further: a skill, so the whole report routine runs with one command /monthly-report, and a schedule, so the report builds itself. Plus where scheduling works and where it doesn't.
Раньше вы каждый месяц писали Claude: «запусти скрипт, сверь итог, напиши комментарий, положи файл туда». Теперь это записано один раз, а вы пишете /monthly-report.
Every month you used to write to Claude: "run the script, reconcile the total, write a comment, put the file there." Now it is written once and you type /monthly-report.
Будильник звонит сам, но только если он включён. Расписание тоже: где-то оно работает при закрытом ноутбуке, где-то — только пока компьютер не спит.
An alarm rings by itself, but only if it is switched on. Same with a schedule: some run with the laptop closed, others only while the computer is awake.
| ГдеWhere | ПутьPath | Кому виденWho sees it |
|---|---|---|
| ПроектProject | .claude/skills/<имя>/SKILL.md | всем, кто работает в этой папке проекта — команда получает его вместе с папкойeveryone working in this project folder — the team gets it with the folder |
| Лично выJust you | ~/.claude/skills/<имя>/SKILL.md | вам, во всех проектах на этом компьютереyou, in all projects on this computer |
Два способа вызвать: напрямую — набрать /monthly-report; или Claude сам подтянет навык, если ваш запрос подходит под его описание. Чтобы навык запускался только вашей командой, в шапке пишут disable-model-invocation: true — для отчётов это правильно: такое не должно запускаться «само по догадке».
Two ways to invoke: directly — type /monthly-report; or Claude loads the skill itself when your request matches its description. To make the skill run only on your command, put disable-model-invocation: true in the header — right for reports: they shouldn't start "on a guess".
monthly-report) надёжнее всего: так же, как .bat в уроке 15-27, лучше без кириллицы. Сам текст инструкции пишите по-русски. The skill name becomes both the command and the folder name. Latin letters with hyphens (monthly-report) are safest — like the .bat in lesson 15-27, better without Cyrillic. Write the instructions themselves in Russian. Навык для отдела финансов «Долины напитков». Он запускает скрипт из урока 15-27, сверяет итог и пишет короткую выжимку. Скопируйте и поменяйте имена файлов под себя.
A skill for the Valley Beverages finance team. It runs the script from lesson 15-27, reconciles the total and writes a short summary. Copy it and change the file names to yours.
---
name: monthly-report
description: Собрать месячный отчёт план/факт по филиалам, сверить итог и написать выжимку для директора.
disable-model-invocation: true
---
Порядок работы:
1. Проверь, что в папке input лежат 3 выгрузки за прошлый месяц. Если какой-то нет — остановись и скажи мне.
2. Запусти RUN_report.bat. Исходные файлы не меняй.
3. Сверь итог: сумма факта в отчёте = сумме факта в трёх выгрузках. Покажи обе цифры.
4. Если расхождение больше 0 — не продолжай, опиши, где оно.
5. Напиши выжимку на 5 строк: итог план/факт в тысячах литров, отклонение в %, 3 статьи с наибольшим отклонением.
6. Сохрани выжимку в output/summary_ГГГГ-ММ.md.
Если что-то непонятно — спроси меня. ---
name: monthly-report
description: Build the monthly plan/actual report by branch, reconcile the total and write a summary for the director.
disable-model-invocation: true
---
Routine:
1. Check that the input folder has 3 exports for last month. If one is missing, stop and tell me.
2. Run RUN_report.bat. Do not change source files.
3. Reconcile: actual total in the report = actual total of the three exports. Show both numbers.
4. If the difference is above 0, stop and describe where it is.
5. Write a 5-line summary: plan/actual total in thousand litres, variance in %, 3 lines with the largest variance.
6. Save the summary to output/summary_YYYY-MM.md.
If anything is unclear, ask me. --- — шапка: name = команда, description = когда навык нужен, disable-model-invocation = только по вашей команде. Ниже — шаги, как вы объяснили бы новичку. Главное в навыке — шаги «остановись, если…»: они не дают отчёту уйти с ошибкой. Between the --- lines is the header: name = the command, description = when the skill is needed, disable-model-invocation = only on your command. Below are the steps, as you'd explain to a newcomer. The key part is the "stop if…" steps: they keep a broken report from going out. Сделайте задачу один раз вместе с Claude Code в обычном разговоре. Когда всё получилось — попросите упаковать это в навык:
Do the task once with Claude Code in a normal conversation. When it works, ask it to package it as a skill:
Мы только что собрали месячный отчёт. Упакуй весь порядок работы в навык проекта: .claude/skills/monthly-report/SKILL.md. Имя латиницей, запуск только моей командой (disable-model-invocation: true). Шаги — как мы делали, плюс проверки «остановись и скажи мне, если…» для каждого места, где может быть ошибка. Исходные файлы не менять. Покажи мне текст навыка до сохранения.
We have just built the monthly report. Package the whole routine as a project skill: .claude/skills/monthly-report/SKILL.md. Latin name, invoked only by my command (disable-model-invocation: true). Steps as we did them, plus "stop and tell me if…" checks at every point where an error is possible. Do not change source files. Show me the skill text before saving.
/monthly-report → сверка с эталономNew chat → /monthly-report → reconcile with the referenceРаботает на серверах Anthropic, даже когда ноутбук выключен. Ваших файлов на диске не видит — только репозиторий и подключённые коннекторы. Команда /schedule или claude.ai/code/routines. Не чаще раза в час. Пока исследовательская версия.
Runs on Anthropic's servers even when your laptop is off. Doesn't see files on your disk — only a repository and connected connectors. Command /schedule or claude.ai/code/routines. At most hourly. Still a research preview.
Приложение Claude, вкладка Code → Scheduled. Видит ваши папки. Работает, только пока приложение открыто и компьютер не спит. Пропустил время — один догоняющий запуск после пробуждения.
Claude app, Code tab → Scheduled. Sees your folders. Runs only while the app is open and the computer is awake. Missed the time — one catch-up run after wake.
Запускает ваш RUN_report.bat по времени. Claude не участвует: скрипт делает то же самое каждый раз. Самый предсказуемый вариант для готового отчёта.
Runs your RUN_report.bat on a timer. Claude isn't involved: the script does the same thing every time. The most predictable option for a finished report.
| ОблакоCloud | ПриложениеDesktop app | Планировщик WindowsTask Scheduler | |
|---|---|---|---|
| Ноутбук выключенLaptop off | работаетruns | нетno | нетno |
| Файлы на диске / в OneDriveFiles on disk / OneDrive | не видитcan't see | видитsees | видитsees |
| Claude думает при запускеClaude thinks at run time | даyes | даyes | нет, только скриптno, script only |
| Подходит дляGood for | сводка из почты и Teams через коннекторыa summary from mail and Teams via connectors | отчёт с проверками и выжимкой Claudea report with checks and a Claude summary | ночной пересчёт готовым скриптомa nightly rebuild with a finished script |
Задачу в приложении можно создать и словами в любом разговоре: «каждый понедельник в 9:00 запускай /monthly-report». Названия кнопок могут отличаться — в старых версиях раздел называется Routines.
You can also create a desktop task in words in any session: "every Monday at 9:00 run /monthly-report". Button names may differ — in older versions the section is called Routines.
Для каждой задачи выберите подходящий способ.
Choose the right option for each task.
Приём из практики: в конце скрипта — короткое сообщение вам: «Отчёт собран, факт 104 520, отклонение −3,2 %» или «Упал на шаге 3: нет файла Каменска». Канал — рабочая почта или мессенджер. Утром вы видите итог, не открывая ноутбук. Попросите Claude Code дописать это в скрипт.
A practice trick: at the end of the script — a short message to you: "Report built, actual 104,520, variance −3.2%" or "Failed at step 3: no Kamensk file". Channel — work e-mail or a messenger. In the morning you see the result without opening the laptop. Ask Claude Code to add this to the script.
Хуки — для продвинутых. Хук — команда, которую Claude Code запускает всегда при событии: например, уведомление на рабочий стол, когда Claude ждёт вашего ответа, или запрет правок в папке с исходниками. В отличие от CLAUDE.md, хук не «просьба», а правило, которое срабатывает без исключений. Настраиваются через /hooks; на старте курса без них можно обойтись.
Hooks are for advanced users. A hook is a command Claude Code runs every time an event happens: e.g. a desktop notification when Claude is waiting for you, or blocking edits in the source folder. Unlike CLAUDE.md, a hook is not a "request" but a rule that fires without exceptions. Set up via /hooks; at the start of the course you can do without them.
/monthly-report. Сверьте итог с эталоном прошлого месяца. Уберите один файл из input — остановился ли навык? New chat → /monthly-report. Reconcile the total with last month's reference. Remove one file from input — did the skill stop?| ОшибкаMistake | Как правильноDo this instead |
|---|---|
| Ставят на расписание то, что ещё ни разу не прошло чистоScheduling something that never ran cleanly | Сначала 2–3 ручных запуска со сверкойFirst 2–3 manual runs with reconciliation |
| Облачная задача должна читать файл из OneDrive на ноутбукеA cloud task expected to read a file from OneDrive on the laptop | Облако ваш диск не видит — нужна задача в приложении или ПланировщикThe cloud can't see your disk — use a desktop task or Task Scheduler |
| Задача в приложении «не сработала» ночьюThe desktop task "didn't fire" at night | Компьютер спал. Включите «не давать уснуть» или ставьте на рабочие часыThe computer slept. Turn on keep-awake or schedule within working hours |
| В навыке нет шагов «остановись, если…»The skill has no "stop if…" steps | На каждое место, где возможна ошибка, — проверка и стопA check and a stop at every point where an error is possible |
| Пароль от почты прямо в скриптеThe mail password right in the script | Только в защищённом хранилище учётных данныхOnly in a protected credential store |
| Результат никто не читаетNobody reads the result | Назначьте человека и уведомление с итогомAssign a person and a summary notification |
.claude/skills/имя/SKILL.md — для всей команды.claude/skills/name/SKILL.md — for the whole team~/.claude/skills/имя/SKILL.md — только для вас~/.claude/skills/name/SKILL.md — just for youdisable-model-invocation: truedisable-model-invocation: true/schedule; ноутбук не нужен, диск не видит/schedule; no laptop needed, can't see disk/hooks; правило, которое срабатывает всегда/hooks; a rule that always fires