Open Source Contribution Tracker

Evidence-backed public pull requests, reviews, CI signals, and maintainer follow-up.

View the Project on GitHub gnanirahulnutakki/oss-contribution-tracker

Open Source Contribution Tracker

Validate tracker Daily refresh Pages deployment

A transparent, evidence-backed dashboard for my public open-source pull requests, reviews, and issue lanes. The goal is sustained usefulness to maintainers—not contribution-count inflation.

View the live dashboard or inspect every claim in this repository.

90-day scorecard

Program window: 2026-07-23 through 2026-10-20 (90 days). Outcome metrics include only new work from the program start; the authored-PR cap spans all active external work.

Outcome Current Target Progress
Merged external pull requests 8 24 33%
Landing rate for decided PRs 89% 70% Target met
External pull requests reviewed 30 12 Target met
Simultaneous open authored PRs 2 ≤ 4 Within cap

Authored external PRs opened in this window: 12. Administrative gates excluded from landing-rate decisions: 2.

Fresh unsolicited review cadence: eligible under the automated guardrail (rolling 24-hour cap: 2; minimum spacing: 4 hours). Requested follow-ups remain evidence-driven and exempt.

Tracked portfolio

Contribution Role Stage Verification signals Next action
prometheus/alertmanager#5402
victorops: use Splunk On-Call branding
author Merged 1 active change request · 1 response · 7 checks passed Head 8a859d71 addresses SoloJacobs' exact-head review: validation errors and unrelated wording changes were reverted, the compatibility note now covers metrics, logs, traces, and errors, and the release-process changelog entry was removed. Both official Splunk documentation links returned HTTP 200. Exact-head race tests pass for config and notify/victorops; wait for hosted workflow authorization and maintainer re-review without another ping.
prometheus-community/postgres_exporter#1351
fix: preserve precision for large counters
author Merged 15 non-failing checks (13 passed, 2 skipped) Merged into upstream master as 31385354 at 2026-08-24T16:26:35Z after maintainer approval, 13 successful reporting checks, DCO, and two expected publish-job skips. The merge commit is verified reachable from live origin/master and contains both the upgrade warning and exact regression case. No follow-up comment is needed.
PrefectHQ/fastmcp#4625
fix: use Python field name for structured task results
author Closed 10 non-failing checks (9 passed, 1 skipped) · expected CI gate Issue #4616 was closed by merged maintainer PR #4657; this administrative pull request remains closed. No follow-up is needed.
open-telemetry/otel-arrow#3572
fix(filter): reject unknown config fields
author Closed 78 non-failing checks (73 passed, 5 skipped) · expected CI gate Link and verify gnani.nutakki@gmail.com on GitHub, then complete EasyCLA; the PR is ready and twice approved with 73 passing and 5 skipped technical checks, but currently has no assignee. Do not post another routing comment before the legal gate is green.
envoyproxy/gateway#9574
docs: explain backend protocol selection
author Closed 28 non-failing checks (14 passed, 11 skipped, 3 neutral) Ready on unchanged head 12202063 after all 28 checks completed non-failing and Codex found no major issues. GitHub denied the fork author's Copilot review request for lack of repository permission; wait for human review or a concrete request without pinging.
oam-dev/cluster-gateway#171
fix(proxy): enforce managed credential precedence
author PR open 8 checks passed · base advanced (update optional) All eight checks pass and no review thread or maintainer reply is outstanding; wait without pinging.
NousResearch/hermes-agent#10824
fix(installer): reuse existing newer Python before downloading 3.11
author Maintainer response 1 response · 35 non-failing checks (23 passed, 11 skipped, 1 neutral) Head 3ee7c709 is rebased onto upstream main a0795acc and updates both POSIX and PowerShell installers to reuse supported Python >=3.11,<3.14 before downloading 3.11. Exact-base negative controls fail; 91 focused local tests pass with one skip, and all 35 hosted checks are non-failing (23 passed, 11 skipped, 1 neutral), including Windows-only, PowerShell installer, both Docker architectures, Nix, supply-chain, and the final required-check gate. GitHub reports CLEAN and MERGEABLE with no unresolved thread or maintainer reply; wait for review without pinging. The external authored-PR portfolio remains 5/4, so do not publish another PR.
NousResearch/hermes-agent#10828
fix(runtime): auto-upgrade GPT-5 named custom providers to codex_responses
author Closed No checks reported Closed after confirming model-only Responses inference conflicts with the current custom-provider compatibility policy; no follow-up is needed.
NousResearch/hermes-agent#10852
fix(gateway): keep auto vision preprocess concise
author Closed 38 non-failing checks (26 passed, 11 skipped, 1 neutral) PR #10852 closed unmerged after collaborator @kshitijk4poor salvaged the concise-prompt change through merged PR #81269. Default-branch commit e6b16885 preserves Gnani's authorship and all required Python, lint, attribution, supply-chain, and amd64/arm64 Docker checks passed. The maintainer intentionally omitted the token-cap plumbing to match project policy; the appreciative explanation asks no question, so no reply or follow-up is needed.
prometheus-operator/prometheus-operator#8695
alertmanager: preserve top-level event_recorder configuration
reviewer Review submitted 22 non-failing checks (21 passed, 1 skipped) Watch the unresolved TLS compatibility finding and respond if the author follows up.
prometheus/client_golang#2062
api: return HTTP status on non-JSON API error bodies
reviewer Response available 1 response · 15 non-failing checks (14 passed, 1 skipped) Watch the valid-JSON error-envelope finding and re-review if the author updates the pull request.
helm/helm#32339
fix(scripts): add cache-busting to Helm version checks
reviewer Review landed 7 checks passed Merged on exact reviewed head bc0114c at 2026-07-28T21:30:38Z after seven passing checks. A maintainer noted a possible dev-v3 backport but did not request action from this reviewer; do not reply or open follow-up work while over cap.
openai/openai-agents-python#3933
fix: enforce realtime text guardrails and synchronize streaming cancellation
reviewer Review complete 10 non-failing checks (9 passed, 1 skipped) Closed unmerged on 2026-08-02. The maintainer's request to stop posting general comments and identify only specific points is acknowledged; no reply or follow-up is warranted.
google/adk-python#6459
fix: route MCP calls to the .mtls.googleapis.com endpoint for Agent Identity
reviewer Review complete 23 non-failing checks (19 passed, 4 skipped) · expected CI gate Closed unmerged after a maintainer confirmed the endpoint rewrite already occurs in _get_connection_uri(). The explanation is specific and requires no reviewer reply or replacement pull request.
google/adk-python#6460
fix(litellm): strip embedded thought_signature from tool call id
reviewer Review update available 6 non-failing checks (2 passed, 4 skipped) · expected CI gate · 1 failing Head 7c6904ab still has the unresolved empty embedded-signature ID finding; the failing agent-triage run is an unrelated Gemini 503 and CLA remains the expected gate. Do not duplicate the inline finding; re-review only after a substantive author update.
pydantic/pydantic-ai#6706
Validate native tool IDs per capability layer
reviewer Review update available 63 non-failing checks (50 passed, 11 skipped, 2 neutral) Exact head af25baf matches issue #6705's narrow validation-layer contract: each resolved top-level run capability is validated separately, while conflicting native tools returned by one capability remain an error. All 17 native-tool tests pass, Ruff check and format are clean, Pyright reports zero issues, and all 63 hosted checks are non-failing. A prior proof-backed follow-up returned 'User is blocked'; do not retry through another channel unless access changes or a maintainer contacts us.
microsoft/agent-framework#7292
Python: [Feature]: Support OpenAI instructions in Responses API
reviewer Review landed 37 non-failing checks (23 passed, 14 skipped) Merged on head 8a6a52c9 after two maintainer approvals and 37 non-failing checks (23 passed, 14 skipped); no follow-up required.
microsoft/autogen#7994
fix(autogen-ext): skip LangChain callback-manager (run_manager) when inferring tool args schema
reviewer Review submitted 2 checks passed · workflow approval needed Answered the author's concrete re-review question at issuecomment-5173162647: head 7b5e64de is unchanged from the independently tested and approved commit, so the existing approval still applies. Wait for maintainer workflow approval or a substantive new head.
crewAIInc/crewAI#6625
fix(reasoning): use flexible regex to detect READY state to prevent agent deadlocks
reviewer Review complete 2 checks passed · 1 failing Watch the semantic readiness-marker finding and re-review after the author updates head d2c0b593.
huggingface/smolagents#2565
fix: filter TOOL_CALL and TOOL_RESPONSE messages from managed-agent summary
reviewer Review submitted workflow approval needed Approved exact head 2d0a0317 after the author removed ActionStep serialization from managed summaries: raw tool arguments, observations, and images are never accessed, an adversarial raising-object probe passed, all eight focused regressions pass, and make quality is clean. The author's 2026-08-16 maintainer-directed merge request cites this approval but asks no question and follows no head change; it was inspected and acknowledged without a reviewer reply. Hosted workflows still await repository authorization; wait for maintainer action or another substantive head.
huggingface/smolagents#2618
fix(executor): reject host-triggered dunder methods
reviewer Review submitted 2 failing Requested changes on exact head 523434df after reproducing a class-body ast.Attribute bypass: indirect target.del assignment installs the forbidden lifecycle hook, and host gc.collect() fires it after LocalPythonExecutor has returned. All six added regressions and the full executor test file (403 passed, 2 skipped) pass, proving a missing target-shape regression rather than a generally failing branch. Wait for a substantive author update; re-review only after both Assign and AnnAssign attribute targets are blocked with host-GC coverage.
strands-agents/harness-sdk#3448
feat(graph): add Python concurrency limit
reviewer Review update available 1 response · 7 non-failing checks (6 passed, 1 skipped) · 5 pending · workflow approval needed Requested changes on exact head 14f0b335 after the real batch scheduler reproduced the remaining session-resume ordering bug 3/3 times: a non-suspending first entry point serialized its sibling as PENDING with frontier [right, join], and restore silently ran join twice while returning COMPLETED. Moving the EXECUTING transition before task creation passed the same control 3/3 with frontier [right] and one join call. The complete graph module passes 100 tests and Ruff plus targeted mypy are clean, proving the current sleep-based assertion misses this boundary. Wait for a substantive author update with end-to-end serialize/deserialize coverage before re-reviewing.
openai/openai-python#3538
fix(streaming): return final response for incomplete and failed events
reviewer Review submitted No checks reported The incomplete/failed structured-output fix is verified on head e896c03a; wait for maintainer review or another head update.
langchain-ai/deepagents#5026
fix(sdk): make BackendProtocol.glob recursive for bare patterns
reviewer Review landed 91 non-failing checks (86 passed, 5 skipped) Head f12a2ed only merges current main into the branch; no author response or substantive fix followed, and the existing {{a,b}}.py backend disagreement plus Windows path-normalization failure remain. The prior proof-backed COMMENT review still applies, so do not re-review until a substantive fix or concrete author question arrives.
sgl-project/sglang#32344
[Bugfix] Emit cached token metric before first cache hit
reviewer Review submitted 85 non-failing checks (6 passed, 79 skipped) · expected CI gate Watch the PromQL label-set mismatch finding on head 94b638a4; re-review after the metric schema or query and regression coverage are corrected.
browser-use/browser-use#5300
Call the model with minimal state after capture timeout
reviewer Review landed 96 non-failing checks (94 passed, 2 skipped) Watch for author or maintainer follow-up and re-review only if the head changes or a concrete timeout-safety question is raised.
modelcontextprotocol/typescript-sdk#2544
Fix tests timing out during interactive OAuth flow (#2510)
reviewer Review submitted 10 non-failing checks (9 passed, 1 skipped) · 7 failing Re-reviewed exact head 4dbb8a03. The successful REDIRECT path works and 81 focused tests pass, but an error-shaped OAuth callback rejects finishAuth while leaving the triggering request pending until close(); five required checks are also branch-caused. GitHub denied a formal changes-requested review without explicit access, so a proof-backed COMMENT review was submitted and the original P1 thread remains unresolved. Re-review only after failure-path settlement and CI fixes.
confident-ai/deepeval#2950
fix(openai): apply prompt-caching discount to GPTModel cost calculation
reviewer Review submitted 12 checks passed · expected CI gate · 2 failing Re-tested exact head a2758d42 and replied in the existing unresolved thread. Standard cached rates are fixed, but fully cached 300K-token GPT-5.4 input returns $0.075 instead of the documented $0.15 because the >272K long-context multiplier is absent; the same reproduces on current main and 52 affected tests pass without a boundary regression. Wait for a substantive fix; lint is current-main drift and Vercel needs team authorization.
traceloop/openllmetry#4375
fix(cohere): avoid double-ending async error spans
reviewer Review submitted 3 checks passed Watch the duplicate exception-event finding on head 9c303fd1; re-review after one layer owns exception recording and the regression asserts exact cardinality.
Arize-ai/openinference#3429
fix(anthropic): preserve APIPromise helpers
reviewer Review landed 23 non-failing checks (14 passed, 9 skipped) Merged on 2026-08-06 at default-branch commit 7ea68f72 after the consumed asResponse body finding was fixed and re-approved with all hosted checks non-failing. No reply or follow-up is needed.
AgentOps-AI/agentops#1428
fix(langchain): capture structured output tool calls
reviewer Review submitted 1 check passed Structured-output capture is reproduced and approved on head 85f6896; wait for maintainer review, CI authorization, or a new head.
agno-agi/agno#9174
refactor: cache the pydantic version across tool wrappers
reviewer Review complete 7 non-failing checks (5 passed, 2 skipped) · 7 failing Closed as superseded after #9210 landed the same cache on main. The author acknowledged the independent validation and asked no question; no reply or re-review is warranted.
omnigent-ai/omnigent#3304
fix(accounts): enforce the last-admin invariant atomically on delete
reviewer Review landed 68 non-failing checks (60 passed, 8 skipped) Merged on exact reviewed head bb2ca4c at 2026-07-29T00:07:09Z after maintainer approval and 68 non-failing checks (60 passed, 8 skipped). The approval thanked the contributor but asked no question; no reply is warranted.
opensquilla/opensquilla#815
fix(engine): evict cache-break monitor state for terminal sessions
reviewer Review landed 27 non-failing checks (22 passed, 5 skipped) Merged on 2026-08-06 at default-branch commit 0acd578e after the cache-break fix was re-approved with 19 focused tests, Ruff, mypy, and all hosted checks non-failing. No reply or follow-up is needed.
agentscope-ai/agentscope#1874
fix(embedding): omit default OpenAI dimensions
reviewer Review submitted 6 checks passed Approved exact head de155d7e after both P2 findings were fixed: explicit pass_dimensions precedence is preserved and genuine multi-type anyOf schemas remain intact. Twelve focused tests, the 33-test provider slice, all file-scoped hooks, and all six hosted checks pass. Wait for maintainer action or another substantive head.
tma1-ai/tma1#73
chore(deps): Bump sharp and astro in /site
reviewer Review landed 1 check passed Exact head afa47ab builds on Node 22.12.0 and preserves the three localized page contracts, but the lockfile still installs sharp 0.34.5 and leaves GHSA-f88m-g3jw-g9cj present. One file-level finding is open; wait for a head update or concrete reply without duplicating it.
kserve/kserve#5917
fix: select compatible LocalModelNodeGroup instead of blindly picking [0]
reviewer Review update available 6 non-failing checks (5 passed, 1 skipped) · workflow approval needed Re-reviewed exact head 4c1d4529 after the RBAC and generated-manifest update: controller-gen, Helm, Kustomize, all 12 quick-install outputs, 21 validators, race tests, compile/vet, chart lint, and diff checks pass. GitHub denied a formal approval because the account lacks explicit repository access, so a proof-backed COMMENT review was submitted; wait for maintainers to authorize the remaining action_required workflows.
Arize-ai/openinference#3545
fix(langchain): don't record exception events for control-flow signals
reviewer Review submitted 22 non-failing checks (17 passed, 5 skipped) · 1 failing Requested changes on exact head 1f79ad89 after reproducing telemetry loss for unrelated Command, ParentCommand, and GraphInterrupt exception classes across chain, LLM, retriever, and tool callbacks (12/12): every span was marked OK with no exception event. Ruff, Mypy, and all 237 LangChain tests pass, confirming a missing provenance regression rather than a generally failing branch. Wait for a substantive author update and re-review only the changed head.
llm-d/llm-d-router#2310
fix(CrossReplicaSyncer): disentangle CrossReplicaSyncing interval from main ticket in PoolingDispatcher
reviewer Review landed 39 non-failing checks (35 passed, 4 skipped) Requested changes on exact head f41e21d6 after two independent lifecycle regressions were reproduced. File-discovery mode calls Configure without Runtime.Start, so the moved cross-replica loop never launches; a base/head differential with one real polling source failed only on the PR head. A deterministic blocking-syncer race test also proved ReleaseEndpoint can complete Delete before an in-flight Set recreates the removed endpoint state (delete then set, final state present), and simply reordering removal and deletion is insufficient. Collaborator @ahg-g endorsed the startup finding with '+1; pls address' to the PR author on 2026-08-19; the reply was acknowledged without adding another comment. Wait for an author fix or changed head, then re-review only after both startup and final-deletion contracts have regression coverage.
oam-dev/cluster-gateway#170
Security: managed credential must override inbound Authorization on proxy requests
author Issue open unassigned The linked implementation PR is green; wait for maintainer review without a status ping.
CaviraOSS/OpenMemory#186
delete_all removes DB rows but not the in-process hsg query cache — deleted memories remain retrievable for the process lifetime
author Assigned elsewhere assigned to @nullure Resolved upstream by merged competing PR #190, which added cache clearing directly. The issue remains open and assigned elsewhere, but no implementation or reply is owed from this contributor.
plastic-labs/honcho#790
Deleted workspace's search results keep being served from the redis cache until TTL; recreating the same workspace id resurrects them
author Assigned elsewhere assigned to @akattelu No maintainer reply or assignment has landed; preserve the report and do not ping.
shaneholloman/mcp-knowledge-graph#22
Memories silently written to a global shared store when cwd lacks project markers — cross-project contamination by default; --memory-path ignored
author Issue open unassigned No maintainer reply or assignment has landed; preserve the report and do not ping.
akuity/kargo#6685
Webhooks server (kubernetes-webhooks-server) is missing probe support that all other servers have
assignee Assigned assigned to @gnanirahulnutakki A private, uncommitted implementation is requalified on exact upstream main 5e90b3f with stable patch ID 6cc0f513 and unchanged focused-test SHA-256 87e17fa1. Focused race, vet, golangci-lint v2.10.1, all 48 chart suites and 158 tests, chart lint, generated docs, and diff checks pass. A fresh Kind v1.34 run using exact image sha256:be6c4ffc included the new PromotionRequest CRD/webhook: health and readiness returned HTTP 200, the pod was Ready with zero restarts, least-privilege cache RBAC held, and all 13 rolling-restart samples retained a ready endpoint. Keep it unpublished at 5/4; publish only when the live pre-publication count is 3 or fewer, after rechecking assignment, competitors, current main, policy, and focused gates.
ome-projects/ome#627
[BUG] BestFit accelerator policy without constraints causes controller panic
candidate Issue open unassigned A private two-file BestFit fix is requalified on exact upstream main 5e4857e. Current-main negative control reproduces the nil-pointer panic when optional constraints are omitted; normalizing nil constraints at the scoring boundary makes omitted and empty constraints equivalent. The full selector package, 20 repeated regressions, vet, targeted race, and diff checks pass. Repository generation and manifests pass, but the broad no-Xet command group remains blocked by current-main linker flags requiring absent libxet, so do not claim a green full-repository gate. Keep it unpublished at 5/4; when the live pre-publication count is 3 or fewer, recheck issue ownership, competitors, current main, policy, README, and supported validation before one DCO-signed PR.
NVIDIA/aicr#2144
check-docs-mdx: close residual CommonMark gaps and duplicate diagnostics
candidate Issue closed assigned to @varmesh Retire this candidate: draft PR #2329 by @varmesh now implements and closes #2144 with the same remaining CommonMark fence scope. Preserve the private proof only as local evidence; do not publish, review, or comment unless a maintainer makes a concrete request.
warpdotdev/warp#8759
OAuth Support for ChatGPT Plus/Pro (Bypass BYOK API Costs)
participant Issue closed 1 response · unassigned Wait for a Warp maintainer to answer the client-side Codex app-server architecture and ready-to-spec question. The 2026-08-13 reply from unaffiliated participant @okocsis recommends an alternative WarpOss build but cannot make the requested repository architecture decision, so it is acknowledged without a reply. Do not prepare a spec, implementation, or follow-up ping unless a maintainer accepts the boundary or asks a concrete question.
kagent-dev/kagent#2303
A2A: report turn-total token usage on the terminal status update
participant Issue closed unassigned Issue author @QuentinBisson opened the exact implementation as draft PR #2332 on 2026-07-25; do not implement, claim, review, or comment. Remove this lane from the candidate queue unless a maintainer makes a concrete request.
PrefectHQ/fastmcp#2879
Background job does not produce valid CreateTaskResult
participant Issue open unassigned No author or maintainer reply followed the prior technical comment; retain as a watch-only legacy lane.
argoproj/argo-cd#21059
CLI: add possibility to diff the desired state instead of the live state
participant Issue open unassigned Maintainer PR #27469 implements this lane. Its current head has older approvals and green completed checks but is now dirty and review-required; preserve the prior report, do not compete, and do not comment unless a maintainer asks a concrete question.
argoproj/argo-cd#12273
Rework Credentials template url layout in Settings: Repositories
participant Issue open unassigned Our implementation PR #27415 was self-closed and later competing attempts also closed. Keep this as watch-only legacy context; do not revive it without fresh maintainer intent and current reproduction.
NousResearch/hermes-agent#10695
Python dependency CVEs: aiohttp, cryptography, curl-cffi need minimum version bumps
participant Issue closed unassigned Closed after alternative PR #26830 merged. The maintainer explicitly credited this contributor's audit; no reply or replacement work is needed.
meshery/meshery#18739
[UI] Replace direct MUI imports in dashboard surfaces
assignee Issue closed assigned to @leecalcote, @gnanirahulnutakki Closed after maintainer PR #19306 merged and credited this contributor's initial PR #18770. No reply or competing implementation is needed.
akuity/kargo#6021
feat: add gitea label support
participant Issue closed assigned to @fuskovic Closed after maintainer PR #6262 merged; this contributor's earlier PR #6101 was self-closed. No follow-up is needed.
kitops-ml/kitops#1138
Set org.opencontainers.image.created annotation on ModelKit manifests
participant Issue closed unassigned Closed after competing PR #1139 merged on 2026-05-11; this contributor's PR #1164 must remain closed and no reply is needed.
MemoriLabs/Memori#590
Self-hosted (BYODB) usage: capture_agent_turn&#40;&#41; POSTs to the cloud API, and Memori&#40;conn=...&#41; never provisions the schema — both undocumented
author Issue closed unassigned Closed after the current-version clarification. The later DevRel Discord invitation contains no technical question, so no public reply or issue revival is warranted.
basicmachines-co/basic-memory#944
CLI write-note (and other tool subcommands) crash with &#x27;function&#x27; object has no attribute &#x27;fn&#x27; — no resolvable fastmcp version satisfies the 0.16.2 CLI bridge
author Issue closed unassigned Closed after the maintainer confirmed the behavior is fixed in current releases. Maintainer-authored issue #1181 later cross-referenced #944 only as an older resolved FastMCP 2.x/3.x pin issue that does not overlap the FastMCP 4 beta port; the non-actionable reference is acknowledged and requires no reply or revival.
kagent-dev/kagent#1037
feat: add support for Docker images and kmcp projects for local dev
participant Issue closed unassigned Closed by the stale bot on 2026-06-23 without a maintainer response. Do not revive the old claim without current reproduction and renewed maintainer intent.
letta-ai/letta#3364
BYOK OpenAI-compatible provider: handle is generated under openai-proxy/... but validated against the provider name → 400, or unhandled AssertionError → opaque 500
author Issue closed unassigned Automatically closed and locked for missing the repository's required human-verification and AI-policy template. Do not reopen or repost without a fresh reproduction and full policy compliance.

Last public state change recorded: 2026-10-08T20:01:21+00:00.

The scheduled job still checks daily. It commits only when these public facts change.

Operating principles

The complete daily loop and intake rules are in docs/CONTRIBUTION_PLAYBOOK.md.

How it works

data/contributions.json is the small, human-reviewed portfolio. A scheduled GitHub Actions workflow reads public GitHub API data, updates data/snapshot.json, and regenerates only the marked dashboard section above. It uses the repository’s short-lived GITHUB_TOKEN; no personal access token or third-party credential is required.

The refresh records exact heads, draft state, base-branch drift, and whether that drift requires action; detects active change requests on authored pull requests; and surfaces only direct human mentions, replies to the contributor’s own review threads, or trusted linked-issue responses after the contribution began. Base drift is bucketed instead of counted commit by commit, and optional drift is kept distinct from repository-enforced branch updates to avoid needless CI churn. Active legacy pull requests and issue discussions remain visible even when they predate the scorecard window. All open external authored pull requests count against the simultaneous-work cap; only outcome metrics stay window-bounded. The tracker also derives the next fresh-review eligibility boundary from first-submission timestamps while leaving explicitly requested follow-ups exempt. Bot-only pull-request timestamp churn is stabilized so it cannot create synthetic tracker commits. Human-reviewed, non-actionable response signals can be acknowledged per contribution without suppressing later activity. The tracker never posts upstream comments.

For snapshot compatibility, checks.passing keeps its original meaning: successful, skipped, and neutral checks. Consumers that need exact evidence should use checks.successful for successful checks and checks.non_failing for the explicit aggregate.

Reuse this tracker

This repository is designed to work as a GitHub template. Configuration lives in data/contributions.json; the update engine and workflows do not depend on the original repository owner.

Follow the setup guide to configure a reporting window, add reviewed contributions, enable the scheduled refresh, and verify that unchanged public state produces no synthetic commit.

Run it locally:

GITHUB_TOKEN="$(gh auth token)" python3 scripts/update_tracker.py
python3 -m unittest discover -s tests -v

Add a contribution

Add a public pull request or review entry to data/contributions.json, then run the updater and tests. The schema is deliberately plain JSON so every tracked claim remains easy to inspect and change.

License

MIT