make-functional-spec
This skill should be used when the user asks to "create a functional spec", "write a system design", "describe the architecture of a feature", "make a…
Skill by YamiHilik
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/yamihilik-make-functional-spec
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, design, data, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/make-functional-spec
What's inside
- Skill name
make-functional-spec- Description
- This skill should be used when the user asks to "create a functional spec", "write a system design", "describe the architecture of a feature", "make a functional-spec.md", "describe data flows", "define module boundaries", "document integration points", or wants a technical design document that covers subsystems, data flows, interaction contracts, and integration points — without implementation details.
- License
- Apache-2.0
- Instructions
- 82 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- template.md · references/
SKILL.md (first lines)
# Make Functional Spec (System Design)
Produce a `functional-spec.md` — a technical design document that describes the shape of a feature without prescribing implementation details.
The document answers five questions:
1. **What are the modules?** — logical subsystems and their responsibilities
2. **How does data flow?** — path from trigger (UI event / timer / external call) to persistence
3. **What do modules say to each other?** — contracts: function signatures, message payloads, API shapes (types and names, not implementations)
4. **What is the business logic?** — rules, conditions, and state machines in prose or diagrams
5. **What does the existing system look like from the outside?** — which services, tables, or OS APIs are touched
## Process
### Step 1 — Gather context
Read everything relevant before writing:
- The product/feature spec if one exists (look for `feature-spec.md` or `*.spec.md` in the project root)
- The knowledge base if one exists (`.docs/knowledge/README.md`)
- Architecture decision records (`.docs/knowledge/adr/`)
- Source files of the existing system that the feature will integrate with
Ask the user for any missing information rather than inventing it. Typical gaps:
- Which existing services/modules are in scope
- Consistency/transaction requirements between modules
- Preferred diagram syntax (Mermaid is the default)
### Step 2 — Draft the document
Use the template in `references/template.md`. Fill every section; mark sections that are genuinely not applicable with a one-line rationale rather than deleting them.
**Modules section** — one sub-heading per module:
- Name (noun phrase, no verbs)
- Responsibility (one sentence)
- What it does NOT own (avoid ambiguity with sibling modules)
**Data flows section** — one flow per user-visible scenario or async trigger:
- Use a Mermaid `sequenceDiagram` or `flowchart` by default
- Label every arrow with the payload type or function name
- Show error / rejection paths if they exist
**Contracts section** — for each inter-module boundary:
- Function / method signatures (language-agnostic pseudocode is fine)
- Message or event structures (field names + types)
- REST / WebSocket / IPC protocol shapes
- Do NOT include implementation bodies
**Business logic section** — for rules that live inside a single module:
- Numbered decision trees, state diagrams (`stateDiagram-v2`), or prose tables
- Make pre/post conditions explicit
**Integration points section** — a table:
| Entity | Type | Access pattern | Owner module |
|--------|------|----------------|-------------|
One row per external service, OS API, database table, or config file touched.
### Step 3 — Review before writing to disk
Present a one-paragraph summary of the design to the user. Highlight any assumptions made where the spec or source was ambiguous. Invite correction before writing the file.
### Step 4 — Write the file
Write `functional-spec.md` to the project root (or the path the user specifies). Use Markdown with Mermaid code blocks for all diagrams.
After writing, print the file path and a two-sentence summary of the design decisions captured.
## Language
Communicate with the user in Russian and write the document in Russian unless the user explicitly requests a different language. Technical terms, identifiers, and code inside code blocks remain in their original form (English).
## Style rules
- Present tense throughout ("The AudioCapture module records…", not "will record")
- No implementation language in section headers; pseudocode only inside code blocks
- Every diagram must have a title comment (`%% Title`) on the first line
- Keep the document under 600 lines; if it grows larger, split into per-module sub-documents and link from a top-level index
## Additional resources
- **`references/template.md`** — blank document template to copy-fillFrom YamiHilik/SDLCRoom, Apache-2.0.
More from YamiHilik/SDLCRoom
- 0.524score
knowledge-base
YamiHilik
Use this skill whenever you work in this repository — before answering questions about how anything in the project works, before writing or modifying code…
SkillBFreshness: BClaude Code +9 - 0.524score
simplify
YamiHilik
Simplifies code for clarity.
SkillBFreshness: BClaude Code +9 - 0.521score
domain-modelling
YamiHilik
Строй и уточняй доменную модель проекта.
SkillBFreshness: BClaude Code +9 - 0.517score
commit-message
YamiHilik
ALWAYS load this skill as the final step after making any code changes (edit, create, or delete source files).
SkillBFreshness: BClaude Code +9 - 0.516score
estimate-scrum-points
YamiHilik
Используй этот скилл для оценки задач в стори-поинтах SCRUM.
SkillBFreshness: BClaude Code +9 - 0.513score
do-task-one
YamiHilik
Используй этот скилл, когда пользователь дает задание реализовать задачу (программно).
SkillBFreshness: BClaude Code +9 - 0.512score
send-push-to-user
YamiHilik
Отправка пуша пользователю.
SkillBFreshness: BClaude Code +9 - 0.504score
make-plan
YamiHilik
Use this skill when the user asks to "create an implementation plan", "make a plan", "plan the work", "make implementation-plan.md", "создать план…
SkillBFreshness: BClaude Code +9 - 0.504score
make-research
YamiHilik
Use this skill when the user asks to "do research", "research the approach", "compare alternatives", "choose a library", "make a research.md", "исследовать…
SkillBFreshness: BClaude Code +9 - 0.504score
make-tasks
YamiHilik
Use this skill when the user asks to "create tasks", "break down the plan into tasks", "generate tasks", "make tasks", "create issues", "make-tasks", "создать…
SkillBFreshness: BClaude Code +9 - 0.504score
make-ui-spec
YamiHilik
This skill should be used when the user asks to "create a UI spec", "write a UI/UX spec", "describe the interface", "make a ui-spec.md", "document the…
SkillBFreshness: BClaude Code +9 - 0.504score
review-plan
YamiHilik
Use this skill when the user asks to "review the plan", "validate implementation plan", "check the plan", "review implementation-plan.md", "проверить план"…
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 22, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/YamiHilik/SDLCRoom
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from YamiHilik
- 0.524score
simplify
YamiHilik
Simplifies code for clarity.
SkillBFreshness: BClaude Code +9 - 0.524score
knowledge-base
YamiHilik
Use this skill whenever you work in this repository — before answering questions about how anything in the project works, before writing or modifying code…
SkillBFreshness: BClaude Code +9 - 0.521score
domain-modelling
YamiHilik
Строй и уточняй доменную модель проекта.
SkillBFreshness: BClaude Code +9 - 0.517score
commit-message
YamiHilik
ALWAYS load this skill as the final step after making any code changes (edit, create, or delete source files).
SkillBFreshness: BClaude Code +9 - 0.516score
estimate-scrum-points
YamiHilik
Используй этот скилл для оценки задач в стори-поинтах SCRUM.
SkillBFreshness: BClaude Code +9 - 0.513score
do-task-one
YamiHilik
Используй этот скилл, когда пользователь дает задание реализовать задачу (программно).
SkillBFreshness: BClaude Code +9
Cite this page
make-functional-spec skill. Agent Mart. https://agentmart.dev/skills/yamihilik-make-functional-spec (last updated 2026-10-24)