mdlogbook 0.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.
- checksums.yaml +7 -0
- data/AGENTS.md +80 -0
- data/CHANGELOG.md +16 -0
- data/CLAUDE.md +5 -0
- data/CODE_OF_CONDUCT.md +10 -0
- data/LICENSE.txt +21 -0
- data/README.md +99 -0
- data/Rakefile +21 -0
- data/docs/sample-logs/sample-2025-01.md +122 -0
- data/docs/sample-logs/sample-2025-02.md +123 -0
- data/docs/sample-logs/sample-2025-03.md +116 -0
- data/docs/sample-logs/sample-2025-04.md +128 -0
- data/docs/sample-logs/sample-2025-05.md +122 -0
- data/docs/sample-logs/sample-2025-06.md +113 -0
- data/docs/sample-logs/sample-2025-07.md +122 -0
- data/docs/sample-logs/sample-2025-08.md +94 -0
- data/docs/sample-logs/sample-2025-09.md +119 -0
- data/docs/sample-logs/sample-2025-10.md +123 -0
- data/docs/sample-logs/sample-2025-11.md +113 -0
- data/docs/sample-logs/sample-2025-12.md +121 -0
- data/docs/usage.md +778 -0
- data/exe/mlb +6 -0
- data/lib/mdlogbook/arg_parser.rb +372 -0
- data/lib/mdlogbook/brace_expander.rb +59 -0
- data/lib/mdlogbook/cli.rb +224 -0
- data/lib/mdlogbook/config.rb +247 -0
- data/lib/mdlogbook/date_filter.rb +22 -0
- data/lib/mdlogbook/editor_launcher.rb +90 -0
- data/lib/mdlogbook/env.rb +95 -0
- data/lib/mdlogbook/file_resolver.rb +43 -0
- data/lib/mdlogbook/formatter/anonymize.rb +75 -0
- data/lib/mdlogbook/formatter/anonymize_dict.rb +36 -0
- data/lib/mdlogbook/formatter/base.rb +138 -0
- data/lib/mdlogbook/formatter/calendar.rb +154 -0
- data/lib/mdlogbook/formatter/chart_series_builder.rb +57 -0
- data/lib/mdlogbook/formatter/extract.rb +41 -0
- data/lib/mdlogbook/formatter/grid.rb +256 -0
- data/lib/mdlogbook/formatter/heatmap.rb +142 -0
- data/lib/mdlogbook/formatter/line_chart.rb +156 -0
- data/lib/mdlogbook/formatter/simple.rb +42 -0
- data/lib/mdlogbook/option_def.rb +68 -0
- data/lib/mdlogbook/option_registry.rb +205 -0
- data/lib/mdlogbook/overlap_checker.rb +42 -0
- data/lib/mdlogbook/parser.rb +213 -0
- data/lib/mdlogbook/period_spec.rb +56 -0
- data/lib/mdlogbook/raw_extractor.rb +100 -0
- data/lib/mdlogbook/runner/base.rb +66 -0
- data/lib/mdlogbook/runner/editor_runner.rb +49 -0
- data/lib/mdlogbook/runner/extract_format_runner.rb +54 -0
- data/lib/mdlogbook/runner/standard_format_runner.rb +105 -0
- data/lib/mdlogbook/runner/visual_format_runner.rb +77 -0
- data/lib/mdlogbook/runner.rb +27 -0
- data/lib/mdlogbook/section_extractor.rb +140 -0
- data/lib/mdlogbook/version.rb +6 -0
- data/lib/mdlogbook/work_thresholds.rb +37 -0
- data/lib/mdlogbook.rb +41 -0
- data/sig/mdlogbook/arg_parser.rbs +54 -0
- data/sig/mdlogbook/brace_expander.rbs +4 -0
- data/sig/mdlogbook/cli.rbs +14 -0
- data/sig/mdlogbook/config.rbs +60 -0
- data/sig/mdlogbook/date_filter.rbs +4 -0
- data/sig/mdlogbook/editor_launcher.rbs +9 -0
- data/sig/mdlogbook/env.rbs +32 -0
- data/sig/mdlogbook/file_resolver.rbs +9 -0
- data/sig/mdlogbook/formatter/anonymize.rbs +4 -0
- data/sig/mdlogbook/formatter/anonymize_dict.rbs +4 -0
- data/sig/mdlogbook/formatter/base.rbs +15 -0
- data/sig/mdlogbook/formatter/calendar.rbs +4 -0
- data/sig/mdlogbook/formatter/chart_series_builder.rbs +9 -0
- data/sig/mdlogbook/formatter/extract.rbs +4 -0
- data/sig/mdlogbook/formatter/grid.rbs +8 -0
- data/sig/mdlogbook/formatter/heatmap.rbs +10 -0
- data/sig/mdlogbook/formatter/line_chart.rbs +7 -0
- data/sig/mdlogbook/formatter/simple.rbs +6 -0
- data/sig/mdlogbook/option_def.rbs +30 -0
- data/sig/mdlogbook/option_registry.rbs +18 -0
- data/sig/mdlogbook/overlap_checker.rbs +13 -0
- data/sig/mdlogbook/parser.rbs +32 -0
- data/sig/mdlogbook/period_spec.rbs +11 -0
- data/sig/mdlogbook/raw_extractor.rbs +15 -0
- data/sig/mdlogbook/runner/base.rbs +4 -0
- data/sig/mdlogbook/runner/editor_runner.rbs +5 -0
- data/sig/mdlogbook/runner/extract_format_runner.rbs +4 -0
- data/sig/mdlogbook/runner/standard_format_runner.rbs +4 -0
- data/sig/mdlogbook/runner/visual_format_runner.rbs +4 -0
- data/sig/mdlogbook/runner.rbs +4 -0
- data/sig/mdlogbook/section_extractor.rbs +24 -0
- data/sig/mdlogbook/work_thresholds.rbs +11 -0
- data/sig/mdlogbook.rbs +8 -0
- metadata +149 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 57085d04c4c36515354beaca0fbfc2916580288ec9237f3c0e31b1acddb06e70
|
|
4
|
+
data.tar.gz: 4f2a0fa0e8804d07cdbcd7e66a0c6eaacc14190837dbc8e24ce255ef3a4bfc83
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: c75e309fbde2bacb014750d3c9d6d0379954614694c31ef6171f063be8ce87a852bd50756818f6d2c8700198bcd1f46ee9e7e181b8ef87fb6b1600d4d39b2312
|
|
7
|
+
data.tar.gz: be7281b522c24e5ec010d90f1b3b12943e6dde65bc35c0e08b6ea1abab8146c3d8dca764b4bb53f5c6fb96994f259d56c7c1314f6658a6fe16a3708c3ff863a0
|
data/AGENTS.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Repository Guidelines
|
|
2
|
+
|
|
3
|
+
## Project Structure & Module Organization
|
|
4
|
+
`mdlogbook` follows the standard Bundler gem layout. Put library code in `lib/`, with the main entrypoint in `lib/mdlogbook.rb` and version data in `lib/mdlogbook/version.rb`. Keep executables in `exe/`, shared test setup in `test/test_helper.rb`, and RBS signatures in `sig/`. Gem metadata lives in `mdlogbook.gemspec`.
|
|
5
|
+
|
|
6
|
+
Test files and RBS signature files mirror the `lib/` directory structure:
|
|
7
|
+
- `lib/mdlogbook/foo.rb` → `test/mdlogbook/foo_test.rb`
|
|
8
|
+
- `lib/mdlogbook/foo.rb` → `sig/mdlogbook/foo.rbs`
|
|
9
|
+
|
|
10
|
+
Key modules under `lib/mdlogbook/`:
|
|
11
|
+
|
|
12
|
+
- `cli.rb` — Command-line interface (option parsing, dispatch). Options are defined via `OptionRegistry` in `build_registry`, which serves as the single source of truth for both `OptionParser` and shell completion scripts (`--completion bash/zsh`).
|
|
13
|
+
- `option_def.rb` — Option definition data class with metadata for OptionParser and shell completion
|
|
14
|
+
- `option_registry.rb` — Collects `OptionDef` entries and generates OptionParser instances and bash/zsh completion scripts
|
|
15
|
+
- `config.rb` — YAML config loading, XDG path resolution
|
|
16
|
+
- `arg_parser.rb` — Period specifier parsing (month, week, day, quarter, globs, ranges)
|
|
17
|
+
- `brace_expander.rb` — Brace/glob expansion for period specifiers
|
|
18
|
+
- `parser.rb` — Markdown log file parser
|
|
19
|
+
- `period_spec.rb` — Date range representation (start/end, month-unit flag)
|
|
20
|
+
- `date_filter.rb` — Filters parsed results to a given period
|
|
21
|
+
- `file_resolver.rb` — Maps (year, month) to log file paths
|
|
22
|
+
- `work_thresholds.rb` — Working-time thresholds derived from monthly targets
|
|
23
|
+
- `overlap_checker.rb` — Detects overlapping time entries
|
|
24
|
+
- `editor_launcher.rb` — Opens log files in the user's editor
|
|
25
|
+
- `raw_extractor.rb` — Extracts raw markdown content for `--extract`
|
|
26
|
+
- `runner/` — Format-specific runners dispatched by `runner.rb`:
|
|
27
|
+
- `base.rb` — Shared spec parsing, file loading, and utilities
|
|
28
|
+
- `standard_format_runner.rb` — Simple, calendar, anonymize views
|
|
29
|
+
- `visual_format_runner.rb` — Line chart, grid, heatmap
|
|
30
|
+
- `extract_format_runner.rb` — Raw markdown extraction and grep
|
|
31
|
+
- `editor_runner.rb` — Editor launch
|
|
32
|
+
- `formatter/` — Output formatters:
|
|
33
|
+
- `base.rb` — Shared formatting logic
|
|
34
|
+
- `simple.rb` — Default tabular output
|
|
35
|
+
- `calendar.rb` — Calendar grid view
|
|
36
|
+
- `line_chart.rb` — Line chart (`--line-chart`)
|
|
37
|
+
- `grid.rb` — Multi-month chart grid (`--grid`)
|
|
38
|
+
- `heatmap.rb` — Day-of-week × hour-of-day density plot (`--heatmap`)
|
|
39
|
+
- `extract.rb` — Raw markdown extraction
|
|
40
|
+
- `anonymize.rb` / `anonymize_dict.rb` — Anonymized output
|
|
41
|
+
|
|
42
|
+
## Build, Test, and Development Commands
|
|
43
|
+
Run `bin/setup` after cloning to install dependencies. Use `bundle exec rake test` for the test suite, `bundle exec rubocop` for style checks, and `bundle exec rake` for both. `bin/console` starts an interactive session for local experimentation.
|
|
44
|
+
|
|
45
|
+
## Coding Style & Naming Conventions
|
|
46
|
+
Target Ruby `3.3` and follow `standardrb` conventions through RuboCop and `.rubocop.yml`. Use 2-space indentation, `# frozen_string_literal: true`, and double-quoted strings. Keep public constants and classes under the `Mdlogbook` namespace, and match file paths to constant names, for example `lib/mdlogbook/version.rb` for `Mdlogbook::VERSION`.
|
|
47
|
+
|
|
48
|
+
Write YARD documentation for all classes, modules, and public methods. Include `@param`, `@return`, and `@raise` tags as appropriate. When adding or modifying a class or public method, update the corresponding RBS signature file in `sig/` to keep types in sync with the implementation (see Project Structure for the file mapping).
|
|
49
|
+
|
|
50
|
+
`README.md` and `docs/usage.md` serve different purposes:
|
|
51
|
+
|
|
52
|
+
- `README.md` — Overview: minimal usage examples and minimal development information. Enough to get started quickly.
|
|
53
|
+
- `docs/usage.md` — Detailed usage guide and specification. Describes all features, options, configuration, and expected behavior. Also serves as the living spec: new requirements are written here before implementation (see Development Workflow step 2).
|
|
54
|
+
|
|
55
|
+
For Japanese documentation in `README.md` and files under `docs/`, do not insert spaces between Japanese text and alphanumeric symbols, including inline code spans like `` `...` ``. Use half-width parentheses `(` and `)` instead of full-width parentheses.
|
|
56
|
+
|
|
57
|
+
## Development Workflow
|
|
58
|
+
|
|
59
|
+
Follow these steps in order. Do not skip or combine steps without user approval.
|
|
60
|
+
|
|
61
|
+
1. **Requirements** — Clarify the goal, constraints, and acceptance criteria. If anything is unclear, ask the user instead of guessing.
|
|
62
|
+
2. **Specification** — Reflect the agreed requirements into `docs/usage.md` as the specification. This step comes before planning so that the spec is reviewed and approved as part of the design process.
|
|
63
|
+
3. **Plan** — Present an implementation plan in the conversation and wait for explicit user approval before writing any code.
|
|
64
|
+
4. **Branch** — Create a branch named `feature/<short-requirement-name>`. For non-functional small changes (typo fixes, comment tweaks, etc.) branching may be skipped and committed directly to `main`.
|
|
65
|
+
5. **Implement (test-first)** — For each task: add a failing test → implement → rerun tests. If new facts invalidate the plan, pause and get approval on the updated plan. When adding, removing, or modifying CLI options, update `build_registry` in `cli.rb` with the appropriate `OptionDef` metadata (`values`, `completion`, `arg_optional`, etc.) so that shell completion scripts generated by `--completion bash/zsh` stay in sync.
|
|
66
|
+
6. **Verify** — Ask the user to perform manual verification for changes that affect visual output or user-facing display (terminal formatting, chart rendering, etc.). Provide specific verification points so the user knows what to check. Skip this step when the change is purely internal and adequately covered by unit tests. For changes involving privacy or security requirements, always request human verification regardless of test coverage.
|
|
67
|
+
7. **Consistency check** — If the change touches part of a family of related classes (e.g. some but not all subclasses of a base class), review the untouched siblings for consistency and apply improvements if needed. Skip this step when the change is self-contained.
|
|
68
|
+
8. **Documentation** — Update YARD docs and RBS signatures in `sig/`. Verify that `docs/usage.md` is consistent with the actual implementation and adjust if needed (the spec written in step 2 may have diverged during implementation). Update `README.md` if the overview-level description needs to change.
|
|
69
|
+
9. **Changelog** — If the change is worth communicating to users (new features, behavior changes, bug fixes, deprecations), add an entry in Japanese to `CHANGELOG.md` under `## [Unreleased]` and ask whether to bump the version in `lib/mdlogbook/version.rb`.
|
|
70
|
+
10. **Commit** — Commit with user confirmation. See Commit & Pull Request Guidelines for message format.
|
|
71
|
+
11. **Merge** — With user confirmation, merge the feature branch into `main` and delete the feature branch. Skip if committed directly to `main`.
|
|
72
|
+
|
|
73
|
+
## Testing Guidelines
|
|
74
|
+
This repository uses `test-unit` through Rake. Test files mirror the `lib/` directory structure (see Project Structure). Prefer assertions on observable behavior over implementation details. Run `bundle exec rake test` before review, and `bundle exec rake` when changing both code and formatting-sensitive files.
|
|
75
|
+
|
|
76
|
+
## Commit & Pull Request Guidelines
|
|
77
|
+
The current history uses concise Conventional Commit messages such as `chore: initial commit`; continue with prefixes like `feat:`, `fix:`, `docs:`, and `test:`. Do not commit without user confirmation. Keep commits scoped to a task when practical, and never run `git push` unless the user explicitly asks. Pull requests should include a short summary, the reason for the change, and the commands used to verify it.
|
|
78
|
+
|
|
79
|
+
## Release & Configuration Notes
|
|
80
|
+
Update `lib/mdlogbook/version.rb` before a release. Packaging and release tasks come from `bundler/gem_tasks`, so `bundle exec rake release` will tag and publish once gemspec metadata is fully configured.
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
## [Unreleased]
|
|
2
|
+
|
|
3
|
+
## [0.1.0] - 2026-03-21
|
|
4
|
+
|
|
5
|
+
### 機能
|
|
6
|
+
|
|
7
|
+
- Markdownログファイルのパースと時間集計
|
|
8
|
+
- 期間指定: 月指定(`YYYY/M`)、相対指定(`d0`/`w1`/`m2`/`q1`/`y0`/`D7`)、範囲(`w0..2`)、ブレース展開(`2025/{1..3}`)
|
|
9
|
+
- 表示形式: 一覧(`--simple`)、カレンダー(`--calendar`)、折れ線グラフ(`--line-chart`)、グリッド(`--grid`)、ヒートマップ(`--heatmap`)
|
|
10
|
+
- 匿名化出力(`--anonymize`/`--anonymize-dict`)によるAI分析向けデータ生成
|
|
11
|
+
- Markdownセクション抽出(`--raw`/`--grep`)
|
|
12
|
+
- エディタ連携(`--edit`)による対象ファイルの直接編集(終了後にファイルを検査)
|
|
13
|
+
- YAML設定ファイルによるマルチプロジェクト管理(`--init`/`--project`)
|
|
14
|
+
- 月間基準時間に対する達成率・残時間の表示(`target_hours`)
|
|
15
|
+
- 時間エントリの重複検出と警告(記録時間の不一致警告も赤字で表示)
|
|
16
|
+
- シェル補完スクリプト生成(`--completion bash/zsh`)
|
data/CLAUDE.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Claude Code Guidelines
|
|
2
|
+
|
|
3
|
+
**Before starting any task, read [AGENTS.md](AGENTS.md) in full and follow the Development Workflow exactly.**
|
|
4
|
+
|
|
5
|
+
See [AGENTS.md](AGENTS.md) for full project guidelines including coding style, development workflow, testing, and commit conventions.
|
data/CODE_OF_CONDUCT.md
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
"mdlogbook" follows [The Ruby Community Conduct Guideline](https://www.ruby-lang.org/en/conduct) in all "collaborative space", which is defined as community communications channels (such as mailing lists, submitted patches, commit comments, etc.):
|
|
4
|
+
|
|
5
|
+
* Participants will be tolerant of opposing views.
|
|
6
|
+
* Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.
|
|
7
|
+
* When interpreting the words and actions of others, participants should always assume good intentions.
|
|
8
|
+
* Behaviour which can be reasonably considered harassment will not be tolerated.
|
|
9
|
+
|
|
10
|
+
If you have any concerns about behaviour within this project, please contact us at ["akira@arika.org"](mailto:"akira@arika.org").
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 akira yamada
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Mdlogbook
|
|
2
|
+
|
|
3
|
+
Markdownで書いた作業記録から勤務時間を集計し、一覧・カレンダー・グラフ・抽出・匿名化形式で表示するCLIツールです。
|
|
4
|
+
|
|
5
|
+
## できること
|
|
6
|
+
|
|
7
|
+
- Markdownで書いた日々の作業記録を集計する
|
|
8
|
+
- 一覧形式・カレンダー形式・折れ線グラフ・グリッド・ヒートマップで表示する
|
|
9
|
+
- 当月・過去の月・週・直近N日・四半期・年など、さまざまな期間を指定して確認する
|
|
10
|
+
- プロジェクトごとに設定を切り替えて集計する
|
|
11
|
+
- 記録ファイルをエディタで開いて追記する
|
|
12
|
+
- AI向けに生のMarkdown抽出・匿名化出力・匿名化辞書出力を行う
|
|
13
|
+
|
|
14
|
+
より詳しい説明は[使い方ガイド](docs/usage.md)を参照してください。
|
|
15
|
+
|
|
16
|
+
## 入力形式
|
|
17
|
+
|
|
18
|
+
入力ファイルは、日付、作業名、時間帯付きの記録をMarkdownで並べた形式です。
|
|
19
|
+
|
|
20
|
+
```md
|
|
21
|
+
# 2026-03-01
|
|
22
|
+
## 開発
|
|
23
|
+
* 09:30-12:00 (2.50)
|
|
24
|
+
* 13:00-18:00 (5.00)
|
|
25
|
+
|
|
26
|
+
# 2026-03-02
|
|
27
|
+
## 会議
|
|
28
|
+
* 10:00-11:30 (1.50)
|
|
29
|
+
## 開発
|
|
30
|
+
* 13:00-19:00 (6.00)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- `# YYYY-MM-DD`で日付を表す
|
|
34
|
+
- `## ...`で作業区分や案件名を表す
|
|
35
|
+
- `* HH:MM-HH:MM (x.xx)`で作業時間帯と記録時間を表す
|
|
36
|
+
|
|
37
|
+
記録時間(かっこ内の値)と時刻から計算した差分が一致しない場合、`--simple`/`--calendar`では警告がstderrに表示されます。日をまたぐ時間帯は`23:30-24:30`のように`24:xx`で記述します。`23:30-00:30`も1時間として集計されますが、非推奨の書き方として警告されます。
|
|
38
|
+
|
|
39
|
+
## 基本的な使い方
|
|
40
|
+
|
|
41
|
+
### 最初に設定ファイルを作成する
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
mlb --init
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 日々の記録を確認する
|
|
48
|
+
|
|
49
|
+
作業後にターミナルで`mlb`を実行すると、当月のログファイルを自動的に選択して集計します。
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
mlb # 今月を一覧表示
|
|
53
|
+
mlb -c # 今月をカレンダー表示
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
- 一覧形式(デフォルト): 日付・時間帯・作業名を1行ずつ表示し、月の合計と達成率を表示
|
|
57
|
+
- カレンダー形式: 日ごとの合計時間を月間カレンダーで表示し、週・曜日の集計も表示
|
|
58
|
+
|
|
59
|
+
### ログファイルを編集する
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
mlb -e # 当月ファイルをエディタで開く(当日の行にカーソルを移動)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
使用するエディタを設定しておく必要があります。
|
|
66
|
+
|
|
67
|
+
詳細は[使い方ガイド・エディタの設定](docs/usage.md#エディタの設定)を参照してください。
|
|
68
|
+
|
|
69
|
+
### 過去の記録を参照する
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
mlb m1 # 先月
|
|
73
|
+
mlb 2026/1 # 2026年1月
|
|
74
|
+
mlb 2026/1 2026/3 # 2026年1〜3月を月別表示
|
|
75
|
+
mlb w..1 # 今週+先週
|
|
76
|
+
mlb D30 # 直近30日間
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
指定方法の詳細は[使い方ガイド・対象期間の指定](docs/usage.md#対象期間の指定)にまとめています。
|
|
80
|
+
|
|
81
|
+
## 詳しい使い方
|
|
82
|
+
|
|
83
|
+
詳しいセットアップ、設定ファイル、期間指定、出力オプション、シェルコンプリーションは[使い方ガイド](docs/usage.md)を参照してください。
|
|
84
|
+
|
|
85
|
+
## 開発
|
|
86
|
+
|
|
87
|
+
依存関係のセットアップ:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
bin/setup
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
テストとスタイルチェック:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
bundle exec rake test
|
|
97
|
+
bundle exec rubocop
|
|
98
|
+
bundle exec rake
|
|
99
|
+
```
|
data/Rakefile
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "bundler/gem_tasks"
|
|
4
|
+
require "rake/testtask"
|
|
5
|
+
|
|
6
|
+
Rake::TestTask.new(:test) do |t|
|
|
7
|
+
t.libs << "test"
|
|
8
|
+
t.libs << "lib"
|
|
9
|
+
t.test_files = FileList["test/**/*_test.rb"]
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
require "rubocop/rake_task"
|
|
13
|
+
|
|
14
|
+
RuboCop::RakeTask.new
|
|
15
|
+
|
|
16
|
+
desc "Validate RBS signatures"
|
|
17
|
+
task :rbs do
|
|
18
|
+
sh "bundle exec rbs validate"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
task default: %i[test rubocop rbs]
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# 2025-01-06
|
|
2
|
+
## 週次計画と棚卸
|
|
3
|
+
* 09:30-12:00 (2.50)
|
|
4
|
+
## 顧客ポータル刷新
|
|
5
|
+
* 13:00-18:30 (5.50)
|
|
6
|
+
|
|
7
|
+
# 2025-01-07
|
|
8
|
+
## 顧客ポータル刷新
|
|
9
|
+
* 09:15-12:15 (3.00)
|
|
10
|
+
* 13:15-19:00 (5.75)
|
|
11
|
+
|
|
12
|
+
# 2025-01-08
|
|
13
|
+
## 配送実績API整備
|
|
14
|
+
* 09:30-12:00 (2.50)
|
|
15
|
+
## 顧客ポータル刷新
|
|
16
|
+
* 13:00-18:30 (5.50)
|
|
17
|
+
|
|
18
|
+
# 2025-01-09
|
|
19
|
+
## 在庫同期バッチ改善
|
|
20
|
+
* 09:30-12:00 (2.50)
|
|
21
|
+
## 顧客ポータル刷新
|
|
22
|
+
* 13:00-18:15 (5.25)
|
|
23
|
+
## 定例ミーティング
|
|
24
|
+
* 18:30-19:30 (1.00)
|
|
25
|
+
|
|
26
|
+
# 2025-01-10
|
|
27
|
+
## 配送実績API整備
|
|
28
|
+
* 09:30-12:30 (3.00)
|
|
29
|
+
* 13:30-18:30 (5.00)
|
|
30
|
+
|
|
31
|
+
# 2025-01-14
|
|
32
|
+
## 顧客ポータル刷新
|
|
33
|
+
* 09:00-12:00 (3.00)
|
|
34
|
+
## 障害調査
|
|
35
|
+
* 13:00-18:00 (5.00)
|
|
36
|
+
* 20:30-22:00 (1.50)
|
|
37
|
+
|
|
38
|
+
# 2025-01-15
|
|
39
|
+
## 月次レポート整備
|
|
40
|
+
* 09:30-11:30 (2.00)
|
|
41
|
+
## 顧客ポータル刷新
|
|
42
|
+
* 12:30-18:30 (6.00)
|
|
43
|
+
|
|
44
|
+
# 2025-01-16
|
|
45
|
+
## 月次レポート整備
|
|
46
|
+
* 09:30-11:30 (2.00)
|
|
47
|
+
## 顧客ポータル刷新
|
|
48
|
+
* 12:30-18:30 (6.00)
|
|
49
|
+
|
|
50
|
+
# 2025-01-17
|
|
51
|
+
## 在庫同期バッチ改善
|
|
52
|
+
* 09:30-12:00 (2.50)
|
|
53
|
+
## 1on1と採用準備
|
|
54
|
+
* 13:00-15:00 (2.00)
|
|
55
|
+
## 顧客ポータル刷新
|
|
56
|
+
* 15:15-19:15 (4.00)
|
|
57
|
+
|
|
58
|
+
# 2025-01-20
|
|
59
|
+
## 顧客ポータル刷新
|
|
60
|
+
* 09:30-12:00 (2.50)
|
|
61
|
+
* 13:00-18:30 (5.50)
|
|
62
|
+
## リリース準備
|
|
63
|
+
* 20:00-22:30 (2.50)
|
|
64
|
+
|
|
65
|
+
# 2025-01-21
|
|
66
|
+
## 配送実績API整備
|
|
67
|
+
* 09:00-12:00 (3.00)
|
|
68
|
+
## 定例ミーティング
|
|
69
|
+
* 13:00-14:30 (1.50)
|
|
70
|
+
## 顧客ポータル刷新
|
|
71
|
+
* 15:00-18:30 (3.50)
|
|
72
|
+
|
|
73
|
+
# 2025-01-22
|
|
74
|
+
## 配送実績API整備
|
|
75
|
+
* 09:00-12:00 (3.00)
|
|
76
|
+
## 顧客ポータル刷新
|
|
77
|
+
* 13:00-18:00 (5.00)
|
|
78
|
+
|
|
79
|
+
# 2025-01-23
|
|
80
|
+
## 顧客ポータル刷新
|
|
81
|
+
* 09:30-12:30 (3.00)
|
|
82
|
+
## 監視改善
|
|
83
|
+
* 13:30-18:30 (5.00)
|
|
84
|
+
|
|
85
|
+
# 2025-01-24
|
|
86
|
+
## 障害調査
|
|
87
|
+
* 09:15-11:45 (2.50)
|
|
88
|
+
## 在庫同期バッチ改善
|
|
89
|
+
* 13:00-18:30 (5.50)
|
|
90
|
+
## ふりかえり
|
|
91
|
+
* 19:00-20:00 (1.00)
|
|
92
|
+
|
|
93
|
+
# 2025-01-27
|
|
94
|
+
## 顧客ポータル刷新
|
|
95
|
+
* 09:30-12:00 (2.50)
|
|
96
|
+
* 13:00-18:00 (5.00)
|
|
97
|
+
|
|
98
|
+
# 2025-01-28
|
|
99
|
+
## 月次レポート整備
|
|
100
|
+
* 09:30-11:30 (2.00)
|
|
101
|
+
## 顧客ポータル刷新
|
|
102
|
+
* 12:30-18:30 (6.00)
|
|
103
|
+
## 配送実績API整備
|
|
104
|
+
* 19:00-21:00 (2.00)
|
|
105
|
+
|
|
106
|
+
# 2025-01-29
|
|
107
|
+
## 顧客ポータル刷新
|
|
108
|
+
* 09:00-12:00 (3.00)
|
|
109
|
+
## 在庫同期バッチ改善
|
|
110
|
+
* 13:00-18:30 (5.50)
|
|
111
|
+
|
|
112
|
+
# 2025-01-30
|
|
113
|
+
## 顧客ポータル刷新
|
|
114
|
+
* 09:00-12:00 (3.00)
|
|
115
|
+
## リリース準備
|
|
116
|
+
* 13:00-19:00 (6.00)
|
|
117
|
+
|
|
118
|
+
# 2025-01-31
|
|
119
|
+
## 月末締め
|
|
120
|
+
* 09:30-11:30 (2.00)
|
|
121
|
+
## 顧客ポータル刷新
|
|
122
|
+
* 12:30-18:30 (6.00)
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# 2025-02-03
|
|
2
|
+
## 顧客ポータル刷新
|
|
3
|
+
* 09:30-12:00 (2.50)
|
|
4
|
+
* 13:00-18:00 (5.00)
|
|
5
|
+
|
|
6
|
+
# 2025-02-04
|
|
7
|
+
## 配送実績API整備
|
|
8
|
+
* 09:00-12:00 (3.00)
|
|
9
|
+
## 定例ミーティング
|
|
10
|
+
* 13:00-14:30 (1.50)
|
|
11
|
+
## 顧客ポータル刷新
|
|
12
|
+
* 15:00-18:30 (3.50)
|
|
13
|
+
|
|
14
|
+
# 2025-02-05
|
|
15
|
+
## 顧客ポータル刷新
|
|
16
|
+
* 09:30-12:00 (2.50)
|
|
17
|
+
## 月次レポート整備
|
|
18
|
+
* 13:00-18:30 (5.50)
|
|
19
|
+
|
|
20
|
+
# 2025-02-06
|
|
21
|
+
## 在庫同期バッチ改善
|
|
22
|
+
* 09:30-12:00 (2.50)
|
|
23
|
+
## 顧客ポータル刷新
|
|
24
|
+
* 13:00-18:15 (5.25)
|
|
25
|
+
|
|
26
|
+
# 2025-02-07
|
|
27
|
+
## 障害調査
|
|
28
|
+
* 09:30-11:30 (2.00)
|
|
29
|
+
## 顧客ポータル刷新
|
|
30
|
+
* 12:30-18:00 (5.50)
|
|
31
|
+
|
|
32
|
+
# 2025-02-10
|
|
33
|
+
## 採用面談
|
|
34
|
+
* 09:30-11:30 (2.00)
|
|
35
|
+
## 配送実績API整備
|
|
36
|
+
* 12:30-18:00 (5.50)
|
|
37
|
+
|
|
38
|
+
# 2025-02-12
|
|
39
|
+
## 顧客ポータル刷新
|
|
40
|
+
* 09:30-12:30 (3.00)
|
|
41
|
+
## 月次レポート整備
|
|
42
|
+
* 13:30-18:00 (4.50)
|
|
43
|
+
|
|
44
|
+
# 2025-02-13
|
|
45
|
+
## 顧客ポータル刷新
|
|
46
|
+
* 09:00-12:00 (3.00)
|
|
47
|
+
* 13:00-18:30 (5.50)
|
|
48
|
+
|
|
49
|
+
# 2025-02-14
|
|
50
|
+
## 在庫同期バッチ改善
|
|
51
|
+
* 09:30-12:00 (2.50)
|
|
52
|
+
## 1on1とふりかえり
|
|
53
|
+
* 13:00-15:00 (2.00)
|
|
54
|
+
## 顧客ポータル刷新
|
|
55
|
+
* 15:30-18:30 (3.00)
|
|
56
|
+
|
|
57
|
+
# 2025-02-17
|
|
58
|
+
## 顧客ポータル刷新
|
|
59
|
+
* 09:30-12:00 (2.50)
|
|
60
|
+
## 配送実績API整備
|
|
61
|
+
* 13:00-18:30 (5.50)
|
|
62
|
+
|
|
63
|
+
# 2025-02-18
|
|
64
|
+
## 障害調査
|
|
65
|
+
* 09:30-11:00 (1.50)
|
|
66
|
+
## 顧客ポータル刷新
|
|
67
|
+
* 12:00-18:30 (6.50)
|
|
68
|
+
|
|
69
|
+
# 2025-02-19
|
|
70
|
+
## 障害調査
|
|
71
|
+
* 09:30-11:00 (1.50)
|
|
72
|
+
## 顧客ポータル刷新
|
|
73
|
+
* 12:00-18:00 (6.00)
|
|
74
|
+
|
|
75
|
+
# 2025-02-20
|
|
76
|
+
## 顧客ポータル刷新
|
|
77
|
+
* 09:30-12:30 (3.00)
|
|
78
|
+
## 定例ミーティング
|
|
79
|
+
* 13:30-15:00 (1.50)
|
|
80
|
+
## 月次レポート整備
|
|
81
|
+
* 15:15-18:15 (3.00)
|
|
82
|
+
|
|
83
|
+
# 2025-02-21
|
|
84
|
+
## 配送実績API整備
|
|
85
|
+
* 09:30-12:00 (2.50)
|
|
86
|
+
## 顧客ポータル刷新
|
|
87
|
+
* 13:00-17:30 (4.50)
|
|
88
|
+
|
|
89
|
+
# 2025-02-24
|
|
90
|
+
## 顧客ポータル刷新
|
|
91
|
+
* 09:00-12:00 (3.00)
|
|
92
|
+
## 監視改善
|
|
93
|
+
* 13:00-18:00 (5.00)
|
|
94
|
+
|
|
95
|
+
# 2025-02-26
|
|
96
|
+
## 配送実績API整備
|
|
97
|
+
* 09:00-12:00 (3.00)
|
|
98
|
+
## 顧客ポータル刷新
|
|
99
|
+
* 13:00-18:00 (5.00)
|
|
100
|
+
|
|
101
|
+
# 2025-02-27
|
|
102
|
+
## 顧客ポータル刷新
|
|
103
|
+
* 09:30-12:30 (3.00)
|
|
104
|
+
## リリース準備
|
|
105
|
+
* 13:30-19:00 (5.50)
|
|
106
|
+
|
|
107
|
+
# 2025-02-25
|
|
108
|
+
## 顧客ポータル刷新
|
|
109
|
+
* 09:00-12:00 (3.00)
|
|
110
|
+
## リリース準備
|
|
111
|
+
* 13:00-18:30 (5.50)
|
|
112
|
+
|
|
113
|
+
# 2025-02-26
|
|
114
|
+
## 障害調査
|
|
115
|
+
* 09:30-11:00 (1.50)
|
|
116
|
+
## 顧客ポータル刷新
|
|
117
|
+
* 12:00-18:00 (6.00)
|
|
118
|
+
|
|
119
|
+
# 2025-02-28
|
|
120
|
+
## 月末締め
|
|
121
|
+
* 09:30-11:30 (2.00)
|
|
122
|
+
## 顧客ポータル刷新
|
|
123
|
+
* 12:30-18:00 (5.50)
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# 2025-03-03
|
|
2
|
+
## 顧客ポータル刷新
|
|
3
|
+
* 09:30-12:00 (2.50)
|
|
4
|
+
* 13:00-18:30 (5.50)
|
|
5
|
+
|
|
6
|
+
# 2025-03-04
|
|
7
|
+
## 配送実績API整備
|
|
8
|
+
* 09:00-12:00 (3.00)
|
|
9
|
+
## 定例ミーティング
|
|
10
|
+
* 13:00-14:30 (1.50)
|
|
11
|
+
## 顧客ポータル刷新
|
|
12
|
+
* 15:00-19:00 (4.00)
|
|
13
|
+
|
|
14
|
+
# 2025-03-05
|
|
15
|
+
## 顧客ポータル刷新
|
|
16
|
+
* 09:30-12:00 (2.50)
|
|
17
|
+
## 月次レポート整備
|
|
18
|
+
* 13:00-18:30 (5.50)
|
|
19
|
+
|
|
20
|
+
# 2025-03-06
|
|
21
|
+
## リリース準備
|
|
22
|
+
* 09:30-12:00 (2.50)
|
|
23
|
+
## 顧客ポータル刷新
|
|
24
|
+
* 13:00-18:30 (5.50)
|
|
25
|
+
## 監視改善
|
|
26
|
+
* 20:00-22:00 (2.00)
|
|
27
|
+
|
|
28
|
+
# 2025-03-07
|
|
29
|
+
## 在庫同期バッチ改善
|
|
30
|
+
* 09:30-12:30 (3.00)
|
|
31
|
+
## 顧客ポータル刷新
|
|
32
|
+
* 13:30-18:30 (5.00)
|
|
33
|
+
|
|
34
|
+
# 2025-03-10
|
|
35
|
+
## 顧客ポータル刷新
|
|
36
|
+
* 09:00-12:00 (3.00)
|
|
37
|
+
* 13:00-18:30 (5.50)
|
|
38
|
+
|
|
39
|
+
# 2025-03-11
|
|
40
|
+
## 配送実績API整備
|
|
41
|
+
* 09:00-12:00 (3.00)
|
|
42
|
+
## 顧客ポータル刷新
|
|
43
|
+
* 13:00-18:30 (5.50)
|
|
44
|
+
|
|
45
|
+
# 2025-03-12
|
|
46
|
+
## 障害調査
|
|
47
|
+
* 09:15-11:45 (2.50)
|
|
48
|
+
## 顧客ポータル刷新
|
|
49
|
+
* 12:45-18:15 (5.50)
|
|
50
|
+
|
|
51
|
+
# 2025-03-13
|
|
52
|
+
## 配送実績API整備
|
|
53
|
+
* 09:30-12:00 (2.50)
|
|
54
|
+
## リリース準備
|
|
55
|
+
* 13:00-18:30 (5.50)
|
|
56
|
+
## 深夜確認
|
|
57
|
+
* 21:00-24:00 (3.00)
|
|
58
|
+
|
|
59
|
+
# 2025-03-14
|
|
60
|
+
## 顧客ポータル刷新
|
|
61
|
+
* 10:00-12:00 (2.00)
|
|
62
|
+
## 月次レポート整備
|
|
63
|
+
* 13:00-18:00 (5.00)
|
|
64
|
+
|
|
65
|
+
# 2025-03-17
|
|
66
|
+
## 顧客ポータル刷新
|
|
67
|
+
* 09:30-12:00 (2.50)
|
|
68
|
+
## 在庫同期バッチ改善
|
|
69
|
+
* 13:00-18:30 (5.50)
|
|
70
|
+
|
|
71
|
+
# 2025-03-18
|
|
72
|
+
## 顧客ポータル刷新
|
|
73
|
+
* 09:30-12:30 (3.00)
|
|
74
|
+
* 13:30-18:30 (5.00)
|
|
75
|
+
|
|
76
|
+
# 2025-03-19
|
|
77
|
+
## リリース準備
|
|
78
|
+
* 09:00-12:00 (3.00)
|
|
79
|
+
* 13:00-18:30 (5.50)
|
|
80
|
+
## 切替手順確認
|
|
81
|
+
* 20:30-23:30 (3.00)
|
|
82
|
+
|
|
83
|
+
# 2025-03-21
|
|
84
|
+
## 障害調査
|
|
85
|
+
* 09:30-11:00 (1.50)
|
|
86
|
+
## 顧客ポータル刷新
|
|
87
|
+
* 12:00-18:00 (6.00)
|
|
88
|
+
|
|
89
|
+
# 2025-03-24
|
|
90
|
+
## 配送実績API整備
|
|
91
|
+
* 09:30-12:00 (2.50)
|
|
92
|
+
## 顧客ポータル刷新
|
|
93
|
+
* 13:00-18:30 (5.50)
|
|
94
|
+
|
|
95
|
+
# 2025-03-25
|
|
96
|
+
## 障害調査
|
|
97
|
+
* 09:30-11:00 (1.50)
|
|
98
|
+
## 顧客ポータル刷新
|
|
99
|
+
* 12:00-18:30 (6.50)
|
|
100
|
+
|
|
101
|
+
# 2025-03-26
|
|
102
|
+
## 顧客ポータル刷新
|
|
103
|
+
* 09:00-12:00 (3.00)
|
|
104
|
+
* 13:00-18:30 (5.50)
|
|
105
|
+
|
|
106
|
+
# 2025-03-27
|
|
107
|
+
## 本番切替
|
|
108
|
+
* 09:30-12:00 (2.50)
|
|
109
|
+
* 13:00-18:30 (5.50)
|
|
110
|
+
* 20:00-24:30 (4.50)
|
|
111
|
+
|
|
112
|
+
# 2025-03-28
|
|
113
|
+
## リリース後確認
|
|
114
|
+
* 10:30-12:00 (1.50)
|
|
115
|
+
## 障害調査
|
|
116
|
+
* 13:00-18:00 (5.00)
|