navikt/cplt - Open Source PR Review Scorecard

Sandbox for AI coding agents. Runs Copilot CLI, Claude Code, OpenCode, Gemini CLI, Antigravity, Pi, goose or a plain shell inside a kernel-level sandbox, with git and gh guards and sandbox policy committed to the repository.

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

External PR Merge Rate: 43%

Response Time: <1h

First Timer Success: -

Frequently Asked Questions

Is navikt/cplt welcoming to first-time open-source contributors?

navikt/cplt 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 navikt/cplt respond to incoming external pull requests in approximately 0.4 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 59.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 59.1 places navikt/cplt in the A tier.

What is the external contributor pull request merge rate for navikt/cplt?

The external contributor pull request merge rate for navikt/cplt is 42.9%, based on public PR activity from non-core contributors.

Are there Good First Issues available in navikt/cplt?

navikt/cplt does not currently have active "good first issue" tags indexed, but accepts external contributions through standard GitHub issue tracking.

navikt
navikt/cpltA•Welcoming128
GitHub
Back to Explorer
navikt

navikt/cplt

128
Active (30d)A•Welcoming(59/100)Rust

Sandbox for AI coding agents. Runs Copilot CLI, Claude Code, OpenCode, Gemini CLI, Antigravity, Pi, goose or a plain shell inside a kernel-level sandbox, with git and gh guards and sandbox policy committed to the repository.

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Strict Architecture Gatekeeper

Warmth Score
6.6/10
Patience Score
7.4/10
Nitpick Rate
55%

Strict review standards in navikt/cplt. Ensure PR scope matches issue requirements closely before requesting review.

What Contributors Actually Say

Discussions in navikt/cplt focus heavily on practical implementation feedback, code formatting standards, and issue reproduction details.

Hidden Friction Signals

Unlinked PRs without issue context and changes that fail automated test suites face the highest review friction.

Unwritten Rules

  • •1) Keep PR scope strictly aligned with the linked issue.
  • •2) Ensure local linters pass before opening a review.
  • •3) Maintain full test coverage for modified logic.

Top PR Submission Do's

  • •Add or update tests for changed behavior before requesting review
  • •Link the issue and include reproduction context in the PR
  • •Update docs or README when behavior changes

Top PR Friction Pitfalls (Don'ts)

  • •Do not leave requested test coverage unresolved
  • •Do not open context-free PRs
  • •Do not ship user-facing changes without matching docs
Response Velocity
<1 hour
⚡ Fast reviewer response

Average Response Latency

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

Merge Efficiency
42.9%
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
8 core
Highly collaborative maintainer core
Diagnostic Health HUD
42.9%
Merge Gauge
0.0%
1st-Timer
Community Vibe47/100

Embed C-Rank Badge

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

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

Active Good First Issues (5)

View on GitHub

Landlock's access set covers opening, reading, writing, executing and directory mutation. It has no stat right: stat(2) and faccessat(2) are not mediated at all. So on Linux, access(R_OK) returns success for a path that open(2) will then refuse with EACCES. Any program written as check, then use is told one thing by the kernel and the opposite by the next syscall. Reported by @nortesoftware in #180, who found it while correcting their own bug report — the yarn 1 failure there is one instance of this, not the subject. Why it matters beyond one tool It is a real macOS/Linux divergence, and #386 had not accounted for it. Seatbelt denies the metadata call as well, so a check-then-use loader takes the "absent" branch on macOS and the "present, then fails" branch on Linux. Same configuration, different program behaviour, and not because of anything cplt chose — which is exactly the category #386 exists to enumerate. It also explains a symptom that otherwise looks tool-specific: npm, pnpm

📅 Opened Sep 6, 2026💬 0 comments
Quality: 100/100Contribute

Found while fixing the Fable review findings in #321, and left out of that PR because it is a default grant rather than a cross-backend divergence. generate_policy grants ~/.copilot read + write + execute on Linux whenever the agent needs it (src/sandbox_landlock.rs:764-772). The comment gives the reason: Execute needed for dlopen() of native .node addons (keytar, pty, computer). That reason does not hold on Landlock, and #243 established why earlier the same day. Landlock checks EXECUTE on execve() only — file_open with FMODE_EXEC — and has no mmap(PROT_EXEC) hook at all. Loading a shared object needs READ_FILE, which the rule already grants. So the execute bit buys nothing for dlopen. What it does produce is a writable and executable tree, granted by default, in the directory the agent writes its own config to. That is the binary-drop pair validate_exec_grants refuses when a user asks for it explicitly, and that #238 and #243 spent the day removing everywhere else. Here it arri

📅 Opened Sep 4, 2026💬 0 comments
Quality: 90/100Contribute

Suspected bug from code reading, not an observed failure. I have not run a Kotlin/Native build under cplt, and I could not from this machine. Filing it so the analysis is not lost, and because settling it is cheap for anyone who has a K/N project. The claim ~/.konan is a HOME_TOOL_DIRS entry with process_exec: false, map_exec: true, write: true (sandbox_policy.rs:1208). Because the tree is writable and not process_exec, macOS emits a compensating (deny process-exec (subpath "~/.konan")) — the deny is asserted directly by profile_konan_has_map_exec_only: .konan should NOT have process-exec .konan should have explicit process-exec DENY (writable dir) .konan should have file-map-executable for Kotlin Native libs Kotlin/Native downloads a prebuilt LLVM/clang toolchain into ~/.konan/dependencies/ and a native build links through it. That link step is an execve of a file under ~/.konan, not a dlopen. file-map-executable — which is what the entry grants — does not cover execve; process

📅 Opened Sep 4, 2026💬 0 comments
Quality: 90/100Contribute

Agent::keychain_substitute_env_vars() returns &[] for Copilot, with a comment at src/agent.rs saying why: Copilot gets no substitute until somebody probes it. It is the default, priority-1 agent, GITHUB_TOKEN is the most commonly exported token on a developer machine, and whether Copilot CLI prefers the env var over the Keychain is exactly the precedence question this trade declines to assume. Re-enable this with ["COPILOT_GITHUB_TOKEN", "GH_TOKEN", "GITHUB_TOKEN"] once a run under a grant-dropped profile has been confirmed to authenticate. That confirmation has never been done. It is the only thing standing between the mechanism #257 landed and dropping the whole-Keychain grant for the default agent, which is the single largest posture win available in this area: the grant is read+write on ~/Library/Keychains, so it exposes every credential the user owns, not the GitHub one. Why it needs a real run rather than an argument #173 asserted that an injected token suffices and was closed

📅 Opened Sep 4, 2026💬 1 comment
Quality: 90/100Contribute

Summary discover_electron_app documents support for editors it can never actually match. Its docstring says: Also works for VS Code Insiders, Cursor, Windsurf, and other Electron editors. But the function returns early unless the binary is a shell script whose contents include copilotCLIShim.js: if !content.starts_with("#!") { return None; } if !content.contains("copilotCLIShim.js") { return None; } So it only ever fires for a Copilot CLI shim that borrows an editor's Electron runtime. It cannot fire for launching Cursor, Windsurf, or VS Code themselves, or for any other Electron-based agent that is not the Copilot shim. Why it matters The grant this produces — file-read* plus file-map-executable on an .app/Contents — is exactly what any Electron process needs for dyld to load the Electron Framework. Without it the process takes an immediate SIGABRT. That makes this function the natural building block for #258, but it is currently welded to one caller. Measured: third-par

📅 Opened Sep 3, 2026💬 0 comments
Quality: 90/100Contribute
Looking for more Rust beginner tasks?Explore Rust 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 navikt/cplt

When evaluating whether to contribute to navikt/cplt, 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 navikt/cplt acknowledge new external contributions in approximately <1 hour. Out of all submitted pull requests from non-core authors in the last 180-day window, 42.9% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to navikt/cplt

01

Is navikt/cplt welcoming to first-time open-source contributors?

navikt/cplt 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 ~<1 hour. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 59.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 59.1 places navikt/cplt in the Welcoming tier.

04

What is the external contributor pull request merge rate for navikt/cplt?

The external pull request merge rate is 42.9%. 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 navikt/cplt?

navikt/cplt does not have open beginner labels indexed currently, but external PRs for bugs and documentation improvements are evaluated via normal issue triage.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for navikt/cplt 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.