[Перевод] Claude Code unbiased
Как-то я спросил Claude Code, какую CMS он посоветует. Хотел посмотреть, куда его клонит. Он ответил: Drupal. Да ну нафиг. Я спросил почему, и он объяснил, что увидел мой самописный скилл для Drupal и решил, что я работаю с Drupal и мне с ним будет удобно.
Справедливо. Мои инструкции, скиллы и настройки делают агента предвзятым. А для этого вопроса мне нужен был непредвзятый. Хватило бы и обычного чат-бота, но мы же не ищем лёгких путей? 😁
Я стал искать, как запустить Claude Code без своего конфига, и нашёл флаг --safe-mode. По описанию — то что надо: никаких CLAUDE.md, скиллов, плагинов, хуков и MCP-серверов, а подписка моя, как обычно. Чистый дефолтный Claude Code ✨
Я спросил ещё раз. Снова Drupal.
(╯°□°)╯︵ ┻━┻
На этот раз путь был таким: мой email в контексте агента → домен amazee.io → компания, известная Drupal-хостингом → пользователь работает в Drupal-ориентированной компании.
Вот тебе и чистый Claude Code.
/ccu: Claude Code, Unbiased by me
Так появился /ccu — скилл, который запускает промпт в чистом инстансе Claude Code.
Можно было бы сделать shell-команду, которая открывает полноценную непредвзятую сессию Claude Code. Но работать в таком формате мне обычно не нужно, нужна только быстрая проверка время от времени. Поэтому это скилл: мой обычный агент пишет промпт, копирует нужные для задачи файлы в пустую папку, запускает там чистый инстанс и приносит его ответ.
Использую я его по-разному. Один из вариантов — персоны-ревьюеры моего блога, например редактор или коллега.
Что чистый инстанс знает обо мне? Ничего. Из коробки он видит только ОС, шелл, путь во временной папке и сегодняшнюю дату.
Как изолирован инстанс
Каждый запуск получает свежую временную директорию с двумя папками: work — рабочая директория инстанса с файлами задачи, и home — пустая домашняя директория. Дальше, примерно так:
cd <run dir>/work
env -i HOME=<run dir>/home PATH=$PATH CLAUDE_CODE_OAUTH_TOKEN=<token> \
claude -p --model <model> < prompt
env -i стартует с пустым окружением, так что из моего шелла ничего не утекает. Домашняя директория пустая: ни конфига, ни скиллов, ни памяти, ни истории. Токен тот же, что у моей текущей сессии, /ccu берёт его из macOS Keychain. Подписка та же, а email нет: профиль аккаунта Claude Code хранит в .claude.json, который пишется при логине, а тут home чистый.
Права нужно выдать заранее
claude -p отклоняет любой инструмент, которому нужно подтверждение: подтверждать некому. Поэтому основной агент перечисляет нужные задаче инструменты в work/.claude/settings.json, например, для веб-задачи:
{"permissions": {"allow": ["WebFetch", "WebSearch", "Bash(curl:*)"]}}
В папке, которой Claude Code не доверяет, эти настройки игнорируются, поэтому /ccu ещё и помечает work как доверенную в .claude.json внутри home:
{"projects": {"<run dir>/work": {"hasTrustDialogAccepted": true}}}
Транскрипт остаётся мне
После запуска /ccu превращает сырой лог сессии в читаемый transcript.md. Основной агент передаёт ответ инстанса, но транскрипт никогда не читает. Я могу прочитать его сам, когда захочу.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.