85
/ 100
Polished and well engineered. Punching above its star count.
MeshCore mesh network analyzer — live packet visualization, VCR replay, channel decryption, node health, analytics
Top fixes
Highest-impact changes first, ranked by point weight
- 1Reproducibility6pt
Add .github/dependabot.yml with at least one package-ecosystem entry so dependencies are updated automatically.
- 2Issue and PR templates6pt
Add .github/ISSUE_TEMPLATE/ with bug_report.md and feature_request.md to guide contributors. It dramatically improves issue quality.
- 3Dependency manifest6pt
Add a `repository` field pointing to the GitHub URL so npm knows where the source lives.
- 4Dependency manifest6pt
Add a `keywords` array to help people find your package on npm.
Working through the fixes? Let every push regrade itself.
The free GitHub App rescans this repo on every push and posts the grade as a commit check, so the score climbs without coming back to rescan by hand.
Scorecard
Every check, grouped by category and sorted worst-first
Documentation
88
Contributing guidance is in the README, not a dedicated CONTRIBUTING.md (−20 pts).
→ Moving it to a CONTRIBUTING.md makes it easier to find and keeps the README focused. A dedicated file earns +47 pts base.
README is present.
README documents how to install the project.
Licensed under GPL-3.0.
Engineering
85
No issue or PR templates found (−100 pts).
→ Add .github/ISSUE_TEMPLATE/ with bug_report.md and feature_request.md to guide contributors. It dramatically improves issue quality.
Lockfile present (package-lock.json). Installs are reproducible.
Test files detected (cmd/decrypt/main_test.go).
CI is configured (.github/workflows/squad-heartbeat.yml).
Linter or formatter configured (.eslintrc.json).
Project health
89
Dependency manifest found (package.json).
Repository has a description.
Actively maintained (pushed within the last month).
.gitignore present.
Repository health signals
Activity, community, and responsiveness at scan time
Activity
- -Commits (30d / 90d)
- 36Forks
- 33Releaseslatest 4mo ago
Community
- 42% - WeakCommunity health
- 1 bus factorlowauthor own >50% of commits
- 142Watchers
Responsiveness
- 3hMedian issue response
- 2hMedian PR merge time
- 113Open issues
Repository files311 root entries
- .badges
- .githubGood: CI is configured (.github/workflows/squad-heartbeat.yml).
- .squad
- cmdGood: Test files detected (cmd/decrypt/main_test.go).
- docker
- docs
- internal
- proto
- public
- qa
- reviews
- scripts
- test-fixtures
- testdata
- tests
- tools
- .dockerignore
- .env.example
- .eslintrc.jsonGood: Linter or formatter configured (.eslintrc.json).
- .git-blame-ignore-revs
- .gitattributes
- .gitignoreGood: .gitignore present.
- .nycrc.json
- AGENTS.md
- AUDIO-PLAN.md
- AUDIO-WORKBENCH.md
- BUILD_PLAN.md
- CHANGELOG.md
- channel-rainbow.json
- config.example.json
- CUSTOMIZATION-PLAN.md
- DEDUP-DESIGN.md
- DEDUP-MIGRATION-PLAN.md
- DEPLOY.md
- docker-compose.example.yml
- docker-compose.no-mosquitto.yml
- docker-compose.staging.no-mosquitto.yml
- docker-compose.staging.yml
- docker-compose.yml
- DockerfileGood: Environment pinned via Dockerfile.
- Dockerfile.go
- Dockerfile.node
- LICENSEGood: Licensed under GPL-3.0.
- manage.sh
- MIGRATIONS.md
- NEW_USER_SPEC.md
- NODE-ANALYTICS-PLAN.md
- package-lock.jsonGood: Lockfile present (package-lock.json). Installs are reproducible.
- package.jsonGood: Dependency manifest found (package.json).
- PERFORMANCE.md
- README.mdGood: README is present.Good: README is well structured with multiple sections.Good: README includes screenshots or visuals. Great for first impressions.Good: README has code examples.Good: README links to a live demo or deployed app.Good: README includes status badges.Good: README documents how to install the project.Good: README documents how to run the project.
- RELEASE-v2.6.0.md
- RELEASE-v3.0.0.md
- RELEASE-v3.1.0.md
- RELEASE-v3.6.0.md
- test-1108-region-hide-nodes.js
- test-1110-live-filter.js
- test-1659-analytics-warmup.js
- test-a11y-1705-subpath-hop-prefix-e2e.js
- test-a11y-1715-dark-role-swatches.js
- test-a11y-1716-rf-range-btn-active.js
- test-a11y-1719-contrast-root-causes-e2e.js
- test-a11y-axe-1668-selftest.js
- test-a11y-axe-1668.js
- test-a11y-axe-routes-coverage.js
- test-aging.js
- test-all.sh
- test-analytics-channels-integration.js
- test-analytics-fluid-charts.js
- test-anl1-tooltip-render.js
- test-area-filter.js
- test-audio-lab-1297-e2e.js
- test-audio-live-1297-e2e.js
- test-bottom-nav-1061-e2e.js
- test-channel-color-picker-e2e.js
- test-channel-color-picker.js
- test-channel-colors.js
- test-channel-decrypt-e2e.js
- test-channel-decrypt-ecb.js
- test-channel-decrypt-insecure-context.js
- test-channel-decrypt-m345.js
- test-channel-fluid-e2e.js
- test-channel-fluid-layout.js
- test-channel-issue-1087-e2e.js
- test-channel-issue-1087.js
- test-channel-issue-1101.js
- test-channel-issue-1111-e2e.js
- test-channel-live-decrypt-userprefix.js
- test-channel-live-decrypt.js
- test-channel-modal-e2e.js
- test-channel-modal-ux.js
- test-channel-psk-ux.js
- test-channel-qr-e2e.js
- test-channel-qr-wiring.js
- test-channel-qr.js
- test-channel-sidebar-layout.js
- test-channel-ux-followup.js
- test-channel-ux-round2.js
- test-channels-add-modal-e2e.js
- test-channels-list-render-e2e.js
- test-channels-merge-1498-unit.js
- test-channels-selection-flow-e2e.js
- test-channels-share-color-e2e.js
- test-channels-ws-batch-e2e.js
- test-channels-ws-race-1498-e2e.js
- test-charts-fluid-1058-e2e.js
- test-clear-filters.js
- test-color-picker-ux.js
- test-compare-flood-filter.js
- test-compare-overlap.js
- test-confidence-indicator.js
- test-coverage-gate.js
- test-customize-branding-e2e.js
- test-customize-display-e2e.js
- test-customize-export-e2e.js
- test-customize-theme-e2e.js
- test-customizer-v2.js
- test-drag-manager-e2e.js
- test-drag-manager.js
- test-e2e-1267-mobile-vcr.js
- test-e2e-badge-aggregate.sh
- test-e2e-playwright.js
- test-embed-mode-1369.js
- test-fetch-all-nodes-pagination.js
- test-filter-ux-e2e.js
- test-fluid-scaffolding.js
- test-frontend-helpers.js
- test-geofilter-draft.js
- test-gesture-hints-1065-e2e.js
- test-gestures-1062-e2e.js
- test-gestures-1185-scroll-discriminator-e2e.js
- test-hash-color.js
- test-home-coverage-e2e.js
- test-hop-resolver-affinity.js
- test-issue-1065-gesture-hints-gates.js
- test-issue-1107-live-layout.js
- test-issue-1109-hamburger-dropdown-visible-e2e.js
- test-issue-1122-packets-filter-ux-e2e.js
- test-issue-1128-multi-viewport-e2e.js
- test-issue-1128-packets-layout-e2e.js
- test-issue-1136-live-region-e2e.js
- test-issue-1136-observer-iata-map.js
- test-issue-1146-path-link-contrast-e2e.js
- test-issue-1147-section-order-e2e.js
- test-issue-1150-404-state-e2e.js
- test-issue-1151-orphan-separators-e2e.js
- test-issue-1166-first-seen-column.js
- test-issue-1189-composed-cell.js
- test-issue-1189-live-iata-badge.js
- test-issue-1204-live-panel-structure-e2e.js
- test-issue-1205-live-controls-anchor-e2e.js
- test-issue-1206-resize-observer-leak-e2e.js
- test-issue-1206-vcr-overlap-e2e.js
- test-issue-1224-channels-mobile-ux-e2e.js
- test-issue-1234-live-chrome-pass2-e2e.js
- test-issue-1236-map-mobile-e2e.js
- test-issue-1244-live-vcr-row-hints-e2e.js
- test-issue-1273-qr-overlay-height-e2e.js
- test-issue-1274-legend-coverage-e2e.js
- test-issue-1279-legend-p2-e2e.js
- test-issue-1279-p2-code-filter.js
- test-issue-1281-location-row-e2e.js
- test-issue-1293-marker-shapes.js
- test-issue-1306-collisions-terminology-e2e.js
- test-issue-1329-map-controls-accordion-e2e.js
- test-issue-1356-map-a11y.js
- test-issue-1360-pill-letter-count.js
- test-issue-1361-cb-presets.js
- test-issue-1364-pill-no-clamp.js
- test-issue-1367-channels-chat-app-e2e.js
- test-issue-1374-route-map-a11y-e2e.js
- test-issue-1375-scope-stats-fetch.js
- test-issue-1380-cb-reset-button.js
- test-issue-1380-cb-sim-overlay.js
- test-issue-1400-nav-vertical-clip.js
- test-issue-1407-cb-preset-propagation.js
- test-issue-1409-no-encrypted-flood.js
- test-issue-1412-customizer-no-override.js
- test-issue-1413-nav-overlap-e2e.js
- test-issue-1415-packets-layout.js
- test-issue-1418-cb-preset-ramp.js
- test-issue-1418-deeplink-hops-channels.js
- test-issue-1418-edge-weights.js
- test-issue-1418-polish-review.js
- test-issue-1418-raw-hex-extraction.js
- test-issue-1418-spider-fan.js
- test-issue-1420-tile-providers.js
- test-issue-1438-customizer-mcrole.js
- test-issue-1438-marker-css-vars.js
- test-issue-1446-cb-preset-cascade.js
- test-issue-1450-logo-aspect.js
- test-issue-1454-channels-toggle.js
- test-issue-1456-score-labels.js
- test-issue-1461-mobile-page-actions.js
- test-issue-1470-card-bg-contrast.js
- test-issue-1470-node-tile-helper.js
- test-issue-1473-prefix-generator.js
- test-issue-1473-reserved-prefixes.js
- test-issue-1485-live-anim-z.js
- test-issue-1486-collapse-reopens-detail-e2e.js
- test-issue-1487-byop-modal-layout-e2e.js
- test-issue-1488-marker-stroke-vars.js
- test-issue-1496-reset-all-complete.js
- test-issue-1509-detect-preset.js
- test-issue-1509-nav-active-bg.js
- test-issue-1510-live-nav-pin-e2e.js
- test-issue-1518-home-url.js
- test-issue-1522-trace-url-sync-e2e.js
- test-issue-1532-live-fullscreen.js
- test-issue-1562-observers-summary.js
- test-issue-1563-aggregate-and-inflight.js
- test-issue-1567-corner-clears-drag-e2e.js
- test-issue-1574-live-map-max-nodes.js
- test-issue-1599-replay-freeze-e2e.js
- test-issue-1606-pagination.js
- test-issue-1614-tile-url-function.js
- test-issue-1619-feed-detail-card-draggable.js
- test-issue-1630-reach-mobile-e2e.js
- test-issue-1633-hide-1byte-hops.js
- test-issue-1639-observers-sort-e2e.js
- test-issue-1640-compare-discovery-e2e.js
- test-issue-1644-redesign.js
- test-issue-1646-compare-polish.js
- test-issue-1648-followup-phosphor-leaks.js
- test-issue-1648-m1-emoji-scan.js
- test-issue-1648-m1-icons-e2e.js
- test-issue-1648-m2-emoji-scan.js
- test-issue-1648-m2-icons-e2e.js
- test-issue-1648-m3-emoji-scan.js
- test-issue-1648-m3-icons-e2e.js
- test-issue-1648-m4-emoji-scan.js
- test-issue-1648-m4-icons-e2e.js
- test-issue-1648-m5-emoji-scan.js
- test-issue-1648-m5-icons-e2e.js
- test-issue-1648-m6-final-sweep.js
- test-issue-1648-m6-lint-self.js
- test-issue-1657-analytics-channels-group-sprites-e2e.js
- test-issue-1668-m2-contrast.js
- test-issue-1668-m3-typography.js
- test-issue-1668-m4-per-route.js
- test-issue-1692-packets-init-parallel-e2e.js
- test-issue-1697-mqtt-mobile-e2e.js
- test-issue-1705-subpath-contrast-e2e.js
- test-issue-1705-subpath-contrast.js
- test-issue-1753-copy-url-slash.js
- test-issue-1789-observer-firmware-cols.js
- test-live-anims.js
- test-live-dedup.js
- test-live-dt-cap-1524.js
- test-live-fullscreen-1572-e2e.js
- test-live-layout-1178-1179-e2e.js
- test-live-mql-leak-1180-e2e.js
- test-live-multibyte-filter.js
- test-live-multibyte-only-e2e.js
- test-live-region-filter.js
- test-live.js
- test-logo-default-sage-teal-e2e.js
- test-logo-pulse-1173-e2e.js
- test-logo-rebrand-e2e.js
- test-logo-theme-e2e.js
- test-map-clustering.js
- test-map-modal-fluid-e2e.js
- test-map-nodes-pagination-e2e.js
- test-marker-outline-weight.js
- test-mqtt-status-panel.js
- test-naive-banner-tone.js
- test-nav-drawer-1064-e2e.js
- test-nav-fluid-1055-e2e.js
- test-nav-more-floor-1139-e2e.js
- test-nav-priority-1102-e2e.js
- test-nav-priority-1311-e2e.js
- test-nav-priority-1391-e2e.js
- test-node-reach-coverage-debounce.js
- test-node-reach-coverage-e2e.js
- test-node-reach-coverage.js
- test-node-reach-e2e.js
- test-observer-iata-1188-e2e.js
- test-observer-iata-1188.js
- test-observer-naive-clock-1478.js
- test-observers-headings.js
- test-packet-filter-time.js
- test-packet-filter-ux.js
- test-packet-filter.js
- test-packets.js
- test-panel-corner.js
- test-path-inspector-coverage-e2e.js
- test-path-inspector-e2e.js
- test-path-inspector.js
- test-perf-anomaly.js
- test-perf-disk-io-1120.js
- test-perf-go-runtime.js
- test-perf-render-1258.js
- test-pr-1490-live-map-gpu-animations-e2e.js
- test-preflight-xss-gate.js
- test-pull-to-reconnect-1091.js
- test-pull-to-reconnect.js
- test-rx-coverage-config-race.js
- test-rx-coverage-escape.js
- test-rx-coverage-mobile-nav-e2e.js
- test-show-neighbors.js
- test-slideover-1056-e2e.js
- test-slideover-1056-rowsel-strict.js
- test-slideover-1168-munger-e2e.js
- test-table-fluid-e2e.js
- test-table-sort.js
- test-touch-gestures-coverage-e2e.js
- test-touch-targets.js
- test-traces.js
- test-url-state.js
- test-warmup-banner.js
- test-xss-escape-sinks.js
Add this badge to your README
It updates automatically each time the repo is re-graded.
[](https://www.repo-grade.com/report/kpa-clawbot/corescope)