kintai 0.1.0__tar.gz

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.
@@ -0,0 +1 @@
1
+ 3.12
kintai-0.1.0/CLAUDE.md ADDED
@@ -0,0 +1,38 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Commands
6
+
7
+ ```bash
8
+ # Install dependencies
9
+ uv sync
10
+
11
+ # Run the CLI
12
+ uv run kintai <command>
13
+
14
+ # Run all tests
15
+ uv run pytest
16
+
17
+ # Run a single test
18
+ uv run pytest tests/test_kintai.py::test_function_name
19
+ ```
20
+
21
+ ## Architecture
22
+
23
+ This is a single-file CLI tool (`kintai.py`) built with Click. All business logic lives in the `KintaiManager` class; Click command handlers are thin wrappers that call into it.
24
+
25
+ **Key classes:**
26
+ - `KintaiManager` — core class managing in-memory records (`self.records: Dict[str, Dict]`) and JSON persistence
27
+ - `ClockResult` — dataclass returned by clock-in/out operations
28
+
29
+ **Data flow:**
30
+ 1. `KintaiManager.__init__` loads `~/.kintai/records.json` into `self.records` (dict keyed by `YYYY-MM-DD` date strings)
31
+ 2. Commands mutate `self.records` in memory
32
+ 3. `save_to_file()` serializes back to JSON
33
+
34
+ **Data directory override:** The data path can be overridden via the `KINTAI_DATA_DIR` environment variable or by passing `data_dir` to `KintaiManager`. Tests use this to avoid touching `~/.kintai`.
35
+
36
+ **Timezone:** All times are stored as timezone-aware `datetime` objects in JST (`Asia/Tokyo`). Use `KintaiManager.JST` constant throughout.
37
+
38
+ **Cross-midnight shift detection:** `_find_open_check_in_record()` looks back up to `SEARCH_DAYS_BACK` (3) days to find an open check-in without a matching check-out, enabling overnight shifts.
kintai-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,336 @@
1
+ Metadata-Version: 2.4
2
+ Name: kintai
3
+ Version: 0.1.0
4
+ Summary: 勤怠管理CLIツール
5
+ Project-URL: Repository, https://github.com/taison-tsukada/kintai
6
+ Author: TaisonTsukada
7
+ License: MIT
8
+ Requires-Python: >=3.10
9
+ Requires-Dist: click>=8.0.0
10
+ Requires-Dist: pyperclip>=1.8.0
11
+ Requires-Dist: python-dateutil>=2.8.0
12
+ Requires-Dist: pytz>=2021.3
13
+ Requires-Dist: tabulate>=0.9.0
14
+ Description-Content-Type: text/markdown
15
+
16
+ # 勤怠管理CLIツール開発仕様書
17
+
18
+ ## プロジェクト概要
19
+
20
+ Ubuntu環境で動作する個人用勤怠管理CLIツール「kintai」を開発する。このツールは日本時間(JST)での出退勤時刻の記録、修正、月次サマリーの生成機能を提供する。
21
+
22
+ ## 技術要件
23
+
24
+ ### 実行環境
25
+ - OS: Ubuntu (20.04 LTS以降)
26
+ - 言語: Python 3.10以上
27
+ - パッケージマネージャー: uv
28
+ - タイムゾーン: Asia/Tokyo (JST)
29
+
30
+ ### 必要なPythonパッケージ
31
+ 依存関係は `pyproject.toml` で管理されています。
32
+ ```
33
+ click>=8.0.0 # CLIフレームワーク
34
+ pytz>=2021.3 # タイムゾーン処理
35
+ python-dateutil>=2.8.0 # 日付処理
36
+ tabulate>=0.9.0 # テーブル表示
37
+ pyperclip>=1.8.0 # クリップボード操作
38
+ ```
39
+
40
+ ## ディレクトリ構造
41
+
42
+ ```
43
+ kintai/
44
+ ├── kintai.py # メインスクリプト
45
+ ├── pyproject.toml # プロジェクト設定・依存関係
46
+ ├── uv.lock # 依存関係のロックファイル
47
+ ├── tests/
48
+ │ └── test_kintai.py # テストファイル
49
+ └── README.md # 使用方法ドキュメント
50
+ ```
51
+
52
+ 勤怠データは `~/.kintai/records.json` に保存されます。
53
+
54
+ ## 機能仕様
55
+
56
+ ### 1. 勤怠管理機能
57
+
58
+ #### 1.1 出勤記録 (`kintai in`)
59
+
60
+ **動作仕様:**
61
+ - コマンド実行時の現在時刻(JST)を出勤時刻として記録
62
+ - 既に当日の出勤記録がある場合は警告を表示し、上書き確認を求める
63
+ - 記録形式: `YYYY-MM-DD HH:MM:SS` (24時間表記)
64
+
65
+ **出力例:**
66
+ ```
67
+ $ kintai in
68
+ 出勤時刻を記録しました: 2025-01-10 09:00:15
69
+ ```
70
+
71
+ #### 1.2 退勤記録 (`kintai out`)
72
+
73
+ **動作仕様:**
74
+ - コマンド実行時の現在時刻(JST)を退勤時刻として記録
75
+ - 当日の出勤記録がない場合はエラーメッセージを表示
76
+ - 日をまたぐ勤務の場合も適切に処理(翌日の退勤として記録)
77
+ - 退勤時に勤務時間を自動計算して表示
78
+
79
+ **出力例:**
80
+ ```
81
+ $ kintai out
82
+ 退勤時刻を記録しました: 2025-01-10 18:30:45
83
+ 本日の勤務時間: 9時間30分30秒
84
+ ```
85
+
86
+ **日またぎ処理:**
87
+ - 退勤時刻が翌日以降の場合、適切に日付を記録
88
+ - 例: 1月10日 22:00出勤 → 1月11日 07:00退勤 = 9時間勤務
89
+
90
+ ### 2. 勤怠時刻修正機能
91
+
92
+ #### 2.1 記録修正 (`kintai edit`)
93
+
94
+ **動作仕様:**
95
+ - 指定した日付の出勤・退勤時刻を修正
96
+ - 対話形式で修正内容を入力
97
+
98
+ **コマンド形式:**
99
+ ```bash
100
+ kintai edit --date YYYY-MM-DD [--in HH:MM] [--out HH:MM]
101
+ ```
102
+
103
+ **使用例:**
104
+ ```bash
105
+ # 対話形式での修正
106
+ $ kintai edit --date 2025-01-10
107
+ 現在の記録:
108
+ 出勤: 09:00:15
109
+ 退勤: 18:30:45
110
+ 新しい出勤時刻 (HH:MM) [変更しない場合はEnter]: 09:30
111
+ 新しい退勤時刻 (HH:MM) [変更しない場合はEnter]: 19:00
112
+ 記録を更新しました。
113
+
114
+ # 直接指定での修正
115
+ $ kintai edit --date 2025-01-10 --in 09:30 --out 19:00
116
+ 記録を更新しました。
117
+ ```
118
+
119
+ #### 2.2 記録削除 (`kintai delete`)
120
+
121
+ **動作仕様:**
122
+ - 指定した日付の勤怠記録を削除
123
+ - 削除前に確認プロンプトを表示
124
+
125
+ **コマンド形式:**
126
+ ```bash
127
+ kintai delete --date YYYY-MM-DD
128
+ ```
129
+
130
+ ### 3. 月別サマリー機能
131
+
132
+ #### 3.1 月次レポート表示 (`kintai summary`)
133
+
134
+ **動作仕様:**
135
+ - 指定月の勤怠記録を表示
136
+ - 月の総勤務時間を計算
137
+ - デフォルトは現在月を表示
138
+
139
+ **コマンド形式:**
140
+ ```bash
141
+ kintai summary [--month YYYY-MM]
142
+ ```
143
+
144
+ **出力形式(コンソール):**
145
+ ```
146
+ 2025年1月の勤怠記録
147
+ =====================================
148
+ 日付 出勤時刻 退勤時刻 勤務時間
149
+ ----------- ---------- ---------- ----------
150
+ 2025-01-08 09:00:15 18:30:45 9:30:30
151
+ 2025-01-09 08:45:30 19:15:20 10:29:50
152
+ 2025-01-10 09:30:00 19:00:00 9:30:00
153
+ =====================================
154
+ 総勤務時間: 29時間30分20秒
155
+ 勤務日数: 3日
156
+ 平均勤務時間: 9時間50分6秒
157
+ ```
158
+
159
+ #### 3.2 クリップボードへのコピー (`kintai summary --copy`)
160
+
161
+ **動作仕様:**
162
+ - 月次レポートをMarkdown形式でクリップボードにコピー
163
+ - コピー成功時にメッセージを表示
164
+
165
+ **Markdown出力形式:**
166
+ ```markdown
167
+ # 2025年1月 勤怠記録
168
+
169
+ ## 勤務詳細
170
+
171
+ | 日付 | 曜日 | 出勤時刻 | 退勤時刻 | 勤務時間 |
172
+ |------|------|----------|----------|----------|
173
+ | 2025-01-08 | 水 | 09:00:15 | 18:30:45 | 9:30:30 |
174
+ | 2025-01-09 | 木 | 08:45:30 | 19:15:20 | 10:29:50 |
175
+ | 2025-01-10 | 金 | 09:30:00 | 19:00:00 | 9:30:00 |
176
+
177
+ ## 月次サマリー
178
+
179
+ - **総勤務時間**: 29時間30分20秒
180
+ - **勤務日数**: 3日
181
+ - **平均勤務時間**: 9時間50分6秒
182
+ ```
183
+
184
+ ### 4. その他の機能
185
+
186
+ #### 4.1 現在の状態確認 (`kintai status`)
187
+
188
+ **動作仕様:**
189
+ - 現在の勤務状態(出勤中/退勤済み)を表示
190
+ - 出勤中の場合は経過時間を表示
191
+
192
+ **出力例:**
193
+ ```
194
+ $ kintai status
195
+ 状態: 出勤中
196
+ 出勤時刻: 2025-01-10 09:00:15
197
+ 経過時間: 3時間45分23秒
198
+ ```
199
+
200
+ #### 4.2 ヘルプ表示 (`kintai --help`)
201
+
202
+ **動作仕様:**
203
+ - 使用可能なコマンドと説明を表示
204
+
205
+ ## データ保存仕様
206
+
207
+ ### ファイル形式
208
+ - JSON形式でローカルに保存
209
+ - ファイルパス: `~/.kintai/records.json`
210
+
211
+ ### データ構造
212
+ ```json
213
+ {
214
+ "records": [
215
+ {
216
+ "date": "2025-01-10",
217
+ "check_in": "2025-01-10T09:00:15+09:00",
218
+ "check_out": "2025-01-10T18:30:45+09:00",
219
+ "duration_seconds": 34230
220
+ }
221
+ ],
222
+ "version": "1.0.0"
223
+ }
224
+ ```
225
+
226
+ ## エラーハンドリング
227
+
228
+ ### 想定されるエラーケース
229
+
230
+ 1. **重複出勤エラー**
231
+ - メッセージ: "既に本日の出勤記録があります。上書きしますか? [y/N]"
232
+
233
+ 2. **出勤記録なしエラー**
234
+ - メッセージ: "本日の出勤記録がありません。先に 'kintai in' を実行してください。"
235
+
236
+ 3. **無効な日付形式エラー**
237
+ - メッセージ: "日付の形式が正しくありません。YYYY-MM-DD形式で入力してください。"
238
+
239
+ 4. **データファイル破損エラー**
240
+ - メッセージ: "データファイルが破損しています。バックアップから復元するか、新規作成してください。"
241
+
242
+ ## インストール手順
243
+
244
+ ```bash
245
+ # 1. リポジトリのクローンまたはファイルの配置
246
+ git clone [repository-url] kintai
247
+ cd kintai
248
+
249
+ # 2. uvのインストール(未インストールの場合)
250
+ curl -LsSf https://astral.sh/uv/install.sh | sh
251
+
252
+ # 3. 依存パッケージのインストール
253
+ uv sync
254
+
255
+ # 4. 動作確認
256
+ uv run kintai --help
257
+ ```
258
+
259
+ ### 実行方法
260
+
261
+ ```bash
262
+ # uvを通じて実行
263
+ uv run kintai in
264
+ uv run kintai out
265
+ uv run kintai status
266
+ uv run kintai summary
267
+
268
+ # テストの実行
269
+ uv run pytest
270
+ ```
271
+
272
+ ### エイリアス設定(オプション)
273
+
274
+ 頻繁に使用する場合は、シェルにエイリアスを設定すると便利です。
275
+
276
+ ```bash
277
+ # ~/.bashrc または ~/.zshrc に追加
278
+ alias kintai='uv run --directory /path/to/kintai kintai'
279
+ ```
280
+
281
+ ## テストケース
282
+
283
+ ### 基本機能テスト
284
+
285
+ 1. **通常の出退勤記録**
286
+ ```bash
287
+ kintai in # 09:00に実行
288
+ kintai out # 18:00に実行
289
+ # 期待値: 9時間の勤務時間が記録される
290
+ ```
291
+
292
+ 2. **日またぎ勤務**
293
+ ```bash
294
+ kintai in # 22:00に実行
295
+ kintai out # 翌日07:00に実行
296
+ # 期待値: 9時間の勤務時間が記録される
297
+ ```
298
+
299
+ 3. **記録修正**
300
+ ```bash
301
+ kintai edit --date 2025-01-10 --in 09:30 --out 19:00
302
+ # 期待値: 指定日の記録が更新される
303
+ ```
304
+
305
+ 4. **月次サマリー**
306
+ ```bash
307
+ kintai summary --month 2025-01
308
+ # 期待値: 1月の全勤怠記録と統計が表示される
309
+ ```
310
+
311
+ ## 拡張機能案(将来実装)
312
+
313
+ 1. **休憩時間の記録**
314
+ - `kintai break start` / `kintai break end`
315
+
316
+ 2. **CSV/Excel出力**
317
+ - `kintai export --format csv --month 2025-01`
318
+
319
+ 3. **勤務パターン設定**
320
+ - 定時設定、フレックスタイム設定
321
+
322
+ 4. **統計分析機能**
323
+ - 週次レポート、残業時間分析
324
+
325
+ 5. **バックアップ/リストア機能**
326
+ - `kintai backup` / `kintai restore`
327
+
328
+ ## 注意事項
329
+
330
+ - タイムゾーンは必ず日本時間(JST)で処理すること
331
+ - データファイルは定期的にバックアップを推奨
332
+ - クリップボード操作にはX11環境が必要(WSL2の場合は追加設定が必要)
333
+
334
+ ## ライセンス
335
+
336
+ MIT License(個人利用を想定)
kintai-0.1.0/README.md ADDED
@@ -0,0 +1,321 @@
1
+ # 勤怠管理CLIツール開発仕様書
2
+
3
+ ## プロジェクト概要
4
+
5
+ Ubuntu環境で動作する個人用勤怠管理CLIツール「kintai」を開発する。このツールは日本時間(JST)での出退勤時刻の記録、修正、月次サマリーの生成機能を提供する。
6
+
7
+ ## 技術要件
8
+
9
+ ### 実行環境
10
+ - OS: Ubuntu (20.04 LTS以降)
11
+ - 言語: Python 3.10以上
12
+ - パッケージマネージャー: uv
13
+ - タイムゾーン: Asia/Tokyo (JST)
14
+
15
+ ### 必要なPythonパッケージ
16
+ 依存関係は `pyproject.toml` で管理されています。
17
+ ```
18
+ click>=8.0.0 # CLIフレームワーク
19
+ pytz>=2021.3 # タイムゾーン処理
20
+ python-dateutil>=2.8.0 # 日付処理
21
+ tabulate>=0.9.0 # テーブル表示
22
+ pyperclip>=1.8.0 # クリップボード操作
23
+ ```
24
+
25
+ ## ディレクトリ構造
26
+
27
+ ```
28
+ kintai/
29
+ ├── kintai.py # メインスクリプト
30
+ ├── pyproject.toml # プロジェクト設定・依存関係
31
+ ├── uv.lock # 依存関係のロックファイル
32
+ ├── tests/
33
+ │ └── test_kintai.py # テストファイル
34
+ └── README.md # 使用方法ドキュメント
35
+ ```
36
+
37
+ 勤怠データは `~/.kintai/records.json` に保存されます。
38
+
39
+ ## 機能仕様
40
+
41
+ ### 1. 勤怠管理機能
42
+
43
+ #### 1.1 出勤記録 (`kintai in`)
44
+
45
+ **動作仕様:**
46
+ - コマンド実行時の現在時刻(JST)を出勤時刻として記録
47
+ - 既に当日の出勤記録がある場合は警告を表示し、上書き確認を求める
48
+ - 記録形式: `YYYY-MM-DD HH:MM:SS` (24時間表記)
49
+
50
+ **出力例:**
51
+ ```
52
+ $ kintai in
53
+ 出勤時刻を記録しました: 2025-01-10 09:00:15
54
+ ```
55
+
56
+ #### 1.2 退勤記録 (`kintai out`)
57
+
58
+ **動作仕様:**
59
+ - コマンド実行時の現在時刻(JST)を退勤時刻として記録
60
+ - 当日の出勤記録がない場合はエラーメッセージを表示
61
+ - 日をまたぐ勤務の場合も適切に処理(翌日の退勤として記録)
62
+ - 退勤時に勤務時間を自動計算して表示
63
+
64
+ **出力例:**
65
+ ```
66
+ $ kintai out
67
+ 退勤時刻を記録しました: 2025-01-10 18:30:45
68
+ 本日の勤務時間: 9時間30分30秒
69
+ ```
70
+
71
+ **日またぎ処理:**
72
+ - 退勤時刻が翌日以降の場合、適切に日付を記録
73
+ - 例: 1月10日 22:00出勤 → 1月11日 07:00退勤 = 9時間勤務
74
+
75
+ ### 2. 勤怠時刻修正機能
76
+
77
+ #### 2.1 記録修正 (`kintai edit`)
78
+
79
+ **動作仕様:**
80
+ - 指定した日付の出勤・退勤時刻を修正
81
+ - 対話形式で修正内容を入力
82
+
83
+ **コマンド形式:**
84
+ ```bash
85
+ kintai edit --date YYYY-MM-DD [--in HH:MM] [--out HH:MM]
86
+ ```
87
+
88
+ **使用例:**
89
+ ```bash
90
+ # 対話形式での修正
91
+ $ kintai edit --date 2025-01-10
92
+ 現在の記録:
93
+ 出勤: 09:00:15
94
+ 退勤: 18:30:45
95
+ 新しい出勤時刻 (HH:MM) [変更しない場合はEnter]: 09:30
96
+ 新しい退勤時刻 (HH:MM) [変更しない場合はEnter]: 19:00
97
+ 記録を更新しました。
98
+
99
+ # 直接指定での修正
100
+ $ kintai edit --date 2025-01-10 --in 09:30 --out 19:00
101
+ 記録を更新しました。
102
+ ```
103
+
104
+ #### 2.2 記録削除 (`kintai delete`)
105
+
106
+ **動作仕様:**
107
+ - 指定した日付の勤怠記録を削除
108
+ - 削除前に確認プロンプトを表示
109
+
110
+ **コマンド形式:**
111
+ ```bash
112
+ kintai delete --date YYYY-MM-DD
113
+ ```
114
+
115
+ ### 3. 月別サマリー機能
116
+
117
+ #### 3.1 月次レポート表示 (`kintai summary`)
118
+
119
+ **動作仕様:**
120
+ - 指定月の勤怠記録を表示
121
+ - 月の総勤務時間を計算
122
+ - デフォルトは現在月を表示
123
+
124
+ **コマンド形式:**
125
+ ```bash
126
+ kintai summary [--month YYYY-MM]
127
+ ```
128
+
129
+ **出力形式(コンソール):**
130
+ ```
131
+ 2025年1月の勤怠記録
132
+ =====================================
133
+ 日付 出勤時刻 退勤時刻 勤務時間
134
+ ----------- ---------- ---------- ----------
135
+ 2025-01-08 09:00:15 18:30:45 9:30:30
136
+ 2025-01-09 08:45:30 19:15:20 10:29:50
137
+ 2025-01-10 09:30:00 19:00:00 9:30:00
138
+ =====================================
139
+ 総勤務時間: 29時間30分20秒
140
+ 勤務日数: 3日
141
+ 平均勤務時間: 9時間50分6秒
142
+ ```
143
+
144
+ #### 3.2 クリップボードへのコピー (`kintai summary --copy`)
145
+
146
+ **動作仕様:**
147
+ - 月次レポートをMarkdown形式でクリップボードにコピー
148
+ - コピー成功時にメッセージを表示
149
+
150
+ **Markdown出力形式:**
151
+ ```markdown
152
+ # 2025年1月 勤怠記録
153
+
154
+ ## 勤務詳細
155
+
156
+ | 日付 | 曜日 | 出勤時刻 | 退勤時刻 | 勤務時間 |
157
+ |------|------|----------|----------|----------|
158
+ | 2025-01-08 | 水 | 09:00:15 | 18:30:45 | 9:30:30 |
159
+ | 2025-01-09 | 木 | 08:45:30 | 19:15:20 | 10:29:50 |
160
+ | 2025-01-10 | 金 | 09:30:00 | 19:00:00 | 9:30:00 |
161
+
162
+ ## 月次サマリー
163
+
164
+ - **総勤務時間**: 29時間30分20秒
165
+ - **勤務日数**: 3日
166
+ - **平均勤務時間**: 9時間50分6秒
167
+ ```
168
+
169
+ ### 4. その他の機能
170
+
171
+ #### 4.1 現在の状態確認 (`kintai status`)
172
+
173
+ **動作仕様:**
174
+ - 現在の勤務状態(出勤中/退勤済み)を表示
175
+ - 出勤中の場合は経過時間を表示
176
+
177
+ **出力例:**
178
+ ```
179
+ $ kintai status
180
+ 状態: 出勤中
181
+ 出勤時刻: 2025-01-10 09:00:15
182
+ 経過時間: 3時間45分23秒
183
+ ```
184
+
185
+ #### 4.2 ヘルプ表示 (`kintai --help`)
186
+
187
+ **動作仕様:**
188
+ - 使用可能なコマンドと説明を表示
189
+
190
+ ## データ保存仕様
191
+
192
+ ### ファイル形式
193
+ - JSON形式でローカルに保存
194
+ - ファイルパス: `~/.kintai/records.json`
195
+
196
+ ### データ構造
197
+ ```json
198
+ {
199
+ "records": [
200
+ {
201
+ "date": "2025-01-10",
202
+ "check_in": "2025-01-10T09:00:15+09:00",
203
+ "check_out": "2025-01-10T18:30:45+09:00",
204
+ "duration_seconds": 34230
205
+ }
206
+ ],
207
+ "version": "1.0.0"
208
+ }
209
+ ```
210
+
211
+ ## エラーハンドリング
212
+
213
+ ### 想定されるエラーケース
214
+
215
+ 1. **重複出勤エラー**
216
+ - メッセージ: "既に本日の出勤記録があります。上書きしますか? [y/N]"
217
+
218
+ 2. **出勤記録なしエラー**
219
+ - メッセージ: "本日の出勤記録がありません。先に 'kintai in' を実行してください。"
220
+
221
+ 3. **無効な日付形式エラー**
222
+ - メッセージ: "日付の形式が正しくありません。YYYY-MM-DD形式で入力してください。"
223
+
224
+ 4. **データファイル破損エラー**
225
+ - メッセージ: "データファイルが破損しています。バックアップから復元するか、新規作成してください。"
226
+
227
+ ## インストール手順
228
+
229
+ ```bash
230
+ # 1. リポジトリのクローンまたはファイルの配置
231
+ git clone [repository-url] kintai
232
+ cd kintai
233
+
234
+ # 2. uvのインストール(未インストールの場合)
235
+ curl -LsSf https://astral.sh/uv/install.sh | sh
236
+
237
+ # 3. 依存パッケージのインストール
238
+ uv sync
239
+
240
+ # 4. 動作確認
241
+ uv run kintai --help
242
+ ```
243
+
244
+ ### 実行方法
245
+
246
+ ```bash
247
+ # uvを通じて実行
248
+ uv run kintai in
249
+ uv run kintai out
250
+ uv run kintai status
251
+ uv run kintai summary
252
+
253
+ # テストの実行
254
+ uv run pytest
255
+ ```
256
+
257
+ ### エイリアス設定(オプション)
258
+
259
+ 頻繁に使用する場合は、シェルにエイリアスを設定すると便利です。
260
+
261
+ ```bash
262
+ # ~/.bashrc または ~/.zshrc に追加
263
+ alias kintai='uv run --directory /path/to/kintai kintai'
264
+ ```
265
+
266
+ ## テストケース
267
+
268
+ ### 基本機能テスト
269
+
270
+ 1. **通常の出退勤記録**
271
+ ```bash
272
+ kintai in # 09:00に実行
273
+ kintai out # 18:00に実行
274
+ # 期待値: 9時間の勤務時間が記録される
275
+ ```
276
+
277
+ 2. **日またぎ勤務**
278
+ ```bash
279
+ kintai in # 22:00に実行
280
+ kintai out # 翌日07:00に実行
281
+ # 期待値: 9時間の勤務時間が記録される
282
+ ```
283
+
284
+ 3. **記録修正**
285
+ ```bash
286
+ kintai edit --date 2025-01-10 --in 09:30 --out 19:00
287
+ # 期待値: 指定日の記録が更新される
288
+ ```
289
+
290
+ 4. **月次サマリー**
291
+ ```bash
292
+ kintai summary --month 2025-01
293
+ # 期待値: 1月の全勤怠記録と統計が表示される
294
+ ```
295
+
296
+ ## 拡張機能案(将来実装)
297
+
298
+ 1. **休憩時間の記録**
299
+ - `kintai break start` / `kintai break end`
300
+
301
+ 2. **CSV/Excel出力**
302
+ - `kintai export --format csv --month 2025-01`
303
+
304
+ 3. **勤務パターン設定**
305
+ - 定時設定、フレックスタイム設定
306
+
307
+ 4. **統計分析機能**
308
+ - 週次レポート、残業時間分析
309
+
310
+ 5. **バックアップ/リストア機能**
311
+ - `kintai backup` / `kintai restore`
312
+
313
+ ## 注意事項
314
+
315
+ - タイムゾーンは必ず日本時間(JST)で処理すること
316
+ - データファイルは定期的にバックアップを推奨
317
+ - クリップボード操作にはX11環境が必要(WSL2の場合は追加設定が必要)
318
+
319
+ ## ライセンス
320
+
321
+ MIT License(個人利用を想定)