Один запрос, разный контекст
Слева и справа — записанные прогоны одной задачи в двух режимах: та же модель, тот же промпт, разный контекст. Сравнивайте не только вердикт, но и цену.
Сделай компонент с кнопкой «Удалить проект». По клику открывается окно подтверждения с заголовком «Удалить проект?», текстом о том, что действие необратимо, и двумя кнопками: отмена и подтверждение удаления. Подтверждение вызывает переданный колбэк onConfirm.
Без контекста
Первый вызов модели получил 8 603 токена входа, включая системный промпт Claude Code. Контекст до задачи — оценка по длине текста, для русского текста она занижает число токенов в полтора-два раза.
Компилятор
- Строка 3 · TS2724
'"@jinx-ui/react"' has no exported member named 'Button'. Did you mean 'JxButton'? - Строка 3 · TS2724
'"@jinx-ui/react"' has no exported member named 'Modal'. Did you mean 'JxModal'? - Строка 3 · TS2305
Module '"@jinx-ui/react"' has no exported member 'Stack'. - Строка 3 · TS2305
Module '"@jinx-ui/react"' has no exported member 'Text'.
Линтер и покрытие
Замечаний нет.
Ни одного: код написан без библиотеки, поэтому прогон не засчитан
Ожидались JxModal, JxButton · покрытие 0%
Только формулировка задачи
Вход 2 · выход 1 528 · из кэша 8 233 · в кэш 368 · 20 с
Код компонента
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
// API @jinx-ui/react неизвестен из контекста: имена Modal/Stack/Text и пропсы variant/gap — предположение, сверь с докой пакета.
import { useState } from 'react';
import { Button, Modal, Stack, Text } from '@jinx-ui/react';
type DeleteProjectButtonProps = {
onConfirm: () => void;
};
export default function DeleteProjectButton({ onConfirm }: DeleteProjectButtonProps) {
const [isOpen, setIsOpen] = useState(false);
const close = () => setIsOpen(false);
const handleConfirm = () => {
close();
onConfirm();
};
return (
<>
<Button variant="danger" onClick={() => setIsOpen(true)}>
Удалить проект
</Button>
<Modal open={isOpen} onClose={close} title="Удалить проект?">
<Stack direction="column" gap="var(--jx-space-4)">
<Text tone="muted">
Проект и все его данные будут удалены безвозвратно. Это действие необратимо.
</Text>
<Stack direction="row" gap="var(--jx-space-2)" justify="end">
<Button variant="ghost" onClick={close}>
Отмена
</Button>
<Button variant="danger" onClick={handleConfirm}>
Удалить проект
</Button>
</Stack>
</Stack>
</Modal>
</>
);
}MCP
Первый вызов модели получил 12 490 токенов входа, включая системный промпт Claude Code; вызовов модели 2, каждый отправлял разговор заново, и самый большой получил 16 700 токенов. Контекст до задачи — оценка по длине текста, для русского текста она занижает число токенов в полтора-два раза.
Компилятор
Ошибок нет: все компоненты и пропсы существуют.
Линтер и покрытие
Замечаний нет.
JxButton, JxModal
Ожидались JxModal, JxButton · покрытие 100%
- get_rules({"task":"ui"}) → ~1247 токенов
- get_component_api({"name":"JxModal"}) → ~630 токенов
- get_component_api({"name":"JxButton"}) → ~539 токенов
Инструменты (search_components,get_component_api,get_component_examples,list_design_tokens,get_docs,get_rules, ~1213)
Вход 4 · выход 657 · из кэша 24 976 · в кэш 4 210 · 12 с
Код компонента
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
import { useState } from 'react';
import { JxButton, JxModal } from '@jinx-ui/react';
type DeleteProjectButtonProps = {
onConfirm: () => void;
projectName?: string;
};
export default function DeleteProjectButton({ onConfirm, projectName }: DeleteProjectButtonProps) {
const [open, setOpen] = useState(false);
const confirm = () => {
setOpen(false);
onConfirm();
};
return (
<>
<JxButton variant="danger" onClick={() => setOpen(true)}>
Удалить проект
</JxButton>
<JxModal
open={open}
onOpenChange={setOpen}
intent="danger"
title="Удалить проект?"
message={
projectName
? `Проект «${projectName}» и все его задачи будут удалены безвозвратно. Действие нельзя отменить.`
: 'Проект и все его задачи будут удалены безвозвратно. Действие нельзя отменить.'
}
>
<JxButton variant="ghost" onClick={() => setOpen(false)}>
Отмена
</JxButton>
<JxButton variant="danger" onClick={confirm}>
Удалить проект
</JxButton>
</JxModal>
</>
);
}