mcpField
P
principle-type-system-discipline

principle-type-system-discipline

github.com/mariusflorescu开发18120 次安装2 周前更新
代码仓库

关于 principle-type-system-discipline

面向开发者和编码 Agent 的类型设计技能,指导用类型排除无效状态、区分语义不同的值,并在数据边界解析输入。它还建议从权威模式派生类型,避免维护重复定义。

主要功能

  1. 01为语义不同的基本类型加品牌
  2. 02在数据边界解析无类型输入
  3. 03从权威模式派生类型
  4. 04用类型减少额外处理逻辑

适用场景

  1. 01避免不同 ID 被误用
  2. 02校验 RPC、JSON 或 CLI 输入
  3. 03使类型与 API 或数据库模式一致

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mariusflorescu/pstack-t3 --skill principle-type-system-discipline

安装后在 Claude Code 中输入/principle-type-system-discipline确认已加载。

附带文件agents/openai.yaml

详细介绍

类型系统规范

让编译器拒绝不可能的状态、不匹配的基本类型和未处理的变体。与其不断增加处理程序,不如优先让错误和特殊情况无从产生。TypeScript 语法请参阅 typescript-best-practices 技能。

  • 为具有语义的基本类型添加品牌标记。 UserId 和 OrderId 底层都是字符串,但不应可以互换。为它们分别定义类型,例如在 TypeScript 中使用品牌交叉类型,或在其他语言中使用 newtype。创建时验证一次,下游代码即可信任该类型。如果两个参数的基本类型相同,但含义不同,就为它们添加品牌标记。
  • 外部数据在解析之前没有类型。 RPC 负载、JSON、IPC 消息、CLI 参数、配置文件、环境变量、数据库行都是如此。在每个边界都添加解析函数,将非结构化输入转换为有类型的模型。boundary-discipline 原则技能说明了应将验证放在哪里。
  • 从权威架构中派生类型。 如果某个形状由协议缓冲区、OpenAPI 规范、GraphQL 架构、数据库迁移、设计令牌文件或其他文件定义,就应从中派生类型,而不是手工编写一套平行类型。请参阅 encode-lessons-in-structure 原则技能。

评论

支持 Markdown