Вкус (taste)
Вкус (taste) работает на нашей мета-нейро-символической ИИ-модели taste-1 с непрерывным обучением с подкреплением (RL). Мы соединяем рассуждение с нейронной интуицией, чтобы построить невидимую архитектуру ваших решений, структур, паттернов и предпочтений в инструментах.

- Непрерывное обучение: обучающаяся сторона изучает фактуру вашего кода (явная и неявная обратная связь).
- Мета-нейро-символическая ИИ-модель
taste-1обеспечивает невидимую логику ваших решений. - Рефлексивная инженерия контекста (reflective context engineering) — самосознающий цикл обратной связи RL для построения навыков.
✓ В 10 раз быстрее писать код, в 2 раза быстрее проходить код-ревью, в 5 раз меньше багов.
Вкус: следующая граница в ИИ-разработке

taste-1
Модель taste-1 — ядро вкуса. Чтобы построить ваш профиль, она делает три вещи.
- Изучает вас. Каждое принятое, отклонённое и изменённое изменение становится сигналом.
- Думает как вы. Она подхватывает паттерны и микрорешения, которые вы никогда не записали бы.
- Растёт вместе с вами. Цикл обучения продолжает работать, поэтому профиль не устаревает.
Большинство помощников в программировании опираются на общие лучшие практики. Вкус строит модель того, как ваша команда ревьюит код, какого стиля вы держитесь и какие архитектурные решения принимаете. Он наблюдает за тем, как вы пишете, ревьюите и мержите, и превращает это в априорное представление о ваших решениях — в ваш вкус в коде.
Зачем нужны LLM, если есть модель вкуса
taste-1 — не LLM. Она не генерирует текст и не отвечает на промпты. Это мета-нейро-символическая модель, которая классифицирует извлечённые уроки вкуса. Дайте ей сигнал — принятие, отклонение, правку или корректирующий дифф — и она решит, является ли сигнал настоящим предпочтением, к какой категории он относится (cli, typescript, architecture и так далее) и какова уверенность в этом уроке.
Поэтому её выход имеет форму классификатора. Она решает, а не пишет. То, что порождает это решение, — не простой классификатор. Это мета-нейро-символическая архитектура, и она делает то, чего большая языковая модель не может.
Что здесь значит «мета-нейро-символическая»
У taste-1 сильная нейро-символическая архитектура. Две половины проверяют друг друга, а цикл сверху учится тому, как их взвешивать.
- Нейронная. Обученная половина архитектуры читает сигналы, извлечённые LLM, и формирует интуицию о том, что вы предпочитаете. Это та половина, которая подхватывает паттерны, которых вы бы никогда не записали: где вы разбиваете функцию, к каким абстракциям тянетесь и что отвергаете с первого взгляда.
- Символическая. Слой правил держит структуру профиля вкуса. Он знает, к каким категориям может относиться урок, как оценивать уверенность, как уроки связаны между собой и что считается противоречием. Когда новое предпочтение конфликтует с уже установленным, этот слой фиксирует конфликт, а не позволяет новому затереть старое.
- Мета. Непрерывный цикл обучения. Каждое принятие, отклонение и правка — это обратная связь по прежним решениям, поэтому
taste-1переоценивает старые уроки наравне с классификацией новых. Уверенность растёт, когда предпочтение повторяется, и падает, когда вы ему противоречите. По мере роста профиля цикл переорганизует уроки по категориям.
Нейронная часть — для интуиции. Символическая — для согласованности. Мета — для коррекции со временем. Ни одна из трёх не генерирует текст.
Сделайте ту же работу с помощью LLM — и она обойдётся примерно в 100 раз дороже, пойдёт примерно в 8 раз медленнее и будет выдумывать предпочтения. Поэтому нейро-символическая архитектура здесь выигрывает.
Почему не дать решать LLM
Многие инструменты просят LLM прочитать ваши диффы и записать предпочтения. LLM обучена порождать текст, который понравится человеку, а не решение, с которым может работать программа. Ломается четыре вещи.
Она заполняет пробелы. Спросите LLM «что предпочитает этот разработчик?» — и она ответит независимо от того, подтверждают ли диффы ответ. Там, где доказательств мало, она тянется к тому, что разработчики обычно предпочитают. В профиле вкуса это баг, потому что выдуманное предпочтение начинает навязываться на каждом следующем ходу.
Она не держится на месте. Спросите одну и ту же LLM дважды — получите два разных профиля. TypeSafe прогнала рубрику из 14 вопросов по одной страховой претензии 15 раз и обнаружила, что ответы LLM менялись от запуска к запуску, в том числе при temperature 0, а модели расходились с собой в оценочных суждениях. Вкус состоит из одних оценочных суждений. Профиль, который меняется на каждом запуске, — не ваш профиль.
Её уверенность — это число, которое она сама написала. Попросите LLM дать оценку уверенности — она её даст, в стиле вероятности. Ничто не обучало её так, чтобы это число соответствовало тому, как часто она права. Модели, обученные на обратной связи людей, переуверены по построению, потому что оценщики вознаграждают уверенный тон.
Она начинает заново. У LLM нет памяти о её прежних решениях. Каждый проход начинается с чистого листа, поэтому она заново выучивает то, что уже записала, и не отличает новое противоречие от старого.
taste-1 построена наоборот. Она читает естественный язык так же, как LLM, но возвращает решения и вероятности, а не текст.
| LLM, судящая о вкусе | taste-1 |
|---|---|
| Выдумывает предпочтение, когда доказательств мало | Возвращает низкую уверенность или вовсе не возвращает урок. Её ответы берутся из фиксированного набора, поэтому она не может написать предпочтение, которого нет во входных данных |
| Разный ответ на каждом запуске | Тот же вход — то же решение. Она оценивает, а не сэмплирует |
| Уверенность — это число, которое она написала | Уверенность — калиброванная оценка. Более высокая уверенность значит, что урок чаще оказывается верным, а мета-цикл корректирует её по последующим свидетельствам |
| Может придумывать новые категории на лету | Символический слой фиксирует набор категорий, из которых можно выбирать |
| Начинает каждый проход с чистого листа | Переносит прежние решения вперёд и переоценивает их |
Может ли taste-1 всё равно ошибаться? Да. Разница в том, что её уверенность калибрована. Вкус применяет урок с высокой уверенностью, держит урок с низкой уверенностью как подсказку и фиксирует конфликтующий сигнал, а не применяет его. Ничего из этого не работает, когда число уверенности выдумано.
В этом и смысл поставить модель решений в середину. LLM работают со словами. Ни одна из них не решает, что вы предпочитаете.
Полный конвейер состоит из четырёх шагов, и LLM стоят на двух из них:
┌──────────────────────────────────────────┐
│ You, coding in Command Code │
│ prompts · accepts · rejects · edits │
│ correction diffs from your commits │
└────────────────────┬─────────────────────┘
│ raw, unstructured
▼
┌─────────────────────────────────────────────────────────────┐
│ 1. INPUT · LLM (yours to pick) │
│ reads the text and diffs │
│ turns them into structured signals │
│ "this edit changed X into Y because …" │
└────────────────────┬────────────────────────────────────────┘
│ structured signals
▼
╔═════════════════════════════════════════════════════════════╗
║ 2. LEARN · taste-1 (meta neuro-symbolic, not an LLM) ║
║ classifies each signal: ║
║ real preference or noise? ║
║ which category? (cli · typescript · architecture …) ║
║ how confident? (0 → 1) ║
║ generates no text ║
╚════════════════════╤════════════════════════════════════════╝
│ typed learnings + confidence
▼
┌─────────────────────────────────────────────────────────────┐
│ 3. OUTPUT · LLM (yours to pick) │
│ writes the learnings as readable markdown │
│ merges them with what is already known │
└────────────────────┬────────────────────────────────────────┘
│ markdown
▼
┌──────────────────────────────────────────┐
│ 4. STORE · the CLI │
│ .commandcode/taste/**/taste.md │
│ read back into every later turn │
└──────────────────────────────────────────┘
LLM steps swap them in /config, Feature models
taste-1 the decision step. Not a text model, not swappable| Шаг | Кто делает | Что делает |
|---|---|---|
| 1. Вход | LLM на ваш выбор | Читает ваши промпты, правки и корректирующие диффы и превращает их в структурированные сигналы |
| 2. Обучение | taste-1 | Классифицирует символическое пространство сигналов в уроки вкуса с категорией и уверенностью |
| 3. Выход | LLM на ваш выбор | Пишет уроки как читаемый и редактируемый markdown |
| 4. Хранение | CLI | Сохраняет результат в taste.md в проекте, глобальном профиле или удалённых пакетах |
Шаги с LLM вы настраиваете сами
Шаги 1 и 3 — обычная работа с текстом, поэтому модель для них выбираете вы. Откройте /config, перейдите в Feature models и задайте модель для каждой строки.
| Строка | Что управляет | Ключ конфигурации |
|---|---|---|
| Taste learning | Модель, которая обслуживает вход и выход taste-1 во время сессии. По умолчанию — модель, с которой вы пишете код | featureModels.tasteLearning |
/learn-taste | Модель, которая используется, когда вы загружаете вкус из существующих репозиториев или из сессий других агентов | featureModels.tasteOnboarding |
Оба ключа живут в ~/.commandcode/config.json и описаны на странице настроек. Подключите свой ключ через провайдера BYOK, и шаги с LLM тоже будут работать на этом провайдере.
Посмотрите на трафик — и увидите вызовы LLM на выбранной вами модели. Это шаги 1 и 3. Страница Usage в Studio перечисляет их под меткой taste-1. Сама taste-1 — это шаг в середине, и она не текстовая модель, так что менять её не на что.
Сколько стоит вкус
taste-1 работает по вводной цене. Каждый тариф включает её без доплаты и с щедрыми лимитами. Для нас её работа не бесплатна. Command Code пока берёт эти расходы на себя. Выключите обучение вкуса — и ничего не выполняется.
Единственное, что вы платите за вкус, — работу LLM на шагах 1 и 3: модели, которая превращает ваш ввод в сигналы, и модели, которая пишет уроки текстом. Эти вызовы тарифицируются как любой другой запрос на выбранной в Feature models модели или на вашем собственном провайдере, если вы используете BYOK.
| Часть | Стоимость |
|---|---|
taste-1 (шаг 2, мета-нейро-символическая модель) | Входит в каждый тариф без доплаты, в пределах щедрых лимитов (вводная цена) |
| Обработка входа LLM (шаг 1) | Обычное использование на выбранной вами модели |
| Обработка выхода LLM (шаг 3) | Обычное использование на выбранной вами модели |
| Хранение (шаг 4) | Локальные файлы, тарифицировать нечего |
Модель решений не платит за генерацию токенов по одному. taste-1 выполняет фиксированный объём работы на каждый сигнал, поэтому её дёшево обслуживать. Это то же свойство, из-за которого она не является LLM.
Другие модели такого рода
Модели решений, отказавшиеся от генерации текста, — отдельный класс, и taste-1 в нём не единственная. Jev от TypeSafe AI, первый из того, что они называют System One Models, — самый ясный публичный пример. Их документация проводит границу чётко. LLM производит слова для людей. Модель System One производит типизированные решения для программ. Отправьте Jev состояние и набор типизированных вопросов — и получите выбранный вариант, вероятность для каждого варианта и уверенность. Она никогда не генерирует строку, поэтому у неё не бывает ошибки типа и она не выдумывает ответ.
Jev обходит передовые LLM на их бенчмарках решений на два порядка по стоимости и скорости. TypeSafe всё равно называет её неподходящим инструментом для чата, генерации кода или письменных объяснений. Все, кто строит на Jev, сочетают её с LLM везде, где на выходе должны быть проза или код.
Вкус использует то же разделение. LLM работают с текстом на обоих концах, а taste-1 — с решением в середине. Вызовы LLM в трафике — это дизайн, а не противоречие ему.
Примечание
Вкус намеренно хранится в обычном markdown. Вы можете читать его, редактировать, проверять линтером через npx taste lint и делиться им через npx taste push. См. Пакеты вкуса.
С чего начать
Установите Command Code
После установки просто начните писать код. Обучение вкуса работает в фоне и строит ваш профиль из каждого взаимодействия.
Совместное использование и переносимость вкуса
Вкус создан, чтобы переезжать. Ваши изученные предпочтения не привязаны к одному проекту. Вы можете использовать их во всех своих проектах, делиться ими с командой и объединять профили под то, как вы работаете. Command Code Studio показывает всё это и управляет им.
Настройки
Обучение вкуса работает в фоне и учится на ваших взаимодействиях. Включить или выключить его можно для проекта или для пользовательской учётной записи — из панели /taste внутри Command Code.
Изменение настроек из /taste
Запустите /taste, чтобы открыть панель Taste Settings. В ней две строки.
- This project пишет
.commandcode/settings.json, который коммитится и доступен вашей команде. - User пишет
~/.commandcode/config.json, который действует на все ваши проекты.
Где задаётся вкус
Command Code проверяет эти файлы в порядке приоритета, чтобы решить, включено ли обучение вкуса.
| Приоритет | Где задано | На что влияет | Делится с командой? |
|---|---|---|---|
| 1 | .commandcode/settings.local.json | только локальная настройка | Нет, личное, не коммитится |
| 2 | .commandcode/settings.json | этот проект | Да, коммитится |
| 3 | ~/.commandcode/config.json (строка User) | все ваши проекты | - |
| 4 | (не задано) | - | включено по умолчанию |
Самый быстрый способ включить или выключить обучение вкуса — CLI.
cmd taste disable # off for the current project (default)
cmd taste enable # back on for the current project
cmd taste disable --user # off at the user level (all your projects)Включение и выключение по умолчанию применяются к текущему проекту. Настройка проекта имеет приоритет над вашей настройкой пользователя, поэтому именно она выключает обучение там, где вы работаете. Передайте --user, чтобы изменить пользовательское значение по умолчанию для всех проектов.
Переключить это можно и через /taste внутри сессии или задать вручную. Чтобы выключить обучение вкуса для проекта, добавьте в .commandcode/settings.local.json:
{
"tasteLearning": false
}Переопределение в .commandcode/settings.local.json имеет приоритет над настройкой уровня проекта.
Управление вкусом
Профили вкуса отправляются и забираются как репозитории Git. CLI npx taste забирает, отправляет, перечисляет и объединяет пакеты вкуса, а Command Code Studio их показывает.
С его помощью вы отправляете изученные предпочтения в Studio, забираете вкус у коллег или сообщества и объединяете профили под то, как вы работаете.
Отправьте вкус в Studio. Вы можете отправить свой вкус в Command Code Studio и поделиться им с командой.
bashnpx taste push --allЗаберите вкус из Studio. Вы можете забрать профиль вкуса из Command Code Studio в разные свои проекты.
bashnpx taste pullПеречислите все профили вкуса. Вы можете перечислить все профили вкуса, доступные в Command Code Studio.
bashnpx taste listОткройте конкретный профиль вкуса. Вы можете открыть конкретный профиль вкуса в Command Code Studio.
bashnpx taste open <package>
Первая команда отправляет весь вкус проекта в commandcode.ai/username/taste. Вторая забирает вкус из удалённого профиля в ваш локальный проект.
npx taste push --allnpx taste pull username/project-nameПакеты вкуса
Пакет вкуса — это набор уроков, упорядоченных по категориям: cli, typescript, architecture и так далее. Каждый пакет содержит файл taste.md с предпочтениями и паттернами, которые выучил Command Code.
Пакеты бывают трёх видов.
Проектный
Command Code учит проектные пакеты сам и хранит их в вашем проекте.
- Путь:
.commandcode/taste/ - Сценарий использования: уроки, уникальные для этой кодовой базы
Глобальный
Ваши личные пакеты, доступные каждому проекту на вашей машине. Используйте флаг -g, чтобы отправить или забрать их.
- Путь:
~/.commandcode/taste/ - Сценарий использования: ваш личный вкус, который следует за вами по всем проектам
Удалённый
Пакеты, хранящиеся под вашим профилем на commandcode.ai.
- Путь:
commandcode.ai/username/taste - Сценарий использования: обмен с командой, резервная копия, синхронизация между машинами, публичные пакеты
Примечание
По умолчанию npx taste push и npx taste pull работают с вашими удалёнными пакетами.
Структура файлов
Проектные и глобальные пакеты устроены так.
Проектные пакеты:
your-project/
└── .commandcode/
└── taste/
├── taste.md # Main taste file
├── cli/
│ └── taste.md # CLI-specific learnings
├── typescript/
│ └── taste.md # TypeScript preferences
└── architecture/
└── taste.md # Architecture patternsГлобальные пакеты:
~/.commandcode/
└── taste/
├── cli/
│ └── taste.md
├── react/
│ └── taste.md
└── testing/
└── taste.mdВкус проекта и отдельные пакеты
Вы можете отправлять или забирать весь вкус проекта или по одному пакету за раз.
Вкус проекта (push --all)
С push --all Command Code отправляет весь вкус вашего проекта как единое целое.
npx taste push --all- Собирает все пакеты вашего проекта вместе.
- Берёт имя проекта из текущего каталога.
- Отправляет в удалённый профиль под вашим пространством имён.
Отдельный пакет (push <package>)
Когда вы называете пакет, загружается только он.
npx taste push cli
npx taste push myorg/cli- Отправляет по одному пакету за раз.
- Пространство имён — личное или организации — выбираете вы.
- Используйте, чтобы поделиться одним набором уроков без остальных.
Справочник команд
Справочник по каждой команде npx taste для проектных, глобальных и удалённых пакетов.
| Команда | Описание |
|---|---|
npx taste enable | Включить обучение вкуса (сохранять предпочтения между сессиями) |
npx taste disable | Выключить обучение вкуса (перестать сохранять предпочтения) |
npx taste push | Отправить проектный или отдельный пакет в удалённый профиль или в глобальные |
npx taste pull | Забрать пакеты из удалённого профиля или из глобальных |
npx taste list | Перечислить все доступные пакеты |
npx taste lint | Проверить формат и структуру пакета |
npx taste open | Открыть пакеты в вашем редакторе по умолчанию |
Примечание
npx taste и cmd taste — одна и та же команда. cmd taste требует глобальной установки (npm i -g command-code), поэтому мы рекомендуем npx taste.
taste enable / disable
Включают или выключают обучение вкуса, не открывая сессию. Оба пишут ту же настройку, которую читают оверлей /taste и живой обучатель, поэтому изменение вступает в силу на следующем ходу.
Базовое использование:
npx taste enable # on for the current project (default)
npx taste disable # off for the current projectОпции:
| Опция | Описание |
|---|---|
-u, --user | Применить на уровне пользователя (все ваши проекты) вместо текущего проекта |
По умолчанию изменение применяется к текущему проекту. Настройка проекта имеет приоритет над вашей настройкой пользователя, поэтому именно она включает или выключает обучение вкуса там, где вы работаете. Передайте --user, чтобы изменить пользовательское значение по умолчанию для всех проектов. Когда обучение вкуса выключено, предпочтения, которые вы называете, остаются в текущей сессии и не сохраняются.
taste push
Отправляет пакеты вкуса из локального проекта в удалённый профиль или в глобальные.
Базовое использование:
npx taste push [package] [options]Опции:
| Опция | Короткая | Описание |
|---|---|---|
--all | Отправить весь вкус проекта (все пакеты вместе) | |
--global | -g | Отправить в глобальные (~/.commandcode/taste) |
--overwrite | Заменить цель без объединения | |
--public | Сделать пакет публично доступным для поиска (только для удалённых) |
Цели:
По умолчанию цель — удалённый профиль. Пакеты отправляются под ваш профиль на commandcode.ai/username/taste для обмена с командой, резервного копирования, синхронизации между машинами и публичных пакетов. Используйте -g, чтобы отправить пакеты в глобальные в ~/.commandcode/taste/ — для личного вкуса, который следует за вами по проектам.
Отправка в удалённый профиль:
# Push project taste
npx taste push --all
# Push individual package
npx taste push cli
npx taste push myorg/cliОтправка в глобальные:
npx taste push cli -gОтправить проект:
npx taste push --allСобирает все пакеты вкуса вашего проекта и загружает их в commandcode.ai/username/taste. После этого команда сможет забрать их через npx taste pull username/project-name.
Отправить отдельный пакет:
npx taste push cliПросит выбрать пространство имён — личное или организации — и загружает только пакет cli. Если вам доступна отправка в несколько аккаунтов, он спросит, в какой.
Отправка с пространством имён:
npx taste push myteam/cliЗагружает пакет cli прямо в пространство имён myteam, ничего не спрашивая.
Отправка публичного пакета:
npx taste push cli --publicЗагружает пакет и делает его доступным для поиска другим пользователям Command Code.
Перезапись:
npx taste push cli --overwriteЗаменяет удалённый пакет без объединения. По умолчанию отправка разумно объединяет уроки.
Поведение объединения:
По умолчанию taste push разумно вливает ваши локальные уроки в существующее содержимое удалённого профиля или глобальных пакетов.
- Новые уроки добавляются.
- Уроки, у которых изменилась уверенность, обновляются.
- Идентичные уроки остаются как есть.
Используйте --overwrite, чтобы пропустить объединение и заменить цель.
Вывод:
✓ Pushed project taste to commandcode.ai/aa/taste (3 packages, 15 learnings)Вывод по отдельному пакету:
✓ Pushed 'cli' to commandcode.ai/aa/taste (2 learnings added, 1 updated, 3 unchanged)taste pull
Забирает пакеты вкуса из удалённого профиля или из глобальных в ваш проект.
Базовое использование:
npx taste pull <namespace>/<package> [options]Опции:
| Опция | Короткая | Описание |
|---|---|---|
--global | -g | Забрать из глобальных (~/.commandcode/taste) |
--all | Забрать все пакеты (только глобальные) | |
--overwrite | Заменить локальный пакет без объединения |
Цели:
По умолчанию цель — удалённый профиль. Пакеты забираются из вашего профиля или чужого на commandcode.ai/username/taste — для вкуса от коллег, синхронизации между машинами и публичных пакетов. Используйте -g, чтобы забрать пакеты из глобальных в ~/.commandcode/taste/.
Получение из удалённого профиля:
# Pull project taste
npx taste pull ahmadawais/my-project
# Pull individual package
npx taste pull ahmadawais/cliПолучение из глобальных:
# Pull specific package
npx taste pull cli -g
# Pull all global packages
npx taste pull --all -gЗабрать проект:
npx taste pull teammate/awesome-projectСкачивает все пакеты вкуса из teammate/awesome-project в ваш локальный проект.
Забрать отдельный пакет:
npx taste pull ahmadawais/cliСкачивает только пакет cli из профиля ahmadawais.
Забрать из глобальных:
npx taste pull cli -gКопирует пакет cli из ~/.commandcode/taste/ в ваш текущий проект.
Забрать все глобальные:
npx taste pull --all -gКопирует все пакеты из глобальных в текущий проект.
Перезапись:
npx taste pull ahmadawais/cli --overwriteЗаменяет ваш локальный пакет cli удалённой версией.
Поведение объединения:
По умолчанию taste pull разумно вливает удалённые уроки в ваше локальное содержимое.
- Новые уроки из удалённого профиля добавляются локально.
- Уроки, у которых изменилась уверенность, обновляются.
- Идентичные уроки остаются как есть.
Используйте --overwrite, чтобы пропустить объединение и заменить локальное содержимое.
Вывод:
✓ Pulled 'cli' from saqib (1 learning added, 2 unchanged)
Saved to: .commandcode/taste/cli/taste.mdtaste list
Перечисляет все доступные пакеты вкуса.
Базовое использование:
npx taste list [options]Опции:
| Опция | Короткая | Описание |
|---|---|---|
--global | -g | Показать пакеты из глобальных (~/.commandcode/taste) |
--remote | Показать пакеты из вашего удалённого профиля на commandcode.ai |
Области:
По умолчанию taste list показывает пакеты в каталоге .commandcode/taste/ вашего проекта. Используйте -g, чтобы показать глобальные пакеты в ~/.commandcode/taste/, или --remote, чтобы показать пакеты под вашим профилем на commandcode.ai/username/taste.
Показать пакеты проекта:
npx taste listПоказать глобальные пакеты:
npx taste list -gПоказать удалённые пакеты:
npx taste list --remoteВывод:
Каждая строка показывает имя пакета, бейдж [public] для пакетов, которые могут найти другие, число звёзд и загрузок для публичных пакетов, количество уроков и когда пакет менялся последний раз.
Taste Packages
Stored locally in .commandcode/taste
cli (8 learnings, updated 2 hours ago)
typescript (5 learnings, updated 1 day ago)
architecture (12 learnings, updated just now)
Total: 3 packages, 25 learningsПример удалённого вывода:
Taste Packages
Stored on commandcode.ai/aa/taste
my-project (15 learnings, updated 1 hour ago)
cli [public] ★5 ↓12 (8 learnings, updated 2 days ago)
Total: 2 packages, 23 learningstaste lint
Проверяет формат и структуру файлов вкуса. Запускайте перед отправкой, чтобы поймать ошибки и предупреждения.
Базовое использование:
npx taste lint <package>Аргументы:
| Аргумент | Описание |
|---|---|
[package] | Имя пакета для проверки. Необязателен, если используется --all. |
Опции:
| Опция | Короткая | Описание |
|---|---|---|
--global | -g | Проверить пакеты из глобальных (~/.commandcode/taste) |
--all | Проверить все пакеты |
Проверить один пакет:
npx taste lint cliПроверяет пакет вкуса cli в вашем локальном проекте.
Проверить все локальные:
npx taste lint --allПроверяет все пакеты вкуса в каталоге .commandcode/taste вашего локального проекта.
Проверить глобальные:
npx taste lint cli -gПроверяет пакет cli в ваших глобальных пакетах.
Проверить все глобальные:
npx taste lint --all -gПроверяет все пакеты в ваших глобальных пакетах в ~/.commandcode/taste.
Вывод:
Вывод выглядит так.
Пример вывода (валидный):
taste.md
✓ File is valid
cli/taste.md
✓ File is valid
Summary: 0 errors, 0 warnings across 2 files
✓ All 2 taste files are validПример вывода (с ошибками):
cli/taste.md
✗ 2 errors found
Line 5: Invalid confidence value (must be between 0 and 1)
Line 12: Missing required header
Summary: 2 errors, 0 warnings across 1 file
✗ Validation failedЧто проверяется:
| Проверка | Описание |
|---|---|
| Структура markdown | Правильная иерархия заголовков и форматирование |
| Обязательные поля | Наличие обязательных метаданных и разделов |
| Значения уверенности | Значения должны быть между 0 и 1 |
| Формат заголовков | Правильный синтаксис и именование заголовков |
| Кодировка файла | Корректная кодировка UTF-8 |
Поведение:
- Проверяет основной
taste.mdи каждый файл категории. - Самостоятельно переносит заголовки в файлах старого формата.
- Ошибки нужно исправить до отправки.
- Предупреждения указывают на возможные проблемы, но ничего не блокируют.
taste open
Открывает пакет вкуса в вашем редакторе по умолчанию.
Базовое использование:
npx taste open <package>Аргументы:
| Аргумент | Описание |
|---|---|
<package> | Обязательно. Имя пакета, который нужно открыть. |
Опции:
| Опция | Короткая | Описание |
|---|---|---|
--global | -g | Открыть пакет из глобальных (~/.commandcode/taste) |
Примеры:
npx taste open cliОткрывает пакет вкуса cli из локального проекта в вашем редакторе по умолчанию.
npx taste open cli -gОткрывает пакет cli из ваших глобальных пакетов в ~/.commandcode/taste.
Вывод:
✓ Opened 'cli' taste package from projectНастройка редактора:
Команда использует системный редактор по умолчанию, заданный переменной окружения $EDITOR. Если она не настроена, вы увидите инструкции:
# VS Code
echo 'export EDITOR="code"' >> ~/.zshrc
# Vim
echo 'export EDITOR="vim"' >> ~/.zshrc
# Nano
echo 'export EDITOR="nano"' >> ~/.zshrc
# Sublime Text
echo 'export EDITOR="subl"' >> ~/.zshrcПосле добавления экспорта перезапустите терминал или выполните source ~/.zshrc.
Поведение:
- Открывает файл вкуса в редакторе по умолчанию.
- Для файлов категорий: открывает на строке 1.
- Для основных файлов
taste.md: ищет заголовок категории и открывает на этой строке. - Автоматически переходит в нужное место файла.
Совет
После правки файла вкуса выполните npx taste lint, чтобы проверить изменения перед отправкой.
Частые сценарии
Поделиться вкусом проекта с командой
Отправьте вкус проекта. Отправьте все уроки вашего проекта в удалённый профиль.
bashnpx taste push --allКоллеги забирают. Остальные могут забрать вкус проекта к себе.
bashnpx taste pull username/project-name
Использовать вкус в разных проектах (через глобальные)
Отправьте в глобальные. Сохраните пакет в глобальные, чтобы использовать его в любом проекте.
bashnpx taste push cli -gЗаберите в другом проекте. В другом проекте заберите пакет из глобальных.
bashnpx taste pull cli -g
Резервная копия и синхронизация через удалённый профиль
Отправьте в свой профиль. Сохраните резервную копию вкуса на commandcode.ai.
bashnpx taste push --allДоступ откуда угодно. Заберите вкус на любой машине.
bashnpx taste pull username/project-name
Дальнейшие шаги
- Сделайте что-нибудь классное с Command Code и посмотрите, как вкус работает на практике.
- Смотрите пакеты и управляйте ими в Command Code Studio.
- Присоединяйтесь к нашему сообществу в Discord с отзывами, запросами и за поддержкой.
Источник
Сверено с оригиналом 13 ноября 2026.