Skip to content
dapp-sdd:plan logo

dapp-sdd:plan

Use when creating a phased implementation plan from a specification, with review gates after each phase.

SKILL.md

Full skill instructions

Plan Skill

Creates a phased implementation plan with mandatory review gates.

Input

  • .dapp-sdd/​spec.md - The expanded specification
  • dapp-sdd:constitution - Quality standards to follow

Output

A phased plan saved to .dapp-sdd/​plan.md with:

  • Clear phases (small, focused chunks)
  • Review gates after each phase
  • Skill references for each task

Phase Structure

Every plan follows this structure:

Phase 1: Project Setup

  • Verify create-mn-app scaffold
  • Set up linting/​formatting
  • Configure TypeScript strict mode
  • Add .dapp-sdd/ to .gitignore
  • REVIEW GATE

Phase 2: Contract Implementation

  • Create contract skeleton
  • Implement core circuits
  • Add state management
  • REVIEW GATE

Phase 3: TypeScript Integration

  • Create deployment script
  • Create CLI interface
  • Add provider configuration
  • REVIEW GATE

Phase 4: Testing

  • Write contract unit tests
  • Write integration tests
  • Verify all tests pass
  • REVIEW GATE

Phase 5: Documentation & Polish

  • Update README with final documentation
  • Add educational comments
  • Clean up code
  • FINAL REVIEW GATE

Plan Format

# {DApp Name} Implementation Plan

## Phase 1: Project Setup

**Goal:** Establish project foundation with quality tooling

### Tasks
1. Verify create-mn-app scaffold is complete
2. Configure ESLint with strict rules
3. Configure Prettier for formatting
4. Verify TypeScript strict mode
5. Add `.dapp-sdd/` to `.gitignore`

**Skills:** `midnight-tooling:midnight-setup`

### Review Gate
- [ ] `compact-reviewer:compact-reviewer` (if contracts exist)
- [ ] `devs:code-reviewer`

---

## Phase 2: Contract Implementation

**Goal:** Implement the Compact smart contract

### Tasks
1. Create contract skeleton in `contracts/​{name}.compact`
2. Define ledger state
3. Implement circuit: `{circuit_name}`
4. Add witness functions

**Skills:** `compact-core:language-reference`, `compact-core:contract-patterns`, `compact-core:standard-library`

### Review Gate
- [ ] `compact-reviewer:compact-reviewer`
- [ ] `devs:code-reviewer`

---

(Continue for remaining phases...)

Process

  1. Load specification from .dapp-sdd/​spec.md
  2. Load constitution from dapp-sdd:constitution
  3. Analyze user stories to determine complexity
  4. Create appropriate number of phases (typically 4-5)
  5. Assign tasks to phases based on dependencies
  6. Add review gates after each phase
  7. Reference appropriate skills for each phase
  8. Save to .dapp-sdd/​plan.md

Skill References

Reference these skills in the plan:

  • compact-core:contract-patterns - Contract design patterns
  • compact-core:typescript-integration - TS integration patterns
  • midnight-proofs:* - Proof generation approach
  • midnight-tooling:midnight-setup - Tooling configuration

More skills from aaronbassett

compact-core:ledger-adts logo
aaronbassett/midnight-knowledgebase

compact-core:ledger-adts

Use when working with Compact on-chain state management using ledger ADTs including Cell, Counter, Map, Set, List, MerkleTree, or HistoricMerkleTree, or when needing to understand which operations are available in Compact vs TypeScript.

0 0
View
dapp-sdd:implement logo
aaronbassett/midnight-knowledgebase

dapp-sdd:implement

Use when executing implementation tasks with commits after each task and reviews after each phase.

0 0
View
compact-core:clone-examples logo
aaronbassett/midnight-knowledgebase

compact-core:clone-examples

Use when starting a new Midnight project, cloning example contracts (counter, tokens, NFTs, DEX), scaffolding from OpenZeppelin templates, or bootstrapping a Compact contract development environment with working starter code.

0 0
View
midnight-proofs:proof-caching logo
aaronbassett/midnight-knowledgebase

midnight-proofs:proof-caching

Use when caching ZK proofs for performance, implementing proof cache invalidation, storing verification results, caching intermediate proof components, or building distributed proof caches with Redis.

0 0
View
midnight-tooling:midnight-ci logo
aaronbassett/midnight-knowledgebase

midnight-tooling:midnight-ci

Use when setting up CI/CD for Midnight projects, configuring GitHub Actions for Compact contract compilation, running TypeScript tests in CI, validating version consistency, or automating contract builds.

0 0
View
midnight-dapp:proof-handling logo
aaronbassett/midnight-knowledgebase

midnight-dapp:proof-handling

Use when building witness data for ZK proofs, showing proof generation progress to users, implementing disclosure consent flows, handling proof timeouts and retries, or explaining privacy guarantees.

0 0
View
dapp-sdd:constitution logo
aaronbassett/midnight-knowledgebase

dapp-sdd:constitution

Use when implementing any Midnight example dApp to ensure compliance with quality standards and project conventions.

0 0
View
compact-core:typescript-integration logo
aaronbassett/midnight-knowledgebase

compact-core:typescript-integration

Use when implementing witness functions in TypeScript, mapping Compact types to TypeScript (Field→bigint, Bytes→Uint8Array), deploying contracts, calling circuits from TypeScript, reading ledger state, or building Midnight DApps with the JavaScript SDK.

0 0
View
midnight-dapp:state-management logo
aaronbassett/midnight-knowledgebase

midnight-dapp:state-management

Use when reading public ledger state, implementing reactive UI that updates with chain state, caching state for performance, or understanding public vs private state in Midnight DApps.

0 0
View
midnight-proofs:prover-optimization logo
aaronbassett/midnight-knowledgebase

midnight-proofs:prover-optimization

Use when optimizing prover performance, reducing proof generation memory usage, configuring prover infrastructure in Docker or Kubernetes, implementing parallel proof generation, or diagnosing prover bottlenecks.

0 0
View
dapp-sdd:specify logo
aaronbassett/midnight-knowledgebase

dapp-sdd:specify

Use when expanding a README-based dApp description into a full specification with user stories and acceptance criteria.

0 0
View
midnight-tooling:contract-calling logo
aaronbassett/midnight-knowledgebase

midnight-tooling:contract-calling

Use when calling deployed Midnight contracts from Node.js backends, querying contract state, executing state-changing transactions, building API endpoints that interact with contracts, or automating contract interactions.

0 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View