Simulates EGO reviewer evaluation of GNOME Shell extensions: runs linting, triages metadata/code patterns in review order, scores via 23-reason rejection taxonomy, outputs pass/fail readiness report.
npx claudepluginhub zvibaratz/gnome-extension-reviewerThis skill uses the workspace's default tool permissions.
Simulate how an EGO (extensions.gnome.org) reviewer would evaluate this GNOME
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Simulate how an EGO (extensions.gnome.org) reviewer would evaluate this GNOME Shell extension submission. Unlike ego-review (which is a thorough code review) or ego-submit (which is a packaging pipeline), this skill focuses on assessing the extension against known review criteria and published rejection patterns.
The extension directory must be provided by the user (or use the current working directory).
Run the automated linter first to establish a baseline:
bash skills/ego-lint/scripts/ego-lint.sh --show all EXTENSION_DIR
Capture the results: FAIL count, WARN count, and specific findings with file:line references. These feed directly into the scoring in Step 3.
Read references/reviewer-persona.md before starting this step.
Adopt the reviewer persona and triage the extension in the order reviewers actually follow. Do NOT reorganize by category — follow this exact sequence:
disable() undoes
everything enable() creates. This is the #1 rejection cause..connect( and .disconnect( — counts
should roughly balance. Check for connectObject usage (modern pattern).timeout_add and Source.remove /
GLib.Source.remove. Verify stored IDs and cleanup in disable.extension.js doesn't import GTK
and prefs.js doesn't import Shell modules.For each step, note what a reviewer would think. Use the reviewer's internal monologue style: "I see X but Y is missing" or "This looks clean."
Read references/rejection-taxonomy.md before scoring.
Apply the 23-reason rejection taxonomy. For each reason:
Sum the weights to compute the base score, then apply the Scoring Modifiers
from rejection-taxonomy.md (provenance discount, unmapped FAIL adjustment,
size normalization) to arrive at the final score.
After computing the taxonomy score, cross-reference with ego-lint results from Step 1:
This ensures the simulation verdict reflects automated check failures that a real reviewer would catch immediately.
Also read references/approved-examples.md to calibrate — note where the
extension follows or deviates from idiomatic patterns.
Generate the simulation report in this exact format:
## EGO Review Simulation Report
### Extension: [name] ([uuid])
### Triage Summary
[2-3 sentence overview of first impressions, written as the reviewer's internal
monologue. What did they notice first? What's their gut feeling?]
### Blocking Issues (score: N)
- **[Reason #] [Reason name]** (weight N): [Evidence with file:line reference]
### Reviewer Concerns (score: N)
- **[Reason #] [Reason name]** (weight N): [Evidence with file:line reference]
### Advisory Notes
- [Non-blocking observations that reviewers would mention in comments]
### Verdict
**Score: N** — [verdict text based on threshold]
- 0: Likely to pass without comments
- 1-4: Likely to pass with minor comments
- 5-9: May pass, but expect revision requests
- 10+: Will be rejected — address blocking issues first
> **Note:** ego-simulate uses a fast heuristic based on the 23-reason rejection
> taxonomy with fixed weights. ego-review uses a different scale (risk points
> from finding categories). The two scores are not directly comparable — a
> simulate score of 5 does not equal an ego-review risk score of 5. Use
> ego-simulate for quick triage and ego-review for authoritative assessment.
### Suggested Fixes (priority order)
1. [Most impactful fix — the one that drops the score the most]
2. [Next fix]
...
Read these reference documents before generating the report:
references/reviewer-persona.md — How reviewers triage submissionsreferences/rejection-taxonomy.md — 23 rejection reasons with weightsreferences/approved-examples.md — Idiomatic patterns reviewers like