BF amphp
Написание неблокирующего асинхронного PHP-кода с использованием фреймворка AMPHP — revolt/event-loop, amphp/amp ^3 и всей экосистемы amphp/* (http-server, http-client, websocket, mysql, redis, parallel, socket, pipeline, file, cache, sync, dns, process). Всегда используйте этот навык, когда PHP-код включает: пакеты amphp/*, цикл событий Revolt, Amp\Future, Amp\async(), Amp\delay(), PHP Fibers для асинхронного ввода-вывода, DeferredFuture, TimeoutCancellation, SocketHttpServer, WebsocketClientHandler или Worker\Task. Также используйте, когда пользователь хочет заменить блокирующий PHP (curl_exec, file_get_contents, PDO, sleep) асинхронными эквивалентами AMPHP, создать неблокирующий PHP HTTP или WebSocket-сервер, выполнять параллельный PHP ввод-вывод без pcntl или отлаживать поведение цикла событий Revolt — даже если они не говорят «amphp» явно, но контекст явно указывает на эту экосистему.
машинный переводПоказать оригиналСкрыть оригинал«Writing non-blocking, async PHP code using the AMPHP framework — revol…»
Writing non-blocking, async PHP code using the AMPHP framework — revolt/event-loop, amphp/amp ^3, and the full amphp/* ecosystem (http-server, http-client, websocket, mysql, redis, parallel, socket, pipeline, file, cache, sync, dns, process). Always use this skill when PHP code involves: amphp/* packages, the Revolt event loop, Amp\Future, Amp\async(), Amp\delay(), PHP Fibers for async I/O, DeferredFuture, TimeoutCancellation, SocketHttpServer, WebsocketClientHandler, or Worker\Task. Also use when the user wants to replace blocking PHP (curl_exec, file_get_contents, PDO, sleep) with AMPHP async equivalents, build a non-blocking PHP HTTP or WebSocket server, run concurrent PHP I/O without pcntl, or debug Revolt event-loop behavior — even if they don't say "amphp" explicitly but the context clearly points to this ecosystem.
Написание неблокирующего асинхронного PHP-кода с использованием фреймворка AMPHP — revolt/event-loop, amphp/amp ^3 и всей экосистемы amphp/ (http-server…
Как процесс F 42/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: templates/http-server.php, templates/websocket-handler.php, templates/parallel-task.php
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл просит больше прав, чем нужно для задачи: широкий доступ к инструментам, секретные переменные окружения, бинарные файлы. Каждое лишнее право расширяет ущерб при ошибке или взломе.
Сузьте allowed-tools и список переменных до минимума, замените бинарники на исходники или скрипты, которые можно прочитать.
Как улучшить
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 16
✓ Критических и высоких находок нет
Средние и низкие: 16
-
средняя Широкие права
meta-broad-allowed-toolsSKILL.md:1Заранее разрешены широкие инструменты: Bashallowed-tools: Read Write Edit Bash Glob Grep Agent
-
низкая Секреты в коде
secret-high-entropy-tokendocs/common-mistakes.md:183Строка, похожая на токен (может быть id, хеш или секрет)new Base…eam(new ReadableBuffer($encoded))
-
низкая Секреты в коде
secret-high-entropy-tokendocs/common-mistakes.md:189Строка, похожая на токен (может быть id, хеш или секрет)new Base…eam(new ReadableIterableStream([$encoded]))
-
низкая Секреты в коде
secret-high-entropy-tokendocs/constructors.md:86Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)// Use instead of ReadableBuffer as source for Base…eam
детектор -
низкая Секреты в коде
secret-high-entropy-tokendocs/namespaces.md:60Строка, похожая на токен (может быть id, хеш или секрет)use Amp\ByteStream\Base64\Base…eam; // Base64 encode
-
низкая Секреты в коде
secret-high-entropy-tokendocs/namespaces.md:61Строка, похожая на токен (может быть id, хеш или секрет)use Amp\ByteStream\Base64\Base…eam; // Base64 decode (use ReadableIterableStream as source!)
-
низкая Секреты в коде
secret-high-entropy-tokenexamples/byte-stream.md:58Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка; тестовый файл / пример)// Required as source for Base…eam (see below).
детектортестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenexamples/byte-stream.md:125Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)use Amp\ByteStream\Base64\Base…eam;
тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenexamples/byte-stream.md:126Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)use Amp\ByteStream\Base64\Base…eam;
тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenexamples/byte-stream.md:132Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)$encoded = buffer(new Base…eam(new ReadableBuffer("hello world")));тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenexamples/byte-stream.md:135Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)// ReadableBuffer closes itself after returning EOF, which causes Base…eam
тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenreferences/class-examples.md:235Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)// calls isClosed() mid-stream (e.g. Base…eam).
тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenreferences/class-examples.md:247Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)### Base…eam / Base…eam
тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenreferences/class-examples.md:249Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)use Amp\ByteStream\Base64\Base…eam;
тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenreferences/class-examples.md:250Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)use Amp\ByteStream\Base64\Base…eam;
тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenreferences/class-examples.md:256Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)new Base…eam(new ReadableBuffer("hello world"))тестовый файл
Просканировано файлов: 28. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
missing-refссылка на отсутствующий файл: templates/http-server.php - предупреждение
missing-refссылка на отсутствующий файл: templates/websocket-handler.php - предупреждение
missing-refссылка на отсутствующий файл: templates/parallel-task.php - предупреждение
missing-refссылка на отсутствующий файл: scripts/server-demo.php - предупреждение
missing-refссылка на отсутствующий файл: scripts/http-client-demo.php
Процессный рейтинг: все десять параметров 42/100
- 0Инструменты и файлы. Не хватает 5 файла(ов): templates/http-server.php, templates/websocket-handler.php, templates/parallel-task.php
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 30Повторный запуск. Изменяющих операций: 4, без проверки текущего состояния
- 100Шаги. Шагов: 5
- 100Когда включается. Сказано, когда применять и когда не применять
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 1593 токенов
- medium Тестов 3, и все положительные: нет ни одного случая «должен отказать» или «должен переспросить»
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 833: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- +1Лицензия не указана
- +2Инструкции на одном языке
- +4Структура: 11 заголовков
- +3Пошаговые инструкции: 5 пунктов
- +4Есть примеры (0 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (7 из 7)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 73.