Repository navigation
Releases
Releases · SilentMalachite/Tsumugi
v1.0.0 — フェーズ2(記録+工賃計算)正式版
フェーズ2(マスタ・日次記録・工賃計算・PDF帳票)を当面の完成形とする最初の正式版です。記録と工賃計算を端末内(オフライン)で完結させます。
ダウンロード
| ファイル | 対象 | 状態 |
|---|---|---|
Tsumugi-1.0.0-osx-arm64.zip |
macOS (Apple Silicon) | 実機 smoke 済み |
Tsumugi-1.0.0-win-x64.zip |
Windows (x64) | 実機 smoke 未実施(macOS 上でクロス発行) |
いずれも self-contained 発行で .NET ランタイムのインストールは不要です。展開したフォルダごと配置してください(実行ファイル単体ではネイティブライブラリやライセンス表記が欠けます)。チェックサムは SHA256SUMS.txt を参照してください。コード署名はしていません。
主な内容
- フェーズ2: 利用者・受給者証などのマスタ、日次記録、工賃計算(4方式、Σ配分=原資)、工賃明細・支払一覧の PDF 帳票
- Phase 4: append-only の書き換えガード強化、
VACUUM INTOバックアップと終了時自動バックアップ・復元、self-contained 発行、初回セットアップウィザード、運用ガイド(docs/operations.md) - 国保連請求データ生成(フェーズ3)は実験的機能として同梱しています。現物の請求書類や公式の取込システムで出力を検証していません。
既知の制約
- Windows の実機確認(起動・終了時自動バックアップ・復元)は未実施です。
- DB 本体は暗号化しません。FileVault(macOS)/BitLocker(Windows)を有効にして運用してください。暗号化バックアップ(Phase 4 S3b)は未実装です。
- 未確定の制度実値や deferred の一覧は CHANGELOG の [1.0.0] 節と
docs/open-questions.mdにあります。
詳細は CHANGELOG.md を参照してください。
v0.3.0-phase4-s0: KouchinModule突合・工賃計算モデル拡張
フェーズ4 S0(KouchinModule v5 突合・工賃計算モデル拡張)完了。
追加
- 時給方式の日次レート集計(KouchinModule v5 対応、レート別集計後 HalfUp 丸め)
WageAdjustment(特別手当、ADR 0018)・RecipientHourlyRate(利用者別時給期間マスタ、ADR 0019)の追記型エンティティ- 作業手当・職能手当ルール(
WageSettings拡張) - Avalonia UI: 「利用者時給」「特別手当」タブ追加
- ADR 0012 を暫定から確定へ移行(AC4-13 達成)
修正(コードレビュー由来)
- 時給マスタ未設定・時給期間の隙間による工賃過少支給(サイレント0円)バグを解消
- 特別手当・利用者時給の再保存時の DB 一意制約違反(保存が黙って失敗する問題)を解消
- 追記型連鎖解決ロジックの不整合統一、丸め・手当算定ロジックの重複排除、N+1クエリ解消
品質
- `dotnet test` 全緑、`dotnet format --verify-no-changes` 差分なし
- Domain 行カバレッジ 98%超
詳細は CHANGELOG.md を参照。
既知の残作業(次フェーズ)
- 日本語フォント埋込・QuestPDFライセンス確定・暗号化方針決定・バックアップ自動化・配布パッケージング等(詳細は `07_ClaudeCode_Phase4実装指示_リリース準備_Tsumugi.md`)
- 平均工賃月額(AC2-8/AC4-14)の正式定義確定
v0.2.0-phase2 — フェーズ 2 (工賃計算) + Codex review remediation
フェーズ 2(工賃計算)完了。Codex review 由来の全 findings を解消した安定版。
ハイライト
- AC2-1 〜 AC2-10 のうち 9 件達成(AC2-8 のみ正式定義未確定で暫定式)
- Codex review HIGH 4 / MEDIUM 3 / LOW 1 / Minor 2 をすべてクローズ
- Domain 行カバレッジ 98.03%(CI gate を 70% → 95% に昇格)
- 469 テスト全緑(Domain 146 / Application 96 / Infrastructure 119 / Reporting 5 / App 103)
主な追加
Domain
- 5 エンティティ(
WageFund/WageSettings/WageStatement/WorkRecord/AuditEntry、追記型record) - 工賃 4 方式戦略
IWageMethodStrategy(Piece / Hourly / Fixed / Equal) - 純粋ロジック群(
AllocationPolicyの Σ=原資 不変条件、WageBasisExtractor実効 Present 限定、FiscalYearPolicy、AverageWageMetric暫定式) - 値オブジェクト
YearMonth
Application / Infrastructure
- 工賃ユースケース 5 種(Set/Configure/Calculate/Close/Query)+ 作業実績ユースケース 4 種
IAuditTrail/AuditEntryで append-only 監査ログ(ADR 0014)- SQLite partial unique index で
DailyRecord/WageFundの二重Newを DB レベルで防止(ADR 0015 / 0017、migration 2 件)
Infrastructure.Reporting(新規プロジェクト)
- QuestPDF Community License 固定(ADR 0013)+ 工賃明細 / 支払一覧 PDF
- 発行日は
TimeProvider注入で決定論化
App
- 4 Phase 2 ViewModel + 4 View(事業所選択 ComboBox + 年月入力 + アクション)
IFileSaveService+AvaloniaFileSaveService(AC2-7 PDF 保存ダイアログを UI から到達可能に)
ADR(Phase 2 期間で 6 件追加 + Phase 1 carryover 2 件)
0010 / 0011(受給者証様式・障害手帳/フェースシート)、0012(工賃計算戦略)、0013(QuestPDF)、0014(AuditEntry)、0015(DailyRecord 重複 New index)、0016(ゼロ重み按分、H-2 対応)、0017(WageFund 重複 New index、M-3 対応)
Codex review 修正(全件)
| 重大度 | ID | 内容 |
|---|---|---|
| HIGH | H-1 | 非 Present 日の WorkRecord を合算していた(AC2-5 違反)→ presentDates フィルタ |
| HIGH | H-2 | ゼロ重み時 Σ ≠ 原資 → ADR 0016 採用、policy 別分岐 |
| HIGH | H-3 | 工賃 3 VM に事業所選択 UI 無し → OfficeCapabilityViewModel パターン配線 |
| HIGH | H-4 | Domain ≥95% 未達 / CI 70% のまま → テスト追加で 98.03%、CI 95% へ昇格 |
| MEDIUM | M-1 | Reporting がオフライン scan 対象外 → [InlineData] 追加 |
| MEDIUM | M-2 | PDF 生成が UI から到達不可 → IFileSaveService + RelayCommand + View ボタン |
| MEDIUM | M-3 | WageFund 月次 New 重複が DB で防げない → ADR 0017 + partial unique index |
| LOW | L-1 | WageStatementPdfGenerator DateTime.UtcNow 直参照 → TimeProvider 注入 |
本番投入前 deferred(運用要件)
- QuestPDF Community License 事業所年商閾値確認(ADR 0013)
- 日本語フォント埋込(Noto Sans CJK JP)
- KouchinModule.bas v5 実挙動突合 → ADR 0012 暫定値正式化
- 平均工賃月額(AC2-8)の厚労省告示/通知突合 → 正式定義確定
詳細: CHANGELOG.md の [0.2.0-phase2] セクション / docs/phase2-acceptance.md