design

Define interfaces, file structures, trade-offs, and verification contracts for nontrivial software changes.

4|Updated Jun 19, 2026
One-click install
npx skills add https://github.com/douglance/sdlc-plugin --skill design-douglance
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: design
Source: https://github.com/douglance/sdlc-plugin/tree/main/.rulesync/skills/design
Command: npx skills add https://github.com/douglance/sdlc-plugin --skill design-douglance

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Nontrivial changes with unsettled interfaces, contracts, or file structures often lead to ambiguous implementations and rework. This Skill turns vague requirements into precise designs with named files, signatures, trade-offs, and verification boundaries before any code is written. ## Core Features & Use Cases - Interface and Contract Definition: Specify the boundaries between components, exact files, and function signatures so implementers face no ambiguity. - Architectural Decision Records: Capture architecturally-significant decisions as ADRs with stakeholder concerns, views, and scored trade-off analysis. - Verification Contracts: Attach a test or typecheck command to each unit of work so every design element is verifiable. - Use Case: Before refactoring a payment module, use this Skill to map the current architecture with path:line evidence, identify prior art, design the new module boundaries, and define how each change will be tested. ## Quick Start Ask the architect agent to design the interfaces, file structure, and verification plan for your planned change before implementation begins.

Frequently Asked Questions about design

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

FAQPage Schema
How do I design software interfaces before implementation?▼

Define the boundaries between components, name the exact files and function signatures, and record the trade-offs of alternatives considered. Attach a test or typecheck command to each unit of work so the design is verifiable.

When should I use a design phase instead of coding directly?▼

Use a design phase when a change has unsettled interfaces, contracts, file structure, or verification boundaries. Trivial changes with clear requirements can proceed directly to implementation without a separate design step.

What is an architecture decision record and when do I write one?▼

An ADR records a decision that is hard to reverse or drives a quality attribute like performance, security, or scalability. Write one for each architecturally-significant decision, listing options scored against the quality attributes that matter.

How do I avoid over-engineering a software design?▼

Require every design element to trace back to a requirement and favor the simplest design that satisfies them. Prefer stable interfaces over clever internals, and apply information hiding so likely-to-change decisions stay behind interfaces.

What are the limitations of upfront design for existing codebases?▼

Designs must be grounded in exact path:line evidence of the current architecture, or they drift from reality. When a design mainly preserves accumulated exceptions, run a simplification analysis with a falsification test before replacing the current model.