Skip to content

Conversation

@kfessel
Copy link
Contributor

@kfessel kfessel commented Jan 19, 2026

Contribution description

Testing procedure

testing the declaration

Declaration of AI-Toolusage 1 :

  • This PR was written using LLM assistance:
    • the LLM was tasked to produce whole file(s),
    • the LLM was tasked to produce function(s),
    • the LLM was tasked to produce codeblocks or snippets,
    • the LLM was used to check the code,
    • the LLM was used to produce documentation,
    • the LLM was used to spellcheck.
  • No LLM ("AI") was used in any way.

Tools that were used are:
none

Declaration of AI-Toolusage 2 :

  • A LLM was used to produce whole file(s).
  • A LLM was used to produce function(s).
  • A LLM was used to produce codeblocks or snippets.
  • A LLM was used to check the code.
  • A LLM was used to produce documentation.
  • A LLM was used to spellcheck.
  • No LLM ("AI") was used in any way.

Tools that were used are:
none

Declaration of AI-Toolusage 3:

Note

Please delete the sentences that are untrue

  • A LLM was used to produce whole file(s).
  • A LLM was used to produce function(s).
  • A LLM was used to produce codeblocks or snippets.
  • A LLM was used to check the code.
  • A LLM was used to produce documentation.
  • A LLM was used to spellcheck.
  • No LLM ("AI") was used in any way.

Tools that were used are:
none

Declaration of AI-Toolusage short:

Note

Please delete the sentences that are untrue

  • A LLM was used to produce whole file(s), function(s), codeblocks or snippets.
  • A LLM was used to produce documentation.
  • A LLM was used to check the code.
  • No LLM ("AI") was used in any way but spellcheck

Tools that were used are:
none

Declaration of AI-Toolusage supershort:

Note

Please remove the parts of sentences that are untrue

A LLM was used to produce whole file(s), function(s), codeblocks, snippets, documentation, check the code and spelling.

AI-Tools / LLMs that were used are:

  • none

Issues/PRs references

meeting-notes

@github-actions github-actions bot added the Area: doc Area: Documentation label Jan 19, 2026
@kfessel kfessel changed the title doc: some sentences about LLM to CONTRIBUTION.md CONTRIBUTION.md: some sentences about LLM Jan 19, 2026
@crasbe crasbe added the Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation label Jan 19, 2026
@crasbe crasbe requested a review from AnnsAnns January 19, 2026 21:23
Copy link
Member

@AnnsAnns AnnsAnns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sorry if this looks like a lot but we agreed to look at the details within the PR so I did 😛 Thank you for the PR though.

Comment on lines 38 to 46
Declaration of AI-Toolusage:
[] This PR was written using LLM assistance,
[] the LLM was tasked to produce whole file(s),
[] the LLM was tasked to produce function(s),
[] the LLM was tasked to produce codeblocks or snippets,
[] the LLM was used to check the code,
[] the LLM was used to produce documentation,
[] the LLM was used to spellcheck.
Tools that where used are:
Copy link
Member

@AnnsAnns AnnsAnns Jan 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd personally argue that this is a bit too much, the differentiators don't feel significant enough to have 7 different options

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we only would have "this PR was written using LLM assistance" and assume not knowlegebase based AI was used other wise LLM spell checker would carry the same sentence as "I like a riot driver for IC128 can you produce a PR for me"

CONTRIBUTING.md Outdated
Comment on lines 218 to 220
Large language models are known to sometimes reproduce large amounts of code,
that was feed into their database as such it might produce a copy and
the pervious sentence must be applied.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't really understand this sentence

that was feed into their database as such it might produce a copy and the pervious sentence must be applied.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

llm ... reproduce large amounts of code that was feed into their database.

i think the , is wrong

CONTRIBUTING.md Outdated


If a PR was written using tooling that is able to produce large of code from a knowlegebase
(e.g.: large language model assisted tools like copilot, devin or cursor or LLM like GPT, Ollama)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't Ollama a tool to run LLMs itself?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i wanted the example list to convey that it is about full tools and also about basic tools like a chat or any other LLM run locally ( the reason for mentioning ollama) or remote (gpt)

(running local does not change the rights issue, having a tool integrated in your editor does not change the issue)
as well doesn't the opposite remote or less integration

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd restructure the sentence to something like:

If a PR was written using tooling that is able to produce code without attribution 
(e.g.: LLM tools like Copilot, Devin, Cursor, Claude, ChatGPT or Ollama)

Co-authored-by: Ann🐸 <git@annsann.eu>
-->

Declaration of AI-Toolusage:
[] This PR was written using LLM assistance,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR was written using LLM assistance to produce whole file(s), function(s), codeblocks or snippets, to check the code, produce documentation, spellcheck.

@kfessel
Copy link
Contributor Author

kfessel commented Jan 20, 2026

I'm sorry if this looks like a lot but we agreed to look at the details within the PR so I did 😛 Thank you for the PR though.

Than you for the review this PR needs input (-> published as draft)

Comment on lines 39 to 51
This PR was written using LLM assistance:
- [ ] the LLM was tasked to produce whole file(s),
- [ ] the LLM was tasked to produce function(s),
- [ ] the LLM was tasked to produce codeblocks or snippets,
- [ ] the LLM was used to check the code,
- [ ] the LLM was used to produce documentation,
- [ ] the LLM was used to spellcheck.- [ ] This PR was written using LLM assistance,
- [ ] the LLM was tasked to produce whole file(s),
- [ ] the LLM was tasked to produce function(s),
- [ ] the LLM was tasked to produce codeblocks or snippets,
- [ ] the LLM was used to check the code,
- [ ] the LLM was used to produce documentation,
- [ ] the LLM was used to spellcheck.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This PR was written using LLM assistance:
- [ ] the LLM was tasked to produce whole file(s),
- [ ] the LLM was tasked to produce function(s),
- [ ] the LLM was tasked to produce codeblocks or snippets,
- [ ] the LLM was used to check the code,
- [ ] the LLM was used to produce documentation,
- [ ] the LLM was used to spellcheck.- [ ] This PR was written using LLM assistance,
- [ ] the LLM was tasked to produce whole file(s),
- [ ] the LLM was tasked to produce function(s),
- [ ] the LLM was tasked to produce codeblocks or snippets,
- [ ] the LLM was used to check the code,
- [ ] the LLM was used to produce documentation,
- [ ] the LLM was used to spellcheck.
This PR was written using LLM assistance:
- [ ] the LLM was tasked to produce whole file(s),
- [ ] the LLM was tasked to produce function(s),
- [ ] the LLM was tasked to produce codeblocks or snippets,
- [ ] the LLM was used to check the code,
- [ ] the LLM was used to produce documentation,
- [ ] the LLM was used to spellcheck.

Does it really matter if a regular spellchecker or an LLM was used to spellcheck? If not then I don't think the spellcheck checkbox is needed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it really matter if a regular spellchecker or an LLM was used to spellcheck? If not then I don't think the spellcheck checkbox is needed.

Sorry, just saw #22004 (comment).

Co-authored-by: Elena Frank <elena.frank@proton.me>
Comment on lines +40 to +47
- This PR was written using LLM assistance:
- [ ] the LLM was tasked to produce whole file(s),
- [ ] the LLM was tasked to produce function(s),
- [ ] the LLM was tasked to produce codeblocks or snippets,
- [ ] the LLM was used to check the code,
- [ ] the LLM was used to produce documentation,
- [ ] the LLM was used to spellcheck.
- No LLM ("AI") was used in any way.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- This PR was written using LLM assistance:
- [ ] the LLM was tasked to produce whole file(s),
- [ ] the LLM was tasked to produce function(s),
- [ ] the LLM was tasked to produce codeblocks or snippets,
- [ ] the LLM was used to check the code,
- [ ] the LLM was used to produce documentation,
- [ ] the LLM was used to spellcheck.
- No LLM ("AI") was used in any way.
- [ ] An LLM was tasked to produce whole file(s),
- [ ] An LLM was tasked to produce function(s),
- [ ] An LLM was tasked to produce codeblocks or snippets,
- [ ] An LLM was used to check the code,
- [ ] An LLM was used to produce documentation,
- [ ] An LLM was used to spellcheck.
- [ ] No LLM ("AI") was used in any way.

how about this? I'd argue it is easier to check a checkbox than to remove one or several lines, I already see a lot of PRs with both bullet points still present.

On the other hand, this might also clutter the PR description of every PR, even those that declare "no AI usage" a bit too much.

Btw, why not generalizing to "AI" instead of saying LLM?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To reduce the clutter, we could maybe merge the first three points, and people can remove parts of the sentence if it does not apply.

And I agree with @elenaf9 that spellchecking may not be worth declaring, so we could remove that and maybe change the last line to allow spellchecking.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd also merge the first three points + remove "check code" & "spellcheck"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I already see a lot of PRs with both bullet points still present.

I think this is a feature indicating that the pr author did not yet check.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we join the frist three how do we handle "Threshold of originality" (De: Schöpfungshöhe) and concepts like fair use.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or would we just assume not enough originality if "A LLM was used to produce whole file(s), function(s), codeblocks or snippets."

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Btw, why not generalizing to "AI" instead of saying LLM?

AI is a meaningless marketing term at this point.
LLM is a very specific technical thing.

Copy link
Contributor

@elenaf9 elenaf9 Jan 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To reduce the clutter, we could maybe merge the first three points, and people can remove parts of the sentence if it does not apply.

Or would we just assume not enough originality if "A LLM was used to produce whole file(s), function(s), codeblocks or snippets."

IMHO we should still differentiate between generating whole files vs function/ codeblocks / snippets.
The former definitely violates originality and could be reason to reject a PR, the latter not necessarily?

Edit: my logic behind this differentiation is that usually (independently of LLM usage) if I just add function or code snipped to a file I wouldn't add myself to the authors list in the header, but if I write a whole file I'd have the copy-right.

Copy link
Member

@AnnsAnns AnnsAnns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Second review (Some comments from the first review are still open)

-->

### Declaration of AI-Toolusage:
<!-- You may delete the either sentence in case. -->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<!-- You may delete the either sentence in case. -->
<!-- You may delete the either sentence in case. -->

Whitespace (I also don't really understand the sentence itself)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is a hint to the PR author that they do not need to declare LLM use if they didn't.

following it are two senteces

  1. 'This PR was written using LLM assistance ... ' ( the sentence goes on listing option of llm use)
    the other
  2. 'No LLM ("AI") was used in any way.'

only one of then is true -> the other one may be deleted when creating the PR


## Copyright and AI

RIOT itself applies the LGPL license, see [LICENSE.md], to most of its code exclusively,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
RIOT itself applies the LGPL license, see [LICENSE.md], to most of its code exclusively,
RIOT is licensed under the LGPL license, see [LICENSE.md], unless stated otherwise.

## Copyright and AI

RIOT itself applies the LGPL license, see [LICENSE.md], to most of its code exclusively,
authors of PRs are assumed to do so as well (not necessary exclusive).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
authors of PRs are assumed to do so as well (not necessary exclusive).

I'd honestly just remove this, the same statement is covered in the next sentence.

Comment on lines 218 to 222
Large language models (LLM, "AI") are known to sometimes reproduce large amounts of code
that was feed into their database as such it might produce a copy and
the previous sentence must be applied.
When reworking a PR and copying its code to a new one the author of that code still is the original author
and their rights to the code must be respected such as naming them and keeping the license.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Large language models (LLM, "AI") are known to sometimes reproduce large amounts of code
that was feed into their database as such it might produce a copy and
the previous sentence must be applied.
When reworking a PR and copying its code to a new one the author of that code still is the original author
and their rights to the code must be respected such as naming them and keeping the license.
Large language models (LLM, "AI") are known to sometimes
reproduce large amounts of code that was fed into their database.
As such it might produce copies of copyrighted works
which do not comply with the license of RIOT.
When reworking a PR or copying code to a new one
the author of that code continues to be the original author
and their rights to the code must be respected.
This includes naming them and respecting their license.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Large language models (LLM, "AI") are known to sometimes reproduce large amounts of code
that was feed into their database as such it might produce a copy and
the previous sentence must be applied.
When reworking a PR and copying its code to a new one the author of that code still is the original author
and their rights to the code must be respected such as naming them and keeping the license.
Large language models (LLM, "AI") are known to sometimes
reproduce large amounts of code that was fed into their database.
As such it might produce copies of works that are
[original](https://en.wikipedia.org/wiki/Threshold_of_originality)
and already licensed incompatible to RIOT or are not licensed at all.
When reworking a PR or copying code to a new one
the author of that code continues to be the original author
and their rights to the code must be respected.
This includes naming them and respecting their license.

Copy link
Contributor Author

@kfessel kfessel Jan 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Read work as work that passes the "Threshold of originality".

It is about compiling with the license of the thing that was copied not about RIOTs license. For RIOT the work must be either co- or re- license-able to LGPL or keep its license and be link-able (vendor files) so the original license must allow for that.
There also is no not protected work if original (in germany, in the US its possible to declare your own work public domain)
If a work has no license it is unlicensed -> its use is unlicensed. A work does not become copyrighted by declaring copyright but by being created (even in the US) if a work is created by an unknown author with no copyright declared they still got the copyright (until sold) and the moral right (until death (in Europe for N years) (or US where they can be sold or public domain))

Adding a copyright note helps your case in court (Notes are assumed to be true unless proven) but the authors rights are there even without (just need to prove) and without a license a original work is protected (from many things).

Co-authored-by: mguetschow <mikolai.guetschow@tu-dresden.de>
Co-authored-by: Ann🐸 <git@annsann.eu>
Co-authored-by: Martine Lenders <martine.lenders@tu-dresden.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: doc Area: Documentation Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants