Skip to content

Commit d56f141

Browse files
ZviBaratzclaude
andcommitted
docs: reframe toolkit for reviewer team, add Matrix link
Reframe "Advanced: Claude Code Plugin (Optional)" as "Complete Toolkit" to present skills as complementary tools rather than experimental extras. Add CI badge, Matrix room link, and explicit contribution types beyond writing rules (validate existing rules, propose severity changes, report missing patterns). Update CONTRIBUTING.md: note auto-discovery of assertion files, add single-fixture testing tip, move validate-fixture.sh mention earlier in the workflow. Commit commands/ directory (Claude Code slash command definitions). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 992422b commit d56f141

File tree

7 files changed

+101
-21
lines changed

7 files changed

+101
-21
lines changed

CONTRIBUTING.md

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ export default class TestExtension extends Extension {
6666
SPDX-License-Identifier: GPL-2.0-or-later
6767
```
6868

69+
**Verify your fixture** before continuing — run `bash scripts/validate-fixture.sh` to catch common mistakes (missing `@`, UUID mismatch, missing URL/LICENSE).
70+
6971
### Step 3: Add a test assertion
7072

7173
Create a new file `tests/assertions/your-category.sh` (or add to an existing one):
@@ -79,25 +81,7 @@ assert_output_contains "fails on navigator.clipboard" "\[FAIL\].*R-WEB-12"
7981
echo ""
8082
```
8183

82-
If you created a new assertion file, source it in `tests/run-tests.sh` by adding before the summary section:
83-
84-
```bash
85-
if [[ -f "$ASSERTIONS_DIR/your-category.sh" ]]; then
86-
source "$ASSERTIONS_DIR/your-category.sh"
87-
fi
88-
```
89-
90-
### Before running tests: Verify your fixture
91-
92-
Common fixture mistakes that cause confusing failures:
93-
94-
- Directory name contains `@` (e.g., `my-rule@test`)
95-
- `uuid` in metadata.json matches directory name exactly
96-
- metadata.json includes a `"url"` field
97-
- LICENSE file exists with SPDX identifier
98-
- UUID/name does not contain "gnome" (trademark check will fail)
99-
100-
Or run `bash scripts/validate-fixture.sh` to check all of the above automatically.
84+
New files in `tests/assertions/` are automatically discovered — no need to edit `run-tests.sh`.
10185

10286
### Step 4: Run tests
10387

@@ -107,6 +91,12 @@ bash tests/run-tests.sh
10791

10892
All existing tests must still pass alongside your new assertion.
10993

94+
To test just your fixture in isolation (without running the full suite):
95+
96+
```bash
97+
./ego-lint tests/fixtures/your-rule@test --verbose
98+
```
99+
110100
### Debugging tips
111101

112102
- **Pattern doesn't match?** Test your rule in isolation: `bash scripts/validate-rule.sh R-XXXX-NN tests/fixtures/your-fixture@test`

README.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
![Tests](https://github.com/ZviBaratz/gnome-extension-reviewer/actions/workflows/test.yml/badge.svg)
2+
13
# gnome-extension-reviewer
24

35
Automated pre-submission checks for GNOME Shell extensions, built from analysis of real EGO review decisions. ego-lint catches the mechanical issues that cause the most common rejections — so extensions arrive cleaner and reviewers spend less time on round-trips.
@@ -171,6 +173,18 @@ Full research: [docs/research/](docs/research/) | Coverage gaps: [docs/research/
171173

172174
The rules belong to whoever shapes them. Reviewers who contribute checks, adjust severity, or report false positives define what ego-lint enforces and how. If you see a rejection pattern that ego-lint misses, [adding it](CONTRIBUTING.md) is a 4-line YAML change. See [GOVERNANCE.md](GOVERNANCE.md) for how rule decisions are made.
173175

176+
### Discussion
177+
178+
Join the conversation in [#extensions:gnome.org](https://matrix.to/#/#extensions:gnome.org) on Matrix.
179+
180+
### Ways to Contribute
181+
182+
Beyond writing new rules:
183+
184+
- **Validate existing rules** — run ego-lint on extensions from your queue and report where it gets things right or wrong
185+
- **Propose severity changes** — if a WARN should be a FAIL (or vice versa), open an issue with your reasoning
186+
- **Report missing patterns** — rejection reasons ego-lint doesn't catch yet
187+
174188
### Help Wanted
175189

176190
Self-contained improvements where reviewer expertise would be especially valuable:
@@ -189,9 +203,9 @@ Self-contained improvements where reviewer expertise would be especially valuabl
189203

190204
Full gap list: [docs/research/gap-analysis.md](docs/research/gap-analysis.md)
191205

192-
## Advanced: Claude Code Plugin (Optional)
206+
## Complete Toolkit
193207

194-
ego-lint is the primary offeringit works standalone without Claude Code or any AI. The skills below are experimental extras for developers who use [Claude Code](https://docs.anthropic.com/en/docs/claude-code).
208+
ego-lint is the standalone coredeterministic, no dependencies, works in CI. The Claude Code skills extend it with AI-powered analysis for developers who want deeper review coverage:
195209

196210
| Skill | Description |
197211
|-------|-------------|

commands/ego-lint.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
description: Run automated EGO compliance checks on a GNOME Shell extension
3+
allowed-tools: Bash(bash *ego-lint.sh*), Read, Glob, Grep
4+
---
5+
6+
Run the ego-lint automated compliance checker on the target extension.
7+
8+
## Target
9+
10+
Extension directory: $ARGUMENTS (if empty, use the current working directory).
11+
12+
## Instructions
13+
14+
1. Locate `ego-lint.sh` in this plugin's `skills/ego-lint/scripts/` directory and run it:
15+
16+
```bash
17+
bash <plugin-path>/skills/ego-lint/scripts/ego-lint.sh <extension-directory>
18+
```
19+
20+
2. Present the results grouped by severity (FAIL first, then WARN, then SKIP, then PASS).
21+
3. If any FAILs exist, summarize the blocking issues and suggest fixes using the table in `skills/ego-lint/SKILL.md` under "Common Fixes".
22+
4. For `--verbose` output, add the flag to the command.

commands/ego-review.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
description: Perform a manual EGO code review of a GNOME Shell extension
3+
---
4+
5+
Perform a manual code review simulating what an EGO (extensions.gnome.org) reviewer checks.
6+
7+
## Target
8+
9+
Extension directory: $ARGUMENTS (if empty, use the current working directory).
10+
11+
## Instructions
12+
13+
Read and follow the full review process defined in this plugin's `skills/ego-review/SKILL.md`. It defines a multi-phase review (Phase 0 through Phase 5a) with checklists in `skills/ego-review/references/`.
14+
15+
Start with Phase 0 (run ego-lint for automated baseline), then proceed through each phase sequentially.

commands/ego-scaffold.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
description: Create a new GNOME Shell extension with EGO-compliant structure
3+
---
4+
5+
Scaffold a new GNOME Shell extension project with correct structure and EGO-compliant metadata.
6+
7+
## Instructions
8+
9+
Read and follow the scaffolding process defined in this plugin's `skills/ego-scaffold/SKILL.md`. It gathers required information (name, UUID, GNOME versions, etc.), then generates files from templates in `skills/ego-scaffold/assets/`.
10+
11+
$ARGUMENTS

commands/ego-simulate.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
description: Simulate an EGO review submission with pass/fail verdict
3+
allowed-tools: Bash(bash *ego-lint.sh*), Read, Glob, Grep
4+
---
5+
6+
Simulate how an EGO reviewer would evaluate this extension submission.
7+
8+
## Target
9+
10+
Extension directory: $ARGUMENTS (if empty, use the current working directory).
11+
12+
## Instructions
13+
14+
Read and follow the simulation process in this plugin's `skills/ego-simulate/SKILL.md`. It runs ego-lint first, then applies a 23-reason rejection taxonomy with weighted scoring from `skills/ego-simulate/references/rejection-taxonomy.md`, and produces a structured readiness report.

commands/ego-submit.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
description: Complete pre-submission validation for extensions.gnome.org
3+
allowed-tools: Bash(bash *ego-lint.sh*), Read, Glob, Grep
4+
---
5+
6+
Run the full pre-submission validation pipeline for extensions.gnome.org.
7+
8+
## Target
9+
10+
Extension directory: $ARGUMENTS (if empty, use the current working directory).
11+
12+
## Instructions
13+
14+
Read and follow the submission pipeline in this plugin's `skills/ego-submit/SKILL.md`. It orchestrates: ego-lint (automated checks) → ego-review (manual code review) → packaging validation, producing a final submission readiness report.

0 commit comments

Comments
 (0)