From codestable
Maintains domain model artifacts: glossary (CONTEXT.md), Architecture Decision Records (ADRs), and context topology (single/multi-context). Triggers on terminology decisions, ADR creation, and context splitting.
How this skill is triggered — by the user, by Claude, or both
Slash command
/codestable:cs-domainThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
先执行 CodeStable preflight:读 `.codestable/attention.md`;缺失先 `cs-onboard`;不读外部 AI 入口替代(详见 `.codestable/reference/execution-conventions.md`)。
先执行 CodeStable preflight:读 .codestable/attention.md;缺失先 cs-onboard;不读外部 AI 入口替代(详见 .codestable/reference/execution-conventions.md)。
cs-domain 管三件事:术语(CONTEXT.md)、决策(ADR)、拓扑(单 context ↔ 多 context)。所有产物在 .codestable/requirements/ 下。
每次启动先扫一眼,确定项目当前处于哪种拓扑:
.codestable/requirements/CONTEXT-MAP.md 存在 → 多 context 模式.codestable/requirements/CONTEXT.md → 单 context.codestable/requirements/
├── CONTEXT.md # 术语表
├── adrs/ # 顺序编号 ADR
│ ├── 001-xxx.md
│ └── 002-xxx.md
└── {capability}.md # 能力 doc(cs-req 产出,不归本技能管)
.codestable/requirements/
├── CONTEXT-MAP.md # 子 context 列表 + 关系
├── adrs/ # 系统级 ADR(跨 context)
├── ordering/
│ ├── CONTEXT.md # 子 context 术语
│ └── adrs/ # 子 context 特定 ADR
└── billing/
├── CONTEXT.md
└── adrs/
CONTEXT.md 是术语表,不是 spec。只写"X 是什么",不写"X 怎么实现"。
格式:
# {Context 名}
{一两句描述这个 context 是什么、为什么存在。}
## Language
**Order**:
{一两句话定义。}
_Avoid_: Purchase, transaction
**Invoice**:
A request for payment sent to a customer after delivery.
_Avoid_: Bill, payment request
规则:
_Avoid_——多个词指同一概念时挑最好的,其他列为禁用三条少一条就不写。轻易能回退的决定不写、不奇怪的决定不写、没真备选的决定不写。
.codestable/requirements/adrs/NNN-{slug}.md.codestable/requirements/{ctx}/adrs/NNN-{slug}.md.codestable/requirements/adrs/NNN-{slug}.md{slug} kebab-case,能让人一眼想起决策内容---
id: 001
title: 选择 X 而不是 Y
status: proposed | accepted | superseded | deprecated | partially-superseded
date: YYYY-MM-DD
supersedes: [003] # 可选
superseded_by: [015, 017] # 可选
relates_to: [requirements/{slug}, 002] # 可选
---
# {Title}
## Context
{决策面对的问题、约束、当时的状况。}
## Decision
{我们决定做什么。}
## Consequences
{这个决定带来的正负影响、新出现的约束。}
## Alternatives Considered
{讨论过的备选方案 + 为什么没选。}
写 ADR 时用 CONTEXT.md 里已定义的术语;用到新术语就顺手 _Avoid_ 别名补到 CONTEXT.md。
显式触发——用户必须明确说"这项目要分子系统了"才升级。不要因为 CONTEXT.md 长就自动建议。
升级流程:
CONTEXT-MAP.md:列子 context + 它们之间的关系(事件流、共享类型、调用方向)CONTEXT.md + adrs/CONTEXT.md 的术语按归属拆到各子 context;跨多个 context 的术语留在 CONTEXT-MAP.md 顶层 Language 节adrs/ 下的 ADR 按影响范围分:跨 context 的留原位(系统级),单 context 内部的 mv 到对应 {ctx}/adrs/{capability}.md——能力 doc 归 cs-req 管,升级时 cs-req 跟进归类(cs-domain 不替它做)_Avoid_npx claudepluginhub liuzhengdongfortest/codestable --plugin codestableOversees domain language, records architecture decisions (ADRs), and maintains CONTEXT.md glossary. Used when defining terminology, clarifying overloaded terms, or capturing tradeoff-driven decisions.
Builds and sharpens a project's domain model by challenging terminology, recording architectural decisions, and writing a glossary. Use when defining domain language or making architectural decisions.
Builds and sharpens the project's domain model by maintaining a live glossary (CONTEXT.md) and recording architecture decisions (ADRs). Activates when fixing terminology, establishing ubiquitous language, or resolving ambiguous domain concepts.