Update README.md with: - Repository configuration section for .streamd.toml - Timesheet periods configuration example - Description of timesheet report features Update REQUIREMENTS.md with: - R18a: Timesheet report configuration format - R18b: Day type rules for expected/actual hours calculation - R18c: Timesheet report warning types - Updated R20 command description
63 lines
2.5 KiB
Markdown
63 lines
2.5 KiB
Markdown
# strea.md
|
|
|
|

|
|
|
|
Strea.md is a personal knowledge management and time-tracking CLI tool. It organizes time-ordered markdown files using `@tag` annotations, letting you manage tasks, track time, and query your notes from the terminal.
|
|
|
|
## Core Concepts
|
|
|
|
- **Shards** — Sections of markdown files, organized hierarchically by headings. Each shard can contain markers, tags, and nested child shards.
|
|
- **Markers** — Special `@tags` like `@Task`, `@Done`, `@Waiting`, or `@Timesheet` that give shards semantic meaning and place them into dimensions.
|
|
- **Dimensions** — Classification axes (e.g. task state, project, timesheet) that categorize shards. Some dimensions propagate to child shards.
|
|
|
|
## File Format
|
|
|
|
Markdown files are named with a timestamp: `YYYYMMDD-HHMMSS [markers].md`
|
|
|
|
For example: `20260131-210000 Task Streamd.md`
|
|
|
|
Within files, `@`-prefixed markers at the beginning of paragraphs or headings define how a shard is categorized.
|
|
|
|
## Commands
|
|
|
|
- `streamd` / `streamd new` — Create a new timestamped markdown entry, opening your editor
|
|
- `streamd todo` — Show all open tasks (shards with `@Task` markers)
|
|
- `streamd edit [number]` — Edit a stream file by index (most recent first)
|
|
- `streamd timesheet` — Generate time reports from `@Timesheet` markers
|
|
|
|
## Configuration
|
|
|
|
### User Configuration
|
|
|
|
Streamd reads its user configuration from `~/.config/streamd/config.toml` (XDG standard). The main setting is `base_folder`, which points to the directory containing your stream files (defaults to the current working directory).
|
|
|
|
### Repository Configuration
|
|
|
|
For timesheet reporting, create a `.streamd.toml` file in your stream files directory:
|
|
|
|
```toml
|
|
timezone = "Europe/Berlin" # Optional: timezone for day boundaries
|
|
|
|
[timesheet]
|
|
[[timesheet.periods]]
|
|
start = "2026-01-01"
|
|
end = "2026-06-30"
|
|
hours_per_week = 38.0
|
|
|
|
[[timesheet.periods]]
|
|
start = "2026-07-01"
|
|
end = "2026-12-31"
|
|
hours_per_week = 40.0
|
|
```
|
|
|
|
The timesheet command will calculate expected vs actual working hours based on these periods, showing:
|
|
- Daily breakdown with expected/actual hours
|
|
- Special day types (sick leave, vacation, holidays, flex days)
|
|
- Warnings for missing entries and overlapping timecards
|
|
- Monthly and cumulative balance
|
|
|
|
## Usage
|
|
|
|
Running `streamd` opens your editor to create a new entry. After saving, the file is renamed based on its timestamp and any markers found in the content.
|
|
|
|
Running `streamd todo` finds all shards marked as open tasks and displays them as rich-formatted panels in your terminal.
|