Skip to content

Commit 92054a4

Browse files
docs: add AGENTS.md, retire TODO.md shadow-backlog
1 parent a05a594 commit 92054a4

2 files changed

Lines changed: 49 additions & 13 deletions

File tree

AGENTS.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# AGENTS.md — fluxgraph
2+
3+
> Per-repo conventions for coding agents (Claude Code, OpenCode, …). The
4+
> canonical cross-repo rules — Conventional Commits, minimal-first/YAGNI, no
5+
> secrets, run checks before asserting success — live in the user's **global**
6+
> `AGENTS.md` and are not repeated here. This file records only what is
7+
> **specific to this repo**: the commands, the gate, and the non-obvious things
8+
> agents get wrong here.
9+
10+
C++20 physics-simulation library used by Anolis providers.
11+
12+
## Build / test
13+
14+
- Configure + build: `cmake --preset ci-linux-release` then
15+
`cmake --build --preset ci-linux-release`; test with `ctest`.
16+
- Whole-repo clang-tidy uses the `ci-linux-tidy` preset.
17+
- Optional-feature lanes have their own presets (e.g. `ci-linux-release-json`,
18+
`ci-linux-release-yaml`, `ci-linux-release-server`,
19+
`ci-linux-release-diagram`).
20+
- The required CI status check is the **`ok`** job (it aggregates the lanes);
21+
never bypass it, and never merge red.
22+
23+
## Tooling
24+
25+
- **C++ repos:** clang-format / clang-tidy are pinned to **18.1.8** via the
26+
shared `setup-clang-tools` action (matches workstation-configs) — do NOT use
27+
pip/apt/pre-commit/container versions. Run `clang-format -i` before **every**
28+
commit (CI fails otherwise).
29+
- Shared `.github` actions/workflows are SHA-pinned with a `# <tag>` comment so
30+
Renovate can track them — keep that comment when bumping.
31+
32+
## Repo-specific gotchas
33+
34+
- **C++20**, and use **`std::format`** for diagnostics/log messages.
35+
- **The CORE is zero-dependency and must stay that way.** Optional features pull
36+
deps and are gated behind CMake options (all default `OFF`):
37+
`FLUXGRAPH_BUILD_SERVER` → gRPC, `FLUXGRAPH_JSON_ENABLED` → nlohmann/json,
38+
`FLUXGRAPH_YAML_ENABLED` → yaml-cpp, `FLUXGRAPH_BUILD_DIAGRAM_TOOL` → dot.
39+
Never let a dependency leak into the core target.
40+
- **Embedded-friendly:** the library is host-built in CI but targets embedded
41+
use — avoid host-only assumptions (no exceptions-required APIs in the core
42+
path, no heap-only design without need, etc.).
43+
- **`include/fluxgraph/version.hpp` is the canonical version.** It carries split
44+
macros (`FLUXGRAPH_VERSION_MAJOR/MINOR/PATCH`) *and* the
45+
`FLUXGRAPH_VERSION` string — keep all four in sync when bumping.
46+
47+
## Backlog
48+
49+
Backlog lives in GitHub issues, not a `TODO.md`.

TODO.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)