create-specment 0.2.3 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/bin/commands/create.d.ts.map +1 -1
  2. package/bin/commands/create.js.map +1 -1
  3. package/bin/constants/languages.d.ts +1 -1
  4. package/bin/constants/languages.d.ts.map +1 -1
  5. package/bin/constants/languages.js +3 -3
  6. package/bin/core/interactive-setup.d.ts.map +1 -1
  7. package/bin/core/interactive-setup.js +20 -18
  8. package/bin/core/interactive-setup.js.map +1 -1
  9. package/bin/core/interactive-setup.test.js +11 -11
  10. package/bin/core/interactive-setup.test.js.map +1 -1
  11. package/bin/core/project-generator.d.ts.map +1 -1
  12. package/bin/core/project-generator.js +5 -10
  13. package/bin/core/project-generator.js.map +1 -1
  14. package/bin/features/index.js +12 -12
  15. package/bin/generators/docusaurus-config.js +48 -48
  16. package/bin/generators/docusaurus-config.js.map +1 -1
  17. package/bin/generators/package-json.js +14 -14
  18. package/bin/generators/package-json.js.map +1 -1
  19. package/bin/generators/template-files.d.ts.map +1 -1
  20. package/bin/generators/template-files.js +117 -121
  21. package/bin/generators/template-files.js.map +1 -1
  22. package/bin/index.d.ts.map +1 -1
  23. package/bin/index.js.map +1 -1
  24. package/bin/plugins/i18n-integration.d.ts.map +1 -1
  25. package/bin/plugins/i18n-integration.js +61 -60
  26. package/bin/plugins/i18n-integration.js.map +1 -1
  27. package/bin/plugins/plantuml-integration.d.ts.map +1 -1
  28. package/bin/plugins/plantuml-integration.js +12 -11
  29. package/bin/plugins/plantuml-integration.js.map +1 -1
  30. package/bin/plugins/redoc-integration.d.ts.map +1 -1
  31. package/bin/plugins/redoc-integration.js +13 -12
  32. package/bin/plugins/redoc-integration.js.map +1 -1
  33. package/bin/plugins/search-integration.d.ts.map +1 -1
  34. package/bin/plugins/search-integration.js +15 -11
  35. package/bin/plugins/search-integration.js.map +1 -1
  36. package/bin/templates/index.js +15 -15
  37. package/bin/templates/index.js.map +1 -1
  38. package/bin/templates/template-definitions.d.ts.map +1 -1
  39. package/bin/templates/template-definitions.js +223 -2
  40. package/bin/templates/template-definitions.js.map +1 -1
  41. package/bin/tests/integration.test.js +26 -24
  42. package/bin/tests/integration.test.js.map +1 -1
  43. package/bin/utils/config-merger.d.ts +1 -1
  44. package/bin/utils/config-merger.d.ts.map +1 -1
  45. package/bin/utils/config-merger.js +12 -14
  46. package/bin/utils/config-merger.js.map +1 -1
  47. package/bin/utils/install.d.ts.map +1 -1
  48. package/bin/utils/install.js +28 -4
  49. package/bin/utils/install.js.map +1 -1
  50. package/bin/utils/message-formatter.d.ts.map +1 -1
  51. package/bin/utils/message-formatter.js +1 -0
  52. package/bin/utils/message-formatter.js.map +1 -1
  53. package/bin/utils/template-processor.d.ts.map +1 -1
  54. package/bin/utils/template-processor.js +2 -2
  55. package/bin/utils/template-processor.js.map +1 -1
  56. package/bin/utils/version.js +3 -3
  57. package/bin/utils/version.js.map +1 -1
  58. package/package.json +2 -3
  59. package/templates/docs/01-overview/_assumptions-constraints.mdx +19 -0
  60. package/templates/docs/01-overview/_business-context.mdx +18 -0
  61. package/templates/docs/01-overview/_firm-proposal.mdx +52 -0
  62. package/templates/docs/01-overview/_gap-analysis.mdx +18 -0
  63. package/templates/docs/01-overview/_project/342/200/221charter.mdx +23 -0
  64. package/templates/docs/01-overview/_requirements-specification.mdx +77 -0
  65. package/templates/docs/01-overview/_risks.mdx +16 -0
  66. package/templates/docs/01-overview/_scope.mdx +24 -0
  67. package/templates/docs/01-overview/_stakeholders.mdx +24 -0
  68. package/templates/docs/01-overview/as-is.mdx +64 -0
  69. package/templates/docs/01-overview/glossary.mdx +41 -0
  70. package/templates/docs/01-overview/index.mdx +41 -0
  71. package/templates/docs/01-overview/odsc.mdx +72 -0
  72. package/templates/docs/01-overview/roadmap.mdx +27 -0
  73. package/templates/docs/01-overview/system-context.mdx +22 -0
  74. package/templates/docs/01-overview/to-be.mdx +102 -0
  75. package/templates/docs/02-requirements/_category_.yaml +2 -0
  76. package/templates/docs/02-requirements/functional/_category_.json +8 -0
  77. package/templates/docs/02-requirements/functional/_req-template.mdx +49 -0
  78. package/templates/docs/02-requirements/functional/req-001.mdx +56 -0
  79. package/templates/docs/02-requirements/index.mdx +14 -0
  80. package/templates/docs/02-requirements/non-functional/_category_.json +8 -0
  81. package/templates/docs/02-requirements/non-functional/_nfr-template.mdx +45 -0
  82. package/templates/docs/02-requirements/non-functional/nfr-001.mdx +60 -0
  83. package/templates/docs/02-requirements/non-functional/nfr-002.mdx +60 -0
  84. package/templates/docs/03-external/business-model.mdx +14 -0
  85. package/templates/docs/03-external/img/business-model-by-claude.xml +107 -0
  86. package/templates/docs/03-external/img/business-model.xml +84 -0
  87. package/templates/docs/03-external/img/docsVersionDropdown.png +0 -0
  88. package/templates/docs/03-external/img/gantt.xml +1 -0
  89. package/templates/docs/03-external/img/localeDropdown.png +0 -0
  90. package/templates/docs/03-external/index.mdx +46 -0
  91. package/templates/docs/04-internal/batches/_category_.yaml +2 -0
  92. package/templates/docs/04-internal/batches/import-products.mdx +68 -0
  93. package/templates/docs/04-internal/batches/index.mdx +25 -0
  94. package/templates/docs/04-internal/index.mdx +32 -0
  95. package/templates/docs/04-internal/policies/_category_.yaml +2 -0
  96. package/templates/docs/04-internal/policies/branch-naming-rules.mdx +110 -0
  97. package/templates/docs/04-internal/policies/github.mdx +100 -0
  98. package/templates/docs/04-internal/policies/pull-request-operation-flow.mdx +118 -0
  99. package/templates/docs/04-internal/rules/_category_.yaml +2 -0
  100. package/templates/docs/04-internal/rules/database.mdx +139 -0
  101. package/templates/docs/04-internal/rules/document-creation-rules.mdx +39 -0
  102. package/templates/docs/04-internal/rules/index.mdx +10 -0
  103. package/templates/docs/04-internal/rules/markdown.mdx +148 -0
  104. package/templates/docs/04-internal/rules/review-process.mdx +32 -0
  105. package/templates/docs/04-internal/screens/_category_.yaml +2 -0
  106. package/templates/docs/04-internal/screens/dashboard.mdx +17 -0
  107. package/templates/docs/04-internal/screens/index.mdx +20 -0
  108. package/templates/docs/04-internal/screens/login.mdx +18 -0
  109. package/templates/docs/04-internal/screens/menu.mdx +17 -0
  110. package/templates/docs/04-internal/tables/_category_.yaml +2 -0
  111. package/templates/docs/04-internal/tables/customer_details.mdx +35 -0
  112. package/templates/docs/04-internal/tables/customers.mdx +35 -0
  113. package/templates/docs/04-internal/tables/index.mdx +11 -0
  114. package/templates/docs/example.drawio.svg +57 -0
  115. package/templates/docs/intro.md +47 -0
  116. package/templates/docs/introduction/document-editing/_category_.yml +2 -0
  117. package/templates/docs/introduction/document-editing/how-to.mdx +31 -0
  118. package/templates/docs/introduction/index.mdx +35 -0
  119. package/templates/docs/introduction/operational-policies/_category_.yaml +2 -0
  120. package/templates/docs/introduction/operational-policies/github.mdx +33 -0
  121. package/templates/docs/introduction/operational-policies/img/branch-naming-rules.svg +73 -0
  122. package/templates/docs/introduction/operational-policies/sharepoint.mdx +28 -0
@@ -0,0 +1,22 @@
1
+ ---
2
+ sidebar_position: 13
3
+ tags:
4
+ - Overview
5
+ - Architecture
6
+ ---
7
+
8
+ # システムコンテキスト {#system-context}
9
+
10
+ ## コンテキスト図 {#context-diagram}
11
+ ```pumld
12
+ @startuml
13
+ !include <C4/C4_Container>
14
+ System_Boundary(ec, "EC System") {
15
+ Container(web, "Web Frontend")
16
+ Container(api, "API Server")
17
+ }
18
+ System(billing, "Payment Gateway")
19
+ Rel(web, api, "HTTPS/JSON")
20
+ Rel(api, billing, "REST")
21
+ @enduml
22
+ ```
@@ -0,0 +1,102 @@
1
+ ---
2
+ sidebar_position: 5
3
+ tags:
4
+ - To-Be
5
+ ---
6
+ import { TBD } from '@site/src/components/TBD';
7
+
8
+ # To‑Be - 目指すべき姿
9
+
10
+ <!--
11
+ TBDの使い方
12
+ <TBD/> コンポーネントは未確定項目を可視化するための占位マークです
13
+ 執筆完了後はimport文といっしょにこのコメントも必ず削除すること
14
+ -->
15
+
16
+ ## 概要 {#target-overview}
17
+ 1. 本章で示す「理想状態」と As‑Is との差分を概観する
18
+ 1. ビジネス価値・ユーザ価値・システム観点を 1‒2 文でまとめる
19
+
20
+ ## 改善後業務フロー {#business-flow}
21
+
22
+ :::tip
23
+ 1. BPMN やスイムレーン図で将来の業務プロセスを可視化
24
+ 1. PlantUML を直接埋め込むか、drawio・外部リンクでも可
25
+ :::
26
+
27
+ ```pumld
28
+ @startuml
29
+ skinparam ParticipantPadding 20
30
+ skinparam Shadowing false
31
+
32
+ |顧客|
33
+ start
34
+ :商品閲覧;
35
+ :ワンクリック購入;
36
+ |ECシステム|
37
+ :在庫自動確保;
38
+ :決済トークン発行;
39
+ |決済ゲートウェイ|
40
+ :即時決済承認;
41
+ |ECシステム|
42
+ :出荷指示;
43
+ |倉庫WMS|
44
+ :自動ピッキング;
45
+ |顧客|
46
+ stop
47
+ @enduml
48
+ ```
49
+
50
+ ## システム全体像 {#system-architecture}
51
+
52
+ ```pumld
53
+ @startuml
54
+ !include <C4/C4_Container>
55
+
56
+ System_Boundary(ec, "EC System") {
57
+ Container(web, "Next.js Frontend", "TypeScript/React")
58
+ Container(api, "API Server", "Go + gRPC")
59
+ ContainerDb(db, "PostgreSQL", "Cloud SQL", "商品・注文DB")
60
+ }
61
+ System_Ext(billing, "Payment Gateway")
62
+ System_Ext(cd, "CDN")
63
+
64
+ Rel(web, api, "gRPC+JSON")
65
+ Rel(api, db, "JDBC")
66
+ Rel(api, billing, "REST")
67
+ Rel(web, cd, "HTTPS (static assets)")
68
+ @enduml
69
+ ```
70
+
71
+ 1. <TBD/> (詳細なサブシステム図や構成表を追加)
72
+
73
+ ## 主要機能一覧 {#features}
74
+
75
+ | # | 機能 | 概要 | 優先度 |
76
+ | - | ---- | ---- | ------ |
77
+ | F‑01 | リアルタイム在庫同期 | ERP から Webhook で在庫更新 | High |
78
+ | F‑02 | ワンクリック購入 | 顧客の決済トークンを再利用 | High |
79
+ | F‑03 | レコメンド | 行動ログを用いた個別提案 | Medium |
80
+
81
+ ## 非機能要求サマリ {#non-functional-requirements}
82
+
83
+ | 項目 | 目標値 | 備考 |
84
+ | ---- | ------ | ---- |
85
+ | 可用性 | 99.9 %以上 | マルチ AZ |
86
+ | 性能 | 平均応答 200 ms 以下 | Peak 500 ms 以下 |
87
+ | セキュリティ | OWASP Top‑10 準拠 | WAF / CSP |
88
+
89
+ ## 移行方針・ロードマップ {#migration-strategy}
90
+
91
+ 1. **フェーズ1: MVP**
92
+ 1. カタログ閲覧 + 決済 (限定 SKU)
93
+ 1. **フェーズ2: Full Launch**
94
+ 1. 全 SKU 移行・レコメンド ON
95
+ 1. **フェーズ3: Continuous Improvement**
96
+ 1. A/B テスト・パフォーマンス最適化
97
+
98
+ ## 期待効果・成功要因 {#expected-effects}
99
+
100
+ 1. 売上 +20 %、離脱率 15 % → 8 %
101
+ 1. 運用工数 月 40 h 削減
102
+ 1. ユーザ満足度 (NPS) +15
@@ -0,0 +1,2 @@
1
+ label: '要件定義'
2
+ position: 1
@@ -0,0 +1,8 @@
1
+ {
2
+ "label": "要件定義一覧",
3
+ "position": 2,
4
+ "link": {
5
+ "type": "generated-index",
6
+ "description": "こんなことやあんなこと"
7
+ }
8
+ }
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: req-001
3
+ title: 要求タイトル
4
+ sidebar_label: REQ-001:要求タイトル
5
+ description: 要求の簡単な説明
6
+ tags: [タグ1, タグ2]
7
+ urgency: 5
8
+ importance: 5
9
+ draft: true
10
+ ---
11
+ import { PriorityMatrix } from '@site/src/components/PriorityMatrix';
12
+ import { TagList } from '@site/src/components/Tag';
13
+
14
+ <TagList tags={frontMatter.tags} />
15
+
16
+ <!-- <div style={{ marginBottom: "1rem" }}>
17
+ {frontMatter.tags.map((tag) => (
18
+ <Tag key={tag} name={tag} />
19
+ ))}
20
+ </div> -->
21
+
22
+ ## 概要
23
+ <!-- 1-2文で要求の概要を記述 -->
24
+
25
+ ## 詳細要件
26
+ <!-- 箇条書きで具体的な要件を記述 -->
27
+ - 要件1
28
+ - 要件2
29
+ - 要件3
30
+
31
+ ## 受け入れ基準
32
+ <!-- この要求が満たされたと判断できる基準を記述 -->
33
+ - [ ] 基準1
34
+ - [ ] 基準2
35
+
36
+ ## 関連する非機能要件
37
+ <!-- 関連するNFRへのリンク -->
38
+ - [NFR-001:パフォーマンス要件](../non-functional/nfr-001.mdx)
39
+
40
+ ## 参考情報
41
+ <!-- 追加の情報、図表、リンクなど -->
42
+
43
+ export const changes = [
44
+ {
45
+ date: "2025-01-02",
46
+ author: "作成者名",
47
+ changes: "初版作成",
48
+ },
49
+ ]
@@ -0,0 +1,56 @@
1
+ ---
2
+ id: req-001
3
+ title: ユーザー認証機能
4
+ sidebar_label: REQ-001:ユーザー認証
5
+ description: システムへのアクセスを制御するための認証機能
6
+ tags: [認証, セキュリティ, ユーザー管理]
7
+ urgency: 7
8
+ importance: 8
9
+ ---
10
+ import { PriorityMatrix } from '@site/src/components/PriorityMatrix';
11
+ import { TagList } from '@site/src/components/Tag';
12
+ // import { ChangeHistoryComponent } from '@site/src/components/ChangeHistory';
13
+
14
+ <TagList tags={frontMatter.tags} />
15
+
16
+ <PriorityMatrix urgency={frontMatter.urgency} importance={frontMatter.importance} />
17
+
18
+ <!-- <div style={{ marginBottom: "1rem" }}>
19
+ {frontMatter.tags.map((tag) => (
20
+ <Tag key={tag} name={tag} />
21
+ ))}
22
+ </div> -->
23
+
24
+ ## 概要
25
+ システムへのアクセスを制御するためのユーザー認証機能を提供する。
26
+
27
+ ## 詳細要件
28
+ 1. ユーザーはメールアドレスとパスワードでログインできること
29
+ 1. パスワードは8文字以上であること
30
+ 1. 2要素認証に対応すること
31
+ 1. パスワードリセット機能を提供すること
32
+
33
+ ## 受け入れ基準
34
+ - [ ] 正しい認証情報でログインできる
35
+ - [ ] 誤った認証情報ではログインできない
36
+ - [ ] パスワードリセットメールが送信される
37
+ - [ ] 2要素認証が正常に機能する
38
+
39
+ ## 関連する非機能要件
40
+ 1. [NFR-001:セキュリティ要件](../non-functional/nfr-001.mdx)
41
+ 1. [NFR-002:パフォーマンス要件](../non-functional/nfr-002.mdx)
42
+
43
+ ## 参考情報
44
+ - [OWASP認証のベストプラクティス](https://owasp.org/)
45
+
46
+ ## 更新履歴
47
+
48
+ export const changes = [
49
+ {
50
+ date: "2025-01-02",
51
+ author: "作成者名",
52
+ changes: "初版作成",
53
+ },
54
+ ]
55
+
56
+ {/* <ChangeHistoryComponent changes={changes} /> */}
@@ -0,0 +1,14 @@
1
+ ---
2
+ id: index
3
+ sidebar_position: 1
4
+ ---
5
+ # 要件定義
6
+
7
+ :::note Note
8
+ 1. 編集途中
9
+ :::
10
+
11
+ :::tip Tip
12
+ 1. 要件定義の目的はシステムが完成した時のイメージを共有すること
13
+ 1. 成果物の認識がブレてしまうと、時間のロス、果ては作り直しになってしまうこともある
14
+ :::
@@ -0,0 +1,8 @@
1
+ {
2
+ "label": "非機能要件一覧",
3
+ "position": 3,
4
+ "link": {
5
+ "type": "generated-index",
6
+ "description": "非機能のあれやこれ"
7
+ }
8
+ }
@@ -0,0 +1,45 @@
1
+ ---
2
+ id: nfr-template
3
+ title: 非機能要件テンプレート
4
+ sidebar_label: NFR-XXX:タイトル
5
+ description: 非機能要件の説明
6
+ tags: [タグ1, タグ2]
7
+ draft: true
8
+ ---
9
+
10
+ import { PriorityMatrix } from '@site/src/components/PriorityMatrix';
11
+ import { TagList } from '@site/src/components/Tag';
12
+ import { ChangeHistoryComponent } from '@site/src/components/ChangeHistory';
13
+
14
+ <TagList tags={frontMatter.tags} />
15
+
16
+ <PriorityMatrix urgency={frontMatter.urgency} importance={frontMatter.importance} />
17
+
18
+ ## 概要
19
+ <!-- 非機能要件の概要を記述 -->
20
+
21
+ ## 詳細要件
22
+ ### カテゴリ1
23
+ <!-- 要件の詳細を記述 -->
24
+
25
+ ### カテゴリ2
26
+ <!-- 要件の詳細を記述 -->
27
+
28
+ ## 測定方法
29
+ <!-- 要件の達成を測定する方法を記述 -->
30
+
31
+ ## 制約条件
32
+ <!-- 制約条件があれば記述 -->
33
+
34
+ ## 関連する機能要件
35
+ <!-- 関連する機能要件へのリンク -->
36
+
37
+ export const changes = [
38
+ {
39
+ date: "2025-01-02",
40
+ author: "作成者名",
41
+ changes: "初版作成",
42
+ },
43
+ ]
44
+
45
+ <ChangeHistoryComponent changes={changes} />
@@ -0,0 +1,60 @@
1
+ ---
2
+ id: nfr-001
3
+ title: セキュリティ要件
4
+ sidebar_label: NFR-001:セキュリティ要件
5
+ description: システム全体のセキュリティに関する非機能要件
6
+ tags: [セキュリティ, SLA]
7
+ urgency: 9
8
+ importance: 9
9
+ ---
10
+
11
+ import { PriorityMatrix } from '@site/src/components/PriorityMatrix';
12
+ import { TagList } from '@site/src/components/Tag';
13
+
14
+ <TagList tags={frontMatter.tags} />
15
+
16
+ <PriorityMatrix urgency={frontMatter.urgency} importance={frontMatter.importance} />
17
+
18
+ ## 概要
19
+ システム全体のセキュリティに関する要件を定義する。
20
+
21
+ ## 性能要件
22
+ ### レスポンス時間
23
+ 1. 画面表示:2秒以内
24
+ 1. API応答:1秒以内
25
+ 1. バッチ処理:指定された時間枠内で完了
26
+
27
+ ### スループット
28
+ 1. 同時接続ユーザー数:1000ユーザー
29
+ 1. トランザクション処理:100 TPS
30
+
31
+ ### リソース使用
32
+ 1. CPU使用率:平常時80%以下
33
+ 1. メモリ使用率:平常時70%以下
34
+ 1. ストレージ使用率:80%以下
35
+
36
+ ## 監視要件
37
+ 1. APMツールによる常時監視
38
+ 1. パフォーマンスメトリクスの収集
39
+ 1. アラート閾値の設定
40
+
41
+ ## 測定方法
42
+ 1. 負荷テストツール:JMeter
43
+ 1. 監視ツール:Datadog
44
+ 1. 測定間隔:5分
45
+
46
+ ## 関連する機能要件
47
+ 1. [REQ-001:ユーザー認証](../functional/req-001.mdx)
48
+
49
+ export const changes = [
50
+ {
51
+ date: "2024-01-15",
52
+ author: "鈴木次郎",
53
+ changes: "監視要件の追加",
54
+ },
55
+ {
56
+ date: "2024-01-01",
57
+ author: "山田太郎",
58
+ changes: "初版作成",
59
+ },
60
+ ]
@@ -0,0 +1,60 @@
1
+ ---
2
+ id: nfr-002
3
+ title: システムパフォーマンス要件
4
+ sidebar_label: NFR-002:パフォーマンス
5
+ description: システム全体のパフォーマンスに関する非機能要件
6
+ tags: [パフォーマンス, SLA]
7
+ urgency: 4
8
+ importance: 8
9
+ ---
10
+
11
+ import { PriorityMatrix } from '@site/src/components/PriorityMatrix';
12
+ import { TagList } from '@site/src/components/Tag';
13
+
14
+ <TagList tags={frontMatter.tags} />
15
+
16
+ <PriorityMatrix urgency={frontMatter.urgency} importance={frontMatter.importance} />
17
+
18
+ ## 概要
19
+ システム全体のパフォーマンスに関する要件を定義する。
20
+
21
+ ## 性能要件
22
+ ### レスポンス時間
23
+ 1. 画面表示:2秒以内
24
+ 1. API応答:1秒以内
25
+ 1. バッチ処理:指定された時間枠内で完了
26
+
27
+ ### スループット
28
+ 1. 同時接続ユーザー数:1000ユーザー
29
+ 1. トランザクション処理:100 TPS
30
+
31
+ ### リソース使用
32
+ 1. CPU使用率:平常時80%以下
33
+ 1. メモリ使用率:平常時70%以下
34
+ 1. ストレージ使用率:80%以下
35
+
36
+ ## 監視要件
37
+ 1. APMツールによる常時監視
38
+ 1. パフォーマンスメトリクスの収集
39
+ 1. アラート閾値の設定
40
+
41
+ ## 測定方法
42
+ 1. 負荷テストツール:JMeter
43
+ 1. 監視ツール:Datadog
44
+ 1. 測定間隔:5分
45
+
46
+ ## 関連する機能要件
47
+ 1. [REQ-001:ユーザー認証](../functional/req-001.mdx)
48
+
49
+ export const changes = [
50
+ {
51
+ date: "2024-01-15",
52
+ author: "鈴木次郎",
53
+ changes: "監視要件の追加",
54
+ },
55
+ {
56
+ date: "2024-01-01",
57
+ author: "山田太郎",
58
+ changes: "初版作成",
59
+ },
60
+ ]
@@ -0,0 +1,14 @@
1
+ ---
2
+ sidebar_position: 2
3
+ hide_table_of_contents: true
4
+ ---
5
+ # ビジネスモデル図
6
+
7
+ import BusinessModel from '@site/static/img/business-model.drawio.svg';
8
+
9
+ <BusinessModel aria-label='ビジネスモデル' width='100%' height='auto' role='img' />
10
+
11
+ 1. 参考
12
+ 1. https://drawio-app.com/blog/business-model-canvas/
13
+ 1. note: 『ビジネスの仕組みがわかる 図解のつくりかた』全文公開
14
+ 1. https://note.com/bizgram/n/n3dbed12f95ea
@@ -0,0 +1,107 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="700" height="600" viewBox="0 0 700 600" style="background-color: #ffecdb;">
4
+ <!-- 人物アイコン:販売者 -->
5
+ <circle cx="175" cy="80" r="30" fill="none" stroke="black" stroke-width="2" />
6
+ <path d="M 175 110 L 175 160 M 145 130 L 205 130" fill="none" stroke="black" stroke-width="2" />
7
+ <text x="175" y="190" text-anchor="middle" font-family="Arial" font-size="16" font-weight="bold">販売者</text>
8
+ <text x="175" y="215" text-anchor="middle" font-family="Arial" font-size="14">商品を売りたい</text>
9
+
10
+ <!-- 人物アイコン:購入者 -->
11
+ <circle cx="525" cy="80" r="30" fill="none" stroke="black" stroke-width="2" />
12
+ <path d="M 525 110 L 525 160 M 495 130 L 555 130" fill="none" stroke="black" stroke-width="2" />
13
+ <text x="525" y="190" text-anchor="middle" font-family="Arial" font-size="16" font-weight="bold">購入者</text>
14
+ <text x="525" y="215" text-anchor="middle" font-family="Arial" font-size="14">商品を買いたい</text>
15
+
16
+ <!-- Amazon -->
17
+ <rect x="300" y="250" width="100" height="100" rx="10" ry="10" fill="white" stroke="black" stroke-width="2" />
18
+ <text x="350" y="290" text-anchor="middle" font-family="Arial" font-size="16" font-weight="bold">Amazon</text>
19
+ <text x="350" y="310" text-anchor="middle" font-family="Arial" font-size="12">プラットフォーム</text>
20
+ <text x="350" y="330" text-anchor="middle" font-family="Arial" font-size="12">運営</text>
21
+
22
+ <!-- 倉庫アイコン -->
23
+ <rect x="100" y="400" width="80" height="60" fill="white" stroke="black" stroke-width="2" />
24
+ <polygon points="100,400 140,360 180,400" fill="white" stroke="black" stroke-width="2" />
25
+ <rect x="115" y="420" width="25" height="25" fill="none" stroke="black" stroke-width="1" />
26
+ <text x="140" y="490" text-anchor="middle" font-family="Arial" font-size="16" font-weight="bold">FBA倉庫</text>
27
+
28
+ <!-- 商品アイコン -->
29
+ <circle cx="525" cy="400" r="40" fill="#b7e1a1" stroke="black" stroke-width="2" />
30
+ <text x="525" y="405" text-anchor="middle" font-family="Arial" font-size="16" font-weight="bold">商品</text>
31
+
32
+ <!-- Amazon物流センター -->
33
+ <rect x="300" y="500" width="100" height="70" fill="white" stroke="black" stroke-width="2" />
34
+ <rect x="310" y="510" width="20" height="20" fill="none" stroke="black" stroke-width="1" />
35
+ <rect x="340" y="510" width="20" height="20" fill="none" stroke="black" stroke-width="1" />
36
+ <rect x="370" y="510" width="20" height="20" fill="none" stroke="black" stroke-width="1" />
37
+ <rect x="310" y="540" width="20" height="20" fill="none" stroke="black" stroke-width="1" />
38
+ <rect x="340" y="540" width="20" height="20" fill="none" stroke="black" stroke-width="1" />
39
+ <rect x="370" y="540" width="20" height="20" fill="none" stroke="black" stroke-width="1" />
40
+ <text x="350" y="590" text-anchor="middle" font-family="Arial" font-size="16" font-weight="bold">物流センター</text>
41
+
42
+ <!-- 矢印と説明 -->
43
+ <!-- 販売者 → Amazon -->
44
+ <path d="M 175 220 L 175 260 L 295 260" fill="none" stroke="black" stroke-width="2" marker-end="url(#arrow)" />
45
+ <text x="200" y="250" text-anchor="start" font-family="Arial" font-size="14">出品</text>
46
+ <circle cx="235" cy="260" r="15" fill="#b7e1a1" stroke="black" stroke-width="1" />
47
+ <!-- 販売者 → FBA倉庫 -->
48
+ <path d="M 140 220 L 140 400" fill="none" stroke="black" stroke-width="2" marker-end="url(#arrow)" />
49
+ <text x="100" y="300" text-anchor="middle" font-family="Arial" font-size="14">商品</text>
50
+ <text x="100" y="320" text-anchor="middle" font-family="Arial" font-size="14">発送</text>
51
+
52
+ <!-- Amazon → 購入者 -->
53
+ <path d="M 405 260 L 525 260 L 525 220" fill="none" stroke="black" stroke-width="2" marker-end="url(#arrow)" />
54
+ <text x="465" y="250" text-anchor="middle" font-family="Arial" font-size="14">販売</text>
55
+ <circle cx="465" cy="260" r="15" fill="#b7e1a1" stroke="black" stroke-width="1" />
56
+
57
+ <!-- Amazon → 商品 -->
58
+ <path d="M 400 300 L 525 300 L 525 355" fill="none" stroke="black" stroke-width="2" marker-end="url(#arrow)" />
59
+ <text x="465" y="320" text-anchor="middle" font-family="Arial" font-size="14">商品情報</text>
60
+
61
+ <!-- FBA倉庫 → 物流センター -->
62
+ <path d="M 140 460 L 140 535 L 295 535" fill="none" stroke="black" stroke-width="2" marker-end="url(#arrow)" />
63
+ <text x="200" y="525" text-anchor="middle" font-family="Arial" font-size="14">在庫移動</text>
64
+
65
+ <!-- 物流センター → 購入者 -->
66
+ <path d="M 405 535 L 580 535 L 580 220" fill="none" stroke="black" stroke-width="2" marker-end="url(#arrow)" />
67
+ <text x="500" y="555" text-anchor="middle" font-family="Arial" font-size="14">配送</text>
68
+
69
+ <!-- 購入者 → Amazon -->
70
+ <path d="M 490 190 L 350 190 L 350 245" fill="none" stroke="black" stroke-width="2" stroke-dasharray="5,5" marker-end="url(#arrow)" />
71
+ <text x="400" y="180" text-anchor="middle" font-family="Arial" font-size="14">支払い</text>
72
+ <text x="400" y="200" text-anchor="middle" font-family="Arial" font-size="14">(¥)</text>
73
+
74
+ <!-- Amazon → 販売者 -->
75
+ <path d="M 350 155 L 350 130 L 210 130" fill="none" stroke="black" stroke-width="2" stroke-dasharray="5,5" marker-end="url(#arrow)" />
76
+ <text x="280" y="120" text-anchor="middle" font-family="Arial" font-size="14">売上金</text>
77
+ <text x="280" y="140" text-anchor="middle" font-family="Arial" font-size="14">(手数料差引後)</text>
78
+
79
+ <!-- マーケットプレイス手数料の説明 -->
80
+ <rect x="450" y="440" width="180" height="70" fill="#ffcccc" stroke="black" stroke-width="1" rx="5" ry="5" />
81
+ <text x="540" y="465" text-anchor="middle" font-family="Arial" font-size="14">販売手数料</text>
82
+ <text x="540" y="485" text-anchor="middle" font-family="Arial" font-size="14">販売価格の8-15%</text>
83
+
84
+ <!-- FBAの説明 -->
85
+ <rect x="50" y="520" width="180" height="60" fill="#ffcccc" stroke="black" stroke-width="1" rx="5" ry="5" />
86
+ <text x="140" y="545" text-anchor="middle" font-family="Arial" font-size="14">FBA(フルフィルメント)</text>
87
+ <text x="140" y="565" text-anchor="middle" font-family="Arial" font-size="14">保管・配送代行サービス</text>
88
+
89
+ <!-- 矢印マーカー -->
90
+ <defs>
91
+ <marker id="arrow" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
92
+ <path d="M0,0 L0,6 L9,3 z" fill="black" />
93
+ </marker>
94
+ </defs>
95
+
96
+ <!-- Amazonのロゴ -->
97
+ <g transform="translate(320, 275) scale(0.03)">
98
+ <path d="M1858.7,806c-48,35.3-117.4,54-177.3,54c-84,0-159.6-31-216.8-82.7c-4.5-4-0.5-9.5,4.9-6.4 c62.3,36,139.2,57.7,218.6,57.7c53.7,0,112.7-11.1,167.1-34c8.2-3.5,15,5.3,7.1,11.4H1858.7z" fill="black"/>
99
+ <path d="M1900,758.2c-6.1-7.8-40.6-3.7-56.1-1.9c-4.7,0.6-5.4-3.5-1.2-6.5c27.5-19.3,72.6-13.7,77.8-7.3 c5.2,6.5-1.4,51.1-26.8,72.4c-3.9,3.3-7.6,1.5-5.9-2.8C1893.6,797.1,1906.1,766,1900,758.2L1900,758.2z" fill="black"/>
100
+ <path d="M1696.1,482.8v-58.5c0-8.9,6.7-14.8,14.8-14.8h263.1c8.4,0,15.1,6,15.1,14.8V467c0,8.4-7.2,19.4-19.7,36.8 l-136.2,194.6c50.6-1.2,104-6.3,149.8-31.5c10.3-5.7,13.1-14,13.9-22.2v-60.6c0-8.3,6.9-15.1,15.3-15.1h50.4 c8.6,0,15.7,6.7,15.7,15.1v101.4c0,8-5.5,17.7-15.1,24.3c-39.7,33.1-86.5,48.6-127.9,60.5c-9.7,2.7-15.7,5.4-22.7,9.9 c-15.1,10-38.6,15.7-56.3,15.7H1710c-8.3,0-15.1-6.7-15.1-15.1v-56.8c0-10.8,0.8-18.5,7.8-28.7L1855,537h-144.3 C1702.6,497.9,1695.9,491.2,1696.1,482.8z" fill="black"/>
101
+ <path d="M676.3,802.8h-54.3c-5.2-0.3-9.3-4.3-9.7-9.2V488.9c0-5.6,4.7-10,10.4-10h50.6c5.2,0.3,9.5,4.3,9.9,9.3v39.8h1 c13.2-35.2,38.1-51.6,71.6-51.6c34,0,55.3,16.4,70.6,51.6c13.2-35.2,43.1-51.6,75.1-51.6c22.8,0,47.6,9.4,62.8,30.4 c17.2,23.3,13.7,57.1,13.7,86.9v174.9c0,5.6-4.7,10-10.4,10h-54.1c-5.4-0.3-9.7-4.7-9.7-10V577.7c0-13,1.2-45.5-1.7-57.9 c-4.5-20.8-18-26.6-35.4-26.6c-14.6,0-29.8,9.7-36,25.3c-6.2,15.6-5.6,41.6-5.6,59.2v215.2c0,5.6-4.7,10-10.4,10h-54.1 c-5.5-0.3-9.7-4.7-9.7-10V577.7c0-34.4,5.7-85-36.9-85c-43.1,0-41.4,49.3-41.4,85v215.2C686.8,798.4,682,802.8,676.3,802.8z" fill="black"/>
102
+ <path d="M2139,469.3c80.3,0,123.7,68.9,123.7,156.6c0,84.7-48,152-123.7,152c-78.8,0-121.8-68.9-121.8-154.8 C2017.2,537.3,2060.9,469.3,2139,469.3z M2139,517.7c-39.9,0-42.4,54.4-42.4,88.3c0,33.9-0.5,106.4,42,106.4 c42,0,44.1-58.7,44.1-94.3c0-23.5-1-51.6-8.1-73.9C2167.1,526.6,2154.9,517.7,2139,517.7z" fill="black"/>
103
+ <path d="M2469.9,802.8h-53.9c-5.4-0.3-9.7-4.7-9.7-10V489.6c0.4-5,4.8-8.9,10-8.9h50.2c4.5,0.2,8.3,3.3,9.3,7.5v46.9h1 c15.1-38,36.3-56.3,73.6-56.3c24.2,0,47.8,8.7,62.9,32.7c14.1,22.2,14.1,59.6,14.1,86.4v173.3c-0.6,4.8-4.9,8.6-10,8.6h-54.3 c-4.8-0.3-8.8-3.9-9.5-8.6V611.7c0-33.9,3.9-83.7-37.9-83.7c-14.7,0-28.2,9.9-35,24.8c-8.5,19-9.7,37.9-9.7,58.9v181.2 C2480,798.4,2475.3,802.8,2469.9,802.8L2469.9,802.8z" fill="black"/>
104
+ <path d="M1082.1,651.2c0,21.2,0.5,38.9-10.2,57.7c-8.6,15.4-22.3,24.8-37.6,24.8c-20.8,0-33-15.9-33-39.4 c0-46.3,41.5-54.7,80.8-54.7V651.2z M1136.9,802.4c-3.6,3.2-8.7,3.4-12.7,1.3c-17.9-14.9-21.1-21.8-30.9-35.9 c-29.5,30.1-50.5,39.1-88.7,39.1c-45.3,0-80.5-28-80.5-83.8c0-43.6,23.6-73.4,57.4-87.8c29.2-12.8,70-15.1,101.2-18.6v-7 c0-12.8,1-28-6.5-39.1c-6.5-9.9-19.1-14-30.2-14c-20.5,0-38.8,10.5-43.3,32.3c-0.9,4.8-4.4,9.5-9.2,9.7l-52.5-5.7 c-4.4-1-9.3-4.6-8.1-11.4c12.1-63.9,69.8-83.1,121.3-83.1c26.4,0,60.9,7,81.7,27c26.4,24.6,23.9,57.4,23.9,93.1v84.4 c0,25.3,10.5,36.4,20.3,50.1c3.4,4.8,4.2,10.6-0.2,14.2C1168,775.9,1148.7,794.2,1136.9,802.4L1136.9,802.4z" fill="black"/>
105
+ <path d="M345.5,651.2c0,21.2,0.5,38.9-10.2,57.7c-8.6,15.4-22.2,24.8-37.6,24.8c-20.8,0-33-15.9-33-39.4 c0-46.3,41.5-54.7,80.8-54.7V651.2z M400.3,802.4c-3.6,3.2-8.7,3.4-12.7,1.3c-17.9-14.9-21.1-21.8-30.9-35.9 c-29.5,30.1-50.5,39.1-88.7,39.1c-45.3,0-80.5-28-80.5-83.8c0-43.6,23.6-73.4,57.4-87.8c29.2-12.8,70-15.1,101.2-18.6v-7 c0-12.8,1-28-6.5-39.1c-6.5-9.9-19.1-14-30.2-14c-20.5,0-38.8,10.5-43.3,32.3c-0.9,4.8-4.4,9.5-9.2,9.7l-52.5-5.7 c-4.4-1-9.3-4.6-8.1-11.4c12.1-63.9,69.8-83.1,121.3-83.1c26.4,0,60.9,7,81.7,27c26.4,24.6,23.9,57.4,23.9,93.1v84.4 c0,25.3,10.5,36.4,20.3,50.1c3.4,4.8,4.2,10.6-0.2,14.2C431.4,775.9,412.1,794.2,400.3,802.4L400.3,802.4z" fill="black"/>
106
+ </g>
107
+ </svg>
@@ -0,0 +1,84 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <mxfile host="app.diagrams.net" modified="2025-05-10T08:00:00.000Z" agent="ChatGPT" etag="AmazonBizModel" version="21.6.7" type="device">
3
+ <diagram id="amazon-biz-model" name="Amazon Business Model">
4
+ <mxGraphModel dx="1250" dy="750" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
5
+ <root>
6
+ <mxCell id="0"/>
7
+ <mxCell id="1" parent="0"/>
8
+
9
+ <!-- カスタマー -->
10
+ <mxCell id="customer" value="顧客\n(買い手)" style="shape=mxgraph.people.user;html=1;fillColor=#fff2cc;strokeColor=#666666;fontStyle=1;" vertex="1" parent="1">
11
+ <mxGeometry x="40" y="40" width="120" height="120" as="geometry"/>
12
+ </mxCell>
13
+
14
+ <!-- Amazon Marketplace -->
15
+ <mxCell id="marketplace" value="Amazon\nマーケットプレイス" style="shape=mxgraph.basic.rect;rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#4b830d;fontStyle=1;" vertex="1" parent="1">
16
+ <mxGeometry x="220" y="60" width="160" height="80" as="geometry"/>
17
+ </mxCell>
18
+
19
+ <!-- セラー -->
20
+ <mxCell id="seller" value="セラー\n(出品者)" style="shape=mxgraph.people.user;html=1;fillColor=#fff2cc;strokeColor=#666666;fontStyle=1;" vertex="1" parent="1">
21
+ <mxGeometry x="440" y="40" width="120" height="120" as="geometry"/>
22
+ </mxCell>
23
+
24
+ <!-- フルフィルメントセンター -->
25
+ <mxCell id="fba" value="Amazon FC\n(FBA倉庫)" style="shape=mxgraph.office.storage;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;" vertex="1" parent="1">
26
+ <mxGeometry x="320" y="200" width="140" height="100" as="geometry"/>
27
+ </mxCell>
28
+
29
+ <!-- 配送業者 -->
30
+ <mxCell id="carrier" value="配送業者" style="shape=mxgraph.aws4.delivery;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontStyle=1;" vertex="1" parent="1">
31
+ <mxGeometry x="40" y="220" width="120" height="80" as="geometry"/>
32
+ </mxCell>
33
+
34
+ <!-- Amazon本社 (手数料・サービス) -->
35
+ <mxCell id="amazoncorp" value="Amazon㈱\n&#xa;・手数料&#xa;・広告/AWS/Prime" style="shape=mxgraph.basic.cube;size=30;direction=south;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontStyle=1;" vertex="1" parent="1">
36
+ <mxGeometry x="500" y="230" width="160" height="100" as="geometry"/>
37
+ </mxCell>
38
+
39
+ <!-- 矢印:注文 -->
40
+ <mxCell id="order" value="注文" style="edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0.5;exitY=1;exitPerimeter=1;entryX=0.5;entryY=0;entryPerimeter=1;strokeColor=#000000;endArrow=block;html=1;" edge="1" source="customer" target="marketplace" parent="1">
41
+ <mxGeometry relative="1" as="geometry"/>
42
+ </mxCell>
43
+
44
+ <!-- 矢印:支払い -->
45
+ <mxCell id="pay" value="支払い" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#000000;endArrow=block;html=1;" edge="1" source="customer" target="marketplace" parent="1">
46
+ <mxGeometry relative="1" as="geometry">
47
+ <mxPoint x="100" y="140" as="targetPoint"/>
48
+ </mxGeometry>
49
+ </mxCell>
50
+
51
+ <!-- 矢印:販売手数料 -->
52
+ <mxCell id="fee" value="販売手数料" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#b85450;dashed=1;endArrow=open;html=1;" edge="1" source="marketplace" target="amazoncorp" parent="1">
53
+ <mxGeometry relative="1" as="geometry"/>
54
+ </mxCell>
55
+
56
+ <!-- 矢印:売上振込 -->
57
+ <mxCell id="payout" value="売上振込" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#009933;endArrow=block;html=1;" edge="1" source="marketplace" target="seller" parent="1">
58
+ <mxGeometry relative="1" as="geometry"/>
59
+ </mxCell>
60
+
61
+ <!-- 矢印:在庫納品 -->
62
+ <mxCell id="inventory" value="在庫納品" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#000000;endArrow=block;html=1;" edge="1" source="seller" target="fba" parent="1">
63
+ <mxGeometry relative="1" as="geometry"/>
64
+ </mxCell>
65
+
66
+ <!-- 矢印:出荷指示 -->
67
+ <mxCell id="shipinst" value="出荷/配送" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#000000;endArrow=block;html=1;" edge="1" source="fba" target="carrier" parent="1">
68
+ <mxGeometry relative="1" as="geometry"/>
69
+ </mxCell>
70
+
71
+ <!-- 矢印:商品配送 -->
72
+ <mxCell id="delivery" value="商品受取" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#000000;endArrow=block;html=1;" edge="1" source="carrier" target="customer" parent="1">
73
+ <mxGeometry relative="1" as="geometry"/>
74
+ </mxCell>
75
+
76
+ <!-- 矢印:マーケットプレイス掲載 -->
77
+ <mxCell id="listing" value="商品登録/広告" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#666666;dashed=1;endArrow=open;html=1;" edge="1" source="seller" target="marketplace" parent="1">
78
+ <mxGeometry relative="1" as="geometry"/>
79
+ </mxCell>
80
+
81
+ </root>
82
+ </mxGraphModel>
83
+ </diagram>
84
+ </mxfile>