SKILL.md
Attendance Rules & Calculation Skill
目的
勤怠の「ルール」を曖昧なまま実装しないために、仕様(ルール表)→ 入出力 → 例外 → テストケースまで落とし込む。
必須アウトプット
- ルール一覧(表)
- 計算の入出力(TypeScriptの型イメージ)
- 代表ケースの期待値(最低10ケース)
- “未確定”の論点リスト(決めないと実装できない点を明確化)
進め方
- 時間の正規化
- 保存は ISO 8601 / UTC(またはタイムゾーン付き)で統一 - 表示・集計は Asia/Tokyo(JST)
- 日次集計の基本式
- 総拘束 = 退勤 - 出勤 - 休憩合計 = Σ(休憩終了 - 休憩開始) - 実働 = 総拘束 - 休憩合計
- 端数処理
- 切り捨て/切り上げ/四捨五入 - 単位(1分/5分/15分) - “出勤時刻の丸め”と“実働の丸め”は別物。混同しない
- 月次集計
- Σ(日次実働), Σ(残業), Σ(深夜), Σ(欠勤) など - 締め日(例:月末)と対象期間を明示
- 例外
- 日またぎ勤務(夜勤) - 休憩の重複/欠落 - 手入力修正(監査ログ必要か)
- テスト
- “仕様例”をそのままユニットテストにする(スナップショットも可) - 境界値:00:00跨ぎ、月跨ぎ、1分差、休憩無し、複数休憩
依頼例
- 「丸めルールを 15分単位にしたい。仕様とテストケース作って」
- 「日またぎ勤務をどう扱うべき?実装方針も含めて整理して」
References
- [docs/attendance-summary.md](../../../docs/attendance-summary.md)