FF vulkan-rendering-expert-skill
Экспертные навыки в области рендеринга Vulkan. Используется для проектирования, реализации, отладки, оптимизации Vulkan API, обработки ошибок валидации, интеграции Vulkan в Android, проблем с Swapchain/синхронизацией/макетом изображения/жизненным циклом ресурсов, архитектуры графического движка, Render Pass, Pipeline, Descriptor, Command Buffer, Compute рабочих процессов и анализа производительности.
машинный переводПоказать оригиналСкрыть оригинал«Vulkan 渲染工程专家技能。用于 Vulkan API 设计、实现、调试、优化、Validation Error 处理、Android…»
Vulkan 渲染工程专家技能。用于 Vulkan API 设计、实现、调试、优化、Validation Error 处理、Android Vulkan 集成、Swapchain/同步/Image Layout/资源生命周期问题、图形引擎架构、Render Pass、Pipeline、Descriptor、Command Buffer、Compute 工作流和性能分析。
Экспертные навыки в области рендеринга Vulkan.
Как процесс F 35/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: references/07_integration_pack/task_routing_rules.md, references/07_integration_pack/retrieval_policy.md, references/03_api_manual/api_index.md
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 73
✓ Критических и высоких находок нет
Средние и низкие: 73
-
низкая Секреты в коде
secret-high-entropy-tokenreferences/02_core_mental_model/render_graph_resource_lifetime.md:342Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)2. 同一 `VkImage` 在 alias 切换后仍使用旧 `VkImageView`,可能触发 validation `VUID…181` 之类错误(view 引用的 image 已被释放或 layout 不一致)。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/02_core_mental_model/vulkan_1_4_overview.md:23Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)工程意义:在 1.4 设备上,过去需要逐项 `vkGe…es2` 查询并开启扩展的几项关键能力,现在可以直接依赖 core 行为,简化引擎 feature negotiation 路径。[GUIDE][ENGINE]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/02_core_mental_model/vulkan_1_4_overview.md:46Строка, похожая на токен (может быть id, хеш или секрет)VK_K…ls2
-
низкая Секреты в коде
secret-high-entropy-tokenreferences/02_core_mental_model/vulkan_1_4_overview.md:62Строка, похожая на токен (может быть id, хеш или секрет)- VkPi…nfo:pipeline create flags 升级到 64-bit,
-
низкая Секреты в коде
secret-high-entropy-tokenreferences/02_core_mental_model/vulkan_1_4_overview.md:70Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)工程影响:引擎层在 1.4 设备上可以直接使用 `VkPi…nfo` 和 `vkCm…KHR`,无需在 device extensions 列表声明 `VK_K…ce6`。[ENGINE]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/02_core_mental_model/vulkan_1_4_overview.md:80Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)Vulkan 1.4 把以下 feature 设为 mandatory,所有声称支持 1.4 的实现必须支持(通过 `vkGe…es2` 返回的对应字段必为 `VK_TRUE`):[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/01_instance_device_queue/instance.md:134Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…377` 等。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/01_instance_device_queue/maintenance_extensions.md:1Строка, похожая на токен (может быть id, хеш или секрет)# API Card: Maintenance 扩展系列(VK_K…ce1~7 / VK_E…ce1)
-
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/01_instance_device_queue/maintenance_extensions.md:28Строка, похожая на токен (может быть id, хеш или секрет)→ vkEnumerateDeviceExtensionProperties / vkGe…es2
-
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/01_instance_device_queue/maintenance_extensions.md:30Строка, похожая на токен (может быть id, хеш или секрет)→ VkDeviceCreateInfo.ppEnabledExtensionNames(老版本)或 VkPh…res / VkPh…res 聚合结构(新版本通过 pNext 启用 maintenance features;也可使用独立的 VkPh…eat
-
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/01_instance_device_queue/maintenance_extensions.md:36Строка, похожая на токен (может быть id, хеш или секрет)- VK_E…ce1 的 present mode 切换 / retired swapchain 延迟销毁
-
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/01_instance_device_queue/maintenance_extensions.md:43Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- Vulkan 1.3+ 中 `VK_K…ce4` 已进核心,扩展字符串自动可用,但仍需通过 `VkPh…ce4` 显式启用 feature;Vulkan 1.4+ 中 `VK_K…ce5` / `VK_K…ce6` 进核心,需通过 `VkPhysicalD
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/01_instance_device_queue/physical_device.md:13Строка, похожая на токен (может быть id, хеш или секрет) (строка таблицы в документации)| 适用 Vulkan 版本 | Vulkan 1.0 核心;feature 查询在 1.1+ 通过 `VkPh…res` 等结构体链 |
таблица -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/01_instance_device_queue/physical_device.md:59Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VkPhysicalDeviceMemoryProperties` / `VkPh…es2`
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/01_instance_device_queue/physical_device.md:65Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VkPh…res` / `VkPh…ies`
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/01_instance_device_queue/physical_device.md:66Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VkPh…res` / `VkPh…ies`
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/01_instance_device_queue/physical_device.md:67Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VkPh…res` / `VkPh…ies`
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/02_surface_swapchain/surface.md:148Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- 关注 `VUID…266`(surface 仍被 swapchain 使用)。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/02_surface_swapchain/swapchain_recreate.md:74Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VK_E…ce1`:允许 retired swapchain 延迟销毁,减少卡顿。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/02_surface_swapchain/swapchain_recreate.md:156Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…270`:surface 仍被旧 swapchain 使用。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/02_surface_swapchain/swapchain_recreate.md:157Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…282`:swapchain 仍被 command buffer 引用。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/02_surface_swapchain/swapchain_recreate.md:237Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VK_E…ce1` 可让 retired swapchain 延迟销毁,减少 stall。[GUIDE]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/02_surface_swapchain/swapchain_recreate.md:279Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)2. `VK_E…ce1` 的启用与使用条件。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/02_surface_swapchain/swapchain.md:74Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VK_E…ce1`:可延迟 retired swapchain 销毁,减少 recreate 卡顿。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/02_surface_swapchain/swapchain.md:292Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)3. `VK_E…ce1` 的启用条件与 retired swapchain 行为。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/command_buffer_lifetime.md:148Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…045`:command buffer 不能处于 pending 状态。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/command_buffer_lifetime.md:149Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…047`:free 的 command buffer 不能处于 pending 状态。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/command_buffer_lifetime.md:150Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…049`:只能从 INITIAL 或 EXECUTABLE(若允许 reset)状态开始。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/command_buffer_lifetime.md:151Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…072`:command buffer 必须处于 executable 状态。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/fence_semaphore.md:174Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…068`:wait semaphore 必须已 signaled 或可被 timeline 满足。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/fence_semaphore.md:175Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…267`:present wait semaphore 必须有效。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/fence_semaphore.md:176Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…122`:reset 前 fence 必须不在 pending submit 中。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/fence_semaphore.md:177Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…258`:timeline semaphore signal value 必须大于当前值。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/frames_in_flight.md:169Строка, похожая на токен (может быть id, хеш или секрет) (строка таблицы в документации)| `vkResetCommandBuffer` 时机 | 必须在 `vkWaitForFences` 之后调用。[SPEC] | 未等 fence 就 reset,触发 `VUID…045`。[TOOL] |
таблица -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/frames_in_flight.md:239Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…045`:command buffer 不能处于 PENDING 状态(说明 fence 未 wait)。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/frames_in_flight.md:240Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…122`:reset 前 fence 不在 pending submit 中。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/frames_in_flight.md:241Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…068`:wait semaphore 必须 signaled 或 timeline 可满足。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/frames_in_flight.md:242Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…267`:present wait semaphore 必须有效。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/indirect_commands.md:165Строка, похожая на токен (может быть id, хеш или секрет) (строка таблицы в документации)| `offset` | `VkDeviceSize`,必须 4 字节对齐。[SPEC] | 错误对齐,触发 `VUID…710` 类错误。[TOOL] |
таблица -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/indirect_commands.md:212Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)1. `VkBuffer.usage` 漏写 `INDIRECT_BUFFER_BIT`,validation 报 `VUID…708`。[TOOL]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/indirect_commands.md:230Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…708`:buffer 缺少 `INDIRECT_BUFFER_BIT`。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/indirect_commands.md:231Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…710`:offset 对齐错误。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/03_command_buffer/indirect_commands.md:232Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…718` / `02719`:`multiDrawIndirect` 未启用。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/buffer.md:64Строка, похожая на токен (может быть id, хеш или секрет) (строка таблицы в документации)| `vkGetBufferMemoryRequirements` / `vkGe…ts2` | 查询 memory requirements。[SPEC] |
таблица -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/framebuffer.md:132Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…904`:framebuffer 与 render pass 兼容。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/host_image_copy.md:43Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- 目标 image 的 `usage`、`format`、`tiling` 必须支持 host image copy(查询 `vkGe…EXT` / performance query)。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/host_image_copy.md:71Строка, похожая на токен (может быть id, хеш или секрет) (строка таблицы в документации)| `vkGe…EXT` | 查询 image 的 host 侧内存布局(行距、偏移等)。[SPEC] |
таблица -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/host_image_copy.md:187Строка, похожая на токен (может быть id, хеш или секрет) (строка таблицы в документации)| 使用场景 | 用于 `vkCopyMemoryToImageEXT` / `vkCopyImageToMemoryEXT`,由 spec 定义何种 layout 组合可标 memcpy。[SPEC] | 自行假定 memcpy 安全,未 query `vkGe…EXT`。[ENGINE] |
таблица -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/host_image_copy.md:234Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…203`:使用 host copy API 时 image flags 必须含 `VK_IMAGE_CREATE_HOST_IMAGE_COPY_BIT_EXT`。[SPEC]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/image_layout.md:129Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…213` 等:transition 合法性。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/image_layout.md:130Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…296`:present 前 layout。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/image.md:65Строка, похожая на токен (может быть id, хеш или секрет) (строка таблицы в документации)| `vkGe…ts2` | 支持 dedicated allocation、device group 等查询。[SPEC] |
таблица -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/image.md:71Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VK_KHR_dedicated_allocation` / `VK_K…ts2`:优化 GPU 特定图像的内存分配。[GUIDE]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/memory_allocation.md:151Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…677`:memory 仍被 resource 使用。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/vma_usage.md:39Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- 推荐:启用 `VK_K…ts2`、`VK_KHR_dedicated_allocation`、`VK_EXT_memory_budget`、`VK_K…ry2` 等扩展并传入 `VmaAllocatorCreateInfo`。[GUIDE]
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/04_buffer_image_memory/vma_usage.md:180Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…683`:map 非 host-visible memory(VMA 通常先返回错误,但若绕过仍会触发)。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/05_descriptor/descriptor_buffer.md:165Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- `VUID…000`:descriptor buffer flag 合法性。
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/05_descriptor/descriptor_indexing.md:70Строка, похожая на токен (может быть id, хеш или секрет) (строка таблицы в документации)| `vkGe…es2` | 通过 pNext 查询 `VkPhysicalDeviceDescriptorIndexingFeatures`。[SPEC] |
таблица -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/05_descriptor/descriptor_indexing.md:71Строка, похожая на токен (может быть id, хеш или секрет) (строка таблицы в документации)| `vkGe…es2` | 查询 `maxPerSetDescriptors` / `maxUpdateAfterBindDescriptorsInAllPools` 等。[SPEC] |
таблица -
низкая Секреты в коде
secret-high-entropy-tokenreferences/03_api_manual/05_descriptor/descriptor_indexing.md:90Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)- Vulkan 1.2 核心化:通过 `VkPh…res` 字段访问等价 feature;不再需要 pNext 扩展结构体。[SPEC]
в кавычках
…и ещё 13
Просканировано файлов: 80. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - предупреждение
missing-refссылка на отсутствующий файл: references/07_integration_pack/task_routing_rules.md - предупреждение
missing-refссылка на отсутствующий файл: references/07_integration_pack/retrieval_policy.md - предупреждение
missing-refссылка на отсутствующий файл: references/03_api_manual/api_index.md - предупреждение
missing-refссылка на отсутствующий файл: references/04_debug_playbooks/debug_priority_index.md - предупреждение
missing-refссылка на отсутствующий файл: references/05_workflows/workflow_index.md - предупреждение
missing-refссылка на отсутствующий файл: references/06_cases/case_index.md
Процессный рейтинг: все десять параметров 35/100
- 0Инструменты и файлы. Не хватает 6 файла(ов): references/07_integration_pack/task_routing_rules.md, references/07_integration_pack/retrieval_policy.md, references/03_api_manual/api_index.md
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 100Шаги. Шагов: 36
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 507 токенов
- 100Повторный запуск. Изменяющих операций нет
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- +4Нет примеров входа/выхода
- +2Инструкции на одном языке
- +3Длина description 186 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 6 заголовков
- +3Пошаговые инструкции: 36 пунктов
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 57.