Навыки haskell-pro
Λ

haskell-pro

Безопасно

Освойте продвинутое программирование на Haskell с экспертной поддержкой

Испытываете трудности со сложными системами типов и чистым функциональным дизайном в Haskell? Этот навык предоставляет экспертные рекомендации по программированию на уровне типов, паттернам конкурентности и созданию высоконадёжного программного обеспечения с сильными статическими гарантиями.

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

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

2

Загрузить в Claude

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

3

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

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

Использование «haskell-pro». Разработайте типобезопасное API для обработки денежных переводов, предотвращающее недопустимые состояния на этапе компиляции.

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

Используйте newtypes для обёртывания Amount и Currency с фантомными типами для отслеживания состояний перевода (Pending, Completed, Failed). Реализуйте конечный автомат с использованием GADT, который разрешает только допустимые переходы. Закодируйте инварианты аккаунта в типах для предотвращения овердрафта. Предоставьте сигнатуры типов, которые делают недопустимые переводы непредставимыми.

Использование «haskell-pro». Как обрабатывать конкурентный доступ к общему кэшу в Haskell?

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

Используйте STM (Software Transactional Memory) с TVar для атомарных обновлений кэша. Оберните операции кэша в блоки retry для автоматического разрешения конфликтов. Комбинируйте с async для конкурентных операций чтения/записи. Реализуйте безопасную очистку исключений с использованием bracket или finally. Пример паттерна: atomically $ do cached <- readTVar cacheVar; case cached of Just val -> return val; Nothing -> do newValue <- computeValue; writeTVar cacheVar (Just newValue); return newValue

Использование «haskell-pro». Просмотрите мой код Haskell на предмет улучшений функционального дизайна.

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

Выделите чистую бизнес-логику в отдельные функции с явными сигнатурами. Изолируйте IO базы данных и сети с использованием стеков трансформеров (ReaderT для конфигурации, ExceptT для ошибок). Замените частичные функции на полные альтернативы с использованием Maybe или Either. Введите newtypes для различения UserID и Username на уровне типов. Разделите большие модули на сфокусированные модули с единой ответственностью.

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

Безопасно
v1 • 2/25/2026

Static analysis detected 7 potential issues (1 external_commands, 6 weak cryptographic patterns). All findings are false positives: the 'external_commands' detection was Markdown backticks for file paths, not shell execution. The 'weak cryptographic' detections appear to be scanner errors as no cryptographic code exists in the skill. The skill contains only documentation and instructions for Haskell programming assistance with no executable code, network operations, or security risks.

1
Просканировано файлов
59
Проанализировано строк
1
находки
1
Всего аудитов
Проблемы низкого риска (1)
False Positive: Markdown File Reference
Line 27 contains backticks used for Markdown formatting of a file path ('resources/implementation-playbook.md'), not shell command execution. The static analyzer incorrectly identified this as an external command execution pattern.
Проверено: claude

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

38
Архитектура
100
Сопровождаемость
87
Контент
32
Сообщество
100
Безопасность
100
Соответствие спецификации

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

Программирование на уровне типов

Проектирование сложных абстракций на уровне типов, которые кодируют бизнес-логику в системе типов, отлавливая ошибки на этапе компиляции

Проектирование конкурентных систем

Создание конкурентных и параллельных приложений с использованием STM, async и лёгких потоков с надлежащей безопасностью исключений

Аудит архитектуры кодовой базы

Оценка существующих кодовых баз Haskell на предмет паттернов функционального дизайна, типобезопасности и архитектурных улучшений

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

Типобезопасная предметная модель
Разработайте типобезопасную предметную модель для системы [domain]. Используйте newtypes, фантомные типы или GADT для кодирования инвариантов на уровне типов и предотвращения недопустимых состояний.
Рефакторинг в чистые функции
Просмотрите этот код на Haskell и выполните рефакторинг для разделения чистой логики и кода с эффектами. Определите, где можно изолировать IO, и предложите архитектуру сигнатур функций.
Паттерн конкурентного дизайна
Разработайте конкурентную [system] с использованием STM и async в Haskell. Покажите, как безопасно обрабатывать общее состояние и реализовать безопасную очистку ресурсов с исключениями.
Оптимизация производительности
Проанализируйте этот код Haskell на предмет узких мест производительности. Определите возможности для анализа строгости, оптимизаций слияния (fusion) или выбора лучших структур данных.

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

  • Начните с уточнения вашей конкретной задачи по Haskell — будь то дизайн на уровне типов, конкурентность, архитектура или настройка производительности
  • Предоставляйте соответствующие фрагменты кода, сообщения об ошибках или предупреждения компилятора для более целенаправленных рекомендаций
  • Указывайте вашу версию GHC и ключевые зависимости при запросе рекомендаций по архитектуре или совместимости

Избегать

  • Запрос помощи по программированию не на Haskell — используйте вместо этого навык общего кодирования
  • Запрос на исполнение произвольных системных команд или файловых операций вне контекста вашего проекта
  • Ожидание полных реализаций приложений без предоставления требований проекта или ограничений

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

Может ли этот навык писать и компилировать код Haskell за меня?
Нет, этот навык предоставляет экспертные рекомендации, паттерны и примеры для программирования на Haskell. Он помогает вам проектировать системы типов, архитектуру и решения, но вы должны самостоятельно реализовать и скомпилировать код, используя GHC или вашу систему сборки.
Следует ли использовать этот навык для изучения основ Haskell?
Этот навык фокусируется на продвинутых темах Haskell, таких как программирование на уровне типов и конкурентность. Для основ Haskell сначала рассмотрите ресурс для начинающих, затем используйте этот навык, когда будете готовы к продвинутым паттернам и архитектуре.
Какую информацию следует предоставить для наилучших рекомендаций?
Поделитесь вашей конкретной задачей, соответствующими фрагментами кода, версией GHC и ограничениями. Для вопросов архитектуры объясните требования вашей системы. Для проблем производительности предоставьте вывод профилировщика или выявленные узкие места.
Может ли этот навык помочь с устаревшими кодовыми базами Haskell?
Да, предоставьте код, который хотите рефакторить или улучшить. Навык может определить возможности для лучшей типобезопасности, выделения чистых функций и архитектурных улучшений, объясняя при этом обоснование изменений.
Покрывает ли этот навык веб-фреймворки вроде Yesod или Servant?
Этот навык покрывает принципы систем типов Haskell, конкурентности и архитектуры, которые применимы к веб-разработке. Он может помочь в проектировании типобезопасных API и паттернов кода с эффектами, но для вопросов по конкретным фреймворкам предоставьте контекст о выборе вашего фреймворка.
Может ли этот навык помочь мне выбрать между Cabal и Stack?
Да, этот навык покрывает структуру проекта, инструменты сборки и гигиену зависимостей. Опишите требования вашего проекта, контекст команды и ограничения, и он направит вас к соответствующему выбору инструментов с обоснованием.

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

Автор

sickn33

Лицензия

MIT

Ссылка

main

Структура файлов

📄 SKILL.md