Public record
Software health reportschema 0.26.0 · metrics 1.13.0 · 2026-07-22 05:55 UTC

software-mansion / rnrepo

A Repository for React Native Pre-Built Artifacts

TypeScript · Kotlin · AstroNo license detected★ 403 stars⑂ 12 forkssince Jun 2025View on GitHub ↗

software-mansion/rnrepo holds a health index of 62 out of 100, placing it in the Moderate band. It scores highest on Engineering Quality (76/100) and lowest on Security (42/100). It was last updated today. A single contributor accounts for most of its recent work.

62
overall / 100
Moderate

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

62
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

Software MansionOrganization
1,604 followers59 public repossince Oct 2019

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
npm@rnrepo/build-tools0.2.189,272114 days agococoapodsgradlereact-nativernrepoiosandroidpluginprebuildsxcframeworkaar
npm@rnrepo/expo-config-plugin0.3.586,944154 days agoreact-nativeexpoconfigpluginprebuildsrnrepo

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

56Moderate · 22% of overall
How it's scored
36/36Push recency — last push 0 days ago
27.7/36Commit cadence — 40/52 weeks with commits
18/18Commit volume — 342 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year342
human_commit_share0.92
days_since_last_push0
active_weeks_last_year40
How it's scored
0/27Ships releases — no releases published
0/36Release recency — no releases
0/27Release cadence — no releases
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count0
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

53Moderate · 18% of overall
How it's scored
42.2/60Stars — 403 stars
8.7/25Forks — 12 forks
0/15Watchers — 1 watchers
Inputs used
forks12
stars403
watchers1
growth_stateorganic
growth_factor_pct100
How it's scored
22.5/22.5README
0/22.5License — no license file detected
0/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseno
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateyes
How it's scored
69.9/80Monthly downloads — 176,216 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packages@rnrepo/build-tools, @rnrepo/expo-config-plugin
dependents
ecosystemsnpm
total_downloads
monthly_downloads176,216
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

75Good · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
6.4/22.5Commit distribution — top contributor authored 72% of commits
13.5/13.5Contributor breadth — 14 contributors
10/10OpenSSF Scorecard: Contributors — project has 7 contributing companies or organizations
Inputs used
bus_factor1
contributors_sampled14
top_contributor_share0.716
How it's scored
46.8/46.8Issue resolution — 100% of issues closed
35.3/38.3PR acceptance — 319/346 decided PRs merged
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Inputs used
merged_prs319
open_issues0
closed_issues64
issue_closed_ratio1
closed_unmerged_prs27
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
23/25Owner reach — 1,604 followers of software-mansion
24.9/25Track record — 59 public repos, account ~6 yr old
Inputs used
followers1,604
owner_typeOrganization
is_verified
owner_loginsoftware-mansion
public_repos59
account_age_days2,464
How it's scored
25/25Published & resolvable — 2 package(s) on npm
35/35Publish recency — latest publish 4 days ago
20/20Version history — 15 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packages@rnrepo/build-tools, @rnrepo/expo-config-plugin
ecosystemsnpm
any_deprecatedno
min_days_since_publish4

Engineering Quality

Are baseline engineering and documentation practices in place?

76Good · 20% of overall
How it's scored
24/24CI workflows — 14 workflow(s)
24/24Tests present
16/16Linter config — .eslintrc.js
0/9.6Pre-commit hooks
6.4/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
Inputs used
has_ciyes
has_testsyes
has_editorconfigyes
has_linter_configyes
has_precommit_configno

Documentation

55Moderate
How it's scored
30/30README
0/25Documentation directory
15/15Documentation / homepage site — http://rnrepo.org/
10/10Repository description
0/10Topics
0/10Wiki
Inputs used
topics
has_wikino
homepagehttp://rnrepo.org/
has_readmeyes
has_docs_dirno
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

42At risk · 16% of overall
How it's scored
6.8/7.5Binary-Artifacts — binaries present in source code
4.5/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
2.5/2.5Contributors — project has 7 contributing companies or organizations
0/10Dangerous-Workflow — dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
0/2.5License — license file not detected
7.5/7.5Maintained — 30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
4.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 9
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 100 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4.2
Excluded from scoring (no data or not applicable): signed_releases. Remaining weights renormalized.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score.

68Moderate · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 92 of 92 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
How it's scored
12.6/18One-command bootstrap — packages/build-tools/gradle-plugin/build.gradle (toolchain convention, no task runner)
22/22Automated tests
11/11Lint / format config — .eslintrc.js
11/11Static type checking — packages/expo-config-plugin/tsconfig.json, packages/website/tsconfig.json, tsconfig.json
0/10Reproducible environment
10/10Demonstrated agent practice — 13 of the last 100 commits agent-authored or agent-credited
0/8Automated maintenance — no automated dependency updates observed
9/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 9
Inputs used
has_nixno
has_testsyes
lockfiles
has_dockerfileno
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configyes
typecheck_configspackages/expo-config-plugin/tsconfig.json, packages/website/tsconfig.json, tsconfig.json
agent_commit_share0.13
toolchain_manifestspackages/build-tools/gradle-plugin/build.gradle
dependency_bot_commit_share0
How it's scored
45/45Type-checkable code — TypeScript (statically typed)
55/55Manageable file sizes — 0/60 source files over 60KB
Inputs used
primary_languageTypeScript
largest_source_bytes56,925
source_files_sampled60
oversized_source_files0

Key facts

403GitHub stars
14contributors
342commits, last 12 months
0days since last push
0releases
1bus factor
0open issues
npmpackage ecosystems

Data collection warnings

  • Could not fetch npm package '@rnrepo/builder' from its registry
  • Could not fetch npm package '@rnrepo/publisher' from its registry
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository
  • deps.dev does not index npm:@rnrepo/build-tools@0.2.1; advisories assessed against the repository dependency graph instead

More detail

Star and fork history 403 ★ / 12 ⇿
403Stars
12Forks

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

010020030040050040312822025-122026-032026-07
OpenSSF Scorecard 4.2 / 10
4.2aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-22 05:55 UTC

9Binary-Artifactsbinaries present in source code
6Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
10Contributorsproject has 7 contributing companies or organizations
0Dangerous-Workflowdangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
0Licenselicense file not detected
10Maintained30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
9Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 9
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities100 existing vulnerabilities detected
Direct dependencies 25
RegistryPackageVersion constraintManifest
npmcommander^13.1.0package.json
npmsemver^7.7.4package.json
npmzx^8.6.0package.json
npmcommander^13.1.0packages/builder/package.json
npm@rnrepo/configworkspace:*packages/builder/package.json
npmzx^8.6.0packages/builder/package.json
npm@rnrepo/configworkspace:*packages/database/package.json
npm@supabase/supabase-js^2.47.0packages/database/package.json
npm@expo/config-plugins*packages/expo-config-plugin/package.json
npm@expo/config-types*packages/expo-config-plugin/package.json
npm@rnrepo/build-tools0.2.1packages/expo-config-plugin/package.json
npm@octokit/rest^22.0.0packages/publisher/package.json
npm@rnrepo/configworkspace:*packages/publisher/package.json
npm@rnrepo/databaseworkspace:*packages/publisher/package.json
npmcommander^13.1.0packages/publisher/package.json
npmzx^8.6.0packages/publisher/package.json
npm@octokit/plugin-paginate-rest^14.0.0packages/scheduler/package.json
npm@octokit/rest^22.0.0packages/scheduler/package.json
npm@rnrepo/configworkspace:*packages/scheduler/package.json
npm@rnrepo/databaseworkspace:*packages/scheduler/package.json
npmsemver^7.7.3packages/scheduler/package.json
npmastro^4.16.6packages/website/package.json
npmlucide-astro^0.555.0packages/website/package.json
npmshiki^3.17.1packages/website/package.json
npm@rnrepo/databaseworkspace:*packages/website/package.json
All dependencies not collected

The resolved dependency set could not be collected for this report: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 6169,
      "has_wiki": false,
      "homepage": "http://rnrepo.org/",
      "languages": {
        "CSS": 245,
        "Ruby": 38224,
        "Astro": 91994,
        "Kotlin": 97031,
        "PLpgSQL": 4659,
        "JavaScript": 2146,
        "TypeScript": 182923
      },
      "pushed_at": "2026-07-21T10:58:17Z",
      "created_at": "2025-06-06T14:38:35Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-21T12:45:11Z",
      "description": "A Repository for React Native Pre-Built Artifacts",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": null,
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript",
        "Kotlin",
        "Astro"
      ]
    },
    "owner": {
      "blog": "https://swmansion.com",
      "name": "Software Mansion",
      "type": "Organization",
      "login": "software-mansion",
      "company": null,
      "location": "Kraków, Poland",
      "followers": 1604,
      "avatar_url": "https://avatars.githubusercontent.com/u/56880679?v=4",
      "created_at": "2019-10-22T13:58:01Z",
      "is_verified": null,
      "public_repos": 59,
      "account_age_days": 2464
    },
    "license": {
      "state": "absent",
      "spdx_id": null,
      "raw_spdx": null,
      "file_present": false,
      "scorecard_found": false,
      "profile_has_license": false
    },
    "activity": {
      "releases": [],
      "recent_commits": [
        {
          "oid": "d4af2edf88e5932f53d8ad4f64db5386dbe1091d",
          "body": "## 📝 Description\n\nDue to failing jobs:\n-\nhttps://github.com/software-mansion/rnrepo/actions/runs/29537171571/job/87751132245",
          "is_bot": false,
          "headline": "update npm version to 24 (#417)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-17T09:00:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6a8f8bb5382672a69457bdf43fed30ff1f72350a",
          "body": "## 📝 Description\n\n- @rnrepo/build-tools@0.2.1\n- @rnrepo/expo-config-plugin@0.3.5\n\n> Note changelog for @rn/bt will be added after merging entry from #415",
          "is_bot": false,
          "headline": "release 0.2.1 and 0.3.5 (#416)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-16T21:44:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c241fa195e88836c08d5b32f8fe7be69eb84ca76",
          "body": "## 📝 Description\n\nnew reanimated versions, remove unnecessary patch version in\nlibraries.json\n\n-\nhttps://docs.swmansion.com/react-native-worklets/docs/guides/compatibility\n-\nhttps://docs.swmansion.com/react-native-reanimated/docs/guides/compatibility/\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Update reanimated and worklets compatibility (#414)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-16T21:40:22Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "78649d112259cb9d9d60fd4056a5319c98590e3a",
          "body": "## 📝 Description\n\nIt was set as found after first try, not after a successful try",
          "is_bot": false,
          "headline": "Set RN version as found only when it was found (#415)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-16T21:38:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f597517072a2a8c4fedd44d32183a9e1c71ef872",
          "body": "## 📝 Description\n\nFixes #412",
          "is_bot": false,
          "headline": "Update fingerprint pattern in docs (#413)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-15T09:21:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e0bb28c17eb18800b950cb68c1fb6e762772b12",
          "body": "## 📝 Description\n\navoid failures like:\n```\nShellError: Failed with exit code 1\n exitCode: 1,\n   stdout: \"\",\n   stderr: \"npm error code ETARGET\\nnpm error notarget No matching version found for react-native-worklets@0.10.2 with a date before 7/5/2026, 12:20:15 PM.\\nnpm error notarget In most cases yo\n[…]\ngs/2026-07-09T12_20_15_394Z-debug-0.log\\n\",\n```\n> rnworklets were released 12h ago, so 4days-min-age failed\n\nsource:\nhttps://github.com/software-mansion/rnrepo/actions/runs/29012220481/job/86098364112",
          "is_bot": false,
          "headline": "dont schedule libs newer than min-release-age (#410)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-10T10:09:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8ce37a77a76f6a92e4f1b09d296f3793e33d9445",
          "body": "## 📝 Description\n\nChange image source to local file in README - updated image in #403",
          "is_bot": false,
          "headline": "Change image source to local file in README (#411)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-10T09:30:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9cac889292360cf92a0ad39b02d9a3cf944cd2c",
          "body": "## 📝 Description\n\nThis reverts commit 4bf26c483f99bcdf9279c28a0ca0f9632f2a3c9d.\n\nreverts #405\n\nversions used from:\nhttps://www.npmjs.com/package/react-native-screens#:~:text=x%20branch.-,Support%20for%20Fabric,-Fabric%20is%20React",
          "is_bot": false,
          "headline": "Revert \"disable building screens until merging the fix (#405)\" (#407)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-09T11:52:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "868b9e09e3fd367c75387c4313e8df33fcc6069b",
          "body": "## 📝 Description\n\ncircular dependency in android with `evaluationDependsOn(':app')` also\nremoving the artifacts\n\nFixes #408",
          "is_bot": false,
          "headline": "remove @notifee/react-native (#409)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-09T10:35:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4bf26c483f99bcdf9279c28a0ca0f9632f2a3c9d",
          "body": "## 📝 Description\n\n- issue in https://github.com/software-mansion/rnrepo/issues/376\n- Fix in\nhttps://github.com/software-mansion/react-native-screens/pull/4224\n\nRevert of this commit in\nhttps://github.com/software-mansion/rnrepo/pull/406",
          "is_bot": false,
          "headline": "disable building screens until merging the fix (#405)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-06T13:41:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dfab364117d16dfbf9f90f783dfe5146a24ffbd9",
          "body": "## 📝 Description\n\nremove beta label from readme png",
          "is_bot": false,
          "headline": "remove beta label from readme png (#403)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-06T13:41:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "01adc86bfbcb631f100ea53bca778b399d5dd9fe",
          "body": "## 📝 Description\n\nremove rn <0.81 since codegen builds will fail for those\n\n## 🧪 Testing\n\npatch is successfully applied for all react-native@>=0.81 versions.\n```\n PATCH COMPATIBILITY RESULTS\nRN VERSION    RESULT\n──────────────────────────────────\n0.77.3        ✗ patch mismatch\n0.78.3        ✗ patch \n[…]\natch\n0.81.0        ✓\n0.81.1        ✓\n0.81.4        ✓\n0.81.5        ✓\n0.81.6        ✓\n0.82.0        ✓\n0.82.1        ✓\n0.83.0        ✓\n0.83.1        ✓\n0.83.2        ✓\n0.83.4        ✓\n0.84.0        ✓\n```",
          "is_bot": false,
          "headline": "remove non-codegen RN versions: <0.81  (#402)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-06T13:41:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cb7dee19b9ce3ccd0204e68ca7c504227f9d38b2",
          "body": "## 📝 Description\n\nMinor to 0.2.0 since this introduces the codegen usage for android\npackages\n- @rnrepo/expo-config-plugin@0.3.4\n- @rnrepo/build-tools@0.2.0",
          "is_bot": false,
          "headline": "bump versions before release (#400)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-03T13:46:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f0ca2174b9616a02a19de29427e02cbec95a7a3",
          "body": "## 📝 Description\n\nWhen 2 labels were added at same time ci ignored one of them because of\nonly last even was processed so only one platform was launched.\n```\n... contains(fromJSON('[\"build-ios\", \"build-expo\"]'), github.event.label.name)). \n                                                            \n[…]\ngithub.event.label.name` was kept in checker job to avoid triggering\nbuilds when other label is added, like \"bug\" etc\n\nLogic stays the same and changes are only for pr checks for dev, not\nuser-facing.",
          "is_bot": false,
          "headline": "fix ci example builds when 2 labels are added at the same time (#401)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-03T12:44:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c141d21b1cfa6e6b25518804417ecb7e0ca5a942",
          "body": "## 📝 Description\n\n~~180 builds will be scheduled~~\n\nWAIT UNTIL RNAA migrate to worklets stable api to schedule the builds\nI have released one version to maven with request of specific\nRN+RNWorklets+RNAA so i want to keep the plugins compatible with that\nversion\n\nchanges:\n- integration with worklets \n[…]\n\n\n- tested app on ios/android and worked with \n  - rn@0.85.3\n  - rnaa@0.12.2\n  - with expo@56\n  - worklets@0.9.1 (from sources) and from prebuild\n  - examples from docs (with worklets and without too)",
          "is_bot": false,
          "headline": "support react-native-audio-api in plugins (#399)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-03T12:34:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7fdaeeb56f71b013f715769b9ca8d9a2a80f54d3",
          "body": "## 📝 Description\n\nexpo@+55/56 enables gamma, so we need to build that too",
          "is_bot": false,
          "headline": "build react-native-screens with gamma=true (#398)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-07-03T12:32:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33b58954a36d8db734db2fdda7482b89c46aee96",
          "body": "## 📝 Description\n\nPR adding codegen artifacts (static libs and headers) as parts of\nlibrary `.aar` and implementing:\n- packing all of it to `.aar`\n- unpacking them in client project\n- linking them instead of building them from source by:\n- removing library occurences from `Android-autolinking.cmake`\n[…]\n.81.6        ✓\n0.82.0        ✓\n0.82.1        ✓\n0.83.0        ✓\n0.83.1        ✓\n0.83.2        ✓\n0.83.4        ✓\n0.84.0        ✓\n```\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
          "is_bot": false,
          "headline": "feat: codegen in android packages (#206)",
          "author_name": "Wojciech Lewicki",
          "author_login": "WoLewicki",
          "committed_at": "2026-06-30T14:14:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8481b5645d9aa337c54abfa54ba4b1c045d73096",
          "body": "## 📝 Description\n\nSome rows show no versions supported due to selector bug\n\n## 🧪 Testing\n\nastro build with DB auth for fetching data, before:\n<img width=\"735\" height=\"605\" alt=\"Zrzut ekranu 2026-06-26 o 17 39 43\"\nsrc=\"https://github.com/user-attachments/assets/497599ad-21d9-4474-b717-1a30d2ad7a88\"\n/>\n\nafter there are libs listed",
          "is_bot": false,
          "headline": "fix missing/empty rows in supportedLibraries (#397)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-29T09:36:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74969b682436c692f7dbd3b80ab2637dba2f3b5b",
          "body": "## 📝 Description\n\nUpgrade Xcode if needed: Xcode 26.4 is required to compile a native iOS\nproject. For EAS Build and Workflows, profiles without any specified\nimage will default to Xcode 26.4.\n- source: https://expo.dev/changelog/sdk-56#tool-version-bumps\n- failed build:\nhttps://github.com/software-\n[…]\nm taking\nthe latest 26.3, which also fixes the issue\n\n## 🧪 Testing\n\n- failed build:\nhttps://github.com/software-mansion/rnrepo/actions/runs/28091482981/job/83170331566\n- passed build on this pr checks",
          "is_bot": false,
          "headline": "bump xcode 26.1 -> 26.3 (#395)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-24T11:01:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "09ddd4df4adaa282ad9a7fffcc91694ae42f9383",
          "body": "## 📝 Description\n\nNo more build floods should appear, so no need to use extra runners\n\nintroduced in #291",
          "is_bot": false,
          "headline": "Return to GH macOS runners (#394)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-24T10:15:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f50e949e247a339cbb43ddad0f962666c13673c",
          "body": "## 📝 Description\n\nbump versions before release\n- @rnrepo/build-tools@0.1.6\n- @rnrepo/expo-config-plugin@0.3.3",
          "is_bot": false,
          "headline": "bump versions before release (#386)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-23T13:51:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e0bdb07f5ba485bf9dd668f932684e3d4a2a4881",
          "body": "## 📝 Description\n\nAdding `allowList` support to both the Android Gradle plugin and iOS\nCocoaPods plugin as a complement to the existing `denyList`.\n\nWhen a project has many dependencies but only wants a subset prebuilt,\n`denyList` required listing every excluded package manually. The new\n`allowList`\n[…]\nError - RNRepo: Both 'denyList' and 'allowList' are configured\nfor iOS in rnrepo.config.json. Please use only one of them.\n    ```\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
          "is_bot": false,
          "headline": "feat: add allowList support for iOS and Android (#383)",
          "author_name": "lxr-mwhite",
          "author_login": "lxr-mwhite",
          "committed_at": "2026-06-23T13:45:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8f67ec83b4dd6fd1c0e6178065dc7bdad1606ff8",
          "body": "… (#393)\n\n## 📝 Description\n\nWith removed metadata the top-level functions will not be resolved when\naar is consumed.\n- Top-level functions in nitro-modules that caused error:\n-\nhttps://github.com/mrousavy/nitro/blob/main/packages/react-native-nitro-modules/android/src/main/java/com/margelo/nitro/cor\n[…]\npo-modules-core@56.0.17\n      - ❓ @expo/log-box@56.0.13\n      - ❓ expo-constants@56.0.18\n      - ❓ expo@56.0.12\n      - ❓ react-native-reanimated@4.3.1\n      - ❓ react-native-nitro-image@0.15.1\n   ```",
          "is_bot": false,
          "headline": "Dont remove `META-INF/` and `*.kotlin_module` files when building AAR…",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-23T13:36:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d5f6b11e666fe028d8f0686b71e8c137f1dcd1eb",
          "body": "## 📝 Description\n\nAdded support for:\n- react-native-quick-crypto\n-\nhttps://www.npmjs.com/package/react-native-quick-crypto?activeTab=versions\n  - only for <1.0.0 since later versions uses nitro\n  - #382\n- @sentry/react-native\n- https://www.npmjs.com/package/@sentry/react-native?activeTab=versions\n  \n[…]\nvents@2.2.0\n  - ```\n✅ Successfully built AAR for react-native-calendar-events@2.2.0 with RN\n0.85.0\n✅ Successfully built static XCFramework for\nreact-native-calendar-events@2.2.0 with RN 0.85.0\n    ```",
          "is_bot": false,
          "headline": "Support new libs (#388)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-23T11:05:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bea61a6ff071532f2f27355cca4c3502c9e7aecf",
          "body": "## 📝 Description\n\nAllow libs with license format `(<l1> AND <l2>)` to be builded (mmkv had\nthat case)\n- checks license field in package.json (like previously)\n- if grep (<l1> AND <l2>)\n  - checks if both licenses are supported\n    - it true, then builds and adds to .pom file both licenses \n\nI haven'\n[…]\nBSD-3-Clause-Clear, BSD-2-Clause. You can configure a custom license with MD5 hash verification in libraries.json.\n```\nafter\n```\n✅ Successfully built AAR for react-native-mmkv@3.3.0 with RN 0.83.0\n```",
          "is_bot": false,
          "headline": "support licenses in other SPDX format (#387)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-22T09:35:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ecc0561ad4cc1a773fc91bdfac1632f90d5f08c2",
          "body": "## 📝 Description\n\nFix a YAML syntax typo in the issue template. Since GitHub doesn't\nprovide a template preview, I had to verify the fix in a fork.\n\nFixes #377\n\n## 🧪 Testing\n\n**Before:** The Bug issue template did not appear in the \"New Issue\"\ndialog.\n\n**After:** The Bug issue template is displayed correctly again.",
          "is_bot": false,
          "headline": "fix typo in bug-issue-template (#390)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-22T09:31:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a4f5b1a470afa090143f9f35c11c3772fd2fca5a",
          "body": "## 📝 Description\n\nMany unuseful info and very annoying to fill when reporting",
          "is_bot": false,
          "headline": "simplify issue reports templates (#377)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-22T09:00:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b61c889326de0e625655c14ea04e3870c7a4398",
          "body": "## 📝 Description\n\nRN does the same. This fixes `@notifee/react-native` ios building.\n\nRCA was the `bun.Glob` that returns files in different order than `npx\nreact-native config` so to make it reliable it will use same tools as RN\nproject.\n\npod install output:\n```\n...\nlink_native_modules! {:ios_packa\n[…]\nlibrary-ios.ts @notifee/react-native 9.1.8 0.85.0 /tmp/temp_notifee\n...\n📱 Building library pod: RNNotifee\n...\n✅ Successfully built static XCFramework for @notifee/react-native@9.1.8 with RN 0.85.0\n```",
          "is_bot": false,
          "headline": "find podspec via `npx react-native config` (#389)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-22T08:45:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d9ea9ac64608b700dda2f80a8b9dc6e1626818c9",
          "body": "## Summary\n\nFix RNRepo prebuild dependency substitution so package names are matched\nexactly instead of by substring.\n\nThis prevents packages with shared Gradle-name prefixes from being\nsubstituted to the wrong prebuilt artifact. One concrete case is React\nNative Firebase: `react-native-firebase_app\n[…]\n\nApp Check correctly:\n```\nproject :react-native-firebase_app-check -> org.rnrepo.public:react-native-firebase_app-check:23.8.8\n```\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
          "is_bot": false,
          "headline": "Fix RNRepo prebuild substitution prefix matching (#385)",
          "author_name": "Oskar Pawica",
          "author_login": "pawicao",
          "committed_at": "2026-06-16T13:44:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cab8793828abf98fdc9323524f9bc06199ec90c5",
          "body": "## 📝 Description\n\nbump packages before release and bump expo ci version \n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
          "is_bot": false,
          "headline": "release build-tools@0.1.5 & expo-config-plugin@0.3.2 (#359)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-12T13:28:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75a2384327006dea0415c9f0e8c3030cfb1f24ce",
          "body": "## 📝 Description\n\nRelocate the primary cache directory from node_modules/.rnrepo-cache to:\n- default:  ~/.rnrepo-cache/ \n- proviede in rnrepo.config.json[\"xcframeworksCacheDir\"]:\n\"/path/to/cache\"\n- disabled caching via rnrepo.config.json[\"xcframeworksCacheDir\"]: \"\" |\nnull\n\nso it can be cached by runner CI.\n\n#334 \n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)",
          "is_bot": false,
          "headline": "Move xcframework cache to project level (#338)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-12T13:15:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "930597f56af7770cb56d14f3fdcb3d0f69f0d1da",
          "body": "## 📝 Description\n\nMoves the concurrency group and cancel-in-progress flag from the\nindividual Android build job to the global workflow scope.\n\nThis fixes a race condition where newer commits were being canceled\ninstead of older ones due to the `needs: check-changes` dependency. Now,\nthe entire previ\n[…]\n\n  - hash: 8575dc89a2ae574c5a8c6ac330b586c8558fd396 \n  - pushed when previous build was running\n  - ci on this commit were cancelled (concurrency) - wrong\n    - ci old commit was not cancelled - wrong",
          "is_bot": false,
          "headline": "move concurrency configuration to global workflow level (#370)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-12T12:53:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "666f9bb15dbf1d9fc0b973d1bbe335c8421a8c5d",
          "body": "## 📝 Description\n\n- rngh@3.0.0 have introduced the Compatibility with React Native\nversions:\n-\nhttps://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/installation\n- worklets 0.7.4 have rn@0.84 \n- compatibility.json: \"react-native\": [\"0.79\", \"0.80\", \"0.81\", \"0.82\",\n\"0.83\", \"0.84\"]",
          "is_bot": false,
          "headline": "update rngh libraries (#375)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-12T12:53:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7587796b1551b8007b82daeeeeaea5c228798cd3",
          "body": "…ods objects (#373)\n\n## 📝 Description\n\nFixes #362.\n\nOn iOS, the cocoapods plugin injects an `[AA RUN FIRST] RNREPO Build\nStart` shell-script build phase into every prebuilt pod target during\n`post_install`. Those phases were created with\n`target.new_shell_script_build_phase`, which mints UUIDs throu\n[…]\noutside rnrepo's\ncontrol and can't ship on a useful timeline; the right scope for this PR\nis for rnrepo to stop being the trigger.\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
          "is_bot": false,
          "headline": "fix(ios): mint RNREPO build-phase UUIDs without colliding with CocoaP…",
          "author_name": "Konrad Armatys",
          "author_login": "konrad-armatys",
          "committed_at": "2026-06-12T12:45:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4ed353282315fa76c41c536590c59988dc45dea3",
          "body": "…C++ dependency check) (#372)\n\n⚠️ This was generated by a LLM ⚠️\n## Summary\n\nFixes #371.\n\nOn debug builds, the C++ dependency compatibility check registered in\n`gradle.projectsEvaluated` iterated `PACKAGES_WITH_CPP.keys` with a\n`parallelStream()`. `checkDependencies` then realizes each subproject's\n\n[…]\nlogs. On plugin 0.2.2 the same loop failed ~40% of runs\nwith the NPE above.\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
          "is_bot": false,
          "headline": "Fix intermittent \"collector is null\" NPE in debug builds (sequential …",
          "author_name": "Camille Barneaud",
          "author_login": "gadcam",
          "committed_at": "2026-06-12T11:49:50Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8575dc89a2ae574c5a8c6ac330b586c8558fd396",
          "body": "## 📝 Description\n\nSwitches the build configuration detection mechanism from matching the\n`$CONFIGURATION` name to checking `$GCC_PREPROCESSOR_DEFINITIONS` for\n`DEBUG=1`.\n\nMatching solely on `$CONFIGURATION == \"Debug\"` is unreliable because\nprojects often define custom build configurations (e.g., \"St\n[…]\nh\n\n$ npx expo run:ios --configuration Custom.re\n...\n$ realpath node_modules/react-native-worklets/.rnrepo-cache/Current/dummy.h\n.../node_modules/react-native-worklets/.rnrepo-cache/Release/dummy.h\n```",
          "is_bot": false,
          "headline": "Detect debug configuration using GCC preprocessor definitions (#367)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-11T13:22:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "033bcc45f0c28c6dab59f0d021c957c67c5aeeec",
          "body": "## 📝 Description\n\n2.25.0 and +3.0.0 builds failed due to patch applying failures. Only\ndiffs in .patch files are single lines:\n```\n$ diff react-native-gesture-handler.patch react-native-gesture-handler_2.25.0.patch\n\n62c62\n< @@ -1,65 +1,14 @@\n---\n> @@ -1,67 +1,14 @@\n95c95,97\n< -    fun isSvgElement(v\n[…]\nt-native-gesture-handler_3.0.0.patch\n\n29c29\n<\n---\n>\n36,38c36,38\n<\n<              if (isNewArchitectureEnabled()) {\n<                  srcDirs += 'fabric/src/main/java'\n---\n>          }\n>      }\n>\n\n```",
          "is_bot": false,
          "headline": "fix rngh patch for 2.25.0 and +3.0.0 (#364)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-11T13:22:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a2c1e2e2aa2b0deaf528cdea3aa0fcae0cf273eb",
          "body": "## 📝 Description\n\nreduce unused pr template",
          "is_bot": false,
          "headline": "delete pr 'type of change' template (#365)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-11T13:21:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "67ba32657885084ebb33da601bf65316cf9e5640",
          "body": "## 📝 Description\n\nCloses #360\n\n## 🧪 Testing\n\n```\nbun run build-library-android.ts react-native-gesture-handler 24.1.0 0.83.6 /tmp/TEMP_fire_conf\n...\n✅ Successfully built AAR for @react-native-firebase/remote-config@24.1.0 with RN 0.83.6\n```",
          "is_bot": false,
          "headline": "add support for @react-native-firebase/remote-config (#366)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-11T13:21:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3f368e1c522ba2b2bacc98c47387ca189bee0d1e",
          "body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\n## Testing\n\nTested app\n```\nnpx @react-native-community/cli@latest init AwesomeProject_860 --version 0.86.0\n```\n\nWi\n[…]\n debug and release builds on both android and ios\n\n---------\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
          "is_bot": true,
          "headline": "[BOT] Update React Native versions (#369)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-10T11:35:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0f251fe2d17444fa04b9193e96d74b416bbeebd4",
          "body": "## 📝 Description\n\nFixes #351.\n\nThe CocoaPods post-install hook currently injects an ExpoModulesCore\nmodule map path that assumes the prebuilt RNWorklets framework is named\n`RNWorklets.framework`. `react-native-worklets` packages the inner\nframework as `worklets.framework`, so the generated path poin\n[…]\ndulesCore should receive the module map flag pointing at the\nactual framework name inside the RNWorklets XCFramework intermediate.\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
          "is_bot": false,
          "headline": "fix: resolve worklets framework module map (#352)",
          "author_name": "lmlm",
          "author_login": "popsiclelmlm",
          "committed_at": "2026-06-03T12:51:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d43f12344129cd7cf30de9f4faeaae0b2a58d8be",
          "body": "## 📝 Description\n\nUpdate reanimated-worklets versions like defined:\n-\nhttps://docs.swmansion.com/react-native-reanimated/docs/guides/compatibility\n-\nhttps://docs.swmansion.com/react-native-worklets/docs/guides/compatibility/\n\n## 🎯 Type of Change\n\n- [x] 🧩 New library support",
          "is_bot": false,
          "headline": "update reanimated@4.4 and worklets@0.9 relations (#356)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-02T11:08:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "00b19e5a4588321216d1a0f31d2fac958d16bae6",
          "body": "## 📝 Description\n\nFix ogimage path for better preview in e.g. twitter posts (before was\nblank image, now should provided image appear)\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
          "is_bot": false,
          "headline": "Fix og-image path for twitter (#357)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-06-02T10:53:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d84f3ed91864a84556672aa5372f004c705e8c06",
          "body": "## 📝 Description\n\nAdds banners to the readme. They are currently hidden.",
          "is_bot": false,
          "headline": "Add readme banners (#353)",
          "author_name": "Paweł Małecki",
          "author_login": "p-malecki",
          "committed_at": "2026-06-02T10:32:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1979d191fccc3ee14bed4bbd27da99414ed53f33",
          "body": "## 📝 Description\n\nReduce unnecessary builds runs for prs that change comments or minor\nstuff.\n\n#### Code explanation\n\n```\n  check-changes:\n\n    # this allows to run jobs on main-push and workflow_dispatch or non-draft PRs \n    if: github.event_name != 'pull_request' || !github.event.pull_request.dra\n[…]\nt_name == 'pull_request' && contains(fromJSON('[\"build-android\", \"build-expo\"]'), github.event.label.name))\n```\n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)",
          "is_bot": false,
          "headline": "trigger builds only when PR is labeled (#343)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-05-22T14:18:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f9935368bda264fdf36db87053dad53283513643",
          "body": "## 📝 Description\n\n\n\n\nRemove iOS support for `react-native-permissions`\n\n`react-native-permissions` requires all used permissions to be\nexplicitly configured during `pod install`, which makes it impossible to\nprebuild and distribute all possible permission permutations.\n\nIncluding all permission hand\n[…]\nen.\n\nExample runtime crash:\n\n```text\nThis app has crashed because it attempted to access privacy-sensitive data without a usage description.\n```\n\n#347\n\n## 🎯 Type of Change\n\n- [x] 🧩 New library support",
          "is_bot": false,
          "headline": "remove support for iOS in `react-native-permissions` (#349)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-05-22T11:41:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ce4482b86bc983b4a24d361be6ccb58245a872a8",
          "body": "## 📝 Description\n\n7d is not a vaild option (but was mentioned in\n[article](https://www.armorcode.com/blog/defending-against-npm-supply-chain-attacks-a-practical-guide)).\njust '7' is still refering to elapsed days, so no functional changes\nhere. This caused issues in packages publishing:\n-\nhttps://gi\n[…]\n/rnrepo/actions/runs/26230821967/job/77190410179\n\ndocs: https://docs.npmjs.com/cli/v11/using-npm/config#min-release-age\n\n## 🎯 Type of Change\n\n- [x] 🐛 Bug fix (non-breaking change which fixes an issue)",
          "is_bot": false,
          "headline": "exclude @rnrepo libs from 7 days npm limit (#350)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-05-22T09:20:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9540d97948e24ece8f32bb31ce4407844bd5c05b",
          "body": "## 📝 Description\n\nBump versions before release:\n- @rnrepo/build-tools@0.1.4\n- @rnrepo/expo-config-plugin@0.3.1\n\nAnd remove any `beta` labels in docs/website\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
          "is_bot": false,
          "headline": "bump versions before release and removed beta labels (#344)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-05-21T13:55:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2000f5d22fedafb98451f10c5c297a7c7b2b3eed",
          "body": "## 📝 Description\n\nbuild ts code before running it. it was failing in some ci runs:\n```\nPluginError: Unable to resolve a valid config plugin for @rnrepo/expo-config-plugin.\n• main export of @rnrepo/expo-config-plugin does not appear to be a config plugin: the following error was thrown when importing\n[…]\n/runner/work/rnrepo/rnrepo/packages/expo-config-plugin/app.plugin.js: Cannot find module './build/withRNRepoPlugin'\n```\n\n## 🎯 Type of Change\n\n- [x] 🐛 Bug fix (non-breaking change which fixes an issue)",
          "is_bot": false,
          "headline": "ci: build plugin before using in project (#342)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-05-21T12:03:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a0a99963a6e544c565d82aaa10ad2e99c9a3ce5a",
          "body": "## 📝 Description\n\nPorts the Android `stripVersionToCore` fix from #147 to the CocoaPods\nplugin. `react-native-tvos` versions like `0.83.2-0` were being passed\nthrough unchanged when building prebuilt artifact URLs, producing 404s\non the rnrepo server (the published artifacts use the core form\n`rn0.8\n[…]\n fall back to source.\n3. **After:** plugin requests `…-rn0.83.2-…xcframework.zip` → prebuilt\nframeworks are downloaded and cached.\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
          "is_bot": false,
          "headline": "Support react-native-tvos on iOS (#345)",
          "author_name": "Konrad Armatys",
          "author_login": "konrad-armatys",
          "committed_at": "2026-05-21T11:57:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7c6ef0a5ebe4f85d1f1a234ffd5b8c22ac21fd09",
          "body": "## 📝 Description\n\nThe iOS Cocoapods plugin loaded `rnrepo.config.json` from the directory\none level above the Podfile (i.e. the package root). That works in a\nsingle-app project where the config sits next to the `ios/` folder, but\nin a monorepo where the config lives at the repo root (alongside hois\n[…]\n rnrepo.config.json from\n<repo-root>/rnrepo.config.json` followed by `⊘ Denied from pre-builds\n(...)` listing the denied packages.\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
          "is_bot": false,
          "headline": "Support global rnrepo.config.json on iOS (#346)",
          "author_name": "Konrad Armatys",
          "author_login": "konrad-armatys",
          "committed_at": "2026-05-21T11:57:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9c6022de99875cfc4fe1947c418c6e604ec3b719",
          "body": "## 📝 Description\n\nFix important issues created by cli tool `zizmor`\n\nChanges:\n- added timeouts\n- added concurrency blocks\n- added permissions blocks\n- added persist-credentials false in checkout\n- changed actions usage based on tags (like `v4`) to commits SHA (and\nverified with pinact cli)\n- changed inserting input to command to providing input as env flag\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
          "is_bot": false,
          "headline": "CI hardening (#341)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-05-21T08:42:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dcb5223584cc791d984e1d0d83b893743b04474d",
          "body": "## 📝 Description\n\nsecurity feature\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "use min-release-age=7d in .npmrc (#340)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-05-19T12:48:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "84015a4a859d50a4214b7c69c86b29dbc49ee709",
          "body": "## 📝 Description\n\nIn rare cases, some build settings are defined as arrays, which can\ncause rnrepo to fail with\n\n```\n[!] An error occurred while processing the post-install hook of the Podfile.\n\nno implicit conversion of String into Array\n\n<>/node_modules/@rnrepo/build-tools/cocoapods-plugin/lib/plugin.rb:443:in 'Array#+'\n```\n\n## 🎯 Type of Change\n\n- [x] 🐛 Bug fix (non-breaking change which fixes an issue)\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Handle Xcode settings in both array and string formats. (#330)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-05-19T12:00:24Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e37acc81f5206b3e7b4bb50384aea8c086297a45",
          "body": "## 📝 Description\n\nBuild expo and rn apps to check if everything works. Build for both\nAndroid and iOS and both Debug and Release.\n\n## 🎯 Type of Change\n\n- [x] 🧪 Test addition/modification\n\n## 🧪 Testing\n\nworkflow CI passes",
          "is_bot": false,
          "headline": "run expo and rn app building in CI (#335)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-05-19T11:56:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96397136609535b9ebb433bf610423865b8a6752",
          "body": "## 📝 Description\n\nold reanimated issue in ci\n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)",
          "is_bot": false,
          "headline": "new known-issues to workflow (#331)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-05-19T11:55:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa5ddda035460c4c45081868e9517660e4c1d772",
          "body": "## 📝 Description\n\nreduce the number of replicated log lines\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
          "is_bot": false,
          "headline": "resolve gradle maven repositories just once (#337)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-05-19T11:52:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ca8ce8049452d382b1a06afbd665dae7f6b8716",
          "body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>",
          "is_bot": true,
          "headline": "[BOT] Update React Native versions (#332)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-07T08:17:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "540f098f5a2394c3bcff2689063685c47ee1bd69",
          "body": "## 📝 Description\n\nRelease:\n- support for EMC\n- new reanimated@+4.3.0 support\n- incorporated maven url into plugin\n\n## Tested\n\n- Projects: \n    - `$ npx create-expo-app@latest --template default@sdk-54 my-app-54`\n    - `$ npx create-expo-app@latest --template default@sdk-55 my-app-55`\n- `$ npx @react\n[…]\n - / ✅ / -\n    - react-native@0.84:\n        - android: ✅ / - / ✅ / ✅ / -\n        - ios: - / - / ✅ / ✅ / -\n    - react-native@0.85:\n        - android: ✅ / - / ✅ / - / -\n        - ios: - / ✅ / ✅ / - / -",
          "is_bot": false,
          "headline": "bump versions before release (#325)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-30T12:50:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d4bced3c2ebdb182187a8464b29826aebe94f034",
          "body": "…328)\n\n## 📝 Description\n\nFor example, inside a react-native-reanimated repository itself symlinks\nto react-native-reanimated package exist in `node_modules`, while the\nactual source is located in `packages/` - this results in\nreact-native-gesture-handler builded from sources due to the illusionary\na\n[…]\n_modules` from package's absolute path\n- changed `allprojects` to `subprojects` to exclude app's gradle project\nfrom being tried to be substituted\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
          "is_bot": false,
          "headline": "Allow packages to be resolved from locations beyond `node_modules` (#…",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-30T12:42:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "35e4619c7a45804fc407b0c5a84e4b8d976bc2df",
          "body": "## 📝 Description\n\nIn `mvn deploy-file`, the `-packaging` argument was not used in version\n3.1.2 (bug) which was fixed in later versions (currently worklfow uses\n3.1.4). apache/maven-deploy-plugin/issues/576\n\nIt caused the iOS artifacts to be deployed with various extensions:\n- old and wrong: `<artif\n[…]\nns/runs/25053999050\n- publish:\nhttps://github.com/software-mansion/rnrepo/actions/runs/25054114005\n- artifacts:\nhttps://packages.rnrepo.org/snapshots/org/rnrepo/public/react-native-firebase_app/23.5.0",
          "is_bot": false,
          "headline": "lock the mvn cli version used in publisher (#327)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-30T09:30:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "54df3e6ca7ac503eb097bb19c944145c8de4ae00",
          "body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>",
          "is_bot": true,
          "headline": "[BOT] Update React Native versions (#326)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-28T09:51:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "891a4df233fa5b420e4e8b773e170b30cb8a4a50",
          "body": "## 📝 Description\n\nAdd another new issues to catch\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "add new issue to failed builds (#323)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-28T09:51:33Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6c20a6fa9d7c39456f264efa3105fc9edcefabb1",
          "body": "## 📝 Description\n\n\nhttps://docs.swmansion.com/react-native-reanimated/docs/guides/compatibility/\n\nwith new react-native version reanimated constraints have to be adjusted\nto avoid failed builds\n\n## 🎯 Type of Change\n\n- [x] ♻️ Refactoring (no functional changes)",
          "is_bot": false,
          "headline": "range reanimated@4.2.x versions (#324)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-28T09:51:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d55715081117eec89df0af95f2f8c9c7d0a8373",
          "body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>",
          "is_bot": true,
          "headline": "[BOT] Update React Native versions (#322)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-23T09:29:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96e6125f46219f75abac01aeca7db4fa9d7a52db",
          "body": "## 📝 Description\n\n- updated docs (removed mentions about adding `allprojects {repositories\n{ url ...}}}`\n- updated tests\n- added `project.uri(\"https://packages.rnrepo.org/releases\")` inside\ngradle plugin\n- troubleshooting added when project have `FAIL_ON_PROJECT_REPOS`\n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)",
          "is_bot": false,
          "headline": "Incorporate maven url inside gradle plugin (#270)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-17T09:25:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5eca316bc4ca193be7b01f9eb92318beb8960312",
          "body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>",
          "is_bot": true,
          "headline": "[BOT] Update React Native versions (#320)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-17T09:22:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50fe7d2ee9acc1cda6746885c2eb0e7d214b7bf5",
          "body": "## 📝 Description\n\nPod install failed when worklets were installed as a peer dependency\n\nI’d avoid tying this to the old `workletsVersion` approach in\n`libraries.json`, since that was a reanimated-specific addition for its\nbuild process. Now that reanimated has been decoupled from worklets,\nthat field is likely to be removed in the future\n\n## 🎯 Type of Change\n\n- [x] 🐛 Bug fix (non-breaking change which fixes an issue)",
          "is_bot": false,
          "headline": "Add explicit worklets installation for reanimated@4.3.0+ (#319)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-16T14:43:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fdce3d5c9fd94749a8c57839d80d8b310ff0c52c",
          "body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\n## 0.85.0 changes\n\n- add new version to react-native-versions list (0.85.0)\n- install proper reanimated version fo\n[…]\n1\",\n    \"react-native-screens\": \"4.24.0\"\n  },\n```\n\n---------\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
          "is_bot": true,
          "headline": "[BOT] Update React Native versions (#311)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-16T08:04:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8893bcaa6ed5dc9b5a0beea2d72c8f9b2556eb82",
          "body": "## 📝 Description\n\n- add skia unbuildable issue with source-link\n- run script with write flag\n- add gradle9.0.0 issue \n- add type 'expired' for builds with unavailable logs\n- changed type 'unknown' to ' pending' for unchecked builds\n- type 'unknown' means checked but not recognized the issue\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add more types to failed builds investigation (#315)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-15T10:50:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c72877da1dc18eb47599e5b2de18a9b3f6ba3684",
          "body": "## 📝 Description\n\nWith the release of `react-native-reanimated@4.3.0`, the library\nintroduced a stable API that eliminates the need for version-specific\nbuilds tied to `react-native-worklets`. Previously, the tooling built a\nfull variant matrix tied to specific worklets classifiers - this is no\nlong\n[…]\nd for `>=4.3.0`.\n- Both the Gradle and CocoaPods plugins were updated to skip worklets\nresolution entirely when reanimated `>= 4.3.0` is detected.\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
          "is_bot": false,
          "headline": "Remove worklets classifier from reanimated (#317)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-15T10:07:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1d8b66f9fef02d5cf269bf62cc3f8c2119f75965",
          "body": "## 📝 Description\n\nadd new lib #310 \n\n## 🎯 Type of Change\n\n- [x] 🧩 New library support\n\n## 🧪 Testing\n\nbuilding artifacts\n```\n$ bun run packages/builder/build-library-android.ts -- \"@op-engineering/op-sqlite\" \"15.2.11\" \"0.84.0\" \"TEMP_android_opsqlite_15_2_11_rn_0_84_0\" \"\"\n# ✅ Successfully built AAR fo\n[…]\nneering/op-sqlite\" \"15.2.11\" \"0.84.0\" \"TEMP_ios_opsqlite_15_2_11_rn_0_84_0\" \"\"\n# ✅ Successfully built static XCFramework for @op-engineering/op-sqlite@15.2.11 with RN 0.84.0 \n```\n\nbuilding app - works",
          "is_bot": false,
          "headline": "add @op-engineering/op-sqlite (#318)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-15T09:36:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "32685b41e2641de22a36fbc85251344ca555d24a",
          "body": "## 📝 Description\n\nThe script automates the investigation of build failures.\n\n**Note:** This may require adding a new database column to track which\nbuilds are unbuildable ?\n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)\n\n## 🧪 Testing\n\nexample:\n```\nSUPABASE_K\n[…]\n URL        -> 2\n   Unknown issue            -> 2\n   Errors                   -> 0\n   Retry=true builds before -> 0\n```\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "add failed builds investigation (#297)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-09T11:38:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ff124beb0b35887bbb58048c465f9fa5d59c2833",
          "body": "## 📝 Description\n\nError:\n\nhttps://github.com/software-mansion/rnrepo/actions/runs/23974928810/job/69930351126\n```\nUncaught Error CocoaPodsError: Command `pod install` failed.\\n\n```\n\nPod install is not used in building emc and cannot be 'turn off', so it\nwill be handled in a catch\n\nexpo;\nhttps://gith\n[…]\nks the builds,\nwhich also was fixed\n\n## 🎯 Type of Change\n\n\n- [x] 🐛 Bug fix (non-breaking change which fixes an issue)\n\n## 🧪 Testing\n\nhttps://github.com/software-mansion/rnrepo/actions/runs/24179629969",
          "is_bot": false,
          "headline": "fix failing ci during pod install on ubuntu runners (#313)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-09T10:36:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0b36b88658ef886d9a6cf26042d094fccf053393",
          "body": "## 📝 Description\n\nReanimated builds were failing due to installation of the newest\nworklets possible from peer deps, but sometimes such version was not\navailable in given rn version\n\n```\nnpm error Could not resolve dependency:\nnpm error peer react-native@\"0.81 - 0.85\" from react-native-worklets@0.8.\n[…]\n\n\n```\n$ bun run packages/builder/build-library-android.ts -- \"react-native-reanimated\" \"4.1.7\" \"0.80.0\" \"/tmp\" \"0.5.1\"\n...\n✅ Successfully built AAR for react-native-reanimated@4.1.7 with RN 0.81.4\n```",
          "is_bot": false,
          "headline": "Install worklets first (#312)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-09T09:11:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9d5f9ffcdd38ba95e8272a1c5b6ac1d13ab88971",
          "body": "## 📝 Description\n\nCreate caching RN project in builder for each rn_version and OS.\n- added in yamls creating clean RN project (nodes installed, no build\nartifacts from previous builds)\n- if work-dir provided to script already have rnrepo_build_app then its\ncached project (always happens on CI)\n- if \n[…]\n build\n- workflow:\nhttps://github.com/software-mansion/rnrepo/actions/runs/24077312315\n- use that cache in another build\n- workflow:\nhttps://github.com/software-mansion/rnrepo/actions/runs/24077495031",
          "is_bot": false,
          "headline": "builder - cache rn project (#254)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-07T11:14:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "635c7e003ff0ebf9899db54d1fed835376ec0096",
          "body": "## 📝 Description\n\nRevert limiting scheduler to 50 builds in #279 since we have selfhosted\nmacOS already.",
          "is_bot": false,
          "headline": "Revert limiting scheduler to 50 builds in #279 (#308)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-02T15:01:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c1309351c312f9d789dcee34e50dfb86469fafe",
          "body": "## 📝 Description\n\nPrebuild expo-modules-core for Android only in release builds\n\nbuilding from >20k last-week builds (reduced build number from 78 to 59)\n\n## 🎯 Type of Change\n\n- [x] 🧩 New library support\n\n## 🧪 Testing\n\n- project\n  - `npx create-expo-app@latest init my-app --template default@sdk-55`\n\n[…]\n \"RN\" \"0.83.2\"\n  - \"expo-modules-core\" \"55.0.14\" \"RN\" \"0.83.1\"\n- expo@54\n  - \"expo-modules-core\" \"3.0.29\" \"RN\" \"0.81.5\"\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Prebuild expo-modules-core for Android (#301)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-02T11:31:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0886e4910b44be8da204972407d716e4dc114ff4",
          "body": "## 📝 Description\n\nAdd guide to find the problematic package in xcode16 errors\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update\n\n---------\n\nCo-authored-by: Wojciech Lewicki <wojciech.lewicki@swmansion.com>",
          "is_bot": false,
          "headline": "Add guide to find the problematic package in xcode16 errors (#307)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-02T11:03:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83ec171e120f722a3f75caa85f6d31864e824fd9",
          "body": "## 📝 Description\n\nAdd fingerprint mismatch troubleshooting for ios\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update\n\n## Testing\n\n<img width=\"1106\" height=\"241\" alt=\"Zrzut ekranu 2026-04-2 o 12 06 34\"\nsrc=\"https://github.com/user-attachments/assets/9ad6c440-c0c7-4d63-830f-58d17d5d2461\"\n/>\n\n-readme:\n[…]\nthub.com/software-mansion/rnrepo/blob/rolkrado/fingerprints-eas/README.md#expo-prebuild-continuous-code-generation--cng\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add fingerprint mismatch troubleshooting for ios (#302)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-04-02T11:03:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5a5338110661ece7bed87ccf075d19e5ba0bd080",
          "body": "## 📝 Description\n\nbuild-tools: 0.1.2-beta.0\nexpo-config-plugin: 0.3.0-beta.2\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
          "is_bot": false,
          "headline": "Publish new package versions (#306)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-26T15:01:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32739c22595fe190c3c946c682feb6567b0c3a3f",
          "body": "## 📝 Description\n\nFollow-up from the PR that migrated the Gradle plugin to npm.\n\nIt’s redundant since the version is already tracked as an npm package,\nand it required manual bumping and verification before each release.\n\nChanges:\n- [ BREAKING CHANGE ] - changes gradle plugin resolving in project\nfi\n[…]\nfiguration from build.gradle\n(publishing is now handled via npm instead of Maven)\n- Cleaned up redundant test imports in build.gradle\n\n## 🎯 Type of Change\n\n- [x] ♻️ Refactoring (no functional changes)",
          "is_bot": false,
          "headline": "[BREAKING CHANGE] Remove versioning from plugins (#299)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-26T14:26:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f6989c7dfea9ef4077e720dc9779725b7b69e087",
          "body": "## 📝 Description\n\nThis PR moves iOS builds to self-hosted runners to improve build\nthroughput and reduce queue times. GitHub-hosted runners are limited and\nshared across the entire organization, which was causing delays and\nslowing down CI. The build process itself remains unchanged and the\nrunner e\n[…]\nimprovement\n\n## 🧪 Testing\n\n- https://github.com/software-mansion/rnrepo/actions/runs/22898799632\n- https://github.com/software-mansion/rnrepo/actions/runs/23184874852\n  - successfully used in test app",
          "is_bot": false,
          "headline": "Run iOS builds on self-hosted runners (#291)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-26T14:21:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "380d96d19049f4300df23debea71433f870d6c38",
          "body": "## 📝 Description\n\nNow ios will not have dangling scheduled builds\n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)\n\n## 🧪 Testing\n\n```\n📊 Done.\n   Checked: 40\n   Completed -> 0\n   Failed    -> 8\n   Skipped   -> 32\n   Errors    -> 0\n\nAFTER:\n\n📊 Done.\n   Checked: 40\n   Completed -> 12\n   Failed    -> 28\n   Skipped   -> 0\n   Errors    -> 0\n\n```\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add ios handling in check-build-consistency (#295)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-25T15:37:04Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "851423c7485000494dd9bb8e09d48c1bd8953c97",
          "body": "## 📝 Description\n\nThere is no warning from plugin.rb since it gets lost among numerous\nother log entries and won’t be noticed anyway.\n\n#290 \n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Troubleshooting for xcode16 (#303)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-25T11:33:08Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "77e42b5ee5823165b771badcf88cfb3714006ad1",
          "body": "## 📝 Description\n\n[worklets] Versioning compatibility from:\nhttps://docs.swmansion.com/react-native-worklets/docs/guides/compatibility/\n[reanimated-3] Versioning compatibility from:\nhttps://docs.swmansion.com/react-native-reanimated/docs/3.x/guides/compatibility\n\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
          "is_bot": false,
          "headline": "Constraint worklets builds (#296)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-25T11:32:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de82b61d7207e7bc18ff2fe6a5e5b58435ec10f0",
          "body": "## 📝 Description\n\nAvoid building for versions with fewer than 20k downloads in the past\nweek. These are typically new releases that may be quickly replaced by a\npatch fix - until 20 downloads any major issue that would require fixing\nand new patch release should probably be discovered.\n\n```\n{\n  \"pac\n[…]\n: 65227,\n    \"0.83.1\": 219394,\n    \"0.83.2\": 417736,\n    \"0.83.3\": 715,\n    \"0.83.4\": 10672,\n    \"0.84.0\": 111508,\n    \"0.84.1\": 515617,\n  }\n}\n```\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
          "is_bot": false,
          "headline": "Add 20k RN threshold to build (#300)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-25T11:20:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7ea5963029a94a96b5364e8f34f832a3dbac110c",
          "body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\n---------\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
          "is_bot": true,
          "headline": "[BOT] Update React Native versions (#284)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-03-24T11:20:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1de3620da91e4c8dc4e8b553ed449b1d02fd788a",
          "body": "## 📝 Description\n\nLint kotlin with spotless tool\n\n## 🎯 Type of Change\n\n- [x] ♻️ Refactoring (no functional changes)",
          "is_bot": false,
          "headline": "lint spotless kotlin (#298)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-19T15:30:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b7c4c98af41a9b1bafe25686c3fc8df0e3317051",
          "body": "## 📝 Description\n\nAdd changelogs for npm packages\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update=",
          "is_bot": false,
          "headline": "Add changelogs for npm packages (#292)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-19T14:57:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7369d5d0119b6d6878a9115594ffe17af1cd427",
          "body": "## 📝 Description\n\nReplace the `net/http` with `system(curl, ...)`\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement\n\n## 🧪 Testing\n\n```\n# success\n[📦 RNRepo] Downloading from https://packages.rnrepo.org/releases/org/rnrepo/public/react-native-safe-area-context/5.7.0/react-native-safe-area-context-\n[…]\nps://packages.rnrepo.org/releases/org/rnrepo/public/react-native-safe-area-context/5.7.0/react-native-safe-area-context-5.7.0-rn0.81.5-debug.zip...\ncurl: (22) The requested URL returned error: 404\n```",
          "is_bot": false,
          "headline": "Replace the `net/http` with `system(curl, ...)` (#293)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-17T10:39:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cb4260a2ecc839c5a266b67e64f85ba82ca170f4",
          "body": "## 📝 Description\n\n### iOS\n\nin exposdk@55 ExpoModulesCore direct dependency on RNWorklets was added,\nwhich resulted in:\n```\n❌  (node_modules/expo-modules-core/ios/Worklets/WorkletJSCallInvoker.h:10:10)\n\n   8 | #include <ReactCommon/RuntimeExecutor.h>\n   9 |\n> 10 | #include <worklets/WorkletRuntime/Wo\n[…]\nols\": \"<path>/rnrepo/packages/build-tools\",\n# add to app.json plugins\n# # \"@rnrepo/expo-config-plugin\",\nnpx expo install\nnpx expo prebuild\nnpx expo run android\n# success\nnpx expo run ios\n# success\n```",
          "is_bot": false,
          "headline": "emc worklets fix for exposdk@55 (#281)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-17T09:04:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e7d90fdc624296a6fefeabd75f48e1b1c48043c9",
          "body": "## Summary\n\nThis removes the external dependency on `rubyzip`. Using\n`system(\"unzip\", ...)` is safe here because the code is designed to run\nonly on macOS, where `unzip` is available by default.\n\n## Testing\n```\n[📦 RNRepo] Extracting to /Users/radoslawrolka/BUILDLE_ANDROID/rnrepo/AwesomeProject_UNZIP\n[…]\n #286\n\n---------\n\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Replace the `rubyzip` dependency with `system(\"unzip\", ...)`. (#287)",
          "author_name": "Insik Han",
          "author_login": "Insik-Han",
          "committed_at": "2026-03-17T08:55:45Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "15d4c85fdf544404b308150cbd7d9f43bbc970d9",
          "body": "## 📝 Description\n\nBatch DB calls in scheduler to pull all builds per whole lib to remove\nwaiting for DB all the time\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement\n\n## 🧪 Testing\n\nWith unlimited schedules:\n- Before (27min)\n  ```\n  ✅ Done! Scheduled 560 build(s).\n  64,12s user 14,85s system 4% \n[…]\nal\n  ```\n- After (1:30min)\n  ```\n  ✅ Done! Scheduled 559 build(s).\n  2,34s user 0,56s system 3% cpu 1:30,59 total\n  ```\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Batch DB calls in scheduler (#294)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-17T08:55:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "eba8919e385e16f8d090ff9e5e4c905957f5c385",
          "body": "## 📝 Description\n\nBuilds were failing due to the uncompatible rea-rn versions\n\n```\n  stdout: \"Configuring Pod with statically linked Frameworks\\n\\n[!] Invalid `Podfile` file: \\n[!] Invalid `RNReanimated.podspec` file: [Reanimated] React Native version is not compatible with Reanimated.\\n\\n #  from /\n[…]\ntible with Reanimated 4.1.4\\n\",\n\n      at new ShellPromise (75:16)\n      at BunShell (191:35)\n      at buildLibrary (/Users/runner/work/rnrepo/rnrepo/packages/builder/build-library-ios.ts:282:11)\n\n```",
          "is_bot": false,
          "headline": "Add correct reanimated installation in RNGH builds (#285)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-06T14:13:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b4c77346990de8f6acc7ef421b6047e1c7444309",
          "body": "## 📝 Description\n\nIssue in hoisted node_modules - `@rnrepo/build-tools` was not resolved\n#274\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
          "is_bot": false,
          "headline": "Add info about manual installation of @rnrepo/build-tools (#283)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-06T11:42:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7eeda3cf2c3aff4e8631f401e12dd2c53ebd21f4",
          "body": "## 📝 Description\n\n- avg one build at macos-xlarge = 20min\n- max concurent jobs on macos = 5\n- scheduler cron = every 4h\nSo limit should be (20/60) * 5 * 4 ~= 50 (calculated with advantage to\ninclude failures that takes less time and nighttime with less occupancy)\n\nRevert this change when we have custom macos runner (#280).\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
          "is_bot": false,
          "headline": "schedule 50 builds per scheduler cron (#279)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-05T13:14:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "78b7ee634ec7219345696ff6beb77cc89c146ed1",
          "body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>",
          "is_bot": true,
          "headline": "[BOT] Update React Native versions (#265)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-03-05T12:20:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8deb3f165bca1799339efe466dd2068baff53bf1",
          "body": "## 📝 Description\n\nAdd setup verification guide in troubleshooting.md\n- android:\nhttps://github.com/software-mansion/rnrepo/blob/rolkrado/setup-verification/TROUBLESHOOTING.md#how-to-check-if-the-plugin-works\n- ios (same file, same header name):\nhttps://github.com/software-mansion/rnrepo/blob/rolkrado/setup-verification/TROUBLESHOOTING.md#how-to-check-if-the-plugin-works-1\n\n#276\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
          "is_bot": false,
          "headline": "Setup verification in troubleshooting (#278)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-05T10:37:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c54c5b3bed1512c78c444fb9fc37768673f3033e",
          "body": "## 📝 Description\n\n- added firebase/firestore to libraries.json with android config\n- added postinstall script (same as other firebase postinstall scripts)\n\nAdding firebase/firestore to android building list, since we did not\ntest the firestore on ios yet.\n\n#275 \n\n## 🎯 Type of Change\n\n- [x] 🧩 New lib\n[…]\nsks: 44 executed\n✓ Published to Maven Local successfully\n✅ Successfully built AAR for @react-native-firebase/firestore@23.8.6 with RN 0.81.4\n```\nalso builded successfully example rn-app with firestore",
          "is_bot": false,
          "headline": "Add  firebase/firestore to android build list (#277)",
          "author_name": "Radosław Rolka",
          "author_login": "radoslawrolka",
          "committed_at": "2026-03-05T10:34:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 0,
      "commits_last_year": 342,
      "latest_release_at": null,
      "latest_release_tag": null,
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 40,
      "days_since_latest_release": null,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": false,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 37,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@rnrepo/build-tools",
          "exists": true,
          "license": "ISC",
          "keywords": [
            "cocoapods",
            "gradle",
            "react-native",
            "rnrepo",
            "ios",
            "android",
            "plugin",
            "prebuilds",
            "xcframework",
            "aar"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@rnrepo/build-tools",
          "is_deprecated": false,
          "latest_version": "0.2.1",
          "repository_url": "https://github.com/software-mansion/rnrepo",
          "versions_count": 11,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 89272,
          "first_published_at": "2026-02-25T10:42:48.281000Z",
          "latest_published_at": "2026-07-17T09:04:05.108000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4
        },
        {
          "name": "@rnrepo/expo-config-plugin",
          "exists": true,
          "license": "ISC",
          "keywords": [
            "react-native",
            "expo",
            "config",
            "plugin",
            "prebuilds",
            "rnrepo"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@rnrepo/expo-config-plugin",
          "is_deprecated": false,
          "latest_version": "0.3.5",
          "repository_url": "https://github.com/software-mansion/rnrepo",
          "versions_count": 15,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 86944,
          "first_published_at": "2025-12-01T10:17:00.871000Z",
          "latest_published_at": "2026-07-17T09:02:02.583000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4
        }
      ]
    },
    "popularity": {
      "forks": 12,
      "stars": 403,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2025-12-04",
            "count": 2
          },
          {
            "date": "2025-12-05",
            "count": 1
          },
          {
            "date": "2025-12-11",
            "count": 1
          },
          {
            "date": "2026-02-05",
            "count": 1
          },
          {
            "date": "2026-03-09",
            "count": 1
          },
          {
            "date": "2026-04-25",
            "count": 1
          },
          {
            "date": "2026-05-29",
            "count": 1
          },
          {
            "date": "2026-05-30",
            "count": 1
          },
          {
            "date": "2026-06-11",
            "count": 1
          },
          {
            "date": "2026-06-16",
            "count": 1
          },
          {
            "date": "2026-07-13",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 12,
        "total_forks": 12
      },
      "star_history": {
        "days": [
          {
            "date": "2025-12-03",
            "count": 61
          },
          {
            "date": "2025-12-04",
            "count": 82
          },
          {
            "date": "2025-12-05",
            "count": 20
          },
          {
            "date": "2025-12-06",
            "count": 4
          },
          {
            "date": "2025-12-07",
            "count": 3
          },
          {
            "date": "2025-12-08",
            "count": 10
          },
          {
            "date": "2025-12-09",
            "count": 2
          },
          {
            "date": "2025-12-10",
            "count": 6
          },
          {
            "date": "2025-12-11",
            "count": 6
          },
          {
            "date": "2025-12-12",
            "count": 11
          },
          {
            "date": "2025-12-13",
            "count": 6
          },
          {
            "date": "2025-12-15",
            "count": 3
          },
          {
            "date": "2025-12-16",
            "count": 1
          },
          {
            "date": "2025-12-17",
            "count": 3
          },
          {
            "date": "2025-12-18",
            "count": 2
          },
          {
            "date": "2025-12-19",
            "count": 2
          },
          {
            "date": "2025-12-20",
            "count": 2
          },
          {
            "date": "2025-12-21",
            "count": 1
          },
          {
            "date": "2025-12-22",
            "count": 2
          },
          {
            "date": "2025-12-25",
            "count": 1
          },
          {
            "date": "2025-12-29",
            "count": 1
          },
          {
            "date": "2025-12-31",
            "count": 3
          },
          {
            "date": "2026-01-02",
            "count": 3
          },
          {
            "date": "2026-01-04",
            "count": 1
          },
          {
            "date": "2026-01-05",
            "count": 3
          },
          {
            "date": "2026-01-06",
            "count": 2
          },
          {
            "date": "2026-01-07",
            "count": 1
          },
          {
            "date": "2026-01-08",
            "count": 2
          },
          {
            "date": "2026-01-12",
            "count": 2
          },
          {
            "date": "2026-01-19",
            "count": 1
          },
          {
            "date": "2026-01-23",
            "count": 2
          },
          {
            "date": "2026-02-01",
            "count": 1
          },
          {
            "date": "2026-02-04",
            "count": 1
          },
          {
            "date": "2026-02-07",
            "count": 1
          },
          {
            "date": "2026-02-08",
            "count": 1
          },
          {
            "date": "2026-02-23",
            "count": 1
          },
          {
            "date": "2026-02-25",
            "count": 1
          },
          {
            "date": "2026-02-27",
            "count": 3
          },
          {
            "date": "2026-02-28",
            "count": 1
          },
          {
            "date": "2026-03-03",
            "count": 12
          },
          {
            "date": "2026-03-04",
            "count": 11
          },
          {
            "date": "2026-03-05",
            "count": 6
          },
          {
            "date": "2026-03-06",
            "count": 3
          },
          {
            "date": "2026-03-07",
            "count": 1
          },
          {
            "date": "2026-03-08",
            "count": 1
          },
          {
            "date": "2026-03-09",
            "count": 2
          },
          {
            "date": "2026-03-10",
            "count": 8
          },
          {
            "date": "2026-03-11",
            "count": 13
          },
          {
            "date": "2026-03-16",
            "count": 1
          },
          {
            "date": "2026-03-17",
            "count": 2
          },
          {
            "date": "2026-03-20",
            "count": 1
          },
          {
            "date": "2026-03-24",
            "count": 1
          },
          {
            "date": "2026-03-26",
            "count": 1
          },
          {
            "date": "2026-03-27",
            "count": 1
          },
          {
            "date": "2026-04-04",
            "count": 1
          },
          {
            "date": "2026-04-12",
            "count": 1
          },
          {
            "date": "2026-04-20",
            "count": 1
          },
          {
            "date": "2026-04-21",
            "count": 2
          },
          {
            "date": "2026-04-22",
            "count": 1
          },
          {
            "date": "2026-05-07",
            "count": 1
          },
          {
            "date": "2026-05-21",
            "count": 6
          },
          {
            "date": "2026-05-23",
            "count": 1
          },
          {
            "date": "2026-05-25",
            "count": 2
          },
          {
            "date": "2026-05-26",
            "count": 1
          },
          {
            "date": "2026-05-28",
            "count": 3
          },
          {
            "date": "2026-05-29",
            "count": 1
          },
          {
            "date": "2026-06-01",
            "count": 23
          },
          {
            "date": "2026-06-02",
            "count": 4
          },
          {
            "date": "2026-06-03",
            "count": 4
          },
          {
            "date": "2026-06-05",
            "count": 4
          },
          {
            "date": "2026-06-06",
            "count": 1
          },
          {
            "date": "2026-06-14",
            "count": 1
          },
          {
            "date": "2026-06-16",
            "count": 1
          },
          {
            "date": "2026-06-17",
            "count": 2
          },
          {
            "date": "2026-06-20",
            "count": 1
          },
          {
            "date": "2026-06-22",
            "count": 3
          },
          {
            "date": "2026-06-23",
            "count": 4
          },
          {
            "date": "2026-06-24",
            "count": 2
          },
          {
            "date": "2026-06-29",
            "count": 3
          },
          {
            "date": "2026-07-02",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 1
          },
          {
            "date": "2026-07-07",
            "count": 1
          },
          {
            "date": "2026-07-08",
            "count": 1
          },
          {
            "date": "2026-07-17",
            "count": 1
          },
          {
            "date": "2026-07-21",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 403,
        "total_stars": 403
      },
      "open_issues_and_prs": 8
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "packages/expo-config-plugin/tsconfig.json",
        "packages/website/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [
        "packages/build-tools/gradle-plugin/build.gradle"
      ],
      "largest_source_bytes": 56925,
      "source_files_sampled": 60,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "commander",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^13.1.0"
        },
        {
          "name": "semver",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.7.4"
        },
        {
          "name": "zx",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.6.0"
        },
        {
          "name": "commander",
          "manifest": "packages/builder/package.json",
          "ecosystem": "npm",
          "version_constraint": "^13.1.0"
        },
        {
          "name": "@rnrepo/config",
          "manifest": "packages/builder/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "zx",
          "manifest": "packages/builder/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.6.0"
        },
        {
          "name": "@rnrepo/config",
          "manifest": "packages/database/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@supabase/supabase-js",
          "manifest": "packages/database/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.47.0"
        },
        {
          "name": "@expo/config-plugins",
          "manifest": "packages/expo-config-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "*"
        },
        {
          "name": "@expo/config-types",
          "manifest": "packages/expo-config-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "*"
        },
        {
          "name": "@rnrepo/build-tools",
          "manifest": "packages/expo-config-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.2.1"
        },
        {
          "name": "@octokit/rest",
          "manifest": "packages/publisher/package.json",
          "ecosystem": "npm",
          "version_constraint": "^22.0.0"
        },
        {
          "name": "@rnrepo/config",
          "manifest": "packages/publisher/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@rnrepo/database",
          "manifest": "packages/publisher/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "commander",
          "manifest": "packages/publisher/package.json",
          "ecosystem": "npm",
          "version_constraint": "^13.1.0"
        },
        {
          "name": "zx",
          "manifest": "packages/publisher/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.6.0"
        },
        {
          "name": "@octokit/plugin-paginate-rest",
          "manifest": "packages/scheduler/package.json",
          "ecosystem": "npm",
          "version_constraint": "^14.0.0"
        },
        {
          "name": "@octokit/rest",
          "manifest": "packages/scheduler/package.json",
          "ecosystem": "npm",
          "version_constraint": "^22.0.0"
        },
        {
          "name": "@rnrepo/config",
          "manifest": "packages/scheduler/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@rnrepo/database",
          "manifest": "packages/scheduler/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "semver",
          "manifest": "packages/scheduler/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.7.3"
        },
        {
          "name": "astro",
          "manifest": "packages/website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.16.6"
        },
        {
          "name": "lucide-astro",
          "manifest": "packages/website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.555.0"
        },
        {
          "name": "shiki",
          "manifest": "packages/website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.17.1"
        },
        {
          "name": "@rnrepo/database",
          "manifest": "packages/website/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 8,
        "merged_prs": 319,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 64,
        "closed_unmerged_prs": 27
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "radoslawrolka",
          "commits": 250,
          "avatar_url": "https://avatars.githubusercontent.com/u/128408457?v=4"
        },
        {
          "type": "User",
          "login": "kmagiera",
          "commits": 64,
          "avatar_url": "https://avatars.githubusercontent.com/u/726445?v=4"
        },
        {
          "type": "User",
          "login": "CDFN",
          "commits": 11,
          "avatar_url": "https://avatars.githubusercontent.com/u/41289688?v=4"
        },
        {
          "type": "User",
          "login": "sKrzysieK",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/64040819?v=4"
        },
        {
          "type": "User",
          "login": "konrad-armatys",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/109459018?v=4"
        },
        {
          "type": "User",
          "login": "mczernek",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/6090468?v=4"
        },
        {
          "type": "User",
          "login": "WoLewicki",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/32481228?v=4"
        },
        {
          "type": "User",
          "login": "gadcam",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/1693643?v=4"
        },
        {
          "type": "User",
          "login": "Insik-Han",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/63291908?v=4"
        },
        {
          "type": "User",
          "login": "pawicao",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/34246839?v=4"
        }
      ],
      "contributors_sampled": 14,
      "top_contributor_share": 0.716
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "build-example-expo-app.yml",
        "build-example-rn-app.yml",
        "build-library-android.yml",
        "build-library-ios.yml",
        "check-build-consistency.yml",
        "check-failed-builds.yml",
        "daily-react-native-version-check.yml",
        "deploy-website.yml",
        "lint-and-validate.yml",
        "publish-build-tools.yml",
        "publish-expo-config-plugin.yml",
        "publish-library-android.yml",
        "publish-library-ios.yml",
        "run-scheduler.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [
        ".eslintrc.js"
      ],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 9,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 6,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 7 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 0,
            "reason": "dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 0,
            "reason": "license file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 9,
            "reason": "dependency not pinned by hash detected -- score normalized to 9",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "100 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "d4af2edf88e5932f53d8ad4f64db5386dbe1091d",
        "ran_at": "2026-07-22T05:55:08Z",
        "aggregate_score": 4.2,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-22T05:05:13Z",
      "oldest_open_prs": [
        {
          "number": 163,
          "created_at": "2025-12-09T17:27:01Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 217,
          "created_at": "2026-01-19T09:25:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 238,
          "created_at": "2026-01-28T11:14:00Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 314,
          "created_at": "2026-04-09T13:49:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 333,
          "created_at": "2026-05-06T11:51:52Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 348,
          "created_at": "2026-05-21T10:55:29Z",
          "last_comment_at": "2026-05-22T13:03:25Z",
          "last_comment_author": "radoslawrolka"
        },
        {
          "number": 396,
          "created_at": "2026-06-26T03:19:47Z",
          "last_comment_at": "2026-07-06T14:38:24Z",
          "last_comment_author": "radoslawrolka"
        },
        {
          "number": 418,
          "created_at": "2026-07-21T11:23:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-17T09:00:20Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/software-mansion/rnrepo",
    "host": "github.com",
    "name": "rnrepo",
    "owner": "software-mansion"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 62,
      "inputs": {
        "security": 42,
        "vitality": 56,
        "community": 53,
        "governance": 75,
        "engineering": 76
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 56,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "commits_last_year": 342,
              "human_commit_share": 0.92,
              "days_since_last_push": 0,
              "active_weeks_last_year": 40
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "40/52 weeks with commits",
                "points": 27.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 40
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "342 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 342
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "critical",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "releases_count": 0
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "no releases published",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases_published",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 4,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 4 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 53,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 51,
            "inputs": {
              "forks": 12,
              "stars": 403,
              "watchers": 1,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "403 stars",
                "points": 42.2,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 403
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "12 forks",
                "points": 8.7,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "at_risk",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 32,
            "inputs": {
              "has_readme": true,
              "has_license": false,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "no license file detected",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "license_absent",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 87,
            "inputs": {
              "packages": [
                "@rnrepo/build-tools",
                "@rnrepo/expo-config-plugin"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 176216
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "176,216 downloads/month across npm",
                "points": 69.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 176216,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 75,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 39,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 14,
              "top_contributor_share": 0.716
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 72% of commits",
                "points": 6.4,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 72
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "14 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 7 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "merged_prs": 319,
              "open_issues": 0,
              "closed_issues": 64,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 27
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 46.8,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "319/346 decided PRs merged",
                "points": 35.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 319,
                      "decided": 346
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "followers": 1604,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "software-mansion",
              "public_repos": 59,
              "account_age_days": 2464
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "1,604 followers of software-mansion",
                "points": 23,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1604,
                      "login": "software-mansion"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "59 public repos, account ~6 yr old",
                "points": 24.9,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 59
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 6
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@rnrepo/build-tools",
                "@rnrepo/expo-config-plugin"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 4
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "2 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 2,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 4 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "15 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 76,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "14 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".eslintrc.js",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.js"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": "http://rnrepo.org/",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "http://rnrepo.org/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 42,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 42,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 4.2
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 7 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "dangerous workflow patterns detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 9",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "100 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 16
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 68,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "92 of 92 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 92,
                      "sampled": 92
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "packages/expo-config-plugin/tsconfig.json",
                "packages/website/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0.13,
              "toolchain_manifests": [
                "packages/build-tools/gradle-plugin/build.gradle"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "packages/build-tools/gradle-plugin/build.gradle (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "packages/build-tools/gradle-plugin/build.gradle"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".eslintrc.js",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.js"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "packages/expo-config-plugin/tsconfig.json, packages/website/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "packages/expo-config-plugin/tsconfig.json, packages/website/tsconfig.json, tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "13 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 13,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 9",
                "points": 9,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 56925,
              "source_files_sampled": 60,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/60 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 60,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Could not fetch npm package '@rnrepo/builder' from its registry",
    "Could not fetch npm package '@rnrepo/publisher' from its registry",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
    "deps.dev does not index npm:@rnrepo/build-tools@0.2.1; advisories assessed against the repository dependency graph instead"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-22T05:55:30.046426Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/software-mansion/rnrepo.svg",
  "full_name": "software-mansion/rnrepo",
  "license_state": "absent",
  "license_spdx": null
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.26.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsnpm.