/target/

# Claude Code agent runtime state. Contains session lock files that
# carry the agent's process identifier and acquisition timestamp.
# Local to each contributor's session; not project content.
.claude/

# Cargo.lock at the workspace root is tracked so the binary crates
# (`keleusma-cli` and the `examples/rtos` demonstrator) build
# reproducibly from this commit. Library crates that resolve
# against the workspace root's lockfile pin their dependency
# versions for development; downstream library consumers continue
# to resolve their own lockfile against their own constraints.
# The `examples/rtos/Cargo.lock` remains gitignored because the
# detached crate carries heavy bare-metal git dependencies whose
# revisions are pinned through `rev = "..."` in the manifest.
examples/rtos/Cargo.lock

# Project-local scratch directories. The directories themselves are
# committed via .gitkeep markers; their contents are ignored. Use
# `tmp/` for transient files such as commit messages, draft text,
# scratch scripts, and probe outputs. Use `secret/` for files that
# must never be committed such as credentials, API keys, and
# environment-specific secrets.
tmp/*
!tmp/.gitkeep
secret/*
!secret/.gitkeep

# Precompiled Keleusma bytecode artefacts. The wire format is
# producer-specific and goes stale across V0.2.x patch releases
# whose semantic content is unchanged but whose archived
# representation may shift (e.g. when `rkyv` updates the
# auxiliary body layout). Hosts that want precompiled bytecode
# regenerate it at build time, typically through a `build.rs`
# that walks `*.kel` sources and emits `*.kel.bin` to `OUT_DIR`.
# See `examples/rtos/build.rs` for the canonical pattern.
*.kel.bin
