BC canvas-render-optimize
Решение для оптимизации массового рендеринга Canvas 2D. Используется, когда Canvas должен отображать большое количество элементов (5000+) и вызывает падение частоты кадров или зависания. Включает трёхслойную конвейерную линию рендеринга (статический слой OffscreenCanvas + динамический слой грязных прямоугольников + слой наложения UI), пространственное хеширование для отсечения области просмотра, уровни детализации LOD, планирование кадров requestAnimationFrame. Применяется в сценариях, таких как карты пластин (WaferMap), тепловые карты, диаграммы рассеяния, аннотации на карте, диаграммы Ганта и т. д. По тестам, оптимизировано с 1 кадра в секунду до 55 кадров в секунду для 100 тыс. элементов.
машинный переводПоказать оригиналСкрыть оригинал«Canvas 2D大规模渲染优化方案。当Canvas需要渲染大量元素(5000+)导致掉帧、卡顿时使用。包含三层渲染管线(Offscreen…»
Canvas 2D大规模渲染优化方案。当Canvas需要渲染大量元素(5000+)导致掉帧、卡顿时使用。包含三层渲染管线(OffscreenCanvas静态层+脏矩形动态层+UI叠加层)、空间哈希视口裁剪、LOD细节层次、requestAnimationFrame帧调度。适用于晶圆图(WaferMap)、热力图、散点图、地图标注、甘特图等场景。实测100k元素从1fps优化到55fps。
Решение для оптимизации массового рендеринга Canvas 2D.
Как процесс C 58/100 · Есть пробелы — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 1
✓ Критических и высоких находок нет
Средние и низкие: 1
-
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:27Строка, похожая на токен (может быть id, хеш или секрет)private ctx: Offs…t2D;
Просканировано файлов: 4. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
frontmatter-yamlSKILL.md: фронтматтер не разбирается как YAML (YAML parse error: Implicit map keys need to be followed by map values at line 4, column 1: **使用时机**: ^^^^^^^^^ ); поля прочитаны построчно. Обычная причина — двоеточие в незакавыченном значении - предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда")
Процессный рейтинг: все десять параметров 58/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 50Ошибки и развилки. Развилок: 0, есть раздел про ошибки
- 100Инструменты и файлы. Внешние инструменты не нужны
- 100Шаги. Шагов: 5
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 1274 токенов
- 100Повторный запуск. Изменяющих операций нет
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 195 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 13 заголовков
- +3Пошаговые инструкции: 5 пунктов
- +4Есть примеры (8 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 62.