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

docs(dco): let maintainer-operated automation sign off#11850
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants