Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2233113/?format=api
{ "id": 2233113, "url": "http://patchwork.ozlabs.org/api/1.2/patches/2233113/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260505170105.228162-9-alex.bennee@linaro.org/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/1.2/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260505170105.228162-9-alex.bennee@linaro.org>", "list_archive_url": null, "date": "2026-05-05T17:01:03", "name": "[RFC,08/10] .agents/skills: add qemu-issue-triage agent skill", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "62650fbc340294abc3cfba73e4f8a4e0675a8e13", "submitter": { "id": 39532, "url": "http://patchwork.ozlabs.org/api/1.2/people/39532/?format=api", "name": "Alex Bennée", "email": "alex.bennee@linaro.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260505170105.228162-9-alex.bennee@linaro.org/mbox/", "series": [ { "id": 502869, "url": "http://patchwork.ozlabs.org/api/1.2/series/502869/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=502869", "date": "2026-05-05T17:01:00", "name": "AGENTS.md and associated skills", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/502869/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2233113/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2233113/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=vY0hXeej;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g94c244SXz1yJ0\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 03:04:02 +1000 (AEST)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wKJ9I-00080l-M7; Tue, 05 May 2026 13:01:32 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <alex.bennee@linaro.org>)\n id 1wKJ98-0007xk-G3\n for qemu-devel@nongnu.org; Tue, 05 May 2026 13:01:24 -0400", "from mail-wr1-x432.google.com ([2a00:1450:4864:20::432])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alex.bennee@linaro.org>)\n id 1wKJ92-0003To-GY\n for qemu-devel@nongnu.org; Tue, 05 May 2026 13:01:22 -0400", "by mail-wr1-x432.google.com with SMTP id\n ffacd0b85a97d-43d77f60944so3582197f8f.3\n for <qemu-devel@nongnu.org>; Tue, 05 May 2026 10:01:14 -0700 (PDT)", "from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-48a8eb75fe8sm372933235e9.8.2026.05.05.10.01.09\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 05 May 2026 10:01:10 -0700 (PDT)", "from draig.lan (localhost [IPv6:::1])\n by draig.lan (Postfix) with ESMTP id BBCE5606A1;\n Tue, 05 May 2026 18:01:06 +0100 (BST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1778000473; x=1778605273; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=0CH1JKGQ5Z8mbO5wz9AmCBXfunNQ1rlUoRRo24uFZt8=;\n b=vY0hXeej0CmJcZXVSFzIpjiDTqJ9JJhLoBztRqGu5fAeWiJG1FV4GuL2FAdDJfCgAk\n mVgV3QFjKaJkss//GLJ7dwoPsbqPTzoWWw8Z5hVoNiYDoiabTKRmudA3vEXs7CfTIHNy\n zwAcmgPak90jvyyeSAimmmNb4SSmXuhAk339NCSvCTZwAAUDqMwcjjsuzt9oITNdCDix\n Mb8xbDqY5razDV5mOWTMoHUY2Hlz8EgHx3D1vylZcH1HaH3yNFOGcKR1TH5EA1BC1H+9\n /Mu0EOvoglVbFHx68ZJVdxG7NTRTYEwrLbjGPa3AbGvI27deByNGMiEDq5OU3mBcoCYH\n Pp8A==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778000473; x=1778605273;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=0CH1JKGQ5Z8mbO5wz9AmCBXfunNQ1rlUoRRo24uFZt8=;\n b=A00+5unGG9SatuWoxeLiwdnXE4od5uS2unBoRY0O5ieL1m4bXPKAhJ4pLL8KsVsFws\n KcZDVsCD866rBVLs8PY0fENhJXIFspbHgx7BCjllXbp8hkIc6EcZMMLnva8I3+jfunfP\n samRZIv4/jiY60A0PPKE0pF/Y2cnuMGm1S5w1HNCgQn2vLc5d3yj+ff0UjnuXy1L5s4a\n aYHC1f/i7OsNWx5JxTV6nTXOrnbQweLcIvMONH8SscCuBscsjLQzs7BVNkS2qUfcL0Bn\n a4vUcM5cIQYPDVZchalTxnYzPHN5cwXZQEQ6N6iEGRnVRcBEN9QmazYaiVuGicoSwlWa\n Pasw==", "X-Gm-Message-State": "AOJu0YwtQC0XQDbesxPlOT2hiYZKuRj/ESJIbG4BhupxmHes50Dc2jP7\n rh/8WnXcu0mpRgxBYlmwP55yACyCuuSQHx0SjDhvP2gSnW8Zj3b/A2p8tKUo9cawW+E3/3ochUV\n n55wibyM=", "X-Gm-Gg": "AeBDieskmkuOd5zHzn1aB2xL8OnVZGFC+MqqA2Txr6HjNjF3rMzkd7XVKLD5HYJRxCS\n e6q3oSiPuF+LDu/Ltk9ldF81L4YeckfmzzImzEZHyoBs5SO6h5ojbQZTDlaa9ZCgg/H7Zn7Lvl9\n EFkNnzTqy2bskuSqNe0G/rwaBmZl6n7WFdQ9avoJ4kQ3stlfUS2X0/L6v8HIDzivuYNd2LM1Z17\n lXkuBn2cNLWYPdMa9R+hdobOPHrbau2JNRcTKcQcTynDVJgF3dhY7i5KoSA1YGjGO1/SOb4L3z6\n izGwJMPLniJvTes9KDnN9j1dN4D5y9CMISyFy+vWGvdW3tma04IgQU7PFJJ7ASuoG30PcN6ktlq\n cw1Sgz4d/u+k3d2awWch0gCv8bjg0/WNCKVB75al2HI8vMn0Zq2lRt3OnO9Xh3eN1SEEC3eOCYw\n hJyM8oRkoK7xFFU+IYtXP2i1qumRHAwyoQIA==", "X-Received": "by 2002:a05:600c:8589:b0:485:3a03:ceca with SMTP id\n 5b1f17b1804b1-48e51f3b226mr889515e9.23.1778000472736;\n Tue, 05 May 2026 10:01:12 -0700 (PDT)", "From": "=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>", "To": "qemu-devel@nongnu.org", "Cc": "=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>", "Subject": "[RFC PATCH 08/10] .agents/skills: add qemu-issue-triage agent skill", "Date": "Tue, 5 May 2026 18:01:03 +0100", "Message-ID": "<20260505170105.228162-9-alex.bennee@linaro.org>", "X-Mailer": "git-send-email 2.47.3", "In-Reply-To": "<20260505170105.228162-1-alex.bennee@linaro.org>", "References": "<20260505170105.228162-1-alex.bennee@linaro.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Received-SPF": "pass client-ip=2a00:1450:4864:20::432;\n envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x432.google.com", "X-Spam_score_int": "-20", "X-Spam_score": "-2.1", "X-Spam_bar": "--", "X-Spam_report": "(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no", "X-Spam_action": "no action", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "While triaging the issue tracker I wondered if this would be a\nsuitable job for an AI agent. Unfortunately the OSS program doesn't\ngive any credits to run agents in gitlab. However I do have access to\nmodels from my editor and ECA so I built one and tested it on a few\nissues.\n\nObviously this can't apply as is because it probably encodes too much\nof my local setup (using pass for API keys) and uses the ECA as my\npreferred coding agent. I assume at some point there will be agreement\nbetween all the agents where skill live.\n\nSigned-off-by: Alex Bennée <alex.bennee@linaro.org>\n\n---\nv4\n - fix a bunch of typos in SKILL\n - update evals\n - remove mentions of ECA\nv3\n - more imperative phrasing\nv2\n - prefer sub-agent\n - mention parameters\n - don't be over eager to tag host or target for generic bugs\n - signoff comments as an agent on behalf of the user\n - detect patch available and apply appropriate tags\n---\n .agents/skills/qemu-issue-triage/SKILL.md | 91 ++++++++++++\n .../qemu-issue-triage/assets/labels.txt | 133 ++++++++++++++++++\n .../skills/qemu-issue-triage/evals/evals.json | 18 +++\n .../scripts/update_labels.sh | 16 +++\n 4 files changed, 258 insertions(+)\n create mode 100644 .agents/skills/qemu-issue-triage/SKILL.md\n create mode 100644 .agents/skills/qemu-issue-triage/assets/labels.txt\n create mode 100644 .agents/skills/qemu-issue-triage/evals/evals.json\n create mode 100755 .agents/skills/qemu-issue-triage/scripts/update_labels.sh", "diff": "diff --git a/.agents/skills/qemu-issue-triage/SKILL.md b/.agents/skills/qemu-issue-triage/SKILL.md\nnew file mode 100644\nindex 00000000000..abdf58e6bb4\n--- /dev/null\n+++ b/.agents/skills/qemu-issue-triage/SKILL.md\n@@ -0,0 +1,91 @@\n+---\n+name: qemu-issue-triage\n+description: Use this skill to triage and label GitLab issues for the QEMU project\n+license: GPL-2.0-or-later\n+---\n+\n+# Instructions\n+\n+This skill provides specialized instructions for triaging GitLab issues for the QEMU project.\n+\n+## Parameter Handling & Execution Strategy (CRITICAL)\n+1. **Parameters**: If the user invokes this skill with an argument (e.g., `/issue-triager 3463`), treat that argument as the target `<issue-id>`.\n+2. **Sub-Agent Mandate**: To prevent polluting the main conversation context, **you MUST ALWAYS spawn a sub-agent** to perform the actual triage.\n+ - Do NOT run `glab` commands or read the label cache directly in the main context.\n+ - Use the `eca__spawn_agent` tool (agent: `general`, activity: `Triaging issue <id>`).\n+ - In the `task` parameter for the sub-agent, provide the target `<issue-id>` and explicitly instruct the sub-agent to follow the \"Triage Workflow\" and \"Asset Management\" rules defined below.\n+ - Wait for the sub-agent to finish and simply report its summary to the user.\n+\n+## Goal\n+Automate the initial triage of new bug reports and feature requests in the QEMU GitLab repository.\n+\n+## Prerequisites\n+- `glab` CLI tool installed.\n+- GitLab API Token: Use `env GITLAB_TOKEN=$(pass gitlab-api)` for all `glab` commands.\n+- Target Repo: Use `-R qemu-project/qemu` if not in a clone, or ensure the remote is set correctly.\n+\n+## Asset Management (Label Cache)\n+This skill uses a cached list of labels to avoid unnecessary API calls and ensure consistent labeling.\n+- **Cache Location:** `assets/labels.txt` relative to this skill.\n+- **Updating the Cache:** If the user asks to update the labels, or if you suspect a label is missing, run the provided script:\n+ ```bash\n+ cd .agents/skills/qemu-issue-triage/scripts && ./update_labels.sh\n+ ```\n+- **Using the Cache:** Before applying labels, ALWAYS read `assets/labels.txt` (or use `grep` on it) to review the available labels and their descriptions. This ensures you use the exact spelling and understand the intent behind the label (e.g., `kind::Bug`, `Storage`). Do NOT guess label names.\n+\n+## Triage Workflow\n+\n+### 1. Information Gathering\n+Fetch the issue details:\n+```bash\n+env GITLAB_TOKEN=$(pass gitlab-api) glab issue view <issue-id> -R qemu-project/qemu --comments\n+```\n+\n+### 2. Evaluate Completeness\n+Analyze the issue against the bug template requirements:\n+- **Host Arch/OS**: Is the host environment specified?\n+- **Guest Arch/OS**: Is the guest environment specified?\n+- **QEMU Version**: Is the version mentioned?\n+- **Reproduction Steps**: Are there clear steps to reproduce?\n+- **Expected vs Actual**: Is the bug clearly described?\n+\n+**Actions:**\n+- If critical information is missing (especially repro steps), add the `workflow::Needs Info` label and post a polite comment asking for the missing details. (Remember to sign the comment as \"Issue Agent Bot on behalf of the user\" per the Guidelines).\n+- If the issue is well-defined, proceed to categorization.\n+\n+### 3. Categorization & Labeling\n+Apply labels based on the issue content. **Crucially, consult `assets/labels.txt` to find the exact matching labels for the categories below.**\n+\n+#### Kinds\n+- `kind::Bug`: For unexpected behavior.\n+- `kind::Feature Request`: For new functionality.\n+- `kind::Task`: For research, investigations, and miscellaneous issues.\n+\n+#### Targets (target: *) and Hosts (host: *)\n+Detect the guest architecture (`target: *`) or host environment (`host: *`).\n+**IMPORTANT:** Be conservative when applying `target:` and `host:` labels. Many bugs (e.g., in generic devices like USB, PCI, or block controllers) apply to ANY guest that includes the device. The reproducer (like a `qtest` invocation) might just use a convenient target (e.g., `i386`) as an example. ONLY apply `target:` or `host:` labels if the bug is strictly architecture- or host-dependent (e.g., a bug in ARM CPU emulation, or a macOS-specific build failure).\n+\n+#### Accelerators (accel: *)\n+Detect the accelerator mentioned (e.g., `accel: KVM`, `accel: TCG`, `accel: HVF`).\n+\n+#### Subsystems\n+Identify the relevant subsystem (e.g., `Storage`, `Networking`, `device:virtio`, `Migration`).\n+\n+#### Testcases\n+- If the issue provides a minimal C program, a shell script, or a specific disk image to reproduce the bug, apply the `TestCase` label.\n+\n+#### Patches and Fixes\n+- If the issue description or comments contain a link to a patch on the mailing list (e.g., `lore.kernel.org`, `patchew.org`), or explicitly mention that a patch/fix has been submitted, apply the `workflow::Patch available` label.\n+\n+### 4. Updating the Issue\n+Apply the labels and optionally assign a priority if clear:\n+```bash\n+env GITLAB_TOKEN=$(pass gitlab-api) glab issue update <issue-id> -R qemu-project/qemu --label \"kind::Bug,target: arm,workflow::Triaged\"\n+```\n+\n+## Guidelines\n+- Be polite and professional in comments.\n+- **IMPORTANT:** Any comments added to the issue MUST include the phrase: \"Issue Agent Bot on behalf of the user\" (e.g., as a sign-off at the end of the message).\n+- Use `workflow::Triaged` once categorization is complete.\n+- Avoid assigning issues to specific people unless they are explicitly mentioned or are the known maintainer for a very specific subsystem.\n+- Use the `scripts/get_maintainer.pl` logic (via file paths mentioned in the issue) to identify potential subsystems.\ndiff --git a/.agents/skills/qemu-issue-triage/assets/labels.txt b/.agents/skills/qemu-issue-triage/assets/labels.txt\nnew file mode 100644\nindex 00000000000..d329f34183d\n--- /dev/null\n+++ b/.agents/skills/qemu-issue-triage/assets/labels.txt\n@@ -0,0 +1,133 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+ACPI Power Management related (ACPI / SMBIOS / HEST / GHES)\n+Audio Audio devices; both backend (host audio) and frontend (guest audio)\n+Audit Tooling A group for bugs and issues found via automated tooling such as fuzzing, sanitizers or AI\n+Audit Tooling::AI For bugs found with AI assisted tools such as Mythos and other similar things\n+Audit Tooling::Fuzzer Issues found via fuzzing. For security issues, please consult https://www.qemu.org/contribute/security-process/\n+Audit Tooling::Sanitizer For issues found using sanitizers such as asan, lsan and tsan\n+Bite Sized Candidates for first contributions; see also https://wiki.qemu.org/Contribute/BiteSizedTasks\n+Build System configure, make, Meson, ninja, gcc, clang, ccache, etc.\n+CI Continuous Integration; gitlab, travis, patchew, etc.\n+CLI Command Line Interface\n+Chardev Character device backends and related issues\n+Closed::Duplicate There is already another ticket that is about the same issue\n+Closed::Fixed The issue was fixed. Yay!\n+Closed::Invalid This issue was not really a problem\n+Closed::NotOurBug This is a bug, but not a bug in QEMU. Please report it and/or include a link to the report.\n+Closed::NotReproducible This issue was not reproducible\n+Closed::UnbackedFeature Nobody was willing to work on this feature request\n+Closed::WontFix The issue was acknowledged, but the fix would be too complex, too expensive, or would introduce other problems.\n+Cryptography\n+Documentation Sphinx documentation, man pages, the wiki, --help output, etc.\n+GDB Issues relating to using GDB via the gdbstub\n+GUI Graphical User Interface (gtk, SDL, curses, VNC, spice, ...)\n+GUI::Cocoa Cocoa\n+GUI::DBus DBus\n+GUI::GTK\n+GUI::SDL SDL\n+GUI::SPICE SPICE\n+GUI::VNC\n+Guest Agent Issues related to the qemu-guest-agent binary. https://wiki.qemu.org/Features/GuestAgent\n+Hard\n+Launchpad Issues migrated from Launchpad\n+Migration\n+Modules\n+Networking\n+Python Python library issues (./python/)\n+QAPI/QMP QEMU API / QEMU Machine Protocol, HMP and CLI, etc.\n+QOM QEMU Object Model\n+Regression\n+Security\n+Semihosting Semihosting calls provide a simple ABI for early bring-up of embedded devices and provide a way to output to the console and do basic file i/o while being debugged\n+Softfloat QEMU's FPU emulation code (TCG only)\n+Stable::can't fix The bug was reported on a stable branch but the fix is too invasive for backporting\n+Stable::obsolete The bug was reported on a stable branch that is not maintained anymore\n+Stable::to backport The bug was reported on a stable branch and needs to be backported on the next release from the branch\n+Storage Block subsystem, Storage devices, etc.\n+TCG plugins Anything related to the TCG plugins feature\n+TestCase The report includes a testcase\n+Tests qtests, iotests, acceptance tests, VM tests, docker tests, and more.\n+USB\n+VFIO\n+accel: HAX Intel's Hardware Accelerated Execution Manager (HAXM)\n+accel: HVF Apple Hypervisor Framework\n+accel: KVM Linux Kernel-based Virtual Machine\n+accel: TCG QEMU Tiny Code Generator\n+accel: WHPX Microsoft Windows Hypervisor Platform (WHPX)\n+accel: Xen Xen Hypervisor\n+block:9p The 9p network file system\n+block:NVMe\n+block:curl\n+block:nbd\n+block:nfs Issues related to the NFS backend\n+block:qcow2\n+block:ssh\n+block:vmdk\n+bsd-user\n+device: PCI\n+device: TPM Trusted Platform Module (TPM) devices\n+device:graphics Issues relating to display device emulation, or rendering in general. See also \"GUI\".\n+device:input Keyboards, Mice, Touchscreens, HIDs, etc.\n+device:iommu IOMMU and SMMU\n+device:pflash Parallel NOR flashes emulation\n+device:sdmmc SD or (e)MMC cards emulation\n+device:virtio virtio-related issues. https://www.linux-kvm.org/page/Virtio\n+device:watchdog\n+efi EFI firmware related issues\n+flaky-ci For test cases that are flaky when run under our CI\n+gitlab\n+guest: AIX\n+guest: BSD Guest OS is BSD (NetBSD/FreeBSD/OpenBSD/etc)\n+guest: Linux Guest OS is Linux/Linux-based\n+guest: Windows Microsoft Windows guest\n+guest: macOS Apple macOS / Darwin as guest OS\n+guest: os2\n+host: aarch64 Bugs reproducible on AArch64 hosts\n+host: arm Bugs reproducible on ARM hosts\n+host: loongarch64 Bugs reproducible on LoongArch64 hosts.\n+host: mips Bugs reproducible on MIPS hosts\n+host: ppc Bugs reproducible on Power hosts\n+host: riscv Bugs reproducible on RISC-V hosts\n+host: s390 Bugs reproducible on s390 hosts\n+host: sparc64 Bugs specific to Sparc64 hosts\n+host: x86 Bugs reproducible on x86 hosts\n+host:32bit These are mostly TCG related bugs where we sometimes struggle with emulating larger guests, especially atomic and address space issues.\n+hostos: BSD FreeBSD, OpenBSD, NetBSD, and derivatives as host OSes\n+hostos: Linux Linux-based host operating systems (Fedora, RHEL/CentOS, Debian, Ubuntu, openSuSE et al)\n+hostos: Windows Microsoft Windows host OS\n+hostos: macOS Apple macOS / Darwin as a host OS\n+icount issues relating to icount, deterministic execution and record/replay functionality\n+kind: Not user visible\n+kind::Bug Bug or defect in functionality.\n+kind::Feature Request Feature request or new functionality.\n+kind::Task Research, investigations, and miscellaneous issues.\n+libvfio-user\n+linux-user\n+qemu-img\n+spice\n+sysadmin\n+target: alpha DEC Alpha [alpha]\n+target: arm Arm AArch32 or AArch64 [arm, aarch64]\n+target: avr Atmel AVR [avr]\n+target: hexagon Qualcomm Hexagon [hexagon]\n+target: hppa Hewlett-Packard Precision Architecture; HP/HP, PA-RISC [hppa]\n+target: i386 Intel/AMD x86 [i386, x86_64]\n+target: loongarch loongarch64 target architecture\n+target: m68k Motorola 68000 [m68k]\n+target: microblaze Xilinx MicroBlaze [microblaze, microblazeel]\n+target: mips MIPS [mips, mipsel, mips64, mips64el]\n+target: nios2 Altera Nios II [nios2]\n+target: openrisc OpenRISC [or1k]\n+target: ppc IBM Power Architecture, PowerPC [ppc, ppc64, ppc64le]\n+target: riscv RISC-V [riscv32, riscv64]\n+target: rx Renesas RX [rx]\n+target: s390x IBM Z, SystemZ, zSeries [s390x]\n+target: sh4 Renesas SuperH [sh4, sh4eb]\n+target: sparc Sun Microsystems SPARC [sparc, sparc64]\n+target: tricore Infineon TriCore [tricore]\n+target: xtensa Tensilica Xtensa [xtensa, xtensaeb]\n+workflow::Confirmed Bugs that have been confirmed and reproduced.\n+workflow::In Progress Someone is working on this issue.\n+workflow::Needs Info Issue has insufficient information to verify.\n+workflow::Patch available A patch is available\n+workflow::Triaged Issue has been triaged and given a topic label.\ndiff --git a/.agents/skills/qemu-issue-triage/evals/evals.json b/.agents/skills/qemu-issue-triage/evals/evals.json\nnew file mode 100644\nindex 00000000000..572c0723fd4\n--- /dev/null\n+++ b/.agents/skills/qemu-issue-triage/evals/evals.json\n@@ -0,0 +1,18 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+{\n+ \"skill_name\": \"qemu-issue-triage\",\n+ \"evals\": [\n+ {\n+ \"id\": 1,\n+ \"prompt\": \"Update the cached list of GitLab labels for the QEMU project.\",\n+ \"expected_output\": \"The skill should fetch the latest labels from GitLab and save them to the skill's assets directory.\",\n+ \"files\": []\n+ },\n+ {\n+ \"id\": 2,\n+ \"prompt\": \"Triage issue #1234. Assume the user provided clear steps but no subsystem label is obvious.\",\n+ \"expected_output\": \"The skill should read the cached label list (not fetch from GitLab) and apply relevant kind/target labels.\",\n+ \"files\": []\n+ }\n+ ]\n+}\n\\ No newline at end of file\ndiff --git a/.agents/skills/qemu-issue-triage/scripts/update_labels.sh b/.agents/skills/qemu-issue-triage/scripts/update_labels.sh\nnew file mode 100755\nindex 00000000000..1605eab4de5\n--- /dev/null\n+++ b/.agents/skills/qemu-issue-triage/scripts/update_labels.sh\n@@ -0,0 +1,16 @@\n+#!/usr/bin/env bash\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+set -e\n+\n+if [ -z \"$GITLAB_TOKEN\" ]; then\n+ echo \"GITLAB_TOKEN is not set. Attempting to fetch via pass...\"\n+ export GITLAB_TOKEN=$(pass gitlab-api)\n+fi\n+\n+echo \"Fetching labels from qemu-project/qemu...\"\n+# Fetch labels using API and format as \"Name Description\"\n+glab api /projects/qemu-project%2Fqemu/labels --paginate | \\\n+ jq -r '.[] | [ .name, .description ] | @tsv' | \\\n+ column -t -s $'\\t' > ../assets/labels.txt\n+\n+echo \"Labels cached in assets/labels.txt\"\n", "prefixes": [ "RFC", "08/10" ] }