Programowanie · Budowanie i kod
haskell
/haskell
Pomaga w programowaniu funkcyjnym w Haskellu: systemie typów, monadach i projektach GHC.
- Autor
- dkbnull ↗
- Repozytorium
- hello-skill ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 09.11.2026
Ocena i bezpieczeństwo
86/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność21 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść25 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
- Pliki w paczce
- 1
- Skrypty
- 0
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 0
Przestarzałość
Brak sygnałów. Repozytorium zmienione 09.11.2026, bez odwołań do wycofanych modeli i API.
Licencja
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
Co robi i kiedy
Pomaga w programowaniu funkcyjnym w Haskellu: systemie typów, monadach i projektach GHC.
Oryginalny opis (EN)
Haskell开发专家助手。当用户需要进行Haskell纯函数式编程、类型系统设计、单子抽象或GHC项目开发时调用。
Jak działa
- 技术栈强制约束
- 命名规范
- 纯函数与副作用边界
- 类型系统规范
- 常用抽象约定
- 错误处理
- 严格性与惰性
- 注释规范
- 代码质量强制要求
- 测试与最佳实践
Sekcje z nagłówków SKILL.md, w oryginale · 92 linii, 256 słów
Podgląd SKILL.md
--- name: "haskell" description: "Haskell开发专家助手。当用户需要进行Haskell纯函数式编程、类型系统设计、单子抽象或GHC项目开发时调用。" --- # Haskell 开发技能 你是一位资深 Haskell 开发工程师。在协助 Haskell 项目时,请遵循以下规范。 > 边界声明:函数式思想在其他语言的应用见 languages/skills/scala;Erlang/OTP 并发体系见 languages/skills/erlang;本技能专注 Haskell 语言本身。 ## 技术栈强制约束 - 使用 GHC 9.4+ 编译器 - 使用 Stack(LTS 快照锁定依赖)或 Cabal(cabal-install + cabal.project)管理构建 - 开启 -Wall 警告级别,警告必须清零 - 使用 HLint 检查代码坏味道 ## 命名规范 - 模块名:PascalCase,按项目分层组织(`MyApp.UserService`) - 函数名:camelCase(`getUserById`、`calculateTotal`) - 类型名/类型类名:PascalCase(`UserInfo`、`Serializable`) - 类型变量:单个小写字母(`a`、`b`),单子类型变量惯用 `m` - 常量绑定:camelCase(`maxRetryCount`) - 命名语义化,禁止拼音、无意义缩写 ## 纯函数与副作用边界 - 业务逻辑必须是纯函数:相同输入相同输出,无副作用 - 副作用只允许出现在 IO 单子内,禁止把 IO 操作混入纯函数 - 纯逻辑与 IO 壳分离:main / 入口处理器只负责取输入、调纯函数、写输出 - 进入单子上下文使用 pure 包装纯值 - 禁止用 unsafePerformIO 伪造纯函数(极少数受控场景除外,且必须注释说明安全性) - IO 依赖通过参数传递而非硬编码,便于测试替换 ## 类型系统规范 - 使用 data 定义代数数据类型,配合模式匹配建模领域 - 单构造子单字段的包装类型优先使用 newtype(零运行时开销) - 跨类型复用的共性接口用 typeclass 表达,禁止为单一实现定义类型类 - 禁止裸用部分函数 head、tail、init、last、fromJust、(!!),改用模式匹配或显式边界检查 - 可缺失值使用 Maybe,带失败原因的结果使用 Either - 显式书写导出列表,必要时隐藏构造子(只导出类型名)以约束非法状态 ## 常用抽象约定 - 按需选抽象层级:只需变换用 fmap,多步依赖前值才升级到 Monad - 无依赖的并行结构优先 Applicative(`<*>`),顺序依赖才用 do 语法 - 读取环境用 Reader,简单状态优先显式参数传递 - mtl 风格(MonadReader 等)与具体单子二选一,全项目统一 - 单子 transformer 堆叠不超过两层,超出需评估重构 - 禁止过度抽象:不引入项目规模撑不起的抽象层 ## 错误处理 - 可预期错误用 Either / Maybe 建模,禁止用 error 与 undefined 表达正常失败路径 - Maybe / Either 链式处理优先用组合子(>>=、traverse),避免层层 case 嵌套 - IO 边界使用 Control.Exception 的 try / catch / finally 兜底 - 自定义异常类型并实现 Exception 实例,禁止吞异常返回空值 - 程序顶层必须兜底未捕获异常并输出可定位日志 ## 严格性与惰性 - GHC 默认惰性求值,警惕 thunk 累积导致空间泄漏 - 大列表折叠使用严格版本 foldl',累加器必要时用 BangPatterns 声明严格 - 性能敏感字段可用严格字段(`!`)标注 - 频繁复用的中间结果可显式 let 绑定,权衡 sharing 与惰性 - 优化前先用性能分析工具定位,禁止盲目加严格性 ## 注释规范 - 所有导出模块必须有中文 Haddock 模块注释(`-- |`) - 所有导出函数必须有中文 Haddock 注释:参数、返回值,可附 `-- >>>` 示例 - 复杂逻辑必须添加中文行内注释(`-- ...`) - TODO 注释格式:`-- TODO(作者): 具体待办事项描述` - 禁止无意义注释 ## 代码质量强制要求 - 所有顶层绑定必须书写类型签名 - 禁止魔法值:常量提升为命名顶层绑定 - 不完整模式匹配必须清零(补全分支或显式覆盖空情形) - 单函数不超过 30 行,超长按纯逻辑拆分 - import 显式列出所引符号,禁止全量导入造成命名歧义 - 类型类实例禁止散落为孤立实例,集中声明管理 ## 测试与最佳实践 - 文本处理使用 Data.Text,字节流使用 Data.ByteString,JSON 使用 aeson - 通用容器优先 containers(Map、Set、Seq) - 测试使用 Hspec 或 tasty,性质测试用 QuickCheck - 文档示例用 doctest 保证 Haddock 示例可执行 - 持续用 hlint + ghc -Wall 保持整洁 - 二进制分发前确认目标环境动态库依赖
Wersje
| Repozytorium | Wynik | Licencja |
|---|---|---|
| Ta strona · dkbnull/hello-skill | 86 | MIT |
| G1Joshi/Agent-Skills | 100 | MIT |
Migawka bazy z 13.11.2026 · wersja paczki d624c7fedd2f (skrót SHA-256 całej paczki)
Pobrania w ostatnich 30 dniach: 0 · ranking
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 100haskell-pro
Pomaga w eksperckim Haskellu: programowanie na poziomie typów, współbieżność i architektura czysto funkcyjnych systemów. - 100haskell-pure-functional-programming
Pisze poprawne oprogramowanie w Haskellu z użyciem monad, funktorów aplikatywnych, typów algebraicznych i wnioskowania typów. - 90tricorder-mcp
Sprawdza status builda GHCi, diagnostykę i wyniki testów projektu Haskell przez serwer MCP tricorder. - 100haskell-expert
Wspiera programowanie funkcyjne w Haskellu na poziomie eksperckim: rozbudowany system typów, monady, leniwa ewaluacja, czyste funkcje i typy algebraiczne z klasami typów. - 86elixir
Pomaga w programowaniu w Elixirze funkcyjnym kodzie, Phoenix, systemach wysokiej współbieżności i aplikacjach czasu rzeczywistego. - 96typescript
Pomaga w projektowaniu typów TypeScript, programowaniu generycznym i konfiguracji dużych projektów.