design-feature

Design software features by mapping components, API shape, and data flow.

Updated Dec 21, 2018
One-click install
npx skills add https://github.com/dhnt/dhnt --skill design-feature-dhnt
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: design-feature
Source: https://github.com/dhnt/dhnt/tree/main/catalog/md/plan/design-feature
Command: npx skills add https://github.com/dhnt/dhnt --skill design-feature-dhnt

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It prevents wasted engineering effort by forcing a clear, agreed design for a requested capability before any implementation begins, reducing the risk of incorrect APIs, broken data flows, and late discovery of edge cases.

Core Features & Use Cases

  • Restate and clarify requirements: Identify the intended users, desired outcomes, out-of-scope boundaries, and success criteria so the build targets the right problem.
  • Specify impacted components and API shape: Define what changes, how inputs are validated, what outputs and error cases look like, and what backward-compatibility expectations exist.
  • Design data flow, edge cases, and mitigations: Map where new state comes from and goes, enumerate failure modes and boundary conditions, and list risks with mitigations for safer, more predictable delivery.

Quick Start

Use design-feature to produce a one-page design (feature name, outcome, API, data flow, edge cases, alternatives, risks, affected components, and testing strategy) for the requested change before opening any source files to edit.

Frequently Asked Questions about design-feature

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is feature design in software engineering and why is it needed before implementation?

Feature design prevents wasted engineering effort by clarifying requirements, mapping affected components, and defining API specifications before coding begins. It reduces risks of incorrect APIs, broken data flows, and late discovery of edge cases.

How do I design a new software feature before writing code?

To design a new software feature, restate requirements, map affected components, define API shapes, and document data flow. This process produces a clear one-page design covering edge cases, alternatives, risks, and a focused testing strategy.

What's the best way to document API specifications and data flow for a new feature?

The best way to document API specifications and data flow is by mapping where new state originates and goes, defining input validation, and enumerating output and error cases. This ensures clear documentation of backward-compatibility expectations.

How do I identify edge cases and risk mitigations during the feature planning stage?

To identify edge cases and risk mitigations during feature planning, enumerate failure modes and boundary conditions within the proposed data flow. List associated risks with specific mitigations to ensure safer, more predictable delivery.

Can I use a feature design process for changes impacting persistence and integrations?

Yes, you can use a feature design process for changes impacting persistence and integrations. It applies to planning stage work across product and engineering contexts where changes affect validation, state, and external system boundaries.

What should a software feature testing strategy include during the design phase?

A software feature testing strategy should include a focused plan derived from the documented edge cases, API error cases, and data flow boundaries. Defining this strategy during the design phase prevents late discovery of failure modes.