.stencila/skills/software-design-creation/SKILL.md
Create software design specifications for new features or standalone software. Use when the user needs help turning a brief idea into a concrete design spec by eliciting missing requirements, clarifying scope, defining users and constraints, outlining architecture and interfaces, identifying risks and assumptions, and writing acceptance criteria that developers can later use for planning and implementation.
npx skillsauth add stencila/stencila software-design-creationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create a software design specification that developers can use to plan and implement a feature or standalone software system. The skill should expand a minimal or ambiguous prompt into a structured design artifact, asking clarifying questions when important requirements are missing.
Use this skill when the user wants a design spec, technical plan, feature specification, architecture outline, or implementation-ready requirements document. Do not use it when the main task is to write production code, review code, or create a workflow or agent.
.stencila/designs/{name}.md using write_file, where {name} is a concise kebab-case name for the design (e.g. user-auth-flow).stencila/designs/ directory if it does not exist (the write_file tool creates parent directories automatically)edit_file or apply_patch over rewriting the entire fileUse a structure like this when appropriate. Omit sections that do not apply and add sections that materially improve the design.
# <feature or system name>
## Summary
A concise description of the feature or software and the value it delivers.
## Problem
What problem is being solved and for whom.
## Goals
- ...
## Non-goals
- ...
## Users / Actors
- ...
## Scope
### In scope
- ...
### Out of scope
- ...
## Requirements
### Functional requirements
- ...
### Non-functional requirements
- ...
## Design
### Architecture overview
- ...
### Components
- ...
### Data / Interfaces
- ...
## Risks and Assumptions
- ...
## Open Questions
- ...
## Acceptance Criteria
- Given / when / then style criteria, bullet criteria, or numbered criteria
- Criteria should be testable and implementation-relevant
When the prompt is underspecified, ask only the highest-value questions first. Prefer concise questions such as:
If the user cannot answer everything, proceed with explicit assumptions.
Input: "Design a feature for scheduling social media posts"
Output:
Mini spec excerpt:
# Social Media Post Scheduling
## Summary
Enable social media managers to compose posts, preview them, and schedule publication to supported platforms at a future date and time.
## Goals
- let users schedule a post for a specific platform, date, time, and timezone
- prevent invalid or incomplete scheduled posts from being saved
- surface delivery failures clearly so users can retry or edit the post
## Non-goals
- creating new social media platform integrations beyond the supported set
- advanced campaign analytics beyond basic delivery status
## Functional requirements
- users can create, edit, reschedule, and cancel scheduled posts before publication
- the system validates required content and platform-specific constraints before saving
- the system stores the intended publish time with an explicit timezone
## Acceptance Criteria
1. Given a user enters valid post content and a future publish time, when they save the schedule, then the system stores the scheduled post and shows it in the upcoming posts list.
2. Given a user selects a publish time in their local timezone, when the schedule is saved, then the system preserves the timezone and displays the equivalent scheduled time consistently on reload.
3. Given a post violates a platform rule such as character limit, when the user attempts to schedule it, then the system blocks the action and shows a specific validation message.
4. Given a publish attempt fails because of an external platform API error, when the failure is detected, then the system marks the post as failed and provides a visible retry path.
Input: "We need a lightweight internal tool for tracking lab equipment usage"
Output:
documentation
An agent skill providing instructions for AI agents.
testing
Critically review a Stencila workflow and suggest improvements. Use when asked to review, audit, critique, evaluate, or improve a workflow directory or WORKFLOW.md file. Covers frontmatter validation, DOT pipeline quality, workflow structure, agent selection quality, discovery metadata, ephemeral workflow conventions, workflow composition, and adherence to Stencila workflow patterns.
development
Create a new Stencila workflow. Use when asked to create, write, scaffold, or set up a workflow directory or WORKFLOW.md file. Covers workflow discovery, duplicate-name checks, ephemeral workflows, WORKFLOW.md frontmatter, DOT pipeline authoring, goals, agents, branching, composition, and validation.
development
Critically review an existing or proposed Stencila theme artifact for correctness, token usage, target coverage, cross-target portability, dark-mode handling, maintainability, and approval readiness. Use when asked to review, critique, assess, audit, or validate a theme.css file, theme patch, theme plan, site theme, document theme, plot theme, print or PDF theme, check design tokens, assess DOCX or email behavior, review dark mode support, or validate with stencila themes validate.