[GH-ISSUE #1522] [Bug] The bundled skill's client list leaves out qwen_code, pi and hermes #520

Closed
opened 2026-10-15 18:25:49 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @CassieFox23 on GitHub (Oct 10, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/1522

TL;DR: The REA skill lists the supported client IDs for doctor and setup, but the list stops at 15 of 18. It leaves out qwen_code, pi and hermes, and docs:check does not notice. Found while testing #1376 after it merged.

Before submitting

  • I searched the open and closed issues for a related report.
  • I removed credentials, tokens, private paths, and sensitive target data.

Area

Documentation

Observed behavior

The skill tells an agent what to do when REA tools are missing. Step 1 says to run doctor and to "Substitute the current supported client" from a list.

On main, that list is in .agents/skills/reverse-engineer-anything/SKILL.md, lines 32 to 34. It names 15 IDs:

claude_code, claude_desktop, codex, cursor, gemini_cli, windsurf, devin, opencode, antigravity, copilot_cli, commandcode, vscode, grok_build, omp, grok_bot.

src/application/SupportedClients.ts defines 18 IDs. The three missing from the skill:

ID Line in SupportedClients.ts
qwen_code 470
pi 502
hermes 513

docs/installation.md covers all 18. Its table, at lines 125 to 143, has 17 rows, and grok_bot is described at line 232. So the skill is the stale copy.

The same text ships in the package. In rea-agents 6.3.0, the file skills/reverse-engineer-anything/SKILL.md has the list on lines 33 to 35. The line number moves by one because the generator adds a tool_count line.

Setup also copies this file into the client's skill folder. A Hermes Agent (MIT) user gets a skill in ~/.hermes/skills that never names hermes.

Reproduction

  1. Check out main (7a56fe626).
  2. Read the ID table in src/application/SupportedClients.ts. Each entry has a name: field.
  3. Read lines 32 to 34 of .agents/skills/reverse-engineer-anything/SKILL.md.
  4. Compare the two sets. The skill lacks qwen_code, pi and hermes.
  5. Run npm run docs:check. It exits 0.

Expected behavior

The skill names every ID that setup --client and doctor --client accept. A new client should not ship with a stale list. Either a check fails when the two differ, or the list is built from SupportedClients.ts.

Impact and scope

An agent that follows the skill for a qwen_code, pi or hermes user reads a list without their ID. I did not test what an agent then does, so the effect is unverified. It could guess a wrong ID, or skip --client.

Nothing else breaks. I ran setup and doctor for pi and hermes on 983b070d4, and both worked.

The gap grows with each new client. It has now happened for three.

Interface

Package or setup

Earliest failure stage

Setup or provider admission

Not run

Edit: three of these ran, in the #1523 check. Still not run: how an agent behaves with the list.

  • I did not test how an agent behaves with the shorter list.
  • I did not run qwen_code. It is in the missing set, but my setup tests covered pi and hermes only. Setup works in a fake home.
  • docs:check exited 0 on 983b070d4. I did not re-run it on current main (7a56fe626). The skill file has no diff between the two commits, so I expect the same result. That is unverified. It passes on 46c9cba03.
  • I did not check other docs for stale client lists. The website FAQ is still short.
Where the text comes from

The list is authored by hand. It is not generated.

  • CONTRIBUTING.md, lines 97 and 98: "Edit authored skill instructions in .agents/skills/reverse-engineer-anything/".
  • scripts/generate-skill-metadata.mjs builds skills/reverse-engineer-anything/ from that folder. It adds a tool_count line and swaps the package specifier. It does not touch the client list.
  • skills/ is a generated, ignored output, so the fix goes in .agents/skills/reverse-engineer-anything/SKILL.md.

docs:check passes because it proves skills/ matches .agents/skills/. It never compares the list with SupportedClients.ts.

Duplicate search
  • I searched open and closed issues for "skill client list", "SKILL.md clients" and "qwen_code skill". Only #1409 came up. It is a closed request for the qwen_code client and does not cover the skill text.
  • I searched open pull requests for "SKILL.md client" and "skill". None touches .agents/skills/reverse-engineer-anything/SKILL.md. #1122 and #1399 matched on other words, so I read their file lists.
Test setup
  • Box: Nobara 44 (Fedora 44 base), Linux 7.2.9
  • CPU: AMD Ryzen 9 5900X, 12 cores / 24 threads
  • RAM: 32 GB DDR4-3600
  • Node: 24.18.0
  • REA version: 6.3.0 at source revision 983b070d4; the lists were re-read on main 7a56fe626 with git show
  • Runtime and platform: Node 24.18.0, Linux x64, fake home, clean environment
  • Other: the package check used rea-agents-6.3.0.tgz from a local npm pack

🤖 Generated with Claude Code (Opus 5.5) 🦊

Originally created by @CassieFox23 on GitHub (Oct 10, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/1522 **TL;DR:** The REA skill lists the supported client IDs for `doctor` and `setup`, but the list stops at 15 of 18. It leaves out `qwen_code`, `pi` and `hermes`, and `docs:check` does not notice. Found while testing #1376 after it merged. ### Before submitting - [x] I searched the open and closed issues for a related report. - [x] I removed credentials, tokens, private paths, and sensitive target data. ### Area Documentation ### Observed behavior The skill tells an agent what to do when REA tools are missing. Step 1 says to run `doctor` and to "Substitute the current supported client" from a list. On main, that list is in `.agents/skills/reverse-engineer-anything/SKILL.md`, lines 32 to 34. It names 15 IDs: `claude_code`, `claude_desktop`, `codex`, `cursor`, `gemini_cli`, `windsurf`, `devin`, `opencode`, `antigravity`, `copilot_cli`, `commandcode`, `vscode`, `grok_build`, `omp`, `grok_bot`. `src/application/SupportedClients.ts` defines 18 IDs. The three missing from the skill: | ID | Line in `SupportedClients.ts` | | --- | --- | | `qwen_code` | 470 | | `pi` | 502 | | `hermes` | 513 | `docs/installation.md` covers all 18. Its table, at lines 125 to 143, has 17 rows, and `grok_bot` is described at line 232. So the skill is the stale copy. The same text ships in the package. In `rea-agents` 6.3.0, the file `skills/reverse-engineer-anything/SKILL.md` has the list on lines 33 to 35. The line number moves by one because the generator adds a `tool_count` line. Setup also copies this file into the client's skill folder. A [Hermes Agent](https://github.com/NousResearch/hermes-agent) ([MIT](https://github.com/NousResearch/hermes-agent/blob/main/LICENSE)) user gets a skill in `~/.hermes/skills` that never names `hermes`. ### Reproduction 1. Check out main (`7a56fe626`). 2. Read the ID table in `src/application/SupportedClients.ts`. Each entry has a `name:` field. 3. Read lines 32 to 34 of `.agents/skills/reverse-engineer-anything/SKILL.md`. 4. Compare the two sets. The skill lacks `qwen_code`, `pi` and `hermes`. 5. Run `npm run docs:check`. It exits 0. ### Expected behavior The skill names every ID that `setup --client` and `doctor --client` accept. A new client should not ship with a stale list. Either a check fails when the two differ, or the list is built from `SupportedClients.ts`. ### Impact and scope An agent that follows the skill for a `qwen_code`, `pi` or `hermes` user reads a list without their ID. I did not test what an agent then does, so the effect is unverified. It could guess a wrong ID, or skip `--client`. Nothing else breaks. I ran `setup` and `doctor` for `pi` and `hermes` on `983b070d4`, and both worked. The gap grows with each new client. It has now happened for three. ### Interface Package or setup ### Earliest failure stage Setup or provider admission ### Not run Edit: three of these ran, in [the #1523 check](https://github.com/morluto/rea/pull/1523#issuecomment-6099255041). Still not run: how an agent behaves with the list. - I did not test how an agent behaves with the shorter list. - ~~I did not run `qwen_code`. It is in the missing set, but my setup tests covered `pi` and `hermes` only.~~ Setup works in a fake home. - ~~`docs:check` exited 0 on `983b070d4`. I did not re-run it on current main (`7a56fe626`). The skill file has no diff between the two commits, so I expect the same result. That is unverified.~~ It passes on `46c9cba03`. - ~~I did not check other docs for stale client lists.~~ The website FAQ is still short. <details> <summary>Where the text comes from</summary> The list is authored by hand. It is not generated. - `CONTRIBUTING.md`, lines 97 and 98: "Edit authored skill instructions in `.agents/skills/reverse-engineer-anything/`". - `scripts/generate-skill-metadata.mjs` builds `skills/reverse-engineer-anything/` from that folder. It adds a `tool_count` line and swaps the package specifier. It does not touch the client list. - `skills/` is a generated, ignored output, so the fix goes in `.agents/skills/reverse-engineer-anything/SKILL.md`. `docs:check` passes because it proves `skills/` matches `.agents/skills/`. It never compares the list with `SupportedClients.ts`. </details> <details> <summary>Duplicate search</summary> - I searched open and closed issues for "skill client list", "SKILL.md clients" and "qwen_code skill". Only #1409 came up. It is a closed request for the `qwen_code` client and does not cover the skill text. - I searched open pull requests for "SKILL.md client" and "skill". None touches `.agents/skills/reverse-engineer-anything/SKILL.md`. #1122 and #1399 matched on other words, so I read their file lists. </details> <details> <summary>Test setup</summary> - Box: Nobara 44 (Fedora 44 base), Linux 7.2.9 - CPU: AMD Ryzen 9 5900X, 12 cores / 24 threads - RAM: 32 GB DDR4-3600 - Node: 24.18.0 - REA version: 6.3.0 at source revision `983b070d4`; the lists were re-read on main `7a56fe626` with `git show` - Runtime and platform: Node 24.18.0, Linux x64, fake home, clean environment - Other: the package check used `rea-agents-6.3.0.tgz` from a local `npm pack` </details> 🤖 Generated with Claude Code (Opus 5.5) 🦊
bsakaguchi 2026-10-15 18:25:49 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#520
No description provided.