Skip to content

docs(dco): let maintainer-operated automation sign off - #11850

Merged
mudler merged 1 commit into
masterfrom
docs/dco-maintainer-automation
Sep 3, 2026
Merged

mudler merged 1 commit into
masterfrom
docs/dco-maintainer-automation

Conversation

@localai-org-maint-bot

Copy link
Copy Markdown
Collaborator

The problem

61 open pull requests from localai-org-maint-bot fail DCO. Every one of them is correctly following the documented policy.

AGENTS.md says:

No Signed-off-by from AI. Only the human submitter may sign off on the Developer Certificate of Origin.

and .agents/ai-coding-assistants.md:38 says:

AI agents MUST NOT add Signed-off-by tags.

The bot obeys both. It emits Assisted-by: Codex:gpt-5 in exactly the documented format and adds neither Signed-off-by nor Co-Authored-By.

The rule was written for an AI assistant helping a human contributor, who then signs off themselves. It does not fit automation a maintainer runs, because those pull requests have no human submitter to sign. Applied literally there, nothing ever signs, and DCO blocks the PR permanently. That is not a bug in the bot; it is a gap in the policy.

The change

Automation a maintainer operates signs off with that maintainer's identity:

Assisted-by: Codex:gpt-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

This is not the AI certifying the DCO. The maintainer is, exactly as they do for a commit they typed by hand: they configured the automation, they own its output, and they take responsibility for it on merge. The Assisted-by trailer still records that a model produced the code, so the provenance trail is unchanged.

The exception is deliberately narrow and does not widen the rule for anyone else:

  • Only automation a LocalAI maintainer operates and reviews before merge.
  • The sign-off names a real person who accepts DCO responsibility.
  • An assistant helping an outside contributor still must not sign off.
  • A bot must not sign on behalf of anyone but its operator, and must not add a trailer for a contributor whose branch it pushes to.

That last point is not hypothetical: #11677 is currently blocked because the bot pushed a commit onto a contributor's branch, and the contributor rightly refuses to sign someone else's commit.

Files

All four policy surfaces, kept consistent:

  • AGENTS.md (CLAUDE.md is a symlink to it)
  • .agents/ai-coding-assistants.md
  • docs/content/reference/ai-coding-assistants.md
  • CONTRIBUTING.md

Follow-up, not in this PR

The generator itself needs to start emitting the trailer. It does not live in this repository (no crontab entry, no systemd timer, nothing in .github/workflows), and the evidence is that it reads these policy files for its rules, so this change is what it should pick up. The 61 already-open PRs each still need a sign-off added to their existing commits.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UxkheFa72CEpeEJbijyjxe

The AI-assistant policy says an AI agent must never add a Signed-off-by
trailer, because only a human can certify the DCO. That is right for the
case it was written for: an assistant helping a contributor who then
signs off themselves.

It does not fit automation a maintainer runs. Those pull requests have no
human submitter, so nothing ever signs and the DCO check blocks them
permanently. Sixty-one open pull requests from the maintenance bot are in
exactly that state, every one of them correctly following the documented
rule.

Carve out the case: automation a maintainer operates signs off with that
maintainer's identity. The maintainer certifies the DCO, as they do for a
commit they typed by hand, because they configured the automation, own
its output, and take responsibility on merge. The Assisted-by trailer
still records that a model wrote the code, so provenance is unchanged.

Keep the exception narrow. An assistant helping an outside contributor
still must not sign off, and a bot must not sign for anyone but its
operator, including on a contributor's branch it pushes to.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
@mudler
mudler merged commit 44de82e into master Sep 3, 2026
57 checks passed
@mudler
mudler deleted the docs/dco-maintainer-automation branch September 3, 2026 21:08
@localai-org-maint-bot localai-org-maint-bot added the kind/documentation Improvements or additions to documentation label Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants