スキル一覧に戻る
erikpr1994

writing-design

by erikpr1994

0🍴 0📅 2026年1月22日
GitHubで見るManusで実行

SKILL.md


name: writing-design description: "Use when creating design documents, technical specs, architecture decisions, or system documentation. Covers structure, audience, and validation."

Writing Design Documents

No Code Policy

Design documents must be plain prose. No code blocks, no schema definitions, no API examples. Describe architecture and decisions in written English.

Why:

  • Designs should be accessible to all stakeholders
  • Code creates false precision - designs should describe intent, not implementation
  • Prose forces clear thinking about the "why" behind decisions

Overview

Design documents capture decisions, trade-offs, and rationale BEFORE implementation. They prevent rework, align stakeholders, and create institutional knowledge.

When to Use

  • Planning new feature with multiple approaches
  • Making architectural decisions
  • Proposing system changes
  • Documenting API contracts
  • Recording technology choices

Document Types

TypePurposeAudience
RFCPropose significant changesTeam, stakeholders
ADRRecord architecture decisionsFuture developers
Tech SpecDetail implementation approachImplementers
API ContractDefine interface boundariesConsumers, implementers

Structure Template

All design documents should be written in plain prose. Here are the key sections for each type:

RFC (Request for Comments)

An RFC proposes significant changes and needs team buy-in.

Header: Title, status (Draft/Review/Accepted/Rejected), author, date, reviewers.

Summary: One or two paragraphs capturing the essence of the proposal. A busy reader should understand the key points from this alone.

Problem Statement: What problem are we solving? Why is it important now? What's the cost of not solving it?

Goals and Non-Goals: Explicitly state what we're trying to achieve AND what's out of scope. Non-goals prevent scope creep.

Proposed Solution: Describe the approach in prose. Use diagrams if helpful, but no code. Focus on the "what" and "why", not the "how".

Alternatives Considered: List other approaches you evaluated. For each, explain the pros, cons, and why it wasn't chosen. These should be genuine alternatives, not strawmen.

Trade-offs: What are we giving up with this approach? Be honest.

Risks: What could go wrong? For each risk, assess likelihood and impact, and describe the mitigation strategy.

Open Questions: What still needs to be resolved before implementation?

ADR (Architecture Decision Record)

An ADR records a significant architectural decision for future reference.

Header: Number, title, status (Proposed/Accepted/Deprecated/Superseded), date, deciders.

Context: What situation or problem motivated this decision? Provide enough background that someone reading this later understands the constraints.

Decision: What did we decide? State it clearly in one or two sentences.

Consequences: What are the positive outcomes, negative trade-offs, and neutral side effects of this decision?

Alternatives Not Chosen: What other options were considered and why weren't they selected?

Tech Spec

A tech spec details the implementation approach for a specific feature.

Header: Feature name, author, status, target version.

Overview: Brief description of what this feature does and why it matters.

Requirements: Functional requirements (what it must do) and non-functional requirements (performance, security, scalability targets).

Design: Describe the data model, API approach, and component architecture in prose. Explain how pieces fit together and data flows through the system.

Testing Strategy: How will we verify this works? Describe the approach for unit, integration, and end-to-end testing.

Rollout Plan: How will we deploy this? Describe phases if applicable.

Monitoring: What should we watch after deployment to ensure it's working correctly?


Quality Checklist

Content

  • Problem is clearly stated
  • Goals are measurable/verifiable
  • Non-goals explicitly stated
  • Alternatives genuinely considered (not strawmen)
  • Trade-offs acknowledged honestly
  • Risks identified with mitigations

Structure

  • Appropriate template for document type
  • Sections complete (no TODOs in final)
  • Diagrams where text is unclear
  • References linked, not inline

Audience

  • Technical level appropriate for readers
  • Jargon explained or avoided
  • Executive summary for skimmers

Review

  • Self-reviewed before sharing
  • Reviewed by someone not involved
  • Open questions addressed or marked

Common Mistakes

1. Writing After Implementation

Wrong: Document what you built Right: Document decisions BEFORE building

2. Fake Alternatives

Wrong: "Do nothing" or obviously bad options Right: Genuinely viable alternatives you considered

3. Missing Trade-offs

Wrong: Only listing benefits Right: Honest assessment of what you're giving up

4. Too Much Detail

Wrong: Implementation code in design doc Right: Enough detail to make decisions, not implement

5. Stale Documents

Wrong: Design doc never updated Right: Update status, add learnings, link to ADRs


Anti-patterns

Solution disguised as problem:

Bad: "We need to use Redis for caching." This states a solution, not a problem.

Good: "API response times exceed 500ms for dashboard queries, causing poor user experience." This describes the actual problem, leaving solution space open.

Strawman alternatives:

Bad: Listing "do nothing" or obviously terrible options just to make your preferred solution look good.

Good: Presenting genuine alternatives with honest trade-offs. For example, when solving slow API responses, real alternatives might be Redis (fast but operational overhead), in-memory caching (simple but doesn't scale), or CDN edge caching (fast but invalidation is complex). Each has genuine merit.


Integration

Related skills: plan, brainstorm Triggers: design, RFC, ADR, tech spec, architecture, proposal

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です