Slide 1

Slide 1 text

No C, No Opaque AI: Watch Your First Fluent Bit Contribution Happen Live Eric D. Schabell Technology Advocate Lead / Fluent Bit Maintainer @ericschabell{@fosstodon.org} DevOpsDays PDX, Sep 2026

Slide 2

Slide 2 text

Three acts 1 2 3 The two-repo mental model Credibility is the contribution AI assists — you sign - fluent-bit-fork to read the code and validate the gap. fluent-bit-docs-fork to make the fix. - - branch hygiene, Vale passing, DCO-signed commit referencing a tracked issue. that stack signals trust to maintainers. - - AI proposes. You review every line. You run every git command. your name on the commit is a legal assertion.

Slide 3

Slide 3 text

The two-repo mental model fluent-bit-fork fluent-bit-docs-fork Read the source. Validate what the code actually does. Do not touch this for the PR. Make the fix here. Branch, edit, lint, commit, push PR. This is where your name goes. github.com/fluent/fluent-bit → fork → your-username/fluent-bit-fork crossreference github.com/fluent/fluent-bit-docs → fork → your-username/fluent-bit-docs-fork

Slide 4

Slide 4 text

Your rules, not the project’s AI lives outside the repo — symlinked in, git-managed separately, .gitignored. The rules travel with the contributor, not the project. Source of truth Verify plugin params and behavior against local ../fluent-bit-fork source before documenting SUMMARY.md Every new .md file must be added or it never appears in nav Linting gates PRs Always run local vale . and markdownlint . — Vale errors block merge, before pushing Formatting Soft line wraps only. GitBook renders newlines literally. One paragraph, one unbroken line. Commit format docs: plugins: plugin-name: summary — git commit -s sign-off. Every time. Always call me Dude - because why not bring a smile to your day?

Slide 5

Slide 5 text

From memory ● Never commit or push on Dude's behalf ○ ● ● Always hand over a ready-to-use commit message Classic .conf keys use Title_Case ○ ○ ● ● top after staging the change, hand back the exact commit message and push command. log_group_name → Log_Group_Name YAML examples stay lowercase Run vale before declaring any plugin doc update done Check gh pr list for duplicate work ○ before proposing new changes

Slide 6

Slide 6 text

The hard boundary AI never commits. AI never pushes. AI never opens a pull request. This is not a preference — a boundary that had to be rebuilt after it was crossed. AI proposes edit → You review line by line → AI runs vale <file> → AI hands back → commit message You run git commit -s The last two steps are yours. Always. Commits are attribution. Under DCO, your sign-off is a legal assertion — not a formality. → You run git push

Slide 7

Slide 7 text

Anything can open a PR What maintainers actually want is someone who read the docs before they touched the code: ● ● ● CONTRIBUTING{_DOCS}.md DEVELOPER_GUIDE.md README.md In a CNCF project, a carelessly signed commit is not bad hygiene. It is a legal attribution matter.

Slide 8

Slide 8 text

A day in the life 1 Finding a gap between the code and the docs (a day in the life!) 2 Validate it against the fluent-bit-fork source 3 Branch, fix, and lint with Vale in fluent-bit-docs-fork 4 Write a signed commit with a proper message 5 Push a PR that closes our tracked issue

Slide 9

Slide 9 text

It’s all forked Everything starts with a fork of the repositories (fluent-bit and fluent-bit-docs): $ git clone [email protected]:eschabell/fluent-bit-fork.git $ git remote add upstream https://github.com/fluent/fluent-bit-docs.git $ git clone [email protected]:eschabell/fluent-bit-docs-fork.git $ git remote add upstream https://github.com/fluent/fluent-bit.git

Slide 10

Slide 10 text

Act 1: Finding the gap AI (plan): Can you verify the last 59 commits on @../fluent-bit-fork/ and determine if any impact any docs for updates? Dude asked me to check whether any of the last 59 commits on ../fluent-bit-fork (HEAD 371398810 back through a2d38ba00, spanning v5.1.1) introduce user-facing changes that the docs in this repo don't yet cover. An Explore agent walked all 59 commits 56 commits: no doc impact — internal bug fixes, version/release bumps, packaging/maintenance housekeeping, and CI/test/dependency-only commits.

Slide 11

Slide 11 text

Found one! AI (plan): Can you verify the last 59 commits on @../fluent-bit-fork/ and determine if any impact any docs for updates? Searched open PRs on fluent/fluent-bit-docs for overlap — none found. Full open-PR list (50 PRs) reviewed. Clear to proceed without conflicting with in-flight community work. Proposed action edit pipeline/inputs/XXXX.md: … Verify against plugins/XXXX/XXXX.c in the fork for exact wording, then run vale before finishing.I will not commit — I'll hand Dude a suggested commit message and change summary after editing.

Slide 12

Slide 12 text

Act 2: Branch, fix, lint # Sync first $ git fetch upstream && git rebase upstream/master && git push # Branch for the work $ git switch -c erics_inputs_podman_metrics_fix # AI proposes fixes, review and approve line-by-line # AI runs vale and linting checks, provides commit message with list changes $ git add -A && git commit -s $ git push <<< using provided commit message and signing

Slide 13

Slide 13 text

Act 2: Branch, fix, lint git fetch upstream && git rebase upstream/master && git push Always sync first git switch -c erics_inputs_podman_metrics_fix Branch name describes the fix # AI proposes the doc change — review line by line AI writes, you approve # AI runs vale and linting checks, provides commit message Must pass before committing git add -A && git commit -s Stage the change

Slide 14

Slide 14 text

Act 3: Commit, push, PR Commit message format (handed back by AI: Commit message docs: [area]: [plugin]: [PLACEHOLDER — summary of fix] - [PLACEHOLDER — specific change 1] - [PLACEHOLDER — specific change 2] Fixes #2679 Signed-off-by: Eric D. Schabell git push --set-upstream origin eschabell_[issue-slug] Push the change gh pr create –fill Raise the PR Then: open PR on GitHub, reference the issue, tag a reviewer.

Slide 15

Slide 15 text

AI guardrails in practice AI does AI never does • Proposes doc changes based on code cross-reference • git commit — not even with your prior approval in the same session • Runs vale <file> and reports findings • git push — even if you ask it to • Hands back a ready-to-use commit message in repo format • Open or update a pull request • Checks gh pr list for duplicate open work before starting • Speak for you on the DCO sign-off

Slide 16

Slide 16 text

First PR != knowledge of C It requires knowing where to look, how to show your work, and when to keep your hands on the wheel. 1 2 3 The two-repo mental model Credibility is the contribution AI assists — you sign Start here → github.com/fluent/fluent-bit-docs and @eschabell or @patrick-stephens for review requests

Slide 17

Slide 17 text

Questions? 17