principle-model-the-domain
编写有状态逻辑,或代码大量分支、跨文件重复形状假设时应用。
- License 许可
- MIT
- 最近更新
- 2026-10-21
- Stars
- ★ 3
- Forks
- 0
01 前言 Front Matter
- name
- principle-model-the-domain
- description
- 编写有状态逻辑,或代码大量分支、跨文件重复形状假设时应用。
- disable-model-invocation
- true
03 SKILL.md 正文
建模领域
用数据结构编码真实领域,而非把领域散在条件判断里。匹配领域的结构使非法状态无法表示并删除分支。写时选择便宜。事后恢复像 refactor,会被推迟。
优先考虑:
- 状态机,替代散落的布尔、阶段或生命周期检查。
- 类型化模型,替代松散参数或重复形状假设。
- map、registry、查找表或可区分联合,替代跨文件分支。
- reducer 或 command/event 模型,替代随意状态变更。
- 围绕一块领域知识组织的模块,而非 load、validate、transform、save 这类序列。执行顺序不是所有权。
- 小模块边界,汇聚重复行为、所有权或 invariant。
- queue、cache、index、图、树或规范化集合,当访问模式需要时。
- 任何合适的其他结构。都不合适时,弄清代码绝不允许什么、数据如何被读,再找恰好编码该点的结构。
不要强造抽象。当前形状已清晰、局部且不太可能继续膨胀时,优先简单直接的代码。对增加间接却不删分支、重复规则、非法状态或生命周期风险的抽象保持怀疑。
跳过本原则的信号:新功能让现有 if/else 链又长一支,或第二个布尔须与第一个同步。按时间分解是另一信号。阶段命名模块会在多步重复同一领域规则。
04 同仓库更多 Skills
why
用于「为什么 X 是这样实现的」「为什么选了 Y」、设计理由、回归、事后复盘,或数据支撑的阈值问题。发现可用 MCP 并并行查询各证据类别(源码控制、工单跟踪、长文文档、实时聊天、基础设施可观测性、错误跟踪、产品分析数仓),然后返回带引用的决策与权衡解读。运行时行为请用 how。
unslop
从任意写作中剔除 AI 痕迹。
typescript-best-practices
TypeScript 最佳实践。读取或编辑任意 .ts 或 .tsx 文件时使用。
technical-writing
分层技术写作标准:Diátaxis 结构、Google 开发者风格句子、STE 指令规则、Global English 句法。用于 /technical-writing,或撰写/审查文档、RFC、README、PR 描述、commit message 时。
teach
用平实语言解释一段工作,让人真正理解。运行 how 与 why skill,把发现织成一份清晰说明。用于「teach me this」「help me really understand X」「explain this change or subsystem to me」。
tdd
仅当用户明确要求 TDD、失败测试或回归测试时使用,或 bug 有明显且廉价的本地测试目标时使用。测试路径不清、昂贵、偏集成或未要求时跳过。