You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Verify your fixture** before continuing — run `bash scripts/validate-fixture.sh` to catch common mistakes (missing `@`, UUID mismatch, missing URL/LICENSE).
70
+
69
71
### Step 3: Add a test assertion
70
72
71
73
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"
79
81
echo""
80
82
```
81
83
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`.
101
85
102
86
### Step 4: Run tests
103
87
@@ -107,6 +91,12 @@ bash tests/run-tests.sh
107
91
108
92
All existing tests must still pass alongside your new assertion.
109
93
94
+
To test just your fixture in isolation (without running the full suite):
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.
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.
173
175
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
Self-contained improvements where reviewer expertise would be especially valuable:
@@ -189,9 +203,9 @@ Self-contained improvements where reviewer expertise would be especially valuabl
189
203
190
204
Full gap list: [docs/research/gap-analysis.md](docs/research/gap-analysis.md)
191
205
192
-
## Advanced: Claude Code Plugin (Optional)
206
+
## Complete Toolkit
193
207
194
-
ego-lint is the primary offering — it 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 core — deterministic, no dependencies, works in CI. The Claude Code skills extend it with AI-powered analysis for developers who want deeper review coverage:
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.
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/`.
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.
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