用途:在服务端 TypeScript 中编写领域模型、用例、仓储、状态迁移与业务逻辑时,提供函数式领域建模的指导原则,采用 TypeScript 类型系统而非 class 式 OOP。
主要能力:一、用类型建模领域,以 Discriminated Union 表达状态并统一 kind 作为判别字段,使用 type(而非 interface)、伴生对象、Branded Types、Readonly<>、函数属性记法与一概念一文件结构。二、用纯函数表达状态迁移,参数类型约束合法迁移源、返回类型明示迁移目标,非法迁移成为编译错误,并用 assertNever 检查穷尽性。三、错误处理采用 Railway Oriented Programming,不抛异常而以 Result 型把错误当作值,错误类型用 Discriminated Union 定义以便调用方穷尽处理。四、边界防御:外部输入(API 请求、数据库结果、文件读取)用校验库 schema 做运行时校验,领域层内部信任类型,不使用类型断言 as,PII 字段套用 Sensitive<T> 包装。五、声明式风格:数组转换用 filter / map / reduce 配合伴生对象谓词函数,领域事件建模为不可变记录。六、测试数据用 as const satisfies Type 定义,保留判别字段字面量类型、防止 widening。
使用方式:技能会检测项目 package.json 的 dependencies / devDependencies 以选择对应文档——校验库 zod、valibot、arktype;Result 库 neverthrow、byethrow、fp-ts、option-t。各主题另有 domain-modeling.md、state-modeling.md、error-handling.md、boundary-defense.md、declarative-style.md、test-data.md 等文档。
限制:这些是推荐而非严格规则,可依上下文判断;偏离原则时需在注释中说明理由,典型正当理由包括外部库要求 class 继承、性能要求使不可变数据生成成本过高、团队约定采用不同模式。具体安装命令与更多细节暂未提供。