fix(plugins): align listing metadata with REA branding (#7711)

Use one packaged icon for Codex and Claude, and align listing descriptions with the repository About.
This commit is contained in:
gensokyo-dev authored and GitHub committed 2026-10-28 05:16:41 +00:00
1 parent fbb0e79354
commit 8397a0c9eb
8 files changed
+35 -7

No files matched your search

+1 -1
View File
@@ -9,7 +9,7 @@
"plugins": [
{
"name": "rea",
"description": "Reverse engineer anything from your terminal or agent with one CLI and MCP server.",
"description": "Reverse engineer anything with agents, from app behavior down to native binaries.",
"source": {
"source": "npm",
"package": "rea-agents",
+3 -2
View File
@@ -1,7 +1,7 @@
{
"name": "rea",
"version": "6.8.0",
"description": "Reverse engineer anything from your terminal or agent with one CLI and MCP server.",
"description": "Reverse engineer anything with agents, from app behavior down to native binaries.",
"author": {
"name": "morluto",
"url": "https://github.com/morluto"
@@ -24,5 +24,6 @@
"6.8.0"
]
}
}
},
"icon": "./assets/rea-plugin.png"
}
+6 -4
View File
@@ -1,7 +1,7 @@
{
"name": "rea",
"version": "6.8.0",
"description": "Reverse engineer anything from your terminal or agent with one CLI and MCP server.",
"description": "Reverse engineer anything with agents, from app behavior down to native binaries.",
"author": {
"name": "morluto",
"url": "https://github.com/morluto"
@@ -19,8 +19,8 @@
"mcpServers": "./.codex-plugin/mcp.json",
"interface": {
"displayName": "REA",
"shortDescription": "Reverse engineer anything with agents",
"longDescription": "Use REA to explain shipped behavior from native binaries, managed assemblies, Electron and JavaScript bundles, packages, firmware, and browser targets, with evidence that separates observations from inferences.",
"shortDescription": "Reverse engineer anything",
"longDescription": "Reverse engineer anything with agents, from app behavior down to native binaries.",
"developerName": "morluto",
"category": "Developer Tools",
"capabilities": [
@@ -33,6 +33,8 @@
"Use REA to explain how this binary implements a feature.",
"Use REA to compare two versions of this application.",
"Use REA to recover the sources from this JavaScript bundle."
]
],
"composerIcon": "./assets/rea-plugin.png",
"logo": "./assets/rea-plugin.png"
}
}
+10
View File
@@ -0,0 +1,10 @@
# Plugin icon
`rea-plugin.png` is a square adaptation of the left panel of REA's GitHub
social preview, retrieved on 2026-10-28:
https://repository-images.githubusercontent.com/1209966933/1a3fef9a-be4b-41f4-8830-a94c0e8288cc
The image was adapted with imagegen, preserving the cyan REA lettering,
pixel typography, orange rule, and taglines. Both plugin manifests reference
this shared asset; only the PNG is included in the npm package.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

+1
View File
@@ -100,6 +100,7 @@
"third_party/pwndbg/README.md",
"third_party/pwndbg/LICENSE.md",
"licenses",
"assets/rea-plugin.png",
".claude-plugin/plugin.json",
".codex-plugin/plugin.json",
".codex-plugin/mcp.json",
+9
View File
@@ -254,6 +254,15 @@ export async function verifyPackagePack({ root, workspace, commands }) {
throw new Error(
`Packaged plugin ${path} does not match the exact runtime and canonical skill release`,
);
const icons = path.startsWith(".codex")
? [manifest.interface?.logo, manifest.interface?.composerIcon]
: [manifest.icon];
for (const icon of icons)
if (
icon !== "./assets/rea-plugin.png" ||
!packedFiles.includes(`package/${icon.slice(2)}`)
)
throw new Error(`Packaged plugin ${path} is missing its shared icon`);
}
if (packedFiles.includes("package/.mcp.json"))
throw new Error("Plugin metadata must not register a project MCP server");
@@ -339,8 +339,13 @@ describe("plugin release pins", () => {
"longDescription",
"developerName",
"category",
"composerIcon",
"logo",
])
expect(manifest.interface[field]).toEqual(expect.stringMatching(/\S/u));
expect(
String(manifest.interface.shortDescription).length,
).toBeLessThanOrEqual(30);
expect(manifest.interface.capabilities).toEqual(
expect.arrayContaining([expect.stringMatching(/\S/u)]),
);