AgentSkillsCN

dapp-sdd:specify

当您将基于README的DApp描述扩展为包含用户故事与验收标准的完整规范时,可选用此功能。

SKILL.md
--- frontmatter
name: dapp-sdd:specify
description: Use when expanding a README-based dApp description into a full specification with user stories and acceptance criteria.

Specify Skill

Expands a user's README.md dApp description into a comprehensive specification.

Input

The user's README.md containing:

  • What the dApp should demonstrate
  • Basic functionality description
  • Any specific requirements or constraints

Output

A structured specification saved to .dapp-sdd/spec.md containing:

1. Overview Section

  • Purpose: What concept this dApp demonstrates
  • Target Audience: Who will learn from this example
  • Learning Outcomes: What developers will understand after studying this

2. User Stories

Format each as:

code
### US{N}: {Title}

**As a** developer learning Midnight
**I want to** {action}
**So that** {benefit}

**Acceptance Criteria:**
- [ ] AC1: {Specific, testable criterion}
- [ ] AC2: {Specific, testable criterion}
- [ ] AC3: {Specific, testable criterion}

3. Technical Requirements

  • Compact Contract: What circuits are needed
  • TypeScript Integration: CLI commands, deployment scripts
  • State Management: What state the contract tracks
  • Privacy Model: What's private vs public

4. Out of Scope

Explicitly list what this example does NOT cover to keep it focused.

Process

  1. Read the README.md content provided
  2. Identify the core concept being demonstrated
  3. Extract functional requirements
  4. Generate 2-4 user stories (keep it minimal for examples)
  5. Define clear acceptance criteria
  6. Document technical requirements
  7. Save to .dapp-sdd/spec.md

Skill References

Invoke these skills to validate the specification:

  • compact-core:language-reference - Verify Compact concepts are correctly referenced
  • midnight-dapp:* - Ensure dApp patterns are appropriate

Example Spec Structure

markdown
# {DApp Name} Specification

## Overview

**Purpose:** Demonstrate {concept} in Midnight
**Target Audience:** Developers learning {topic}
**Learning Outcomes:**
- Understand how to {outcome 1}
- Learn to {outcome 2}

## User Stories

### US1: Basic Contract Interaction

**As a** developer learning Midnight
**I want to** deploy and interact with a simple contract
**So that** I understand the basic development workflow

**Acceptance Criteria:**
- [ ] Contract compiles without errors
- [ ] Contract deploys to local network
- [ ] CLI can call contract circuits

### US2: {Second Story}
...

## Technical Requirements

### Compact Contract
- Circuit: `{name}` - {purpose}
- State: `{field}` - {description}

### TypeScript Integration
- `deploy.ts` - Deployment script
- `cli.ts` - Interactive CLI

### Privacy Model
- Private: {what's private}
- Public: {what's public}

## Out of Scope

- Production deployment
- Error recovery
- Multiple users