Skip to content
Agentmart
Submit a tool

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

IndexedApache-2.0
Write a review

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.

We use your email only for this newsletter. Privacy

About

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.

Use cases: documents, design, data, writing

No 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-fill

From YamiHilik/SDLCRoom, Apache-2.0.

More from YamiHilik/SDLCRoom

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from YamiHilik

Cite this page

make-functional-spec skill. Agent Mart. https://agentmart.dev/skills/yamihilik-make-functional-spec (last updated 2026-10-24)