cuttle-cards/cuttle - Open Source PR Review Scorecard

A two-player battle card game for all ages, built with nodejs, sailsjs, and vuejs

C-Rank Grade: A (Welcoming) - 58/100

External PR Merge Rate: 47%

Response Time: 13h

First Timer Success: -

Frequently Asked Questions

Is cuttle-cards/cuttle welcoming to first-time open-source contributors?

cuttle-cards/cuttle has a recorded first-timer success rate of 0.0%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in cuttle-cards/cuttle respond to incoming external pull requests in approximately 13.3 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 58.1 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 58.1 places cuttle-cards/cuttle in the A tier.

What is the external contributor pull request merge rate for cuttle-cards/cuttle?

The external contributor pull request merge rate for cuttle-cards/cuttle is 46.7%, based on public PR activity from non-core contributors.

Are there Good First Issues available in cuttle-cards/cuttle?

cuttle-cards/cuttle currently has 7 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

cuttle-cards
cuttle-cards/cuttleA•Welcoming195
GitHub
Back to Explorer
cuttle-cards

cuttle-cards/cuttle

195
Active (30d)A•Welcoming(58/100)Low Sample (<20 PRs)JavaScript

A two-player battle card game for all ages, built with nodejs, sailsjs, and vuejs

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Active Open-Source Maintainer

Warmth Score
7.8/10
Patience Score
8.2/10
Nitpick Rate
20%

Growing JavaScript project in cuttle-cards/cuttle welcoming community pull requests and bug fixes.

Top PR Submission Do's

  • •Ensure code complies with JavaScript style conventions
  • •Keep PRs scoped and well-documented

Top PR Friction Pitfalls (Don'ts)

  • •Do not submit unlinked PRs without context
  • •Do not break existing automated test suites
Response Velocity
13 hours
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
46.7%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
0.0%
No first-timer merges recorded in window

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
5 core
Small core review team
Diagnostic Health HUD
46.7%
Merge Gauge
0.0%
1st-Timer
Community Vibe39/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for cuttle-cards/cuttle
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/cuttle-cards/cuttle)](https://getmerged.abhishekco.de/cuttle-cards/cuttle?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

Part of #1399. Summary Nine components are already on <script setup> and still carry exactly one type error each. They do not need migrating — they need a type annotation. Small, uniform, and a good first issue. Why these exist Four of them (AwardCard, BaseLineChart, ThreeDialog, StatsLeaderboardCell) were migrated in #1416–#1419 against the original wording of #1412, which wrongly promised the migration would clear their type errors. It did not. Measured: main was at 420 frontend errors before those four PRs and is at 420 after. The migrations were correct and worth doing on AGENTS.md grounds, but the errors are untyped props, which <script setup> does not touch. #1412 has been corrected. Scope Errors Lines File 1 41 src/components/OauthLink.vue 1 51 src/routes/game/components/dialogs/components/RulesDialog.vue 1 78 src/routes/game/components/dialogs/components/FiveDialog.vue 1 80 src/components/AwardCard.vue 1 99 src/routes/game/components/dialogs/components/gameOv

📅 Opened Oct 7, 2026💬 0 comments
Quality: 75/100Contribute

Part of #1399. One of six store issues. Follows the conventions set in #1422. Summary Convert src/stores/gameHistory.js to TypeScript. 90 lines, already on the setup syntax. Mostly derived state, so the typing is concentrated in one place. Scope One piece of real state and nine computeds derived from it: const gameStates = ref([]); // <- the only thing that needs declaring const isSpectating = computed(() => route.name === ROUTE_NAME_SPECTATE); const currentGameStateIndex = computed(() => { ... }); const currentGameState = computed(() => { ... }); const priorGameStates = computed(() => { ... }); const log = computed(() => { ... }); const showPlaybackControls = computed(() => { ... }); const canGoToPreviousState = computed(() => { ... }); const canGoToNextState = computed(() => { ... }); const clipUrl = computed(() => { ... }); Because the computeds derive from gameStates, typing that one ref propagates to all nine for free

📅 Opened Oct 7, 2026💬 0 comments
Quality: 75/100Contribute

Part of #1399. One of six store issues. Follows the conventions set in #1422. Summary Convert src/stores/myGames.js to TypeScript. 67 lines, already on the setup syntax. Scope const games = ref([]); // <- empty literal: element type never pinned const loading = ref(false); const hasMore = ref(true); const totalCount = ref(0); async function loadMyGames(options = {}) { ... } function resetGames() { ... } Two things need stating that inference cannot recover: games is ref([]), so its element type is unknown to the checker and every consumer of myGamesStore.games is unchecked. Declare the game shape and use ref<MyGame[]>([]). loadMyGames(options = {}) — the options bag is implicit any. Read the call sites and the API response it consumes, then declare both. The game shape likely overlaps what gameList and game hold. If so, put the shared interface somewhere reusable (src/types/ is a reasonable home) rather than duplicating it — but do not over-abstract on the first p

📅 Opened Oct 7, 2026💬 0 comments
Quality: 75/100Contribute

Part of #1399. One of six store issues. Summary Convert src/stores/snackbar.js to TypeScript. 38 lines — the smallest store, already on the setup syntax, and a good place to establish the conventions the other five will follow. Scope const showSnackbar = ref(false); // -> ref<boolean> (already inferred correctly) const snackMessage = ref(''); // -> ref<string> (already inferred correctly) const snackColor = ref(''); // -> candidate for a union type const snackTimeout = ref(0); // -> ref<number> (already inferred correctly) function alert(message, color = 'error', timeout = 5000) { ... } function clear() { ... } The ref initialisers here are non-empty literals, so inference already works. The real gain is the function parameters, which are currently implicit any: type SnackColor = 'error' | 'success' | 'info' | 'warning'; function alert(message: string, color: SnackColor = 'error', timeout = 5000) { ... } Check the actual call sites before fixing the SnackCol

📅 Opened Oct 7, 2026💬 1 comment
Quality: 75/100Contribute

NoteStatus update 2026-10-07. Four of the six are merged (#1416 AwardCard, #1417 BaseLineChart, #1418 ThreeDialog, #1419 StatsLeaderboardCell), SpectatorListMenu is in flight as #1415, and only FourDialog.vue is unclaimed. The migrations did not change the error count. Measured: main was at 420 frontend errors before those four PRs and is at 420 after — confirming the correction below. Their type errors are untyped props and are now tracked in #1428, which types them with <script setup lang="ts">. ImportantCorrected 2026-10-06. This issue originally claimed migrating these six files would clear their type errors. That was wrong — measured with vue-tsc, only 1 of the 6 has a migration-fixable error. The other five are untyped props, which <script setup> does not touch. Summary Convert the remaining small Options API components to <script setup lang="ts">. The value here is AGENTS.md compliance, not type-error reduction — only FourDialog.vue has an error the migration actually fi

📅 Opened Oct 7, 2026💬 1 comment
Quality: 75/100Contribute
Looking for more JavaScript beginner tasks?Explore JavaScript GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for cuttle-cards/cuttle

When evaluating whether to contribute to cuttle-cards/cuttle, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of cuttle-cards/cuttle acknowledge new external contributions in approximately 13 hours. Out of all submitted pull requests from non-core authors in the last 180-day window, 46.7% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to cuttle-cards/cuttle

01

Is cuttle-cards/cuttle welcoming to first-time open-source contributors?

cuttle-cards/cuttle has a recorded first-timer success rate of 0.0%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~13 hours. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 58.1 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 58.1 places cuttle-cards/cuttle in the Welcoming tier.

04

What is the external contributor pull request merge rate for cuttle-cards/cuttle?

The external pull request merge rate is 46.7%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in cuttle-cards/cuttle?

Yes, cuttle-cards/cuttle currently has 7 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for cuttle-cards/cuttle are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.