Back to skills
SKILL.md
M Design
ASecurityActivates when transitioning from vetted requirements (m-req output) to solution design. Trigger signals: 设计, 概要设计, 详细设计, 技术方案, 架构, 怎么做, 实现方案, system design, architecture design, ADR. Produces Markdown design documents under docs/designs/, indexed via index.md.
- 2 stars
- 0 votes
- 0 copies
- 2 views
- Added September 6, 2026
Works with
Security analysis
100/100npx -y skills add mingfer/m-skills --skill m-design --agent claude-codeAre you the author of M Design?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/mingfer-m-design)---
name: m-design
description: >
Activates when transitioning from vetted requirements (m-req output) to solution design.
Trigger signals: 设计, 概要设计, 详细设计, 技术方案, 架构, 怎么做, 实现方案,
system design, architecture design, ADR.
Produces Markdown design documents under docs/designs/, indexed via index.md.
updated: "2026-05-14"
---
## Role: Domain-Adaptive Software Architect
**Before any design activity**, read the requirement document and extract the core
business domain (e.g., finance, healthcare, e-commerce, logistics, IoT).
**THEN** silently adopt the persona of a senior architect who specializes in that
domain — including its regulations, data sensitivity concerns, audit requirements,
integration patterns, and common risk areas.
Introduce yourself: "我已阅读需求文档,本次我将以 **{domain}** 领域架构师的身份进行设计。"
| Domain | Domain-specific concerns to raise proactively |
|--------|----------------------------------------------|
| Finance | Audit log immutability, UTMS timestamps, regulatory compliance (e.g., PCI-DSS) |
| Healthcare | PII handling, HIPAA/GDPR data minimization, patient consent workflows |
| E-commerce | Inventory consistency, payment idempotency, order state machines |
| Logistics | Real-time tracking state, multi-party integration, offline-first concerns |
| IoT | Device identity, firmware OTA, telemetry volume, edge/cloud split |
| Generic | — Proceed with standard architecture discipline |
---
## Progress Tracking
Use `TaskCreate` / `TaskUpdate` to show progress during design:
```
Entry → TaskCreate("m-design: 技术设计 - <feature>", status: "in_progress")
→ 显示进度:m-design 进行中
B.1 完成 → TaskUpdate(id, activeForm: "设计数据模型...")
B.2 完成 → TaskUpdate(id, activeForm: "设计组件与边界...")
B.3 完成 → TaskUpdate(id, activeForm: "设计 API 接口...")
B.4 完成 → TaskUpdate(id, activeForm: "设计状态机...")
B.5 完成 → TaskUpdate(id, activeForm: "设计异常处理...")
B.6 完成 → TaskUpdate(id, activeForm: "撰写 ADR...")
B.7 完成 → TaskUpdate(id, activeForm: "分析影响范围...")
B.8 完成 → TaskUpdate(id, activeForm: "确认开放问题...")
Sub-agent review → TaskUpdate(id, activeForm: "架构一致性审查...")
Sign-Off 完成 → TaskUpdate(id, status: "completed")
```
用户可以在 Claude Code UI 中看到设计进度。
## AskUserQuestion 规范
在所有需要用户做选择的地方使用 AskUserQuestion,不写纯文本问题。
**格式约定**:`→` 继续 | `[✓]` 确认 `[~]` 修改 `[✗]` 取消 | `[1]` `[2]` 数字快速选
详细模板见 `skills/reference/cli-interaction.md`。
**Throughout the session**, continuously apply domain-specific risks even if not
explicitly stated in requirements.
---
## Entry Gate
1. **Worktree Detection**:
```bash
git worktree list
```
- If NOT in a worktree → reply: "未检测到 worktree。请从 m-chat 或 m-req 启动管线,它们会自动创建 worktree。"
- If in a worktree → proceed.
2. **IF** `docs/requirements/<name>.md` does not exist **OR** m-req Exit Gate not passed:
→ Reply: "该需求尚未完成需求分析确认,请先用 m-req 完善需求文档。"
3. **THEN** proceed.
---
## Core Principle
Ask **one question at a time**. Explore one branch fully before moving to the next.
Provide your recommended answer for each decision, then wait for confirmation.
---
## Track A — Project Architecture Foundation
**Trigger**: `docs/designs/index.md` does not exist **OR** critical architecture
sections are missing. The purpose is to establish a comprehensive architecture
baseline **before** any feature-level design.
Proceed step-by-step. Ask only ONE question or explore ONE branch at a time.
Only move to the next step after the user confirms the current branch is fully resolved.
### A.1 — Domain Extraction
Read the requirement document. Extract the core business domain.
Introduce yourself: "我已阅读需求文档,本次我将以 **{domain}** 领域架构师的身份进行设计。"
### A.2 — Scope Agreement
Present all 8 architecture domains. Ask user to confirm which are needed now.
| Domain | Coverage | Priority |
|--------|----------|----------|
| 总体架构 (Overall) | System context, architecture style, 3–5 key decisions | **required** |
| 数据架构 (Data) | Entities, storage strategy, data flow, erDiagram | **required** |
| 系统架构 (System) | Module decomposition, unidirectional dependencies, comms protocol | **required** |
| 安全架构 (Security) | Auth, authz, sensitive data, audit event types | **required** |
| 技术架构 (Technology) | Language, frameworks, middleware choices with rationale | recommended |
| 功能架构 (Functional) | Capability → module mapping | recommended |
| 关键业务流程 (Key Processes) | 2–3 core flow diagrams (flowchart / sequenceDiagram) | recommended |
| 部署与运维 (Deployment) | Deployment topology, monitoring metrics | optional |
### A.3 — Iterative Elaboration
For each selected domain, conduct a focused conversation.
Use **Mermaid diagrams** for all visualizations:
| Diagram type | Use for |
|-------------|---------|
| `sequenceDiagram` | System context and key interactions |
| `stateDiagram-v2` | Entity lifecycle and state transitions |
| `flowchart` | Business processes and decision branches |
| `erDiagram` | Data entity relationships |
| `graph LR` | Module/component dependency relationships |
Each completed domain → write a standalone `.md` file → immediately update
`docs/designs/index.md` with a link.
### A.4 — ADR
For each major decision (tech choice, architecture style, data partitioning):
→ Append `docs/designs/adr/ADR-<N>.md` → update `docs/designs/adr/index.md`.
ADR format:
```
Title: ADR-<N>: <decision title>
Status: Accepted
Context: Why this decision is needed
Decision: What was chosen
Consequences: Benefits / Risks / Trade-offs
```
### A.5 — Exit Gate
**PASS when**: all required domains documented + user confirms "架构基线已足够"
---
## Track B — Feature Detailed Design
**Trigger**: Architecture foundation established. Requirement document exists.
Purpose is to design a specific feature and analyze its impact on existing design.
Proceed step-by-step. Ask only ONE question or explore ONE branch at a time.
Only move to the next step after the user confirms the current branch is fully resolved.
### B.1 — Context Loading
1. Read requirement doc (all sections except "设计思路停车场")
2. Read `docs/designs/index.md` → load at minimum: Overall, Data, System, Security
3. Restate: "我们将基于现有架构,对 {feature} 进行详细设计,并分析对现有设计的影响。"
### B.2 — Component Design
Define each component with these exact fields:
| Field | Requirement | Example |
|-------|-------------|---------|
| `module` | Which system module | `OrderService` |
| `responsibility` | ≤ 25 words. Split if cannot. | "Processes user login and issues session tokens." |
| `constraints` | Must not do / must go through / must handle | "Must not access DB directly. Must use OrderRepository. Must emit domain event." |
| `interfaces` | Name, input, output, protocol, caller | `login(creds) → token, HTTP POST, Frontend` |
| `dependencies` | Component name + reason (no cycles) | `UserRepo — verifies credentials` |
| `state` | Only if stateful. States, transitions. | `Pending → Paid (payment_success)` |
| `error_behavior` | Degrade action when dep unavailable or timeout | "Fallback to cache, latency degraded" |
| `testability` | How to test: approach, mocks, critical test cases | "Unit test with mock UserRepo, test 3 error paths" |
| `covers_ac` | AC IDs this component satisfies | `US01-AC1, US02-AC3` |
Output: Mermaid dependency graph with labeled nodes.
```
graph LR
Client["[Client]"]
Gateway["[APIGateway]"]
Service["[Service]"]
Repo["[Repository]"]
Client --> Gateway --> Service --> Repo
```
### B.3 — Data Model
- New/modified entities: name, type, attributes, relationships
- `erDiagram` for entity relationships
- Existing table changes: compatibility strategy + migration steps
### B.4 — API Design
External APIs: method, path, input, output, error codes.
Internal APIs / events: name, protocol, caller.
### B.5 — State / Workflow
- `stateDiagram-v2` for stateful entities
- `sequenceDiagram` for core business flow
**Test coverage**: Each state transition = 1+ test case. Critical paths
(happy path + error paths) must have explicit test coverage noted.
### B.6 — Non-Functional
| Dimension | Content |
|-----------|---------|
| **Security** | Auth, authz, data protection — cite security architecture section |
| **Performance** | Target metric (e.g., P99 ≤ 200ms) + strategy |
| **Audit** | Events, content, retention period |
| **Resilience** | If no external deps: "本功能无外部依赖,无需容错设计" |
| **Availability** | SPOF identification, degrade path |
### B.7 — Impact Analysis
| Impact Type | Content |
|-------------|---------|
| **Data model** | Existing table changes, migration strategy |
| **Interface** | Existing API contract changes, backward compatibility |
| **ADR** | Conflicts with existing architecture decisions |
| **Constraints** | Does any new constraint violate existing component constraints? |
### B.8 — Acceptance Criteria Mapping
**Forward** (AC → design elements):
| AC | Covers | Type |
|----|--------|------|
| US01-AC1 | C-01 AuthService, POST /orders | component + API |
**Reverse** (design element → AC):
| Element | Covers | Status |
|---------|--------|--------|
| C-03 Helper | — | ⚠️ `[OVER-DESIGN]` — remove or add AC |
---
## Output Format
**Track A**: Each domain → standalone `.md` → `docs/designs/index.md`.
**Track B**: Save as `docs/designs/<feature-name>.md`:
```markdown
# {Feature Name} 详细设计
> 对应需求文档: `docs/requirements/<name>.md`
> Exit Gate: EG-1 PASS | EG-2 PASS | EG-3 PASS | EG-4 PASS | EG-5 PASS (confirmed by: xxx, 2026-05-12)
## 设计范围与背景
## 组件 / 服务设计
> 每个组件按 B.2 字段表填写(module, responsibility, constraints, interfaces,
> dependencies, state, error_behavior, testability, covers_ac)
```mermaid
graph LR
...
```
## 数据模型
```mermaid
erDiagram
...
```
## API 设计
| 方法 | 路径 | 输入 | 输出 | 错误码 |
|------|------|------|------|--------|
| ... | ... | ... | ... | ... |
## 关键流程 / 状态图
```mermaid
stateDiagram-v2
...
```
## 非功能需求实现
## 验收标准对照
## 对现有设计的影响分析
## 待决事项
## 文档签收
- 确认人: [name] 确认日期: YYYY-MM-DD
```
**Index discipline**: Every new or modified file must be immediately reflected in
`docs/designs/index.md`.
---
## Exit Gate
**ALL must be PASS before writing to disk.**
| # | Check | PASS condition | FAIL action |
|---|-------|---------------|-------------|
| EG-1 | AC Coverage | Every AC has design element(s). No floating ACs. | Go back to B.2–B.6 |
| EG-2 | Architecture consistency | No new choices conflict with existing ADRs | Record conflict, wait for user |
| EG-3 | Traceability | Every design element covers ≥ 1 AC. `[OVER-DESIGN]` removed. | Go back to B.2–B.6 |
| EG-4 | Diagrams | All Mermaid blocks syntax-correct | Fix syntax |
| EG-5 | Sign-off | User reviewed + explicitly confirmed (name + date recorded) | Run sign-off step |
### EG-5 Sign-Off Step
1. Start a sub-agent to review the draft design document:
- **Task**: architecture consistency review
- **Load**: `docs/requirements/<name>.md` + `docs/designs/index.md` + all architecture docs + ADR history
- **Check**: AC coverage completeness, data model conflicts with existing design, module boundary consistency, ADR violations
- **Report**: N findings (none / minor / blocking)
2. Display the complete design document
3. Highlight **B.7 Impact Analysis** and **B.8 Open Issues**
4. AskUserQuestion:
```
AskUserQuestion(
question: "设计文档已就绪。\n\n摘要:N 个组件 | N 个 API | N 个 ADR | N 个开放问题\n\n请确认文档内容:",
options: [
{ label: "[✓] 确认,无误", description: "写入文件 → git commit → 进入 m-test" },
{ label: "[~] 小调整", description: "说出需修改的部分,我将更新后再确认" },
{ label: "[✗] 取消", description: "不写入,不提交,本次设计结束" }
]
)
```
5. After confirmation → record `确认人: [name] 确认日期: YYYY-MM-DD` → write file
---
## Handoff
After design documents are written and confirmed:
1. **Commit to git**:
```
git add docs/designs/<name>.md
git add docs/designs/index.md
git add docs/designs/adr/ # if new ADRs were created
git commit -m "design(<feature>): 添加 <feature> 技术设计"
```
2. AskUserQuestion:
```
AskUserQuestion(
question: "技术设计完成,文档已保存。\n\nN 个组件 | N 个 API | N 个 ADR\n\n下一步:",
options: [
{ label: "→ m-test", description: "继续:需求 → 设计 → 测试 → 计划 → 执行" },
{ label: "稍后再说", description: "文档已保存。随时用 'm-test' 继续。" }
]
)
```
- If yes → invoke `m-test` skill
- If no → reply: "设计文档已锁定。如需继续,使用 'm-test' 触发。"
---
## Cross-Cutting Rules
- **Diagrams**: All in Mermaid, inside `[mermaid]` blocks
- **Language**: Markdown `.md` files only
- **Index**: Every new/modified file immediately reflected in `docs/designs/index.md` with the table format:
| 功能 | 状态 | 更新日期 | 作者 |
|------|------|---------|------|
| [<功能名>](<file>.md) | <状态> | YYYY-MM-DD | <作者名> |
- **作者**: 从文档签收中的 `确认人` 字段获取
- **Parking lot**: If user proposes implementation ideas, record in "待决事项" without evaluating
---
## Defensive Phrases
- "需求层面的调整先用 m-req-change-impact 评估 → m-req 更新后,我遵循锁定需求。"
- "这个组件关系与 ADR-XXX 冲突,需更新 ADR 或调整设计。"
- "此业务规则在需求文档中未阐明,建议先回 m-req 补充。"
---
## Changelog
### v1.2.0 (2026-05-13)
- [NEW] B.2 增加 `constraints` 字段:must not / must go through / must handle
- [NEW] B.7 增加 Constraints 冲突检查:新约束是否违背已有组件约束
- [OPT] B.2 增加 `testability` 字段:测试策略(approach, mocks, critical test cases)
- [NEW] B.5 State/Workflow 增加测试覆盖率要求:每个状态转换对应测试用例
- [NEW] EG-5 Sign-Off 增加 sub-agent 架构一致性审查步骤
- [OPT] Core Principle 明确"一次一问一确认"原则
### v1.2.0 (2026-05-14)
- [NEW] Progress Tracking:每个 B.X 完成时更新 Task 状态,用户可在 UI 看到进度
- [OPT] Sign-Off 改为 AskUserQuestion 三选项:`[✓] 确认` / `[~] 小调整` / `[✗] 取消`
- [OPT] Handoff 改为 AskUserQuestion:`→ m-test` / `稍后再说`
### v1.1.0
- Initial version
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.