Fluent Bit Repository Skill
Use this skill when working in the Fluent Bit repository or in a similar
C/C++ plugin-based telemetry pipeline. It is written for any LLM agent: read the
relevant linked files, inspect the current checkout, make the smallest correct
change, and report exact verification.
When to Use
- A task mentions Fluent Bit source, tests, plugins, runtime behavior, routing,
storage, shutdown, configuration validation, or protocol encoding.
- A task asks whether a reported Fluent Bit bug is still present.
- A task asks for implementation or review of a Fluent Bit patch.
- A task asks for the right focused tests, integration scenarios, or valgrind
checks for a touched Fluent Bit component.
Required Reading Order
- Read this file.
- Read
testing.md before changing behavior or closing out a task.
- Read
patch-workflow.md before editing code or reviewing a patch.
- Read
pipeline-architecture.md for shared runtime, routing, lifecycle,
processor, chunk, task, storage, metrics, retry, or signal-aware changes.
- Read
subsystem-patterns.md when the task touches one of the listed
recurring areas.
Operating Principles
- Verify the current checkout before patching. A report may already be fixed.
- Prefer the repository's existing helpers, source-of-truth resolvers, and
local conventions over new parallel logic.
- Keep changes scoped to the affected component. Put plugin logic in its plugin
directory; shared behavior belongs in
src/, include/fluent-bit/, or lib/.
- Treat bundled libraries under
lib/ as third-party or separately maintained
code unless the path is clearly Fluent Bit-owned. Ask for explicit user
confirmation before editing them, using a confirmation popup when available.
Keep those edits isolated and upstreamable as focused patches.
- Fix shared helper semantics when the bug is in a helper, instead of patching
only one visible caller.
- Preserve real input paths. If the request asks to enrich or correct an
existing path, solve it in the relevant layer instead of faking another input
route.
- Treat shutdown, architecture-specific failures, memory errors, and route
accounting mismatches as real lifecycle problems until traced through the
exact failing path.
- Separate validated behavior from environment noise. If a focused test passes
but a broader legacy suite fails for unrelated reasons, report both signals.
Standard Commands
cmake -S . -B build -DFLB_TESTS_RUNTIME=On -DFLB_TESTS_INTERNAL=On
cmake --build build -j8
ctest --test-dir build --output-on-failure
ctest --test-dir build -R <name> --output-on-failure
./build/bin/fluent-bit -c conf/fluent-bit.conf
Windows supports runtime-test builds and execution on the latest master
revision. Initialize the appropriate MSVC environment, configure runtime tests,
and prefer focused targets or CTest matches:
cmake -S . -B build -DFLB_TESTS_RUNTIME=On -DFLB_TESTS_INTERNAL=On
cmake --build build --target <flb-rt-target>
ctest --test-dir build -R '^<flb-rt-target>$' --output-on-failure
The GitHub Actions Windows unit-test matrix executes runtime tests only for x64
to control CI running time. Keep that workflow policy scoped to GitHub Actions;
local agents and AI cloud builds should enable and run applicable runtime tests
without inheriting the x86/ARM64 CI restriction.
For Python integration scenarios:
cd tests/integration && ./setup-venv.sh
cd tests/integration && ./run_tests.py --list
cd tests/integration && ./run_tests.py
Close-Out Requirements
Final responses for implementation tasks should include:
- What changed, with file paths.
- The exact verification commands run.
- Pass/fail status.
- Whether valgrind was used when integration coverage applies.
- Any bundled library patch touched, including the upstream project/path and
confirmation that the user approved editing it.
- Any concrete blocker for required tests that could not run.
1---2name: fluent-bit3description: Work in the Fluent Bit C/C++ repository using its scoped patch, testing, runtime, integration, lifecycle, and review conventions. Use for Fluent Bit source, plugin, pipeline, Windows runtime-test, CI, configuration, protocol, or regression tasks.4---56# Fluent Bit Repository Skill78Use this skill when working in the Fluent Bit repository or in a similar9C/C++ plugin-based telemetry pipeline. It is written for any LLM agent: read the10relevant linked files, inspect the current checkout, make the smallest correct11change, and report exact verification.1213## When to Use1415- A task mentions Fluent Bit source, tests, plugins, runtime behavior, routing,16 storage, shutdown, configuration validation, or protocol encoding.17- A task asks whether a reported Fluent Bit bug is still present.18- A task asks for implementation or review of a Fluent Bit patch.19- A task asks for the right focused tests, integration scenarios, or valgrind20 checks for a touched Fluent Bit component.2122## Required Reading Order23241. Read this file.252. Read `testing.md` before changing behavior or closing out a task.263. Read `patch-workflow.md` before editing code or reviewing a patch.274. Read `pipeline-architecture.md` for shared runtime, routing, lifecycle,28 processor, chunk, task, storage, metrics, retry, or signal-aware changes.295. Read `subsystem-patterns.md` when the task touches one of the listed30 recurring areas.3132## Operating Principles3334- Verify the current checkout before patching. A report may already be fixed.35- Prefer the repository's existing helpers, source-of-truth resolvers, and36 local conventions over new parallel logic.37- Keep changes scoped to the affected component. Put plugin logic in its plugin38 directory; shared behavior belongs in `src/`, `include/fluent-bit/`, or `lib/`.39- Treat bundled libraries under `lib/` as third-party or separately maintained40 code unless the path is clearly Fluent Bit-owned. Ask for explicit user41 confirmation before editing them, using a confirmation popup when available.42 Keep those edits isolated and upstreamable as focused patches.43- Fix shared helper semantics when the bug is in a helper, instead of patching44 only one visible caller.45- Preserve real input paths. If the request asks to enrich or correct an46 existing path, solve it in the relevant layer instead of faking another input47 route.48- Treat shutdown, architecture-specific failures, memory errors, and route49 accounting mismatches as real lifecycle problems until traced through the50 exact failing path.51- Separate validated behavior from environment noise. If a focused test passes52 but a broader legacy suite fails for unrelated reasons, report both signals.5354## Standard Commands5556```sh57cmake -S . -B build -DFLB_TESTS_RUNTIME=On -DFLB_TESTS_INTERNAL=On58cmake --build build -j859ctest --test-dir build --output-on-failure60ctest --test-dir build -R <name> --output-on-failure61./build/bin/fluent-bit -c conf/fluent-bit.conf62```6364Windows supports runtime-test builds and execution on the latest master65revision. Initialize the appropriate MSVC environment, configure runtime tests,66and prefer focused targets or CTest matches:6768```sh69cmake -S . -B build -DFLB_TESTS_RUNTIME=On -DFLB_TESTS_INTERNAL=On70cmake --build build --target <flb-rt-target>71ctest --test-dir build -R '^<flb-rt-target>$' --output-on-failure72```7374The GitHub Actions Windows unit-test matrix executes runtime tests only for x6475to control CI running time. Keep that workflow policy scoped to GitHub Actions;76local agents and AI cloud builds should enable and run applicable runtime tests77without inheriting the x86/ARM64 CI restriction.7879For Python integration scenarios:8081```sh82cd tests/integration && ./setup-venv.sh83cd tests/integration && ./run_tests.py --list84cd tests/integration && ./run_tests.py85```8687## Close-Out Requirements8889Final responses for implementation tasks should include:9091- What changed, with file paths.92- The exact verification commands run.93- Pass/fail status.94- Whether valgrind was used when integration coverage applies.95- Any bundled library patch touched, including the upstream project/path and96 confirmation that the user approved editing it.97- Any concrete blocker for required tests that could not run.