streamd/CLAUDE.md
Konstantin Fickel e562af0dc3
All checks were successful
Release / Build and Release (push) Successful in 6s
Continuous Integration / Lint, Check & Test (push) Successful in 1m26s
Continuous Integration / Build Package (push) Successful in 1m36s
fix: clippy warnings
2026-04-07 13:43:40 +02:00

37 lines
1.5 KiB
Markdown

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Build & Test Commands
```bash
nix develop # Enter dev shell with Rust toolchain
nix build # Build the package
nix flake check # Run all checks (clippy, fmt, tests, pre-commit)
# Inside nix develop:
cargo test # Run all tests
cargo test test_name # Run a specific test
cargo clippy # Lint
cargo fmt # Format
```
After finishing tests, always check the package with `nix flake check`.
## Architecture
Streamd parses markdown files into hierarchical **Shards**, then **localizes** them by assigning temporal moments and dimensional placements based on `@Tag` markers.
**Data flow:** Markdown → `extract::parser``Shard` tree → `localize::shard``LocalizedShard` tree
**Key modules:**
- `models/` — Core types: `Shard`, `LocalizedShard`, `Dimension`, `Marker`, `Timecard`
- `extract/` — Tag extraction (`tag_extraction.rs`) and markdown parsing (`parser.rs`)
- `localize/` — DateTime extraction, configuration merging, shard localization
- `timesheet/` — State machine that converts localized shards into timecards
- `query/` — Recursive search functions for finding shards by predicate
- `cli/` — Clap-based CLI commands
## Requirements
`REQUIREMENTS.md` contains the formal specification. Update it along with the `README.md` whenever implementing or changing features.