mdjournal 1.0.15 → 1.1.0

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 (203) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +290 -164
  3. package/dist/README.md +335 -0
  4. package/dist/client/assets/index-CWshDATd.js +402 -0
  5. package/dist/client/dist/assets/index-CWshDATd.js +402 -0
  6. package/dist/client/dist/index.html +1 -1
  7. package/dist/client/index.html +1 -1
  8. package/dist/docs/api-reference.html +2295 -0
  9. package/dist/docs/config-spec.md +322 -0
  10. package/dist/docs/extension-spec.md +676 -0
  11. package/dist/docs/index.md +261 -0
  12. package/dist/docs/integration-spec.md +518 -0
  13. package/dist/docs/markdown-format-spec.md +779 -0
  14. package/dist/docs/openapi.yaml +1009 -0
  15. package/dist/docs/requirements.md +837 -0
  16. package/dist/docs/screenshot.png +0 -0
  17. package/dist/packages/contract/mdjournal/domains/CalendarApi.d.ts +19 -0
  18. package/dist/packages/contract/mdjournal/domains/CalendarApi.d.ts.map +1 -0
  19. package/dist/packages/contract/mdjournal/domains/CalendarApi.js +7 -0
  20. package/dist/packages/contract/mdjournal/domains/CalendarApi.js.map +1 -0
  21. package/dist/packages/contract/mdjournal/domains/ConfigApi.d.ts +29 -0
  22. package/dist/packages/contract/mdjournal/domains/ConfigApi.d.ts.map +1 -0
  23. package/dist/packages/contract/mdjournal/domains/ConfigApi.js +7 -0
  24. package/dist/packages/contract/mdjournal/domains/ConfigApi.js.map +1 -0
  25. package/dist/packages/contract/mdjournal/domains/GitApi.d.ts +14 -0
  26. package/dist/packages/contract/mdjournal/domains/GitApi.d.ts.map +1 -0
  27. package/dist/packages/contract/mdjournal/domains/GitApi.js +7 -0
  28. package/dist/packages/contract/mdjournal/domains/GitApi.js.map +1 -0
  29. package/dist/packages/contract/mdjournal/domains/ReportApi.d.ts +24 -0
  30. package/dist/packages/contract/mdjournal/domains/ReportApi.d.ts.map +1 -0
  31. package/dist/packages/contract/mdjournal/domains/ReportApi.js +7 -0
  32. package/dist/packages/contract/mdjournal/domains/ReportApi.js.map +1 -0
  33. package/dist/packages/contract/mdjournal/domains/index.d.ts +24 -0
  34. package/dist/packages/contract/mdjournal/domains/index.d.ts.map +1 -0
  35. package/dist/packages/contract/mdjournal/domains/index.js +7 -0
  36. package/dist/packages/contract/mdjournal/domains/index.js.map +1 -0
  37. package/dist/packages/contract/mdjournal/errors/index.d.ts +19 -0
  38. package/dist/packages/contract/mdjournal/errors/index.d.ts.map +1 -0
  39. package/dist/packages/contract/mdjournal/errors/index.js +29 -0
  40. package/dist/packages/contract/mdjournal/errors/index.js.map +1 -0
  41. package/dist/packages/contract/mdjournal/index.d.ts +8 -0
  42. package/dist/packages/contract/mdjournal/index.d.ts.map +1 -0
  43. package/dist/packages/contract/mdjournal/index.js +8 -0
  44. package/dist/packages/contract/mdjournal/index.js.map +1 -0
  45. package/dist/packages/contract/mdjournal/schemas/index.d.ts +7 -0
  46. package/dist/packages/contract/mdjournal/schemas/index.d.ts.map +1 -0
  47. package/dist/packages/contract/mdjournal/schemas/index.js +7 -0
  48. package/dist/packages/contract/mdjournal/schemas/index.js.map +1 -0
  49. package/dist/packages/contract/mdjournal/schemas/types.d.ts +357 -0
  50. package/dist/packages/contract/mdjournal/schemas/types.d.ts.map +1 -0
  51. package/dist/packages/contract/mdjournal/schemas/types.js +7 -0
  52. package/dist/packages/contract/mdjournal/schemas/types.js.map +1 -0
  53. package/dist/packages/contract/mdjournal/schemas/validators.d.ts +1576 -0
  54. package/dist/packages/contract/mdjournal/schemas/validators.d.ts.map +1 -0
  55. package/dist/packages/contract/mdjournal/schemas/validators.js +952 -0
  56. package/dist/packages/contract/mdjournal/schemas/validators.js.map +1 -0
  57. package/dist/server/src/cli.d.ts.map +1 -0
  58. package/dist/server/src/cli.js.map +1 -0
  59. package/dist/server/src/index.d.ts.map +1 -0
  60. package/dist/{index.js → server/src/index.js} +21 -11
  61. package/dist/server/src/index.js.map +1 -0
  62. package/dist/server/src/mdjournal/domains/CalendarDomain.d.ts +19 -0
  63. package/dist/server/src/mdjournal/domains/CalendarDomain.d.ts.map +1 -0
  64. package/dist/server/src/mdjournal/domains/CalendarDomain.js +88 -0
  65. package/dist/server/src/mdjournal/domains/CalendarDomain.js.map +1 -0
  66. package/dist/server/src/mdjournal/domains/CalendarDomain.test.d.ts +2 -0
  67. package/dist/server/src/mdjournal/domains/CalendarDomain.test.d.ts.map +1 -0
  68. package/dist/server/src/mdjournal/domains/CalendarDomain.test.js +111 -0
  69. package/dist/server/src/mdjournal/domains/CalendarDomain.test.js.map +1 -0
  70. package/dist/server/src/mdjournal/domains/ConfigDomain.d.ts +27 -0
  71. package/dist/server/src/mdjournal/domains/ConfigDomain.d.ts.map +1 -0
  72. package/dist/server/src/mdjournal/domains/ConfigDomain.js +59 -0
  73. package/dist/server/src/mdjournal/domains/ConfigDomain.js.map +1 -0
  74. package/dist/server/src/mdjournal/domains/ConfigDomain.test.d.ts +2 -0
  75. package/dist/server/src/mdjournal/domains/ConfigDomain.test.d.ts.map +1 -0
  76. package/dist/server/src/mdjournal/domains/ConfigDomain.test.js +177 -0
  77. package/dist/server/src/mdjournal/domains/ConfigDomain.test.js.map +1 -0
  78. package/dist/server/src/mdjournal/domains/GitDomain.d.ts +15 -0
  79. package/dist/server/src/mdjournal/domains/GitDomain.d.ts.map +1 -0
  80. package/dist/server/src/mdjournal/domains/GitDomain.js +16 -0
  81. package/dist/server/src/mdjournal/domains/GitDomain.js.map +1 -0
  82. package/dist/server/src/mdjournal/domains/GitDomain.test.d.ts +2 -0
  83. package/dist/server/src/mdjournal/domains/GitDomain.test.d.ts.map +1 -0
  84. package/dist/server/src/mdjournal/domains/GitDomain.test.js +112 -0
  85. package/dist/server/src/mdjournal/domains/GitDomain.test.js.map +1 -0
  86. package/dist/server/src/mdjournal/domains/ReportDomain.d.ts +23 -0
  87. package/dist/server/src/mdjournal/domains/ReportDomain.d.ts.map +1 -0
  88. package/dist/server/src/mdjournal/domains/ReportDomain.js +117 -0
  89. package/dist/server/src/mdjournal/domains/ReportDomain.js.map +1 -0
  90. package/dist/server/src/mdjournal/domains/ReportDomain.test.d.ts +2 -0
  91. package/dist/server/src/mdjournal/domains/ReportDomain.test.d.ts.map +1 -0
  92. package/dist/server/src/mdjournal/domains/ReportDomain.test.js +207 -0
  93. package/dist/server/src/mdjournal/domains/ReportDomain.test.js.map +1 -0
  94. package/dist/server/src/mdjournal/domains/errors.d.ts +17 -0
  95. package/dist/server/src/mdjournal/domains/errors.d.ts.map +1 -0
  96. package/dist/server/src/mdjournal/domains/errors.js +27 -0
  97. package/dist/server/src/mdjournal/domains/errors.js.map +1 -0
  98. package/dist/server/src/mdjournal/domains/index.d.ts +15 -0
  99. package/dist/server/src/mdjournal/domains/index.d.ts.map +1 -0
  100. package/dist/server/src/mdjournal/domains/index.js +11 -0
  101. package/dist/server/src/mdjournal/domains/index.js.map +1 -0
  102. package/dist/server/src/mdjournal/index.d.ts +17 -0
  103. package/dist/server/src/mdjournal/index.d.ts.map +1 -0
  104. package/dist/server/src/mdjournal/index.js +34 -0
  105. package/dist/server/src/mdjournal/index.js.map +1 -0
  106. package/dist/server/src/mdjournal/routes.generated.d.ts +28 -0
  107. package/dist/server/src/mdjournal/routes.generated.d.ts.map +1 -0
  108. package/dist/server/src/mdjournal/routes.generated.js +403 -0
  109. package/dist/server/src/mdjournal/routes.generated.js.map +1 -0
  110. package/dist/server/src/types/index.d.ts.map +1 -0
  111. package/dist/server/src/types/index.js.map +1 -0
  112. package/dist/server/src/utils/configValidator.d.ts.map +1 -0
  113. package/dist/server/src/utils/configValidator.js.map +1 -0
  114. package/dist/server/src/utils/configValidator.test.d.ts +2 -0
  115. package/dist/server/src/utils/configValidator.test.d.ts.map +1 -0
  116. package/dist/server/src/utils/configValidator.test.js +359 -0
  117. package/dist/server/src/utils/configValidator.test.js.map +1 -0
  118. package/dist/server/src/utils/fileManager.d.ts.map +1 -0
  119. package/dist/server/src/utils/fileManager.js.map +1 -0
  120. package/dist/server/src/utils/git.d.ts.map +1 -0
  121. package/dist/server/src/utils/git.js.map +1 -0
  122. package/dist/server/src/utils/index.d.ts.map +1 -0
  123. package/dist/server/src/utils/index.js.map +1 -0
  124. package/dist/server/src/utils/markdown.d.ts.map +1 -0
  125. package/dist/server/src/utils/markdown.js.map +1 -0
  126. package/dist/server/src/utils/markdown.test.d.ts +2 -0
  127. package/dist/server/src/utils/markdown.test.d.ts.map +1 -0
  128. package/dist/server/src/utils/markdown.test.js +291 -0
  129. package/dist/server/src/utils/markdown.test.js.map +1 -0
  130. package/dist/server/src/utils/slack.d.ts.map +1 -0
  131. package/dist/server/src/utils/slack.js.map +1 -0
  132. package/dist/server/src/utils/validator.d.ts.map +1 -0
  133. package/dist/server/src/utils/validator.js.map +1 -0
  134. package/dist/server/src/utils/validator.test.d.ts +2 -0
  135. package/dist/server/src/utils/validator.test.d.ts.map +1 -0
  136. package/dist/server/src/utils/validator.test.js +307 -0
  137. package/dist/server/src/utils/validator.test.js.map +1 -0
  138. package/package.json +37 -15
  139. package/dist/cli.d.ts.map +0 -1
  140. package/dist/cli.js.map +0 -1
  141. package/dist/client/assets/index-DlkkIyB6.js +0 -402
  142. package/dist/client/dist/assets/index-DlkkIyB6.js +0 -402
  143. package/dist/index.d.ts.map +0 -1
  144. package/dist/index.js.map +0 -1
  145. package/dist/routes/calendar.d.ts +0 -8
  146. package/dist/routes/calendar.d.ts.map +0 -1
  147. package/dist/routes/calendar.js +0 -115
  148. package/dist/routes/calendar.js.map +0 -1
  149. package/dist/routes/config.d.ts +0 -11
  150. package/dist/routes/config.d.ts.map +0 -1
  151. package/dist/routes/config.js +0 -120
  152. package/dist/routes/config.js.map +0 -1
  153. package/dist/routes/gcal.d.ts +0 -10
  154. package/dist/routes/gcal.d.ts.map +0 -1
  155. package/dist/routes/gcal.js +0 -100
  156. package/dist/routes/gcal.js.map +0 -1
  157. package/dist/routes/git.d.ts +0 -8
  158. package/dist/routes/git.d.ts.map +0 -1
  159. package/dist/routes/git.js +0 -28
  160. package/dist/routes/git.js.map +0 -1
  161. package/dist/routes/index.d.ts +0 -9
  162. package/dist/routes/index.d.ts.map +0 -1
  163. package/dist/routes/index.js +0 -9
  164. package/dist/routes/index.js.map +0 -1
  165. package/dist/routes/reports.d.ts +0 -10
  166. package/dist/routes/reports.d.ts.map +0 -1
  167. package/dist/routes/reports.js +0 -175
  168. package/dist/routes/reports.js.map +0 -1
  169. package/dist/types/index.d.ts.map +0 -1
  170. package/dist/types/index.js.map +0 -1
  171. package/dist/utils/configValidator.d.ts.map +0 -1
  172. package/dist/utils/configValidator.js.map +0 -1
  173. package/dist/utils/fileManager.d.ts.map +0 -1
  174. package/dist/utils/fileManager.js.map +0 -1
  175. package/dist/utils/git.d.ts.map +0 -1
  176. package/dist/utils/git.js.map +0 -1
  177. package/dist/utils/index.d.ts.map +0 -1
  178. package/dist/utils/index.js.map +0 -1
  179. package/dist/utils/markdown.d.ts.map +0 -1
  180. package/dist/utils/markdown.js.map +0 -1
  181. package/dist/utils/slack.d.ts.map +0 -1
  182. package/dist/utils/slack.js.map +0 -1
  183. package/dist/utils/validator.d.ts.map +0 -1
  184. package/dist/utils/validator.js.map +0 -1
  185. /package/dist/{cli.d.ts → server/src/cli.d.ts} +0 -0
  186. /package/dist/{cli.js → server/src/cli.js} +0 -0
  187. /package/dist/{index.d.ts → server/src/index.d.ts} +0 -0
  188. /package/dist/{types → server/src/types}/index.d.ts +0 -0
  189. /package/dist/{types → server/src/types}/index.js +0 -0
  190. /package/dist/{utils → server/src/utils}/configValidator.d.ts +0 -0
  191. /package/dist/{utils → server/src/utils}/configValidator.js +0 -0
  192. /package/dist/{utils → server/src/utils}/fileManager.d.ts +0 -0
  193. /package/dist/{utils → server/src/utils}/fileManager.js +0 -0
  194. /package/dist/{utils → server/src/utils}/git.d.ts +0 -0
  195. /package/dist/{utils → server/src/utils}/git.js +0 -0
  196. /package/dist/{utils → server/src/utils}/index.d.ts +0 -0
  197. /package/dist/{utils → server/src/utils}/index.js +0 -0
  198. /package/dist/{utils → server/src/utils}/markdown.d.ts +0 -0
  199. /package/dist/{utils → server/src/utils}/markdown.js +0 -0
  200. /package/dist/{utils → server/src/utils}/slack.d.ts +0 -0
  201. /package/dist/{utils → server/src/utils}/slack.js +0 -0
  202. /package/dist/{utils → server/src/utils}/validator.d.ts +0 -0
  203. /package/dist/{utils → server/src/utils}/validator.js +0 -0
@@ -0,0 +1,322 @@
1
+ # mdJournal 設定ファイル仕様書
2
+
3
+ ## 1. 概要
4
+
5
+ 本ドキュメントは、mdJournalで使用する設定ファイル(YAML形式)の仕様を定義する。
6
+
7
+ ---
8
+
9
+ ## 2. 設定ファイル一覧
10
+
11
+ | ファイル | 説明 |
12
+ |---------|------|
13
+ | `mdjournal.config.yaml` | ルート設定ファイル |
14
+ | `config/projects.yaml` | プロジェクトマスタ |
15
+ | `config/routines.yaml` | ルーチン定義 |
16
+
17
+ ---
18
+
19
+ ## 3. mdjournal.config.yaml(ルート設定)
20
+
21
+ ### 3.1 スキーマ
22
+
23
+ ```yaml
24
+ # 各設定ファイルへのパス(このファイルからの相対パス)
25
+ projects: string # プロジェクト定義ファイルのパス
26
+ routines: string # ルーチン定義ファイルのパス
27
+
28
+ # 日報ディレクトリ
29
+ reports: string # 日報ファイルの保存ディレクトリ
30
+
31
+ # タイムライン設定
32
+ timeline:
33
+ hourHeight: number # 1時間あたりの高さ(ピクセル)
34
+ maxHours: number # 最大表示時間
35
+ defaultStartHour: number # デフォルト開始時刻
36
+ defaultEndHour: number # デフォルト終了時刻
37
+ snapMinutes: number # ドラッグ時のスナップ単位(分)
38
+
39
+ # サーバー設定
40
+ server:
41
+ port: number # サーバーポート
42
+
43
+ # Slack連携(オプション)
44
+ slack:
45
+ enabled: boolean # 有効/無効
46
+ webhookUrl: string # Webhook URL(${SLACK_WEBHOOK_URL}で環境変数参照可能)
47
+ channel: string # 投稿先チャンネル(オプション)
48
+ username: string # 投稿者名(オプション)
49
+ iconEmoji: string # アイコン絵文字(オプション)
50
+ ```
51
+
52
+ ### 3.2 設定例
53
+
54
+ ```yaml
55
+ # mdJournal ルート設定ファイル
56
+ #
57
+ # 使用方法:
58
+ # npx mdjournal ./mdjournal.config.yaml
59
+ # npx mdjournal -c ./mdjournal.config.yaml
60
+
61
+ # 各設定ファイルへのパス(このファイルからの相対パス)
62
+ projects: ./config/projects.yaml
63
+ routines: ./config/routines.yaml
64
+
65
+ # 日報ディレクトリ
66
+ reports: ./data
67
+
68
+ # タイムライン設定
69
+ timeline:
70
+ hourHeight: 60 # 1時間あたりの高さ(ピクセル)
71
+ maxHours: 36 # 最大表示時間(8:00から最大36時間 = 翌日20:00まで)
72
+ defaultStartHour: 8 # デフォルト開始時刻(スロットが空の場合の表示開始時間)
73
+ defaultEndHour: 20 # デフォルト終了時刻(スロットが空の場合の表示終了時間)
74
+ snapMinutes: 15 # ドラッグ時のスナップ単位(分)
75
+
76
+ # サーバー設定(オプション)
77
+ server:
78
+ port: 3001
79
+
80
+ # Slack連携(オプション)
81
+ slack:
82
+ enabled: false
83
+ webhookUrl: ${SLACK_WEBHOOK_URL}
84
+ channel: "#daily_report"
85
+ username: "日報"
86
+ iconEmoji: ":memo:"
87
+ ```
88
+
89
+ ---
90
+
91
+ ## 4. projects.yaml
92
+
93
+ ### 4.1 スキーマ
94
+
95
+ ```yaml
96
+ # プロジェクト定義
97
+ projects:
98
+ - code: string # プロジェクトコード(一意)
99
+ name: string # プロジェクト名
100
+ fullName: string # フルネーム(オプション)
101
+ color: string # 表示色(Hex)
102
+ category: string # カテゴリID(オプション)
103
+ client: string # クライアント名(オプション)
104
+ description: string # 説明(オプション)
105
+ active: boolean # アクティブ状態
106
+
107
+ # カテゴリ定義(オプション)
108
+ categories:
109
+ - id: string
110
+ name: string
111
+ color: string # オプション
112
+ ```
113
+
114
+ ### 4.2 設定例
115
+
116
+ ```yaml
117
+ projects:
118
+ # 社内業務
119
+ - code: "P99"
120
+ name: "社内業務"
121
+ fullName: "社内管理・雑務"
122
+ color: "#52c41a"
123
+ category: "internal"
124
+ active: true
125
+
126
+ # クライアント案件
127
+ - code: "P34"
128
+ name: "クライアントA"
129
+ fullName: "クライアントA システム開発"
130
+ color: "#1890ff"
131
+ category: "client"
132
+ client: "A社"
133
+ description: "クライアントAシステム開発・運用"
134
+ active: true
135
+
136
+ - code: "P14"
137
+ name: "システムB"
138
+ color: "#722ed1"
139
+ category: "client"
140
+ active: true
141
+
142
+ # 非アクティブプロジェクト
143
+ - code: "P18"
144
+ name: "旧プロジェクト"
145
+ color: "#14B8A6"
146
+ category: "client"
147
+ active: false
148
+
149
+ categories:
150
+ - id: "internal"
151
+ name: "社内業務"
152
+ color: "#52c41a"
153
+
154
+ - id: "client"
155
+ name: "クライアント業務"
156
+ color: "#1890ff"
157
+
158
+ - id: "research"
159
+ name: "研究・開発"
160
+ color: "#722ed1"
161
+ ```
162
+
163
+ ---
164
+
165
+ ## 5. routines.yaml
166
+
167
+ ### 5.1 スキーマ
168
+
169
+ ```yaml
170
+ routines:
171
+ # 週次ルーチン(曜日別)
172
+ weekly:
173
+ monday: RoutineItem[]
174
+ tuesday: RoutineItem[]
175
+ wednesday: RoutineItem[]
176
+ thursday: RoutineItem[]
177
+ friday: RoutineItem[]
178
+ saturday: RoutineItem[]
179
+ sunday: RoutineItem[]
180
+
181
+ # 随時ルーチン
182
+ adhoc: AdhocRoutineItem[]
183
+
184
+ # 月次ルーチン
185
+ monthly:
186
+ start_of_month: MonthlyTask[] # 月初タスク
187
+ end_of_month: MonthlyTask[] # 月末タスク
188
+
189
+ # 四半期ルーチン
190
+ quarterly:
191
+ - months: number[] # 対象月(例: [3, 6, 9, 12])
192
+ tasks: QuarterlyTask[]
193
+
194
+ # 年次ルーチン
195
+ yearly:
196
+ - month: number # 月
197
+ day: number # 日
198
+ project: string
199
+ task: string
200
+
201
+ # RoutineItem定義(週次・随時)
202
+ RoutineItem:
203
+ time: string # HH:MM
204
+ project: string # プロジェクトコード
205
+ task: string # タスク名
206
+ duration: number # 時間(分)、オプション
207
+
208
+ # MonthlyTask/QuarterlyTask定義
209
+ MonthlyTask:
210
+ project: string
211
+ task: string
212
+ ```
213
+
214
+ ### 5.2 設定例
215
+
216
+ ```yaml
217
+ routines:
218
+ weekly:
219
+ monday:
220
+ - time: "08:00"
221
+ project: "P99"
222
+ task: "タスク確認・整理、日報返信"
223
+ - time: "09:00"
224
+ project: "P99"
225
+ task: "定例会議"
226
+
227
+ tuesday:
228
+ - time: "08:00"
229
+ project: "P99"
230
+ task: "タスク確認・整理、日報返信"
231
+
232
+ friday:
233
+ - time: "08:00"
234
+ project: "P99"
235
+ task: "タスク確認・整理、日報返信"
236
+ - time: "17:00"
237
+ project: "P99"
238
+ task: "週報作成"
239
+
240
+ adhoc:
241
+ - time: "14:00"
242
+ project: "P14"
243
+ task: "システムB 開発MTG"
244
+
245
+ monthly:
246
+ start_of_month:
247
+ - project: "P99"
248
+ task: "経費精算申請"
249
+
250
+ end_of_month:
251
+ - project: "P99"
252
+ task: "面談スケジュール調整"
253
+
254
+ quarterly:
255
+ - months: [3, 6, 9, 12]
256
+ tasks:
257
+ - project: "P99"
258
+ task: "四半期レビュー"
259
+
260
+ yearly:
261
+ - month: 11
262
+ day: 10
263
+ project: "P99"
264
+ task: "クラウドサービス契約更新"
265
+ ```
266
+
267
+ ---
268
+
269
+ ## 6. Git連携
270
+
271
+ Gitはローカルリポジトリの設定と自動連携します。設定ファイルでの明示的な設定は不要です。
272
+
273
+ - 日報ディレクトリがGitリポジトリ内にある場合、自動的にGit連携が有効になります
274
+ - 保存時に「Commit & Push」ボタンからcommit/pushを実行できます
275
+
276
+ ---
277
+
278
+ ## 7. 環境変数の参照
279
+
280
+ 設定ファイル内で `${ENV_VAR_NAME}` 形式で環境変数を参照可能。
281
+
282
+ ```yaml
283
+ slack:
284
+ webhookUrl: "${SLACK_WEBHOOK_URL}"
285
+ ```
286
+
287
+ 実行時に環境変数の値に置換される。
288
+
289
+ ---
290
+
291
+ ## 8. 設定ファイルのバリデーション
292
+
293
+ 起動時に以下のバリデーションを実施:
294
+
295
+ 1. **必須項目チェック**
296
+ - `projects` が1つ以上定義されている
297
+
298
+ 2. **参照整合性チェック**
299
+ - ルーチンの `project` が `projects.yaml` に存在
300
+
301
+ 3. **形式チェック**
302
+ - 色コードが有効なHex形式
303
+ - 時刻がHH:MM形式
304
+
305
+ エラー時はログに警告を出力し、デフォルト値で補完。
306
+
307
+ CLIで設定ファイルのチェックを実行することも可能:
308
+
309
+ ```bash
310
+ npx mdjournal config ./mdjournal.config.yaml
311
+ ```
312
+
313
+ ---
314
+
315
+ ## 更新履歴
316
+
317
+ | バージョン | 日付 | 更新内容 |
318
+ |-----------|------|---------|
319
+ | 1.1 | 2025-12-20 | 未実装の設定を削除、実装済み設定のみ記載 |
320
+ | 1.0 | 2025-12-20 | mdJournalとして公開準備 |
321
+ | 0.2 | 2025-12-19 | 四半期・年次ルーチンの定義を明確化 |
322
+ | 0.1 | 2025-12-18 | 初版作成 |