Skip to content

Вкус (taste) ​

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

мета-нейро-символическая ИИ-модель taste-1

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

✓ В 10 раз быстрее писать код, в 2 раза быстрее проходить код-ревью, в 5 раз меньше багов.

Вкус: следующая граница в ИИ-разработке ​

Видеоролик о вкусе (taste)

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 стоят на двух из них:

text
 ┌──────────────────────────────────────────┐
 │ 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.

bash
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:

json
{
  "tasteLearning": false
}

Переопределение в .commandcode/settings.local.json имеет приоритет над настройкой уровня проекта.

Управление вкусом ​

Профили вкуса отправляются и забираются как репозитории Git. CLI npx taste забирает, отправляет, перечисляет и объединяет пакеты вкуса, а Command Code Studio их показывает.

С его помощью вы отправляете изученные предпочтения в Studio, забираете вкус у коллег или сообщества и объединяете профили под то, как вы работаете.

  1. Отправьте вкус в Studio. Вы можете отправить свой вкус в Command Code Studio и поделиться им с командой.

    bash
    npx taste push --all
  2. Заберите вкус из Studio. Вы можете забрать профиль вкуса из Command Code Studio в разные свои проекты.

    bash
    npx taste pull
  3. Перечислите все профили вкуса. Вы можете перечислить все профили вкуса, доступные в Command Code Studio.

    bash
    npx taste list
  4. Откройте конкретный профиль вкуса. Вы можете открыть конкретный профиль вкуса в Command Code Studio.

    bash
    npx taste open <package>

Первая команда отправляет весь вкус проекта в commandcode.ai/username/taste. Вторая забирает вкус из удалённого профиля в ваш локальный проект.

bash
npx taste push --all
bash
npx 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 работают с вашими удалёнными пакетами.

Структура файлов ​

Проектные и глобальные пакеты устроены так.

Проектные пакеты:

text
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

Глобальные пакеты:

text
~/.commandcode/
└── taste/
    ├── cli/
    │   └── taste.md
    ├── react/
    │   └── taste.md
    └── testing/
        └── taste.md

Вкус проекта и отдельные пакеты ​

Вы можете отправлять или забирать весь вкус проекта или по одному пакету за раз.

Вкус проекта (push --all) ​

С push --all Command Code отправляет весь вкус вашего проекта как единое целое.

bash
npx taste push --all
  • Собирает все пакеты вашего проекта вместе.
  • Берёт имя проекта из текущего каталога.
  • Отправляет в удалённый профиль под вашим пространством имён.

Отдельный пакет (push <package>) ​

Когда вы называете пакет, загружается только он.

bash
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 и живой обучатель, поэтому изменение вступает в силу на следующем ходу.

Базовое использование:

bash
npx taste enable # on for the current project (default)
npx taste disable # off for the current project

Опции:

ОпцияОписание
-u, --userПрименить на уровне пользователя (все ваши проекты) вместо текущего проекта

По умолчанию изменение применяется к текущему проекту. Настройка проекта имеет приоритет над вашей настройкой пользователя, поэтому именно она включает или выключает обучение вкуса там, где вы работаете. Передайте --user, чтобы изменить пользовательское значение по умолчанию для всех проектов. Когда обучение вкуса выключено, предпочтения, которые вы называете, остаются в текущей сессии и не сохраняются.

taste push ​

Отправляет пакеты вкуса из локального проекта в удалённый профиль или в глобальные.

Базовое использование:

bash
npx taste push [package] [options]

Опции:

ОпцияКороткаяОписание
--allОтправить весь вкус проекта (все пакеты вместе)
--global-gОтправить в глобальные (~/.commandcode/taste)
--overwriteЗаменить цель без объединения
--publicСделать пакет публично доступным для поиска (только для удалённых)

Цели:

По умолчанию цель — удалённый профиль. Пакеты отправляются под ваш профиль на commandcode.ai/username/taste для обмена с командой, резервного копирования, синхронизации между машинами и публичных пакетов. Используйте -g, чтобы отправить пакеты в глобальные в ~/.commandcode/taste/ — для личного вкуса, который следует за вами по проектам.

Отправка в удалённый профиль:

bash
# Push project taste
npx taste push --all

# Push individual package
npx taste push cli
npx taste push myorg/cli

Отправка в глобальные:

bash
npx taste push cli -g

Отправить проект:

bash
npx taste push --all

Собирает все пакеты вкуса вашего проекта и загружает их в commandcode.ai/username/taste. После этого команда сможет забрать их через npx taste pull username/project-name.

Отправить отдельный пакет:

bash
npx taste push cli

Просит выбрать пространство имён — личное или организации — и загружает только пакет cli. Если вам доступна отправка в несколько аккаунтов, он спросит, в какой.

Отправка с пространством имён:

bash
npx taste push myteam/cli

Загружает пакет cli прямо в пространство имён myteam, ничего не спрашивая.

Отправка публичного пакета:

bash
npx taste push cli --public

Загружает пакет и делает его доступным для поиска другим пользователям Command Code.

Перезапись:

bash
npx taste push cli --overwrite

Заменяет удалённый пакет без объединения. По умолчанию отправка разумно объединяет уроки.

Поведение объединения:

По умолчанию taste push разумно вливает ваши локальные уроки в существующее содержимое удалённого профиля или глобальных пакетов.

  • Новые уроки добавляются.
  • Уроки, у которых изменилась уверенность, обновляются.
  • Идентичные уроки остаются как есть.

Используйте --overwrite, чтобы пропустить объединение и заменить цель.

Вывод:

text
✓ Pushed project taste to commandcode.ai/aa/taste (3 packages, 15 learnings)

Вывод по отдельному пакету:

text
✓ Pushed 'cli' to commandcode.ai/aa/taste (2 learnings added, 1 updated, 3 unchanged)

taste pull ​

Забирает пакеты вкуса из удалённого профиля или из глобальных в ваш проект.

Базовое использование:

bash
npx taste pull <namespace>/<package> [options]

Опции:

ОпцияКороткаяОписание
--global-gЗабрать из глобальных (~/.commandcode/taste)
--allЗабрать все пакеты (только глобальные)
--overwriteЗаменить локальный пакет без объединения

Цели:

По умолчанию цель — удалённый профиль. Пакеты забираются из вашего профиля или чужого на commandcode.ai/username/taste — для вкуса от коллег, синхронизации между машинами и публичных пакетов. Используйте -g, чтобы забрать пакеты из глобальных в ~/.commandcode/taste/.

Получение из удалённого профиля:

bash
# Pull project taste
npx taste pull ahmadawais/my-project

# Pull individual package
npx taste pull ahmadawais/cli

Получение из глобальных:

bash
# Pull specific package
npx taste pull cli -g

# Pull all global packages
npx taste pull --all -g

Забрать проект:

bash
npx taste pull teammate/awesome-project

Скачивает все пакеты вкуса из teammate/awesome-project в ваш локальный проект.

Забрать отдельный пакет:

bash
npx taste pull ahmadawais/cli

Скачивает только пакет cli из профиля ahmadawais.

Забрать из глобальных:

bash
npx taste pull cli -g

Копирует пакет cli из ~/.commandcode/taste/ в ваш текущий проект.

Забрать все глобальные:

bash
npx taste pull --all -g

Копирует все пакеты из глобальных в текущий проект.

Перезапись:

bash
npx taste pull ahmadawais/cli --overwrite

Заменяет ваш локальный пакет cli удалённой версией.

Поведение объединения:

По умолчанию taste pull разумно вливает удалённые уроки в ваше локальное содержимое.

  • Новые уроки из удалённого профиля добавляются локально.
  • Уроки, у которых изменилась уверенность, обновляются.
  • Идентичные уроки остаются как есть.

Используйте --overwrite, чтобы пропустить объединение и заменить локальное содержимое.

Вывод:

text
✓ Pulled 'cli' from saqib (1 learning added, 2 unchanged)
Saved to: .commandcode/taste/cli/taste.md

taste list ​

Перечисляет все доступные пакеты вкуса.

Базовое использование:

bash
npx taste list [options]

Опции:

ОпцияКороткаяОписание
--global-gПоказать пакеты из глобальных (~/.commandcode/taste)
--remoteПоказать пакеты из вашего удалённого профиля на commandcode.ai

Области:

По умолчанию taste list показывает пакеты в каталоге .commandcode/taste/ вашего проекта. Используйте -g, чтобы показать глобальные пакеты в ~/.commandcode/taste/, или --remote, чтобы показать пакеты под вашим профилем на commandcode.ai/username/taste.

Показать пакеты проекта:

bash
npx taste list

Показать глобальные пакеты:

bash
npx taste list -g

Показать удалённые пакеты:

bash
npx taste list --remote

Вывод:

Каждая строка показывает имя пакета, бейдж [public] для пакетов, которые могут найти другие, число звёзд и загрузок для публичных пакетов, количество уроков и когда пакет менялся последний раз.

text
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

Пример удалённого вывода:

text
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 learnings

taste lint ​

Проверяет формат и структуру файлов вкуса. Запускайте перед отправкой, чтобы поймать ошибки и предупреждения.

Базовое использование:

bash
npx taste lint <package>

Аргументы:

АргументОписание
[package]Имя пакета для проверки. Необязателен, если используется --all.

Опции:

ОпцияКороткаяОписание
--global-gПроверить пакеты из глобальных (~/.commandcode/taste)
--allПроверить все пакеты

Проверить один пакет:

bash
npx taste lint cli

Проверяет пакет вкуса cli в вашем локальном проекте.

Проверить все локальные:

bash
npx taste lint --all

Проверяет все пакеты вкуса в каталоге .commandcode/taste вашего локального проекта.

Проверить глобальные:

bash
npx taste lint cli -g

Проверяет пакет cli в ваших глобальных пакетах.

Проверить все глобальные:

bash
npx taste lint --all -g

Проверяет все пакеты в ваших глобальных пакетах в ~/.commandcode/taste.

Вывод:

Вывод выглядит так.

Пример вывода (валидный):

text
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

Пример вывода (с ошибками):

text
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 ​

Открывает пакет вкуса в вашем редакторе по умолчанию.

Базовое использование:

bash
npx taste open <package>

Аргументы:

АргументОписание
<package>Обязательно. Имя пакета, который нужно открыть.

Опции:

ОпцияКороткаяОписание
--global-gОткрыть пакет из глобальных (~/.commandcode/taste)

Примеры:

bash
npx taste open cli

Открывает пакет вкуса cli из локального проекта в вашем редакторе по умолчанию.

bash
npx taste open cli -g

Открывает пакет cli из ваших глобальных пакетов в ~/.commandcode/taste.

Вывод:

text
✓ Opened 'cli' taste package from project

Настройка редактора:

Команда использует системный редактор по умолчанию, заданный переменной окружения $EDITOR. Если она не настроена, вы увидите инструкции:

bash
# 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, чтобы проверить изменения перед отправкой.

Частые сценарии ​

Поделиться вкусом проекта с командой ​

  1. Отправьте вкус проекта. Отправьте все уроки вашего проекта в удалённый профиль.

    bash
    npx taste push --all
  2. Коллеги забирают. Остальные могут забрать вкус проекта к себе.

    bash
    npx taste pull username/project-name

Использовать вкус в разных проектах (через глобальные) ​

  1. Отправьте в глобальные. Сохраните пакет в глобальные, чтобы использовать его в любом проекте.

    bash
    npx taste push cli -g
  2. Заберите в другом проекте. В другом проекте заберите пакет из глобальных.

    bash
    npx taste pull cli -g

Резервная копия и синхронизация через удалённый профиль ​

  1. Отправьте в свой профиль. Сохраните резервную копию вкуса на commandcode.ai.

    bash
    npx taste push --all
  2. Доступ откуда угодно. Заберите вкус на любой машине.

    bash
    npx taste pull username/project-name

Дальнейшие шаги ​

  • Сделайте что-нибудь классное с Command Code и посмотрите, как вкус работает на практике.
  • Смотрите пакеты и управляйте ими в Command Code Studio.
  • Присоединяйтесь к нашему сообществу в Discord с отзывами, запросами и за поддержкой.

Источник

Сверено с оригиналом 13 ноября 2026.