get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.1/patches/2231935/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2231935,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2231935/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260501155141.2176290-1-alex.bennee@linaro.org/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/1.1/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": ""
    },
    "msgid": "<20260501155141.2176290-1-alex.bennee@linaro.org>",
    "date": "2026-05-01T15:51:41",
    "name": "[RFC] .eca: add an issue triager agent skill",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "05216357aa5b44e008bd0111c5c91f8ab1b50da6",
    "submitter": {
        "id": 39532,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/39532/?format=api",
        "name": "Alex Bennée",
        "email": "alex.bennee@linaro.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260501155141.2176290-1-alex.bennee@linaro.org/mbox/",
    "series": [
        {
            "id": 502477,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/502477/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=502477",
            "date": "2026-05-01T15:51:41",
            "name": "[RFC] .eca: add an issue triager agent skill",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/502477/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2231935/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2231935/checks/",
    "tags": {},
    "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=cNZAS8di;\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 4g6bCZ498qz1y04\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 02 May 2026 01:52:40 +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 1wIq9k-0000JY-6E; Fri, 01 May 2026 11:51:56 -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 1wIq9i-0000JC-NW\n for qemu-devel@nongnu.org; Fri, 01 May 2026 11:51:54 -0400",
            "from mail-wr1-x443.google.com ([2a00:1450:4864:20::443])\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 1wIq9f-0005hb-Uk\n for qemu-devel@nongnu.org; Fri, 01 May 2026 11:51:54 -0400",
            "by mail-wr1-x443.google.com with SMTP id\n ffacd0b85a97d-44a044cb827so1032406f8f.0\n for <qemu-devel@nongnu.org>; Fri, 01 May 2026 08:51:51 -0700 (PDT)",
            "from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-44b63d78692sm1705171f8f.27.2026.05.01.08.51.48\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 01 May 2026 08:51:49 -0700 (PDT)",
            "from draig.lan (localhost [IPv6:::1])\n by draig.lan (Postfix) with ESMTP id 13B385F8FC;\n Fri, 01 May 2026 16:51:48 +0100 (BST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1777650710; x=1778255510; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=Fj+vpUcgS+AUrB1kqd8Y5UU5FXDMZtAf4zagddR/a5Q=;\n b=cNZAS8diNPFZeqtrVQkLlnHqjiIKHOnS9vs+TMnC5qrU7PCGZd/PHLEKguKffKTfSp\n jbjfeVgZhpxLoGCiaci81yuAOeBKApGqWJ/NAlAyZPuI/H9oFtuNoT49z8kc1sURIeOe\n ZUZ6GkGmePP4tqhuweD5NTO6kj8d0ebByV5VQus4OCVGMZ/fRUTZba+ojzZl9eHHEU+9\n 0Mw+nLguympls6Zh6NqJ1WQ1twn9phINqZrNG4m15XWQq4NqX+pmreZvFhlM8d+SmcFr\n 5JRJ2kQX8nkJVM3yPgrq5VtJWxsEB01EpEH2kCQDjNjaCtXkEt/f6tUcittuulUXP/ED\n Dq2g==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777650710; x=1778255510;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=Fj+vpUcgS+AUrB1kqd8Y5UU5FXDMZtAf4zagddR/a5Q=;\n b=f1DY6Pqx211UZh8hqcCiqTOxvkVjlH8sEz8ikWnd1P3izb3wCvwlpFVKGoIZPYO2r8\n cNgmitgZqvwVrZHdmryjuRk2owf6zFn/JfkQKspQemN0B/v8/S4KxiH++eVWSp3WYB6A\n h77PAijyG9Sp4DcjaKCQ2H0qGiTNMyY9NIhqoNAM1feYWb/wFKLzXnxRCYWsA7YhDMks\n 48gW6SuqCK6CWUiZFIAxBqhXadLjmU3aoglyeO7XpmOZzbKRJ5n9xeKl/OuMkqHrfn65\n bK4deXTy7SmeBmjtQ79xahbKCa3aAV9H2SQ/nlCb5uKkOuasKdEg+vgz+EloDnlk/wpm\n W4aA==",
        "X-Gm-Message-State": "AOJu0YwrqDlPa23f0dgpwxH02a8dwicfuudU/hcTSK/DfnxWdipdzm3g\n 35/a79W+9n0vN0EZO6Ugb8xlTaR3zr4f+Z7VpubwD4AFC/2pageOyJNlzkaJ458Uyg0=",
        "X-Gm-Gg": "AeBDiesbwv9aEa1PogrStMD/8znajCw3uB3kCYvUkHtb0ou/4QNCtDLc/CYe/TSjKzI\n D/x+V/JPL3Z5ws4Hws7SoyGjbY80JnKyNU2+VvbGoh5Z8fDH0liQI7MokTHS0ybTBeve5DVZVSh\n vNihRRcrAFU+qakEIW8ol7b4aOfBzc3+9Idkj39BfmxbzgUbAhLBg66jdn4FJQmT3AAhHaiNTl2\n VLQNZCXyC4HTPqFflSCbAsx3vGEm/ulmO8vQY//ltSqe3nsqZfzmtzhLX9MH7VDUOf2niG4SaSO\n qGX8Mzt2NMpnjEB8lXlpBvBxASqVgOrt2zo9XSEj56tzMDulpzUjb0OAn4hUvFrwH985hKulty1\n 5VSysjR7XX+ET66boWbAwVlycnfUN9S8Ii77engI/CIGuRf/ZXLkWkkMb/94zi7zi59WWRLnp1c\n QKOBp47go67dqmEcNaXOnvqyP0pe/6VpYc0w==",
        "X-Received": "by 2002:a05:6000:1789:b0:43d:762e:76ba with SMTP id\n ffacd0b85a97d-44bb4dd9211mr44060f8f.17.1777650709696;\n Fri, 01 May 2026 08:51:49 -0700 (PDT)",
        "From": "=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "berrange@redhat.com, =?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>",
        "Subject": "[RFC PATCH] .eca: add an issue triager agent skill",
        "Date": "Fri,  1 May 2026 16:51:41 +0100",
        "Message-ID": "<20260501155141.2176290-1-alex.bennee@linaro.org>",
        "X-Mailer": "git-send-email 2.47.3",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Received-SPF": "pass client-ip=2a00:1450:4864:20::443;\n envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x443.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 .eca/skills/issue-triager/SKILL.md            |  77 ++++++++++\n .eca/skills/issue-triager/assets/labels.txt   | 132 ++++++++++++++++++\n .eca/skills/issue-triager/evals/evals.json    |  17 +++\n .../issue-triager/scripts/update_labels.sh    |  13 ++\n 4 files changed, 239 insertions(+)\n create mode 100644 .eca/skills/issue-triager/SKILL.md\n create mode 100644 .eca/skills/issue-triager/assets/labels.txt\n create mode 100644 .eca/skills/issue-triager/evals/evals.json\n create mode 100755 .eca/skills/issue-triager/scripts/update_labels.sh",
    "diff": "diff --git a/.eca/skills/issue-triager/SKILL.md b/.eca/skills/issue-triager/SKILL.md\nnew file mode 100644\nindex 00000000000..2498687a217\n--- /dev/null\n+++ b/.eca/skills/issue-triager/SKILL.md\n@@ -0,0 +1,77 @@\n+---\n+name: issue-triager\n+description: can help triaging GitLab issues for the QEMU project\n+---\n+\n+# Instructions\n+\n+This skill provides specialized instructions for triaging GitLab issues for the QEMU project.\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 .eca/skills/issue-triager/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`, `subsystem::block`). 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.\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::Cleanup`: For code refactoring or style issues.\n+\n+#### Targets (target:*)\n+Detect the guest architecture being used (e.g., `target:arm`, `target:riscv`, `target:i386`).\n+\n+#### Accelerators (accel:*)\n+Detect the accelerator mentioned (e.g., `accel:kvm`, `accel:tcg`, `accel:hvf`).\n+\n+#### Subsystems (subsystem:*)\n+Identify the relevant subsystem (e.g., `subsystem:block`, `subsystem:net`, `subsystem:virtio`, `subsystem: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+### 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+- 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/.eca/skills/issue-triager/assets/labels.txt b/.eca/skills/issue-triager/assets/labels.txt\nnew file mode 100644\nindex 00000000000..5fe8c28deac\n--- /dev/null\n+++ b/.eca/skills/issue-triager/assets/labels.txt\n@@ -0,0 +1,132 @@\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/.eca/skills/issue-triager/evals/evals.json b/.eca/skills/issue-triager/evals/evals.json\nnew file mode 100644\nindex 00000000000..4cf60b60259\n--- /dev/null\n+++ b/.eca/skills/issue-triager/evals/evals.json\n@@ -0,0 +1,17 @@\n+{\n+  \"skill_name\": \"issue-triager\",\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/.eca/skills/issue-triager/scripts/update_labels.sh b/.eca/skills/issue-triager/scripts/update_labels.sh\nnew file mode 100755\nindex 00000000000..550df07ff6b\n--- /dev/null\n+++ b/.eca/skills/issue-triager/scripts/update_labels.sh\n@@ -0,0 +1,13 @@\n+#!/usr/bin/env bash\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 | jq -r '.[] | [ .name, .description ] | @tsv' | column -t -s $'\\t' > ../assets/labels.txt\n+\n+echo \"Labels cached in assets/labels.txt\"\n",
    "prefixes": [
        "RFC"
    ]
}