new file mode 100644
@@ -0,0 +1,78 @@
+AGENTS.md — Meta OpenEmbedded Layers
+
+Guidance for AI agents working in the `meta-openembedded` repository.
+
+## Making changes
+
+- No web PR workflow. The project use **patches on mailing lists**
+ (openembedded-devel@lists.openembedded.org) tracked via patchwork
+ (https://patchwork.yoctoproject.org/project/oe/list/). Don't assume GitHub PR
+ conventions apply.
+- One Git commit per logical change (e.g., one commit per recipe).
+- Commit message format:
+ - Summary line is prefixed with the recipe name, e.g. `python3-posix-ipc:`.
+ If the commit touches multiple recipes, list them comma separated, e.g.
+ `recipe1,recipe2:`.
+ - Do **not** put the sub-layer tag (e.g. `[meta-oe]`) in the commit summary
+ line; it belongs in the email subject only (see below).
+ - Check `git log --oneline <path>` for the prefix convention already in use.
+ - Body explains what and why the change is. If the commit represents a
+ feature addition, also how it was tested.
+ - Prefer explaining _why_ a change was made over restating what's already
+ visible in the diff, unless the diff is long/hard to follow or the reason
+ for the change isn't known — in those cases, summarize what changed
+ instead.
+ - Be succinct: use as few sentences and lines as possible while still
+ covering what/why/how. Cut restatements, filler, and any detail a reviewer
+ wouldn't need (e.g. exact test-run counts, step-by-step narration). One
+ short paragraph is usually enough; only add a second if a distinct point
+ (e.g. testing) needs it.
+ - The most relevant information about the change should be presented first.
+ - Reference bugs as `[YOCTO #1234]` when applicable.
+ - Use `Reported-by`, `Suggested-by`, `Tested-by`, `Reviewed-by`, `Cc` tags
+ where relevant.
+- Email subject format:
+ - The sub-layer tag comes first, directly followed by the `[PATCH]` tag with
+ no space between them: `[meta-oe][PATCH 1/3] recipe: summary`.
+ - Generate it with
+ `git format-patch --subject-prefix="meta-oe][PATCH" <upstream>`, which
+ yields `[meta-oe][PATCH x/y]`; add `-v2` etc. for rerolls
+ (`[meta-oe][PATCH v2 x/y]`).
+ - Each patch carries the tag of the sub-layer it changes (e.g. `meta-oe`,
+ `meta-python`, `meta-networking`, `meta-gnome`). Prefer one series per
+ sub-layer; if a series spans sub-layers, set the tag per patch.
+
+### AI-generated code
+
+- **Mandatory**: any AI-generated code/commit must add an `AI-Generated:` tag
+ line in the commit message, placed _before_ `Signed-off-by` (if present),
+ naming the tool used, e.g.:
+
+ ```
+ python3-posix-ipc: fix feature probing instead of forcing -lrt
+
+ AI-Generated: Uses Claude Code
+ Signed-off-by: Contributor Name <contributor@example.com>
+ ```
+
+- Also add a code comment or other in-patch indication that the code is
+ AI-generated (recommended, not just the commit tag).
+- **Mandatory**: every commit, and every patch file added to a recipe, must
+ carry the human contributor's `Signed-off-by`, placed after `AI-Generated:`.
+ Use the contributor's identity from `git config user.name`/`user.email` (e.g.
+ `git commit -s`, or `git rebase --signoff <upstream>` for existing commits),
+ never one made up for the AI tool. The sign-off certifies the DCO/Developer's
+ Certificate of Origin on the contributor's behalf, so they must review the
+ change before it is sent.
+- In patch files added to a recipe, the header order is `Upstream-Status:`,
+ `AI-Generated:`, then `Signed-off-by:`, and the `From:` line uses the same
+ identity as the sign-off.
+- Contributor is responsible for confirming the AI tool's terms don't conflict
+ with the project's open source license/IP policy, and that any third-party
+ copyrighted material in the AI output is properly licensed before contributing
+ it. See the Linux Foundation generative AI guidance:
+ https://www.linuxfoundation.org/legal/generative-ai.
+- `Co-authored-by` should be omitted in favor of the `AI-generated` tag.
+
+When in doubt about a convention, grep `git log --oneline <path>` in the target
+repo for precedent before inventing a new style.
Document the mailing list workflow and the conventions agents get wrong most often: recipe-only commit summaries with the sub-layer tag carried in the email subject as [meta-oe][PATCH x/y], the AI-Generated tag, and the human contributor's Signed-off-by on commits and recipe patch files. Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com> --- AGENTS.md | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 AGENTS.md