FUCK TEAMBUILDING//5 COURSES
FUCK TEAMBUILDING
платформа для психов, которые в одиночку меняют мир (ну не совсем в одиночку — с ИИ всё-таки)
COURSE_01//SOLO
SOLOPRENEUR CAMP
От идеи до масштабирования продукта: 4 воркшопа, 17 уроков, 15 тренажёров.
0%
начать →
COURSE_02//AI-WORK
AI для реальной работы
Практический AI-воркшоп: процессы, автоматизация рутины, свой софт, агенты и локалки. 5 воркшопов, 13 уроков.
0%
начать →
COURSE_03//CRMKT
КРИЕЙТОР-МАРКЕТИНГ для солопренёров
Как солопренёру стать креатором: ресёрч аудитории, сторителлинг, личность и контент-конвейер. 3 воркшопа, 8 уроков.
0%
начать →
COURSE_04//UBT
УБТ-машина
Первые пользователи без бюджета: Reddit, Threads, Telegram, виральные форматы — пошагово. 3 воркшопа, 7 уроков.
0%
начать →
COURSE_05//AIDEV
ИИ В ПРОД
Для тех, кто пишет код руками: границы доверия, поведенческое тестирование, секреты, slopsquatting, лицензии и TDD с ИИ. 4 воркшопа, 11 уроков.
0%
начать →
ЖЕЛЕЗО//HARDWARE
Claude Code + твои девайсы
Практические памятки: как заставить Claude Code работать с реальным железом — достать данные и писать прошивку, не наступая на грабли, которые не ловятся сборкой.
H/W_01HiDock AI + claude codeДостать аудио с диктофона HiDock и получить текст со спикерами — руками Claude Code.[ ОТКРЫТЬ ]
Как достать аудио со своего диктофона HiDock и получить текст — руками Claude Code. Программировать не нужно: вставляешь один промпт и следуешь шагам. Записи превращаются в текстовые файлы с разбивкой по спикерам и таймкодами, оригинальное аудио сохраняется, с устройства ничего не удаляется.
Рут / взлом устройства не нужен
Никакого рута, джейлбрейка или спецпрошивки. Диктофон общается с компьютером по обычному USB своим штатным протоколом. «Получить доступ» здесь — это всего лишь поставить пару бесплатных инструментов и разрешить Claude Code их запустить. Гарантию это не нарушает, устройство не портит.
Что понадобится · собрать за 5 минут
Mac
компьютер Apple, инструкция под macOS
Диктофон HiDock
модель H1, H1E или P1 + его USB-кабель
Claude Code
установлен на компьютере (claude.com/claude-code)
Ключ AssemblyAI
бесплатный — assemblyai.com → регистрация (можно через Google) → в Dashboard найди API key и скопируй. Держи под рукой, вставишь в шаге 3. Ключ как пароль — лишний раз не свети
Расшифровка через AssemblyAI платная по минутам аудио, но у сервиса есть бесплатный стартовый баланс — на пробу хватит. Языки определяются автоматически (в т.ч. русский), спикеры распознаются.
Шаги
01
Подключи диктофон
Вставь HiDock в Mac USB-кабелем. Если на устройстве есть переключатель — просто чтобы оно было включено.
02
Открой Claude Code
Открой Terminal, создай пустую папку и запусти там Claude Code. Не знаешь как — попроси его самого: «Создай новую папку hidock на рабочем столе и работай в ней».
03
Вставь промпт
Скопируй промпт кнопкой ниже, замени ВСТАВЬТЕ-СЮДА-СВОЙ-КЛЮЧ на свой ключ AssemblyAI и отправь Claude Code. Дальше он всё сделает сам: поставит инструменты, найдёт записи, скачает и расшифрует.
04
Забери результат
Claude Code скажет, где лежат файлы: текстовые .md со спикерами и таймкодами + папка с оригинальным аудио (.mp3). Повторный запуск обрабатывает только новые записи — старые не трогает.
Промпт для Claude Code
Скопируй, замени
ВСТАВЬТЕ-СЮДА-СВОЙ-КЛЮЧ на свой ключ AssemblyAI — и отправь Claude Code.У меня к этому Mac подключён по USB диктофон HiDock (модель H1, H1E или P1). Я не
программист. Пожалуйста, настрой всё сам и преврати мои записи в текстовые
расшифровки. Делай всё за меня, коротко поясняя шаги. Ничего с устройства не
удаляй.
1. Убедись, что установлены Homebrew и libusb (`brew install libusb`) и есть
Python 3.
2. Склонируй открытый репозиторий с проверенным кодом доступа к HiDock:
`git clone https://github.com/sgeraldes/hidock-next` в текущую папку. В нём есть
`apps/desktop/src/hidock_device.py` (класс HiDockJensen) и
`apps/desktop/src/constants.py` (USB-идентификаторы устройств).
3. Создай Python-виртуальное окружение и установи в него `pyusb`.
4. Напиши скрипт `sync.py`, который:
- Сам находит подключённый HiDock на USB по вендор-ID (0x10D6 и 0x3887) и
product-ID из constants.py — не хардкодь одну модель.
- Подключается через HiDockJensen (libusb-backend, указывающий на dylib libusb
из Homebrew), получает список записей и для каждой ещё не обработанной:
- скачивает байты через stream_file. Файлы устройства `.hda` — это на самом
деле MP3: сохраняй их как `.mp3` без конвертации;
- отправляет аудио в AssemblyAI: POST /v2/upload (сырые байты) → POST
/v2/transcript с {"speaker_labels": true, "language_detection": true} →
опрашивай GET /v2/transcript/{id} пока status не станет completed.
(language_detection обязателен — без него неанглийское аудио может вернуться
пустым. Не отправляй language_code вместе с language_detection.)
- записывает Markdown-файл: короткий фронтматтер (title/date/duration/language)
и транскрипт блоками `### Speaker X · mm:ss`;
- отмечает готовую запись в маленьком файле-журнале (леджере), чтобы никогда
не обрабатывать её повторно.
- Печатает компактный отчёт (сколько новых / готово / ошибок).
- Читает ключ AssemblyAI из переменной окружения ASSEMBLYAI_API_KEY.
5. Запусти его, подставив мой ключ: ASSEMBLYAI_API_KEY=ВСТАВЬТЕ-СЮДА-СВОЙ-КЛЮЧ
6. Если устройство не найдено или видишь «health check failed» — попроси меня
вынуть и снова вставить HiDock, затем повтори. На macOS для USB-команд может
понадобиться запуск без песочницы.
Когда закончишь, скажи, в какой папке лежат текстовые расшифровки.Если что-то пошло не так
«Устройство не найдено» / «health check failed»
Вынь кабель, вставь снова, подожди пару секунд и попроси «попробуй ещё раз». USB капризничает при первом обращении — со второй попытки обычно работает.
Claude Code говорит про «песочницу» (sandbox)
Разреши ему выполнить команду без песочницы — под ней доступ к USB заблокирован.
Расшифровка пустая / «no spoken audio»
В записи почти нет речи (тихо/пусто). Это не ошибка — просто нечего расшифровывать.
Просит поставить Homebrew или ключ
Homebrew — бесплатный установщик, можно разрешить. Ключ AssemblyAI — из блока «Что понадобится».
Под капотом. Скрипт читает записи с диктофона по USB (протокол Jensen, библиотека libusb — без прав администратора), сохраняет аудио и отправляет его на распознавание речи, а результат складывает в текстовые файлы. Всё локально на твоём компьютере, кроме самой расшифровки — она идёт через сервис AssemblyAI.
H/W_02Голосовой ассистент на Cardputer ADVНастроить Claude Code, чтобы он писал прошивку и не переизобретал грабли.[ ОТКРЫТЬ ]
Голосовой ассистент на Cardputer ADV. Короткая инструкция: что положить в проект, чтобы AI-агент не переизобретал грабли, на которые ты уже наступил.
В чём вообще проблема
Claude Code сам правит файлы в твоём проекте. Для обычного кода он хорош: написал, запустил, увидел ошибку, поправил. С прошивкой так не работает — агент видит только исходники и то, что печатает консоль. Он не видит устройство: не знает, что микрофон записывает тишину, что карта отвалилась, что клавиатура мертва. Для него всё в порядке: код собрался.
И это главная ловушка. Три самых частых бага на Cardputer ADV — молчащий микрофон, капризная SD-карта и просадка питания — компиляцию проходят молча. Агент отрапортует «готово», а устройство не работает. Поэтому настройка сводится к одному: всё, что нельзя проверить сборкой, надо заранее положить агенту в голову.
И это главная ловушка. Три самых частых бага на Cardputer ADV — молчащий микрофон, капризная SD-карта и просадка питания — компиляцию проходят молча. Агент отрапортует «готово», а устройство не работает. Поэтому настройка сводится к одному: всё, что нельзя проверить сборкой, надо заранее положить агенту в голову.
Четыре инструмента и когда какой
CLAUDE.md — памятка на стене
Агент читает её каждый раз, когда ты запускаешь сессию. Сюда идёт то, что нужно всегда: как собирать проект и какие правила нельзя нарушать никогда.
.claude/rules/ — справочники на полке
Каждый файл можно привязать к определённым файлам проекта. Открыл агент код аудио — подтянулся справочник по аудио. Так держишь под рукой 30 страниц матчасти, не забивая ими каждую сессию.
.claude/skills/ — готовые команды
Описываешь процедуру в файле один раз, а потом просто набираешь её название через слэш — и Claude делает всё по инструкции. Файл .claude/skills/flash/SKILL.md даёт команду /flash. Название любое, хоть по-русски.
.claude/settings.json — предохранитель
Маленькие скрипты (хуки), которые запускаются автоматически и могут запретить агенту действие.
Памятка — это просьба: агент ей обычно следует, но не всегда (чем длиннее сессия, тем сильнее ранние инструкции вытесняются свежими). Предохранитель — это запрет, он срабатывает всегда. Правило: если нарушение стоит дорого — делай хук, а не абзац текста.
Шаг 1 · памятка (CLAUDE.md)
Держи её короткой — до 200 строк. Чем длиннее файл, тем хуже агент ему следует. Проверка для каждой строки: «если убрать — он ошибётся?» Если нет — убирай. Сам большой справочник в памятку не копируем: он лежит отдельно в docs/, а памятка просто говорит, где искать.
CLAUDE.md
# Cardputer ADV — прошивка «cli ai audio» ## Команды - Сборка: `~/.platformio/penv/bin/pio run` - Прошивка: только через /flash - Проверка на устройстве: /check — обязательна перед «готово» ## Чего нельзя делать никогда 1. Ставить флаг -DBOARD_HAS_PSRAM. У этого чипа PSRAM физически нет. 2. Включать микрофон, не выключив динамик. Они делят одни провода. Строго: Speaker.end() → Mic.begin() → запись → Mic.end() → Speaker.begin() 3. Вызывать SD.begin() раньше SPI.begin(40,39,14,12). 4. Держать Wi-Fi включённым во время записи. На батарее это роняет карту. 5. Понижать версии библиотек: M5Cardputer 1.1.0+, M5Unified 0.2.9+, M5GFX 0.2.10+. Ниже — устройство не заведётся, причём молча, без ошибки. 6. Переходить на pioarduino / Arduino 3.x. Там сломан захват звука. ## Что значит «готово» Собралось — это не готово. Готово — это когда прошли /check на живом устройстве, включая проверку на батарее (не на USB). ## Матчасть Подробности в docs/CARDPUTER-ADV-FIRMWARE.md. Перед правками аудио, карты памяти, питания или клавиатуры открой соответствующий раздел этого файла целиком, а не полагайся на общие знания об ESP32.
Шаг 2 · справочники по темам (.claude/rules/)
Каждый файл начинается с блока
paths: — список файлов проекта, при работе с которыми справочник подгрузится. Так же делаешь pins.md (распиновка), storage.md (карта памяти), toolchain.md (сборка, привязать к platformio.ini)..claude/rules/audio.md
--- paths: - "src/audio/**" --- # Аудио на Cardputer ADV Микрофон и динамик — это один чип ES8311, и они делят одни и те же провода. Работать одновременно не могут. Отсюда строгий порядок вызовов (см. памятку, пункт 2). Побочный эффект: пикнуть во время записи нельзя. Пишем 16 кГц моно. Не 44100: файл получается почти в три раза меньше, меньше нагрузка на карту и на Wi-Fi, ниже пиковый ток. Качество не страдает — распознавание речи всё равно приводит звук к 16 кГц. Если запись слишком тихая — поднимать усиление микрофона (регистр 0x16, значения 0x03–0x05) уже ПОСЛЕ вызова Mic.begin(). Не крутить magnification: это программное усиление, оно поднимает шум вместе с голосом.
Главное правило для распиновки: истина лежит в исходниках библиотек M5, а не в туториалах. Инструкции для обычного Cardputer для ADV частично врут — у него другой звук и другая клавиатура при тех же номерах ножек.
Шаг 3 · готовые команды (.claude/skills/)
Самая нужная — прошивка. После каждой прошивки USB-порт устройства пропадает на несколько секунд — это нормально, так устроен чип. Но агент этого не знает: видит ошибку и начинает «чинить» рабочий код. Строчка
disable-model-invocation: true означает «запускает только человек» — прошивка зависит от положения выключателя и кабеля, а этого агент не видит..claude/skills/flash/SKILL.md
--- description: Собрать и прошить Cardputer ADV disable-model-invocation: true --- PIO=~/.platformio/penv/bin/pio PORT=/dev/cu.usbmodem2101 1. Собери: `$PIO run` 2. Дождись порта — он пропадает после ребута, это норма, не ошибка: `for i in $(seq 1 12); do [ -e $PORT ] && break; sleep 1; done` 3. Залей: `$PIO run -t upload --upload-port $PORT` 4. Снова дождись порта тем же циклом. 5. НЕ запускай `pio device monitor` — он зависает. Читай лог отдельным скриптом с таймаутом. 6. Скажи, что прошилось и что написано в первых строках лога. Если устройство не отвечает: выключатель OFF → зажать кнопку G0 → воткнуть USB → отпустить. Это делает человек — попроси и жди.
Вторая команда —
/check. Прошил устройство, набрал /check — и Claude ведёт тебя по списку проверок. Именно этот список отличает «собралось» от «работает»..claude/skills/check/SKILL.md
--- description: Проверка новой сборки на живом устройстве disable-model-invocation: true --- Проверь по порядку. Пункты со значком 👤 может подтвердить только человек — останавливайся, спрашивай результат и жди ответа. Не додумывай и не отмечай их выполненными сам. 1. 👤 Прошилось, устройство загрузилось, на экране видна строка загрузки, паники нет. 2. 👤 Карта памяти определилась: тест записи проходит, свободное место показывает адекватную цифру. 3. 👤 Запись 10 секунд на 16 кГц: файл появился на карте, открывается, звук слышно. Отправка на сервер прошла целиком — в логе сервера должно быть «complete», а не «truncated». 4. 👤 То же самое на рабочей частоте записи, если она отличается. 5. 👤 Три записи подряд без перезагрузки — карта не отваливается. 6. 👤 Запись во время отправки предыдущего файла (если это уже реализовано) — следим за памятью, устройство не перезагружается. 7. 👤 ВСЁ ТО ЖЕ САМОЕ на батарее, а не на USB. Это главный пункт: на USB проблемы с питанием не проявляются. Не пропускать и не предлагать пропустить. 8. 👤 Если на карте лежат другие прошивки — они по-прежнему грузятся. Перед экспериментами с картой напомни сделать резервную копию файла настроек. Если хоть один пункт не прошёл — задача не закрыта. Не пиши «готово», опиши, что именно сломалось, и предложи гипотезу.
Самый ценный тут пункт 7. На батарее микрофон, карта и Wi-Fi одновременно тянут ток, питание проседает, первой отваливается карта — и файловая система бьётся. На USB ты этого не увидишь ни разу.
Шаг 4 · предохранители (хуки)
Простым языком: собирать проект можно свободно, прошивать — только спросив, а форматировать диски и сносить папки нельзя вообще. Последнее не паранойя: агент, разбирающийся со сбойной картой, вполне логично предложит её отформатировать. А там лежат твои данные.
.claude/settings.json
{
"permissions": {
"allow": ["Bash(~/.platformio/penv/bin/pio run*)"],
"ask": ["Bash(~/.platformio/penv/bin/pio run -t upload*)"],
"deny": ["Bash(rm -rf *)", "Bash(diskutil eraseVolume*)"]
},
"hooks": {
"PreToolUse": [{
"matcher": "Edit|Write",
"hooks": [{ "type": "command", "command": ".claude/hooks/guard.sh" }]
}]
}
}Сам скрипт
.claude/hooks/guard.sh — десяток строк. Он читает, что агент собирается записать в файл, и если находит запрещённое — возвращает код 2, и правка не проходит. Не пугайся синтаксиса — попроси Claude Code написать этот скрипт за тебя, показав ему список запретов из памятки..claude/hooks/guard.sh
#!/usr/bin/env bash content=$(cat | jq -r '.tool_input.content // .tool_input.new_string // ""') if echo "$content" | grep -q 'BOARD_HAS_PSRAM'; then echo "Стоп: у этого чипа нет PSRAM, флаг всё ломает." >&2 exit 2 fi if echo "$content" | grep -qE 'M5Cardputer\s*@\s*1\.0'; then echo "Стоп: старая версия библиотеки — клавиатура работать не будет." >&2 exit 2 fi exit 0
Как выглядит работа
обсудили план → агент правит код → сборка → /flash → /check → записали новое знание в справочник
01
Сначала план, потом код
Особенно в аудио, карте памяти и питании. Там «давай попробуем и посмотрим» стоит битой файловой системы и часа восстановления.
02
Одна правка за заход
Не меняй частоту записи и логику Wi-Fi одновременно — если сломается, не поймёшь, из-за чего.
03
Проверка на батарее обязательна
На USB всё зелёное, проблемы вылезают именно на аккумуляторе. Агент честно предложит этот пункт пропустить как долгий. Не соглашайся.
04
Новое знание — в файл, а не в чат
Выяснил что-то про своё железо — допиши строку в справочник. Иначе через две сессии это забудется.
Чего агент не должен решать сам
Впиши этот список в памятку отдельным разделом:
- менять версии библиотек или платформу сборки;
- менять частоту и формат записи;
- форматировать карту памяти;
- убирать «лишние» вызовы вроде
Speaker.end()— они выглядят избыточно, но это как раз то, без чего микрофон молчит.
Частые ошибки настройки
Скопировать весь справочник в CLAUDE.md
Тридцать килобайт в каждой сессии, и агент начинает хуже слушаться. Справочник — в docs/, ссылки — в правилах.
Написать инвариант только текстом
Работает в большинстве случаев, но не во всех. Дорогие запреты — в хуки.
Считать сборку готовностью
Уже говорили, но это стоит повторить: все главные баги этого устройства компиляцию проходят.
Один длинный сеанс на весь рефакторинг
Контекст переполняется, ранние инструкции вытесняются. Лучше короткие сессии — правила и памятка подгрузятся заново.
С чего начать · 15 минут
mkdir -p .claude/{rules,skills,hooks} docs
cp CARDPUTER-ADV-FIRMWARE.md docs/
claudeДальше внутри сессии:
/init— Claude сам просмотрит проект и набросает черновик CLAUDE.md. Замени его содержимое разделом «Шаг 1» отсюда.- Попроси: «прочитай docs/CARDPUTER-ADV-FIRMWARE.md и разнеси матчасть по файлам в .claude/rules — отдельно распиновка, аудио, карта памяти, сборка; каждому пропиши paths».
- Попроси написать команды /flash и /check и хук guard.sh по описанию выше.
Проверка, что всё работает: попроси Claude добавить -DBOARD_HAS_PSRAM в platformio.ini. Если настроено правильно — он не сможет, хук заблокирует правку.