name: dapp-sdd:specify description: 用于将基于README的dApp描述扩展为包含用户故事和验收标准的完整规范。
规范制定技能
将用户的README.md dApp描述扩展为一份全面的规范。
输入
用户的README.md,包含:
- dApp应演示的内容
- 基本功能描述
- 任何特定要求或约束
输出
一份结构化规范,保存至 .dapp-sdd/spec.md,包含:
1. 概述部分
- 目的: 此dApp演示的概念
- 目标受众: 将从本示例中学习的人群
- 学习成果: 开发者学习后将会理解的内容
2. 用户故事
每个格式如下:
### US{N}: {标题}
**作为** 一名学习Midnight的开发者
**我希望** {执行的操作}
**以便** {获得的收益}
**验收标准:**
- [ ] AC1: {具体、可测试的标准}
- [ ] AC2: {具体、可测试的标准}
- [ ] AC3: {具体、可测试的标准}
3. 技术要求
- Compact合约: 需要哪些电路
- TypeScript集成: CLI命令、部署脚本
- 状态管理: 合约跟踪哪些状态
- 隐私模型: 哪些是私有的 vs 公开的
4. 范围外
明确列出此示例不涵盖的内容,以保持其专注性。
流程
- 阅读提供的README.md内容
- 识别正在演示的核心概念
- 提取功能需求
- 生成2-4个用户故事(示例保持最小化)
- 定义清晰的验收标准
- 记录技术要求
- 保存到
.dapp-sdd/spec.md
技能参考
调用这些技能以验证规范:
compact-core:language-reference- 验证Compact概念引用是否正确midnight-dapp:*- 确保dApp模式合适
示例规范结构
# {DApp名称} 规范
## 概述
**目的:** 在Midnight中演示{概念}
**目标受众:** 学习{主题}的开发者
**学习成果:**
- 理解如何{成果1}
- 学习如何{成果2}
## 用户故事
### US1: 基础合约交互
**作为** 一名学习Midnight的开发者
**我希望** 部署并与一个简单合约交互
**以便** 我理解基础的开发工作流程
**验收标准:**
- [ ] 合约编译无错误
- [ ] 合约部署到本地网络
- [ ] CLI可以调用合约电路
### US2: {第二个故事}
...
## 技术要求
### Compact合约
- 电路:`{名称}` - {目的}
- 状态:`{字段}` - {描述}
### TypeScript集成
- `deploy.ts` - 部署脚本
- `cli.ts` - 交互式CLI
### 隐私模型
- 私有:{什么是私有的}
- 公开:{什么是公开的}
## 范围外
- 生产部署
- 错误恢复
- 多用户