Навыки structural-search
🔍

structural-search

Безопасно

Поиск кода по структуре AST

Также доступно от: 0xDarkMatter

Поиск паттернов кода с помощью regex приводит к ложным срабатываниям и пропущенным совпадениям. Этот навык предоставляет шаблоны поиска на основе AST, которые понимают структуру кода, обеспечивая точный поиск кода и рефакторинг для JavaScript, TypeScript, Python, Go и Rust.

Поддерживает: Claude Codex Code(CC)
🥉 74 Бронза
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «structural-search». Найдите все вызовы eval в кодовой базе

Ожидаемый результат:

  • Найдено 3 вызова eval:
  • - src/auth.js:42 - eval(userInput)
  • - src/utils.js:15 - eval(dynamicCode)
  • - src/parser.js:88 - eval(config.script)
  • Рекомендация: Замените eval на более безопасные альтернативы, такие как JSON.parse для данных или конструкторы Function для конкретных случаев использования.

Аудит безопасности

Безопасно
v3 • 1/10/2026

This is a documentation-only skill containing pattern references for the ast-grep CLI tool. No executable code, network calls, filesystem access, or external command execution detected.

7
Просканировано файлов
600
Проанализировано строк
0
находки
3
Всего аудитов
Проблем безопасности не найдено

Оценка качества

59
Архитектура
100
Сопровождаемость
83
Контент
31
Сообщество
100
Безопасность
78
Соответствие спецификации

Что вы можете построить

Обнаружение уязвимостей

Находите проблемы безопасности, такие как вызовы eval, присваивания innerHTML и жестко закодированные учетные данные во всей кодовой базе.

Безопасный рефакторинг

Предварительно просматривайте структурные изменения перед их применением, гарантируя отсутствие непреднамеренных модификаций.

Миграция паттернов

Преобразуйте паттерны, такие как require в import или var в const, во всех проектах.

Попробуйте эти промпты

Поиск вызовов функций
Найдите все вызовы [function_name] с помощью структурного поиска ast-grep. Покажите пути к файлам и номера строк.
Обнаружение проблемы безопасности
Ищите паттерны [eval/innerHTML/innerText/command injection], которые могут быть уязвимостями безопасности.
Предпросмотр рефакторинга
Предварительно просмотрите рефакторинг [old_pattern] в [new_pattern] без применения изменений. Сначала покажите все совпадения.
Пользовательское правило
Создайте YAML-правило ast-grep, которое обнаруживает [anti-pattern] с сообщением [warning_message].

Лучшие практики

  • Всегда предварительно просматривайте рефакторинг с помощью sg -p 'pattern' -r 'replacement' перед использованием --rewrite для применения изменений.
  • Создавайте YAML-правила в директории rules/ и запускайте sg scan для применения стандартов кодирования во всей организации.
  • Объединяйте ast-grep с pre-commit хуками для обнаружения проблем до того, как код попадет в репозиторий.

Избегать

  • Использование regex для поиска кода вместо AST-паттернов, что приводит к пропуску структурных совпадений и ложным срабатываниям.
  • Запуск sg scan --fix без предварительного просмотра изменений, что может внести непреднамеренные модификации.
  • Применение широких паттернов, таких как $_ == $_, без понимания контекста, что захватывает легитимные паттерны кода.

Часто задаваемые вопросы

Работает ли этот навык офлайн?
Да. Навык предоставляет паттерны и документацию. Инструмент ast-grep запускается локально на вашей машине.
Какие языки поддерживаются?
JavaScript, TypeScript, Python, Go, Rust и несколько других языков через флаг --lang.
Как установить ast-grep?
Запустите brew install ast-grep на macOS или cargo install ast-grep на Linux и Windows.
Отправляется ли мой код куда-либо?
Нет. ast-grep ищет код локально и не передает данные на внешние серверы.
Почему не использовать grep или regex?
Regex ищет текстовые паттерны, а не структуру кода. AST-поиск понимает скобки, область видимости и синтаксис.
Может ли этот навык изменять мой код?
Только с флагом --rewrite. Сначала просмотрите изменения с помощью sg -p 'pattern' -r 'replacement'.

Сведения для разработчиков

Автор

0xDarkMatter

Лицензия

MIT

Ссылка

main