Public record
Software health reportschema 0.27.0 · metrics 2.5.0 · 2026-07-30 01:39 UTC

naxodev / oss

Open Source Software (OSS) projects by naxodev

TypeScriptMIT★ 48 stars⑂ 10 forkssince Jul 2023View on GitHub ↗
KindLibraryWeb interfacehow this is determined

naxodev/oss holds a health index of 87 out of 100, placing it in the Excellent band. It scores highest on Engineering Quality (94/100) and lowest on Sustainability & Governance (60/100). It was last updated 5 days ago. A single contributor accounts for most of its recent work.

87
overall / 100
Excellent

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean, calibrated against the distribution of the public record so bands carry percentile meaning; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At Risk ceiling of 34.

87
Exceptional93-100The record's top tier (≈ top 5%); essentially all checked criteria met
Excellent80-92Strong across the board; minor gaps
Good65-79Healthy; gaps are limited and manageable
Moderate50-64Acceptable with notable gaps; review recommended
Weak35-49Material weaknesses across several areas
At Risk20-34Significant weaknesses; adoption warrants caution
Critical1-19Severe 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.

The weighted overall 73 is calibrated to 87 on the published index scale (record calibration 2026-08-02).

Ownership

naxoOrganization
0 followers21 public repossince Jul 2023

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

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
npm@naxodev/gonx4.1.1116,607545 days agonxgolanggoplugin
npm@naxodev/nx-cloudflare7.1.07,299458 days agonxcloudflareworkersplugin

Metrics by category

Vitality

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

83Excellent · 21% of overall
How it's scored
36/36Push recency — last push 5 days ago
8.3/36Commit cadence — 12/52 weeks with commits
17/18Commit volume — 78 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year78
human_commit_share1
days_since_last_push5
active_weeks_last_year12

Release discipline

100Exceptional
How it's scored
27/27Ships releases — 67 releases published
36/36Release recency — latest release 5 days ago
27/27Release cadence — a release every ~35.2 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count67
latest_release_taggonx@v4.1.1
releases_from_tagsno
days_since_latest_release5
mean_days_between_releases35.2
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?

67Good · 17% of overall
How it's scored
27.1/60Stars — 48 stars
8/25Forks — 10 forks
0/15Watchers — 1 watchers
Inputs used
forks10
stars48
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

Community health

92Excellent
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
18/18CONTRIBUTING guide
13.5/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
readme_badges
has_contributingyes
has_issue_templateno
has_code_of_conductyes
readme_badge_services
has_pull_request_templateyes
How it's scored
67.9/80Monthly downloads — 123,906 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packages@naxodev/gonx, @naxodev/nx-cloudflare
dependents
ecosystemsnpm
total_downloads
monthly_downloads123,906
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?

60Moderate · 23% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
5.3/22.5Commit distribution — top contributor authored 76% of commits
9.5/13.5Contributor breadth — 7 contributors
6/10OpenSSF Scorecard: Contributors — project has 2 contributing companies or organizations -- score normalized to 6
Inputs used
bus_factor1
contributors_sampled7
top_contributor_share0.764
How it's scored
39.9/42Issue resolution — 95% of issues closed
29.1/30PR acceptance — 135/139 decided PRs merged
0/13Newcomer PR acceptance — no first-time contributor's PR decided in 30d
0/15OpenSSF Scorecard: Code-Review — Found 0/28 approved changesets -- score normalized to 0
Inputs used
merged_prs135
open_issues4
closed_issues75
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio0.949
closed_unmerged_prs4
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
Excluded from scoring (no data or not applicable): newcomer_pr_acceptance. Remaining weights renormalized.
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
0/25Owner reach — 0 followers of naxodev
15.8/25Track record — 21 public repos, account ~3 yr old
Inputs used
followers0
owner_typeOrganization
is_verified
owner_loginnaxodev
public_repos21
account_age_days1,096

Package maintenance

100Exceptional
How it's scored
25/25Published & resolvable — 2 package(s) on npm
35/35Publish recency — latest publish 5 days ago
20/20Version history — 54 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packages@naxodev/gonx, @naxodev/nx-cloudflare
ecosystemsnpm
any_deprecatedno
min_days_since_publish5

Engineering Quality

Are baseline engineering and documentation practices in place?

94Exceptional · 19% of overall
How it's scored
24/24CI workflows — 2 workflow(s)
24/24Tests present
16/16Linter config — .eslintrc.json
0/9.6Pre-commit hooks
6.4/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 23 out of 23 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

100Exceptional
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://naxo.dev
10/10Repository description
10/10Topics — 6 topics
10/10Wiki
Inputs used
topicscloudflare, nx, cloudflare-workers, nextjs, go, golang
has_wikiyes
homepagehttps://naxo.dev
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

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

62Moderate · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — no data
2.5/2.5CI-Tests — 23 out of 23 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
0/7.5Code-Review — Found 0/28 approved changesets -- score normalized to 0
1.5/2.5Contributors — project has 2 contributing companies or organizations -- score normalized to 6
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — no data
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
5/5SAST — SAST tool is run on all commits
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — no data
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
0/7.5Vulnerabilities — 71 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate5.2
Excluded from scoring (no data or not applicable): branch_protection, packaging, signed_releases. Remaining weights renormalized.

Dependency advisories

100Exceptional
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
25/25Indirect dependencies free of known advisories — no indirect dependency carries a known advisory
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories0
affected_packages0
assessed_packages22
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@naxodev/gonx@4.1.1 runtime dependency closure — what installing the published package pulls in — 22 packages. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight (4%): agent tooling is a real maintenance signal, but a repository with none can still reach 100/100.

69Good · 4% of overall
How it's scored
45/45Agent instructions — CLAUDE.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 100 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share1
agent_instruction_filesCLAUDE.md
agent_instruction_max_bytes8,809
How it's scored
0/18One-command bootstrap
22/22Automated tests
11/11Lint / format config — .eslintrc.json
11/11Static type checking — docs/gonx-docs/tsconfig.json, docs/nx-cloudflare-docs/tsconfig.json, packages/bun-test-plugin/tsconfig.json, packages/e2e-utils/tsconfig.json, packages/gonx-e2e/tsconfig.json, packages/gonx/tsconfig.json, packages/nx-cloudflare-e2e/tsconfig.json, packages/nx-cloudflare/tsconfig.json, tsconfig.json
0/10Reproducible environment
2/10Demonstrated agent practice — 1 of the last 100 commits agent-authored or agent-credited
0/8Automated maintenance — no automated dependency updates observed
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsyes
lockfiles
has_dockerfileno
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configyes
typecheck_configsdocs/gonx-docs/tsconfig.json, docs/nx-cloudflare-docs/tsconfig.json, packages/bun-test-plugin/tsconfig.json, packages/e2e-utils/tsconfig.json, packages/gonx-e2e/tsconfig.json, packages/gonx/tsconfig.json, packages/nx-cloudflare-e2e/tsconfig.json, packages/nx-cloudflare/tsconfig.json, tsconfig.json
agent_commit_share0.01
toolchain_manifests
dependency_bot_commit_share0
How it's scored
45/45Type-checkable code — TypeScript (statically typed)
55/55Manageable file sizes — 0/167 source files over 60KB
Inputs used
primary_languageTypeScript
largest_source_bytes30,882
source_files_sampled167
oversized_source_files0

Key facts

48GitHub stars
7contributors
78commits, last 12 months
5days since last push
67releases
1bus factor
4open issues
npmpackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

More detail

Star and fork history 0 ★ / 10 ⇿
0Stars
10Forks
43Releases

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.

02468101022024-052025-032026-01
Major 2Minor 1Patch 3

Each point covers 2 days.

OpenSSF Scorecard 5.2 / 10
5.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-30 01:39 UTC

10Binary-Artifactsno binaries found in the repo
n/aBranch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
10CI-Tests23 out of 23 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/28 approved changesets -- score normalized to 0
6Contributorsproject has 2 contributing companies or organizations -- score normalized to 6
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
n/aPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
10SASTSAST tool is run on all commits
0Security-Policysecurity policy file not detected
n/aSigned-Releasesno releases found
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
0Vulnerabilities71 existing vulnerabilities detected
Direct dependencies 29
RegistryPackageVersion constraintManifest
npm@astrojs/reactcatalog:package.json
npm@astrojs/sitemapcatalog:package.json
npm@astrojs/starlightcatalog:package.json
npm@astrojs/starlight-tailwindcatalog:package.json
npm@naxodev/docs-themeworkspace:*package.json
npm@naxodev/gonxworkspace:*package.json
npm@naxodev/nx-cloudflareworkspace:*package.json
npm@tailwindcss/vitecatalog:package.json
npmastrocatalog:package.json
npmhonocatalog:package.json
npmreactcatalog:package.json
npmreact-domcatalog:package.json
npmsharpcatalog:package.json
npmstarlight-llms-txtcatalog:package.json
npmstarlight-typedoccatalog:package.json
npmtailwindcsscatalog:package.json
npmtslibcatalog:package.json
npmtypedoccatalog:package.json
npmtypedoc-plugin-markdowncatalog:package.json
npm@nx/devkit^23.0.0packages/bun-test-plugin/package.json
npmtslib^2.3.0packages/gonx/package.json
npmnpm-run-path4.0.1packages/gonx/package.json
npmchalk^4.1.2packages/gonx/package.json
npm@melkeydev/go-blueprint0.10.11packages/gonx/package.json
npmp-limit^6.2.0packages/gonx/package.json
npmweb-tree-sitter0.26.3packages/gonx/package.json
npmtree-sitter-go^0.25.0packages/gonx/package.json
npmtslib^2.3.0packages/nx-cloudflare/package.json
npmjsonc-parser^3.3.0packages/nx-cloudflare/package.json
All dependencies 97

Full resolved dependency set from the GitHub dependency graph: 32 direct and 65 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

RegistryPackageVersionRelation
npm@astrojs/reactcatalog:direct
npm@astrojs/sitemapcatalog:direct
npm@astrojs/starlightcatalog:direct
npm@astrojs/starlight-tailwindcatalog:direct
npm@melkeydev/go-blueprint0.10.11direct
npm@melkeydev/go-blueprintcatalog:direct
npm@nx/devkit^23.0.0direct
npm@nx/devkitcatalog:direct
npm@tailwindcss/vitecatalog:direct
npmastrocatalog:direct
npmchalk^4.1.2direct
npmchalkcatalog:direct
npmhonocatalog:direct
npmjsonc-parser^3.3.0direct
npmnpm-run-path4.0.1direct
npmnpm-run-pathcatalog:direct
npmp-limit^6.2.0direct
npmp-limitcatalog:direct
npmreactcatalog:direct
npmreact-domcatalog:direct
npmsharpcatalog:direct
npmstarlight-llms-txtcatalog:direct
npmstarlight-typedoccatalog:direct
npmtailwindcsscatalog:direct
npmtree-sitter-go^0.25.0direct
npmtree-sitter-gocatalog:direct
npmtslib^2.3.0direct
npmtslibcatalog:direct
npmtypedoccatalog:direct
npmtypedoc-plugin-markdowncatalog:direct
npmweb-tree-sitter0.26.3direct
npmweb-tree-sittercatalog:direct
npm@angular-devkit/corecatalog:indirect
npm@astrojs/checkcatalog:indirect
npm@cloudflare/vitest-pool-workerscatalog:indirect
npm@cloudflare/workers-typescatalog:indirect
npm@commitlint/clicatalog:indirect
npm@commitlint/config-conventionalcatalog:indirect
npm@eslint/eslintrccatalog:indirect
npm@eslint/jscatalog:indirect
npm@nx/angularcatalog:indirect
npm@nx/esbuildcatalog:indirect
npm@nx/eslintcatalog:indirect
npm@nx/eslint-plugincatalog:indirect
npm@nx/jscatalog:indirect
npm@nx/nodecatalog:indirect
npm@nx/plugincatalog:indirect
npm@nx/reactcatalog:indirect
npm@nx/vitecatalog:indirect
npm@nx/vitestcatalog:indirect
npm@nx/webcatalog:indirect
npm@nx/workspacecatalog:indirect
npm@swc-node/registercatalog:indirect
npm@swc/clicatalog:indirect
npm@swc/corecatalog:indirect
npm@swc/helperscatalog:indirect
npm@testing-library/reactcatalog:indirect
npm@types/buncatalog:indirect
npm@types/fs-extracatalog:indirect
npm@types/kill-portcatalog:indirect
npm@types/nodecatalog:indirect
npm@types/reactcatalog:indirect
npm@types/react-domcatalog:indirect
npm@types/semvercatalog:indirect
npm@types/tcp-port-usedcatalog:indirect
npm@typescript-eslint/eslint-plugincatalog:indirect
npm@typescript-eslint/parsercatalog:indirect
npm@vitest/coverage-v8catalog:indirect
npm@vitest/uicatalog:indirect
npmcli-spinnerscatalog:indirect
npmdotenvcatalog:indirect
npmesbuildcatalog:indirect
npmeslintcatalog:indirect
npmeslint-config-prettiercatalog:indirect
npmeslint-plugin-importcatalog:indirect
npmeslint-plugin-jsx-a11ycatalog:indirect
npmeslint-plugin-reactcatalog:indirect
npmeslint-plugin-react-hookscatalog:indirect
npmfs-extracatalog:indirect
npmjiticatalog:indirect
npmjsdomcatalog:indirect
npmjsonc-eslint-parsercatalog:indirect
npmkill-portcatalog:indirect
npmnxcatalog:indirect
npmnx-cloudcatalog:indirect
npmprettiercatalog:indirect
npmsemvercatalog:indirect
npmstrip-indentcatalog:indirect
npmtcp-port-usedcatalog:indirect
npmtree-killcatalog:indirect
npmts-nodecatalog:indirect
npmtsxcatalog:indirect
npmtypescriptcatalog:indirect
npmverdacciocatalog:indirect
npmvitecatalog:indirect
npmvitestcatalog:indirect
npmwranglercatalog:indirect
Dependency advisories 0

Installing npm:@naxodev/gonx@4.1.1 pulls in 22 packages, direct and transitive: 0 carry known advisories, of which 0 are direct dependencies.

No known advisories affect the assessed dependencies.

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "cloudflare",
        "nx",
        "cloudflare-workers",
        "nextjs",
        "go",
        "golang"
      ],
      "is_fork": false,
      "size_kb": 2453,
      "has_wiki": true,
      "homepage": "https://naxo.dev",
      "languages": {
        "Shell": 80,
        "JavaScript": 14223,
        "TypeScript": 633700
      },
      "pushed_at": "2026-07-24T13:49:51Z",
      "created_at": "2023-07-30T15:09:14Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-24T13:50:29Z",
      "description": "Open Source Software (OSS) projects by naxodev",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "naxo.dev",
      "name": "naxo",
      "type": "Organization",
      "login": "naxodev",
      "company": null,
      "location": null,
      "followers": 0,
      "avatar_url": "https://avatars.githubusercontent.com/u/140901219?v=4",
      "created_at": "2023-07-29T14:14:11Z",
      "is_verified": null,
      "public_repos": 21,
      "account_age_days": 1096
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "gonx@v4.1.1",
          "kind": "other",
          "published_at": "2026-07-24T13:49:52Z"
        },
        {
          "tag": "nx-cloudflare@v7.1.0",
          "kind": "other",
          "published_at": "2026-07-21T14:41:04Z"
        },
        {
          "tag": "gonx@v4.1.0",
          "kind": "other",
          "published_at": "2026-07-21T14:41:03Z"
        },
        {
          "tag": "gonx@v4.0.2",
          "kind": "other",
          "published_at": "2026-07-21T01:44:23Z"
        },
        {
          "tag": "gonx@v4.0.1",
          "kind": "other",
          "published_at": "2026-07-07T19:35:48Z"
        },
        {
          "tag": "nx-cloudflare@v7.0.0",
          "kind": "other",
          "published_at": "2026-07-05T18:50:07Z"
        },
        {
          "tag": "gonx@v4.0.0",
          "kind": "other",
          "published_at": "2026-07-05T18:50:06Z"
        },
        {
          "tag": "nx-cloudflare@v6.0.0",
          "kind": "other",
          "published_at": "2026-01-15T16:23:53Z"
        },
        {
          "tag": "gonx@v3.0.0",
          "kind": "other",
          "published_at": "2026-01-15T16:20:43Z"
        },
        {
          "tag": "gonx@v2.1.0",
          "kind": "other",
          "published_at": "2025-09-10T21:00:44Z"
        },
        {
          "tag": "nx-cloudflare@v5.0.2",
          "kind": "other",
          "published_at": "2025-09-07T16:37:03Z"
        },
        {
          "tag": "nx-cloudflare@v5.0.1",
          "kind": "other",
          "published_at": "2025-08-24T01:50:09Z"
        },
        {
          "tag": "gonx@v2.0.2",
          "kind": "other",
          "published_at": "2025-07-28T03:07:20Z"
        },
        {
          "tag": "gonx@v2.0.1",
          "kind": "other",
          "published_at": "2025-07-23T15:46:05Z"
        },
        {
          "tag": "gonx@v2.0.0",
          "kind": "other",
          "published_at": "2025-07-20T13:29:26Z"
        },
        {
          "tag": "gonx@v2.0.0-beta.5",
          "kind": "other",
          "published_at": "2025-07-15T13:57:30Z"
        },
        {
          "tag": "gonx@v2.0.0-beta.4",
          "kind": "other",
          "published_at": "2025-06-19T20:37:04Z"
        },
        {
          "tag": "gonx@v2.0.0-beta.3",
          "kind": "other",
          "published_at": "2025-06-19T03:11:26Z"
        },
        {
          "tag": "gonx@v2.0.0-beta.2",
          "kind": "other",
          "published_at": "2025-06-19T02:38:00Z"
        },
        {
          "tag": "gonx@v2.0.0-beta.1",
          "kind": "other",
          "published_at": "2025-06-18T21:01:26Z"
        },
        {
          "tag": "gonx@v2.0.0-beta.0",
          "kind": "other",
          "published_at": "2025-06-17T02:57:36Z"
        },
        {
          "tag": "gonx@v1.2.0",
          "kind": "other",
          "published_at": "2025-06-04T01:38:01Z"
        },
        {
          "tag": "gonx@v1.1.1",
          "kind": "other",
          "published_at": "2025-05-22T18:49:07Z"
        },
        {
          "tag": "gonx@v1.1.0",
          "kind": "other",
          "published_at": "2025-05-19T13:21:34Z"
        },
        {
          "tag": "gonx@v1.0.1",
          "kind": "other",
          "published_at": "2025-05-07T13:15:52Z"
        },
        {
          "tag": "nx-cloudflare@v5.0.0",
          "kind": "other",
          "published_at": "2025-05-06T15:10:16Z"
        },
        {
          "tag": "gonx@v1.0.0",
          "kind": "other",
          "published_at": "2025-05-06T15:10:15Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.15",
          "kind": "other",
          "published_at": "2025-05-06T14:49:15Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.13",
          "kind": "other",
          "published_at": "2025-05-05T12:29:13Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.12",
          "kind": "other",
          "published_at": "2025-05-05T12:27:27Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.11",
          "kind": "other",
          "published_at": "2025-05-05T12:24:29Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.10",
          "kind": "other",
          "published_at": "2025-05-05T12:20:24Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.9",
          "kind": "other",
          "published_at": "2025-05-05T12:16:48Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.8",
          "kind": "other",
          "published_at": "2025-05-05T12:01:04Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.7",
          "kind": "other",
          "published_at": "2025-05-05T11:49:57Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.6",
          "kind": "other",
          "published_at": "2025-05-05T11:43:06Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.5",
          "kind": "other",
          "published_at": "2025-05-05T01:58:45Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.4",
          "kind": "other",
          "published_at": "2025-05-05T01:47:36Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.3",
          "kind": "other",
          "published_at": "2025-05-05T01:43:35Z"
        },
        {
          "tag": "nx-cloudflare@v5.0.0-rc.1",
          "kind": "other",
          "published_at": "2025-05-05T01:35:20Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.2",
          "kind": "other",
          "published_at": "2025-05-05T01:32:38Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.1",
          "kind": "other",
          "published_at": "2025-05-04T23:05:56Z"
        },
        {
          "tag": "nx-cloudflare@v5.0.0-rc.0",
          "kind": "other",
          "published_at": "2025-05-04T15:29:45Z"
        },
        {
          "tag": "gonx@v1.0.0-rc.0",
          "kind": "other",
          "published_at": "2025-05-04T15:29:45Z"
        },
        {
          "tag": "v4.0.2",
          "kind": "patch",
          "published_at": "2025-04-22T01:50:27Z"
        },
        {
          "tag": "v4.0.1",
          "kind": "patch",
          "published_at": "2025-04-10T22:04:27Z"
        },
        {
          "tag": "v4.0.0",
          "kind": "major",
          "published_at": "2025-02-15T14:54:07Z"
        },
        {
          "tag": "v3.1.1",
          "kind": "patch",
          "published_at": "2024-07-07T18:20:19Z"
        },
        {
          "tag": "v3.1.0",
          "kind": "minor",
          "published_at": "2024-07-07T16:45:04Z"
        },
        {
          "tag": "v3.0.0",
          "kind": "major",
          "published_at": "2024-05-18T23:39:08Z"
        },
        {
          "tag": "v2.2.0",
          "kind": "minor",
          "published_at": "2024-04-21T00:09:48Z"
        },
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2024-04-12T12:57:42Z"
        },
        {
          "tag": "v2.0.1",
          "kind": "patch",
          "published_at": "2024-03-04T12:51:11Z"
        },
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2024-03-02T23:10:30Z"
        },
        {
          "tag": "v1.0.2",
          "kind": "patch",
          "published_at": "2023-12-02T14:29:48Z"
        },
        {
          "tag": "v1.0.1",
          "kind": "patch",
          "published_at": "2023-11-19T02:01:25Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2023-10-26T22:57:07Z"
        },
        {
          "tag": "v0.8.1",
          "kind": "patch",
          "published_at": "2023-10-26T22:32:43Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2023-10-11T16:53:39Z"
        },
        {
          "tag": "v0.7.1",
          "kind": "patch",
          "published_at": "2023-10-11T00:39:45Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2023-09-18T01:39:59Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2023-09-10T17:26:40Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2023-09-10T03:37:24Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2023-09-01T21:50:02Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2023-08-19T20:56:23Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2023-08-07T13:14:59Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2023-08-06T21:00:47Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "4a7b96d7f0b96a824cde19977a1d8abe3f52bce8",
          "body": "- project: gonx 4.1.1",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-24T13:49:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f848eae86b8ffb4139b488a70676a747a85ec19d",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [x] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\nect for release purposes is the squash-merge\ntitle (`fix(gonx): ...` → patch release for gonx).\n\n---------\n\nSigned-off-by: Nacho Vazquez <nacho@naxo.dev>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(gonx): include dependency source in inferred target inputs (#218)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-24T13:48:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b83f3623fdf6a09914d8193dd17cae8e222d7022",
          "body": "- project: gonx 4.1.0\n\n- project: nx-cloudflare 7.1.0",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-21T14:40:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f65415150481e997829cdec7f09721e8c844aa1",
          "body": "Stop shipping the Nx framework as nested runtime dependencies. `@nx/devkit`\nand `@nx/js` are now peerDependencies at ^23.0.0 (same range as before);\n`wrangler` was already a peer.\n\nEvery consumer is an Nx workspace that already provides these packages, and\nmodern package managers auto-install peers,\n[…]\nt a major.\n\n`packageJsonUpdates` at 7.1.0 uses alwaysAddToPackageJson: true so\n`nx migrate @naxodev/nx-cloudflare` still inserts the peers for consumers that\nrelied on the previous transitive install.",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): move @nx/devkit and @nx/js to peerDependencies",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-21T14:24:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d2df28bc1709b6a78a630bd045f4792774e9b7ed",
          "body": "Stop shipping the Nx framework as nested runtime dependencies. `nx` and\n`@nx/devkit` are now peerDependencies at ^23.0.0 (same range as before).\n\nEvery consumer is an Nx workspace that already provides these packages, and\nmodern package managers auto-install peers, so this is a minor — not a major.\n\n`packageJsonUpdates` at 4.1.0 uses alwaysAddToPackageJson: true so\n`nx migrate @naxodev/gonx` still inserts the peers for consumers that relied\non the previous transitive install.",
          "is_bot": false,
          "headline": "feat(gonx): move nx and @nx/devkit to peerDependencies",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-21T14:24:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d4c1a36e099b47e167db71a160c2998b050290a",
          "body": null,
          "is_bot": false,
          "headline": "ci: publish production releases via OIDC with provenance",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-21T14:24:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "23721e196c314a2e8a4188b1e8e91f06dc7f71db",
          "body": "- project: gonx 4.0.2",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-21T01:44:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2fa0dd31de6326f13447e7bfd2890a93fda41c02",
          "body": "…d (#214) (#215)\n\nFixes #214.\n\n## Problem\n\nIn gonx v4, `createDependencies` fails Nx project-graph construction in\nworkspaces where a non-Go project — most commonly the workspace root\nproject (`root: \".\"`, e.g. a named root `package.json` in pnpm/bun\nmonorepos) — is affected without any `.go` files \n[…]\ngo.mod`/`.go` files, real parser) is the acceptance surface for\nthis patch.\n\nOut of scope, deliberately: moving `nx` from `dependencies` to\n`peerDependencies` (side note in #214) — tracked separately.",
          "is_bot": false,
          "headline": "fix(gonx): skip the findGoFiles fallback for projects without a go.mo…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-21T01:42:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1428ab6bf12db9ee26314f049114a9af6af3d10f",
          "body": "…n (#213)\n\n## TL;DR\n\nChad McElligott (`chadxz`) authored the original static-analysis\ndependency detection feature (#100) but never appeared in the\nall-contributors table — the PR was opened under Nacho's GitHub account\nwhile the underlying commits carried Chad's authorship. This PR adds him\nto `pac\n[…]\nhored by\n`chad.mcelligott@convergint.com`, matching GitHub user `chadxz`. Every\nother author touching that path since is already listed.\n\n## Links\n\n- [PR #100](https://github.com/naxodev/oss/pull/100)",
          "is_bot": false,
          "headline": "docs(gonx): credit chadxz for the static-analysis dependency detectio…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-09T00:21:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f1826e379b303320f89cec78dea3468c8284dafe",
          "body": "- project: gonx 4.0.1",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-07T19:35:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e597418789c1fe73bec180932e5f456148b5747",
          "body": "…nfig parsing (#212)\n\n## TL;DR\n\n`parseWranglerConfigStrict` always ran the text through `jsonc-parser`,\neven though most wrangler configs are plain JSON — @nx/devkit's own\n`parseJson` tries native `JSON.parse` first for exactly this reason.\nThis PR adds the same fast path: try `JSON.parse`, and fall\n[…]\nse\ngenerators delegate into `@nx/js`/`@nx/eslint` doesn't quietly get an\ninert mock.\n\n## Links\n\n- [#203](https://github.com/naxodev/oss/pull/203) — the wrangler-config\nconsolidation this follows up on",
          "is_bot": false,
          "headline": "perf(nx-cloudflare): add a JSON.parse fast-path to strict wrangler co…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-07T19:32:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "196379f89ac771808746b09c360dba7394f39fbc",
          "body": "## TL;DR\n\nRoot `package.json` listed 11 packages (astro/starlight/tailwind/typedoc\nbuild inputs) in both `dependencies` and `devDependencies`, which `bun\ninstall` flags with \"Duplicate dependency\" warnings. Each entry now\nlives only in `dependencies`, matching where `astro`, `react`, and\n`hono` alre\n[…]\ntarlight-typedoc`,\n`tailwindcss`, `tslib`, `typedoc`, and `typedoc-plugin-markdown` for\nbeing declared twice. No version specifiers changed — this only removes\nthe redundant `devDependencies` entries.",
          "is_bot": false,
          "headline": "chore: remove duplicate root dependency declarations (#209)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-07T19:31:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bc932a719a7a94ba789040a4cb73e0d66d13ba8a",
          "body": "…t schema (#211)\n\n## TL;DR\n\n`go-blueprint/schema.json`'s `feature` property is `type: array` but\nputs its `enum` directly on the property instead of on `items` — an\ninvalid JSON Schema shape (an array's element constraint belongs under\n`items`, not the array itself). This PR moves it under `items`, \n[…]\nding\n`gonx-docs` and finding `docker</code>)[]` unchanged in the built\ngo-blueprint guide page. `schema.d.ts` already types `feature?:\nstring[]` (not a narrowed literal union), so it needed no change.",
          "is_bot": false,
          "headline": "fix(gonx): declare the feature enum on array items in the go-blueprin…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-07T19:31:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f7d6d061121068fe296d30d0d0a796d18a2b049d",
          "body": "…lease publish (#210)\n\n## TL;DR\n\n`parseGoMod` swallows every go.mod read failure and returns `null`, so\n`nx-release-publish` reported \"Could not find module name\" even when the\nreal cause was `EACCES` or `go.mod` being a directory — a\nrelease-blocking path that hid the actual error. The executor now\n[…]\nerting that an `EACCES`\nread failure surfaces its message via `output.error`'s `bodyLines` and\nis not mislabeled as \"Could not find module name in ...\". The existing\ninvalid-content case is unchanged.",
          "is_bot": false,
          "headline": "fix(gonx): surface the real error when go.mod is unreadable during re…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-07T19:30:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2a64993ed32b28b2f5e888199249e50d4844f456",
          "body": "…rnals (#208)\n\n## TL;DR\n\n`packages/gonx/docs/static-analysis.md` duplicated the user-facing\nexplanation on the docs site — two copies that drift apart on the next\ncode change. This PR replaces it with a 57-line contributor-scoped doc\ncovering only what the site page deliberately omits: module layout\n[…]\nthe drift-guard pointer)\n- #204 (deleted the duplicated file; this PR supersedes that with the\ncontributor-scoped version)\n- [Canonical site\npage](https://gonx.naxo.dev/understanding/static-analysis/)",
          "is_bot": false,
          "headline": "docs(gonx): scope the package static-analysis doc to contributor inte…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-07T19:23:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d474f9dfe18137c504514ec158b12554d446417c",
          "body": "… (#207)\n\n## TL;DR\n\nThe generator guide pages had noun titles (\"application generator\",\n\"init generator\") though they live under a sidebar group described as\n\"Task-oriented how-tos for the plugin's generators\". Each page now\ncarries a task title (e.g. \"Scaffold a Worker application\", \"Set up the\nplu\n[…]\nly got\ncasing fixes (\"D1 executor\", \"Secret executor\") rather than task titles.\n\n## Links\n\n- #205 (the review pass that deferred this)\n- #204 (the schema-driven tables conversion this is rebased over)",
          "is_bot": false,
          "headline": "docs(nx-cloudflare): retitle generator guides to task-oriented titles…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-07T19:22:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7cce63cca65ca00263478684bbac665591da7f89",
          "body": "…oject graph (#206)\n\n## TL;DR\n\nThe library generator spec still built the real Nx project graph:\n`addLint` (via `@nx/js`'s library generator, since the spec's default is\n`linter: 'eslint'`) unconditionally calls `@nx/eslint`'s\n`lintInitGenerator`, which calls the real `createProjectGraphAsync`\nagain\n[…]\noss/pull/198) — the prior fix for\nthe same disease in other nx-cloudflare generator specs.\n- [#204](https://github.com/naxodev/oss/pull/204) — the docs PR whose\nworkspace-level changes trip this spec.",
          "is_bot": false,
          "headline": "test(nx-cloudflare): stop library generator spec building the real pr…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-07T02:16:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bd94e1696ce1a882883e0df59a56fc1047b1c58f",
          "body": "…e (#204)\n\n## TL;DR\n\n21 generator/executor doc pages hand-transcribed their option tables\nfrom each schema.json, so they could (and did) drift — the nx-cloudflare\n`create-cloudflare` page documented `c3Version` defaulting to `2.70.0`,\na value the schema never actually carried. This PR replaces every\n[…]\nreconciles both\nrather than picking one verbatim.\n\n## Tests\n\nBoth sites' builds and `typecheck` (`astro check`) targets pass. No unit\ntests changed — this PR is docs-content and shared-component only.",
          "is_bot": false,
          "headline": "docs: drive option tables from schemas and extract a shared docs them…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-07T02:14:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e528b14126d7d612727be7bf5c34c9fb11686ff7",
          "body": "…seams (#203)\n\n## TL;DR\n\n\"Read a wrangler config and pull out a binding array\" was implemented\nfour separate times across `plugin.ts`, `wrangler-config.ts`,\n`provision.ts`, and the binding generator, each with its own copy of the\njsonc formatting options and its own array-lookup logic that only\nhand\n[…]\n nx-cloudflare:test`), including 11 new\ntests for `entrypoint-editor.ts` covering braces in\nstrings/comments/template interpolation. Lint (including\n`nx-plugin-checks`), build, and typecheck all pass.",
          "is_bot": false,
          "headline": "refactor(nx-cloudflare): consolidate wrangler config access and exec …",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-06T18:11:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "39f45f9b51f1afe9aa7d3770d3e938c39273745f",
          "body": "…nference (#202)\n\n## TL;DR\n\nThe shared executor runner mutated `process.env` on every call, joined\ncommands into an unquoted shell string, and two release paths parsed\n`go.mod` with a naive regex that mis-parses quoted module paths — all\ninside a long-lived Nx daemon where one bad run can leak into \n[…]\nt`), including 12 new tests on the\ntarget-inference path (`get-targets-by-project-type.spec.ts`) and the\nnew env-leak regression test in `execute-command.spec.ts`. Lint, build,\nand typecheck all pass.",
          "is_bot": false,
          "headline": "fix(gonx): harden executor command execution and consolidate target i…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-06T18:07:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e1d3f34564075e70689ae15531d88ca85f77739f",
          "body": "… (#205)\n\n## TL;DR\n\nTen published docs pages rendered `import { Steps } from\n'@astrojs/starlight/components';` as literal page text because Starlight\nonly processes component imports in `.mdx`, and several pages documented\nthe wrong major (gonx 3.x instead of 4.x) or omitted real plugin surface\n(`ve\n[…]\nheck` — clean.\n- Both sites build with `--skip-nx-cache` (25 + 30 pages).\n- Built HTML grep-verified for all 10 renamed pages: no leaked\n`astrojs/starlight/components` text, `sl-steps` markup present.",
          "is_bot": false,
          "headline": "docs: fix stale versions, missing targets, and broken Steps rendering…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-06T18:01:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "aa9bbd6599414f8072e58376640348e6ef0e2216",
          "body": "… (#200)\n\n## TL;DR\n\nTwo robustness gaps surfaced while releasing gonx 4 / nx-cloudflare 7:\nthe release published a **stale `dist/` at the old version** (npm\nsilently re-tagged the already-published version instead of erroring),\nand the `nx-cloudflare` library generator spec **timed out on CI** when\n\n[…]\nrun nx-cloudflare:test` 16/16 files, `nx run gonx:test` 28/28 files,\n`nx format:check` clean. `manifestRootsToUpdate` validated via the\ndry-run above; full behavior exercised by the next real release.",
          "is_bot": false,
          "headline": "ci: publish the correct dist version and stabilize flaky test workers…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-06T16:13:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6bf7d2c298fb5d89ee416e1364b0e1f76f547796",
          "body": "…enerator (#201)\n\n## TL;DR\n\nThe generated TypeDoc reference for `nx-cloudflare` drifted from source\nafter the observability feature (#196) added `workerConfigGenerator`.\nThis syncs the two stale files: the reference index gains the new\ngenerator + schema, and the `createCloudflareGenerator` source l\n[…]\n already exist, so no dangling links.\n- `reference/functions/createCloudflareGenerator.md` — updates the\n\"Defined in\" source-line link (`L39` → `L43`).\n\nGenerated output only — no hand-authored prose.",
          "is_bot": false,
          "headline": "docs(nx-cloudflare): sync generated reference for the worker-config g…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-05T19:18:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bac4073e4f8d727f008fd3734719a709cde6f54b",
          "body": "- project: gonx 4.0.0\n\n- project: nx-cloudflare 7.0.0",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-05T18:50:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8ecec7b75efc048ba44de52e0affa174ced5733",
          "body": "## TL;DR\n\nType errors in spec files land silently on `main` — `bun test` strips\ntypes at runtime and `build` (`tsconfig.lib.json`) never type-checks\nspecs, so nothing gates them. This adds `typecheck` to the affected CI\ntarget and fixes the two pre-existing failures enabling it surfaced.\n\n**Files to\n[…]\n— this is green only on top of it. Base retargets to\n`main` once #198 merges.\n\n## Tests\n\n`nx run-many -t typecheck --all` passes (8 projects); `nx format:check`\nand `lint` (nx-cloudflare, gonx) clean.",
          "is_bot": false,
          "headline": "ci: gate CI on typecheck and fix the failures it surfaces (#199)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-05T18:48:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0aef38374ea720c4632be187cdcd5b2f1c8044b9",
          "body": "…ect graph (#198)\n\n## TL;DR\n\n`worker-config`'s generator spec timed out on CI (`this test timed out\nafter 5000ms`) because its \"not found\" test builds the **real** Nx\nproject graph and daemon from the `/virtual` test workspace — an\nunbounded, environment-dependent call. This stubs\n`createProjectGrap\n[…]\n`'s live\nnamespace binding — no `@nx/devkit` re-export needed.\n\n## Tests\n\nThe three specs pass in ~300–540ms (previously hanging to the 5000ms\ntimeout); full `nx-cloudflare:test` is 16/16 files green.",
          "is_bot": false,
          "headline": "test(nx-cloudflare): stop generator unit tests building the real proj…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-05T18:41:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "becd42bfbd836869d7c8cdd35f482cd98155bcb2",
          "body": "…ioned secrets (#132) (#196)\n\n## TL;DR\n\nProduction defaults that Workers users otherwise wire by hand —\nobservability logs, Smart Placement, and staged secrets for gradual\ndeployments — had no plugin support. This PR adds opt-in\n`--observability` / `--smartPlacement` flags (on the application\ngenera\n[…]\n green (15/15 spec files);\n`build`, `lint`, and the docs build pass.\n\n## Links\n\n- Closes #132 — surface observability, Smart Placement, and secrets DX\n- Part of #115 — nx-cloudflare modernization epic",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): surface observability, Smart Placement, and vers…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-05T17:57:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "08b863255ffc6d280b7d96d0821f6b8d54abd2ba",
          "body": "…ootOrThrow (#197)\n\n## TL;DR\n\n`resolveProjectRootOrThrow` caught **every** `createProjectGraphAsync`\nfailure and fell through to `Project \"x\" not found`, so a genuine\ngraph-build failure (a broken sibling project, a plugin failure) was\nreported as a missing project — sending users to debug the wrong\n[…]\ner, are unaffected. `build` and\n`lint` pass.\n\n## Links\n\n- Follow-up to #196 (surfaced during its review; refined by a second\nreview that flagged the raw-propagate papercut)\n- Helper introduced in #193",
          "is_bot": false,
          "headline": "fix(nx-cloudflare): propagate project-graph errors in resolveProjectR…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-05T02:36:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0c53acd4fb0a1b3b2d00dd0cffa256a4cde0d0c6",
          "body": "…h (#194)\n\n## TL;DR\n\nIn a mixed workspace, `nx show projects` (and every `nx build` / `nx\ntest`) printed one `WARN Failed to read go.mod file …: ENOENT` per\nnon-Go project — 5 lines in a workspace with 4 Cloudflare apps plus a JS\nlib. `parseGoMod` now treats an absent `go.mod` as the expected \"not a\n[…]\npackages: swapping in the compiled fix took `nx show projects`\nfrom 5 `Failed to read go.mod` warnings to 0, while the Go static import\nedge (`api → go-utils`) still resolves.\n\n## Links\n\n- Closes #195",
          "is_bot": false,
          "headline": "fix(gonx): skip missing go.mod files silently in static-analysis grap…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-02T22:28:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7da3796dd17593bd7b5168fc271cf73cea689cc8",
          "body": "…135) (#193)\n\n## TL;DR\n\nThere was no first-class way to put an existing Nx app on Cloudflare —\n`create-cloudflare` (C3) only scaffolds brand-new apps and `binding`\nonly edits a Worker that already has a `wrangler.jsonc`. This adds a\n`configuration` generator that authors a `wrangler.jsonc`, installs\n[…]\ning-entry\nwarning, and both the already-configured and unknown-project guards. Run\nwith `bunx nx test nx-cloudflare`. Lint, build, and both docs-site\nbuilds pass.\n\n## Links\n\n- Issue: #135\n- Epic: #115",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): add configuration generator for existing apps (#…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-07-02T22:27:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "568208d0b141ba49bea44700c3f5e10e71ffcf25",
          "body": "## TL;DR\n\nAdding a D1- or secrets-bearing Worker via the `binding` generator left\na \"Day 2\" gap: applying D1 migrations and managing Worker secrets meant\ndropping to raw `wrangler` commands. This PR adds two inference-driven\nexecutors, so `nx d1-apply <worker>`, `nx secret-put <worker>\n--name=API_KE\n[…]\nxecutorContext`\npath end-to-end.\n\n`nx test`, `nx lint`, `nx build` for `nx-cloudflare` and the new e2e all\npass.\n\n## Links\n\n- Partially addresses #132 (secrets DX)\n- Builds on #185 (binding generator)",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): add D1 migrations and secrets executors (#190)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-28T20:29:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "644c58939387771cd50bd742873de02664365cc6",
          "body": "Standardizes how target-run commands are written across the gonx docs\nsite and the root `CLAUDE.md`, matching the form already used in the\nnx-cloudflare docs: `nx run <project>:<target>` instead of `nx <target>\n<project>`.\n\nNon-target commands are intentionally left untouched — `nx add`, `nx g`,\n`nx\n[…]\nt, first-go-project tutorial, migration,\nand contributing guides\n- root `CLAUDE.md` — the Commands section and single-test example\n\nDocs-only; both docs sites build clean and `nx format:check` passes.",
          "is_bot": false,
          "headline": "docs: standardize nx commands on the run <project>:<target> form (#192)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-28T20:27:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "68ea0ec5412ab379417b18bfaf030cc0ad2c5b15",
          "body": "…nts (#131) (#191)\n\n## TL;DR\n\nThe plugin infers a `version-upload` target (`wrangler versions upload`,\nwhich stages a Worker version at 0% traffic) but has no target for the\npromotion half of [gradual\ndeployments](https://developers.cloudflare.com/workers/configuration/versions-and-deployments/gradu\n[…]\ndeploy` → `wrangler versions deploy` with\n`cache` undefined, and the custom-names test exercises\n`versionDeployTargetName`. Run with `bunx nx test nx-cloudflare` (10/10\nspec files pass).\n\nCloses #131.",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): infer version-deploy target for gradual deployme…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-27T18:15:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "35d08c69fac644c1491f7631b6915b74f057b969",
          "body": "## TL;DR\n\nFinal go-live polish for the `gonx@4.0.0` / `nx-cloudflare@7.0.0`\nmajors: validate gonx's `migrations.json` under `@nx/nx-plugin-checks`\n(#149), add the missing 7.0.0 breaking-change note + fix the\ncompatibility table on the nx-cloudflare README (#155), point\nnx-cloudflare's npm `homepage`\n[…]\nth plugins and `nx format:check` is clean.\n\n## Links\n\n- Closes #149 — run nx-plugin-checks lint target\n- Closes #155 — document the removal of Next.js support\n- #115 — nx-cloudflare modernization epic",
          "is_bot": false,
          "headline": "chore: prep gonx 4 + nx-cloudflare 7 go-live (#149, #155) (#189)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-25T12:33:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8f34023fe797a469a76056768e6f65caf9c4b882",
          "body": "….0.0 (#188)\n\n## TL;DR\n\nNeither docs site had a place to announce a release, so the gonx 4.0.0\nand nx-cloudflare 7.0.0 majors would ship with only a migration guide.\nThis adds a **\"What's New\"** sidebar section to both Starlight sites and\nan announcement post for each upcoming major.\n\n**Files to rev\n[…]\n.\n\n## Tests\n\nNo code paths. Verified `bunx nx build gonx-docs` and `bunx nx build\nnx-cloudflare-docs` both succeed — the new pages and the `whats-new`\nllms.txt set emit — and `nx format:check` passes.",
          "is_bot": false,
          "headline": "docs: add What's New release posts for gonx 4.0.0 and nx-cloudflare 7…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-24T14:37:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2d37a996417e165840e3253ef941d97a2cf471a2",
          "body": "…es (#179) (#187)\n\n## TL;DR\n\nThe #179 audit found one 7.0.0 breaking change with no `nx migrate`\npath: #159, which turned the `application` generator into a\n`create-cloudflare` (C3) alias. This adds the missing migration\n(`update-7-0-0-application-aliases`) and codifies the rule that broke\ndown here\n[…]\nnks\n\n- [#179 — migration audit](https://github.com/naxodev/oss/issues/179)\n(audit table posted as a comment)\n- [#159 — application → create-cloudflare\naliases](https://github.com/naxodev/oss/pull/159)",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): add migration for application generator C3 alias…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-24T13:59:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "13337ec386cbc83f682c0b433f6ae5c72c4032c3",
          "body": "## TL;DR\n\n`CLAUDE.md` didn't say where issues are tracked, so an agent had no\nsignal to reach for GitHub Issues. This adds one line to the Overview\npointing at GitHub (and the `gh` CLI) for finding, referencing, and\ntriaging issues.",
          "is_bot": false,
          "headline": "docs: note that issues live on GitHub in CLAUDE.md (#186)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-24T13:46:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e6636de6f466d5362f722999fba54dca7a846e8",
          "body": "…flow/Service (#185)\n\n## TL;DR\n\nWiring a binding's config block + `Env` field (+ class & migrations for\nDO/Workflow) by hand is the core daily friction in a Cloudflare Worker\nworkspace — exactly where an Nx generator shines. This PR adds `nx g\n@naxodev/nx-cloudflare:binding\n--type=kv|r2|d1|do|queue|\n[…]\nnfig support (if demand materializes)\n- `--remove` flag or a `remove-binding` generator\n\n## Links\n\n- [#133 — nx-cloudflare: add a binding/resource\ngenerator](https://github.com/naxodev/oss/issues/133)",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): add binding generator for KV/R2/D1/DO/Queue/Work…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-24T13:24:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "385fac1a4ed35a42fd2aa7ce183219aa8c822846",
          "body": "…ataxis, TypeDoc, and Tailwind design system (#156) (#184)\n\n## TL;DR\n\nBoth docs sites (`gonx-docs` and `nx-cloudflare-docs`) have been\nupgraded from basic Starlight setups to a maelstrom-level architecture:\nTailwind v4 + glassmorphism design system, custom component overrides\n(sidebar, theme toggle,\n[…]\nrmat:check` → clean\n\n## Links\n\n- Closes #156\n- Part of #115 (nx-cloudflare modernization epic)\n- Architecture adapted from\n[maelstrom-co/maelstrom](https://github.com/maelstrom-co/maelstrom) docs\nsite",
          "is_bot": false,
          "headline": "docs: upgrade both docs sites to maelstrom-level architecture with Di…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-23T13:02:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f839ae1e36fab684adb8119ebdefdfad77b59b3f",
          "body": "…(#182)\n\n## TL;DR\n\nThe bun migration (#175) left the unit `test` target uncached (`nx\naffected -t test` re-ran from scratch every time, no local or Nx Cloud\ncache) and the e2e Verdaccio harness carrying a bloated helper fork plus\ncross-process coordination inlined into the publish script. This PR ad\n[…]\nr the four essential\nworkarounds (version-restore, Nx-version pin, scoped-registry reset,\nbun-cache eviction).\n\n## Links\n\n- Closes #176\n- Follow-up to #175 (bun + TypeScript project linking migration)",
          "is_bot": false,
          "headline": "test: align bun test + e2e registry harness with Nx standards (#176) …",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-21T16:55:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6b9f8103e90b7fc2cb0efc1650e107f32e141592",
          "body": "…s (#91) (#183)\n\n## TL;DR\n\n`nx release` on a release group of interdependent Go projects crashed\nwith `Method not implemented.` —\n`GoVersionActions.readCurrentVersionOfDependency` was never implemented.\nThis implements it to report no applicable dependency version, mirroring\nnx's own `NOOP_VERSION_A\n[…]\ned the\n`Method not implemented.` crash, and now asserts the `{ currentVersion:\nnull, dependencyCollection: null }` contract. Full suite: `bunx nx test\ngonx` (28/28 files pass).\n\n## Links\n\n- Closes #91",
          "is_bot": false,
          "headline": "fix(gonx): implement readCurrentVersionOfDependency for release group…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-20T21:58:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "97dff0fc8ca0ef26f92e2278c9b1612d710ffd93",
          "body": "…rtifact (#128) (#181)\n\n## TL;DR\n\nA freshly scaffolded Worker committed its `worker-configuration.d.ts` —\nthe file `wrangler types` regenerates — so generated types landed in\nversion control and drifted from the `wrangler` config. The\n`create-cloudflare` generator now treats it as the build artifact\n[…]\nd a `.gitignore`\nis created when the scaffold ships none. Full suite green: `bunx nx test\nnx-cloudflare` (8 files, 98 tests).\n\n## Links\n\n- Closes #128\n- Part of #115 (nx-cloudflare modernization epic)",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): treat worker-configuration.d.ts as a generated a…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-20T21:22:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "88c8b18642b55eb99ffcde205fa9c037e776e23c",
          "body": "…#180)\n\n## TL;DR\n\nBoth plugins shipped `feat!` breaking changes with no `nx migrate` path\n— gonx had zero migrations before #178. Auditing the full `!`-history\n(see\n[#179](https://github.com/naxodev/oss/issues/179#issuecomment-4758732454))\nfound target inference absorbed nearly all of them, leaving \n[…]\nth plugins,\n`nx format:check` is clean, and both `.md` files plus the updated\n`migrations.json` land in `dist/`.\n\n## Links\n\n- [#179 — audit + findings\ntable](https://github.com/naxodev/oss/issues/179)",
          "is_bot": false,
          "headline": "feat: ship prompt migrations for unmigrated breaking changes (#179) (…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-20T16:06:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "db009adba81daa81528fee5b60b5e1f15471aa60",
          "body": "## TL;DR\n\nNx 23 shipped, so this upgrades the workspace from **22.7.5 → 23.0.0**\nthrough the official `nx migrate` flow and moves both published plugins\nonto Nx 23. `@naxodev/nx-cloudflare` and `@naxodev/gonx` now require Nx\n23 (`nx`/`@nx/devkit`/`@nx/js` bumped to `^23.0.0`), and consumers get a\non\n[…]\nere, but earlier\n`feat(gonx)!:` releases never had an `nx migrate` path; that issue\ntracks backfilling the gaps (using Nx 23's prompt/hybrid/`documentation`\nshapes where deterministic isn't possible).",
          "is_bot": false,
          "headline": "feat!: migrate workspace and plugins to Nx 23 (#178)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-20T13:09:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f859023ba3c2c8ed99a744685749d6c355928c46",
          "body": "## TL;DR\n\nReworks npm publishing for the repo: PR-labeled **preview** packages\npublish to npm automatically via OIDC trusted publishing (tokenless),\nwhile **production** releases move to a documented, mostly-automated\nmanual flow. The token-based CI release workflow is removed — npm allows\nonly one \n[…]\nlabeled run published\n`@naxodev/gonx` and `@naxodev/nx-cloudflare` at `0.0.0-pr.174.*` under\n`pr-174` with SLSA provenance, and posted the install comment.\n`actionlint` clean, `nx format:check` clean.",
          "is_bot": false,
          "headline": "ci: add OIDC PR preview publishing and move releases to manual (#174)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-19T16:29:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1b9f4fb22c1dfcf5ad08de97135b67bbeef72ae3",
          "body": "…vitest (#172) (#173)\n\n## TL;DR\n\nA worker generated via `nx g @naxodev/nx-cloudflare:app\n--type=hello-world` has `serve`/`deploy`/`typegen`/`tail` targets but\n**no `test` target** — `nx test <app>` fails with *\"Cannot find\nconfiguration for task <app>:test\"*, even though C3 scaffolds a complete\nvite\n[…]\nipt is gone and the inferred `test` target resolves to vitest\n(`command`/`metadata.technologies`), alongside the existing\nserve/deploy/$schema/prune assertions.\n\n## Links\n\n- Closes #172\n- Part of #115",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): infer test target for generated workers via @nx/…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-19T16:16:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ebdbcefdaf868c832b589f0861383facb5439c56",
          "body": "## TL;DR\n\nThe workspace ran on **pnpm + an integrated Nx layout** (tsconfig\n`paths`, Jest, a `vitest.workspace.ts`). This migrates it to **bun +\nTypeScript project linking**: bun workspaces with a single root version\n`catalog`, composite `tsconfig` project references managed by `nx sync`,\nand `bun t\n[…]\n6-06-07-phase-1-bun-catalog.md`,\n`docs/superpowers/plans/2026-06-08-phase-2-ts-project-linking.md` (in\nthis PR)\n- Nx TypeScript project linking:\nhttps://nx.dev/docs/concepts/typescript-project-linking",
          "is_bot": false,
          "headline": "build: migrate workspace to bun + TypeScript project linking (#175)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-19T15:08:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0d1c66b6f3341a348ab4f60a38c45efc3e680176",
          "body": "… (#138) (#170)\n\n## TL;DR\n\nThe plugin shipped **zero** migrations, so consumers couldn't run `nx\nmigrate @naxodev/nx-cloudflare@latest` — every breaking change in the\n7.0.0 cluster (#137 serve/deploy removal, #126 Next.js removal) was a\nmanual `project.json` edit. This adds `migrations.json` + the\n`\n[…]\nite exercises the tree transform\ndirectly.\n\n## Links\n\n- Closes #138\n- Pairs with #137 (#162) — same 7.0.0 release · Part of #115\n- Supersedes ~~#168~~ (closed) · Related: #172 (missing Nx test target)",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): ship migrations.json and the nx-migrations field…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-18T00:22:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "27577c10545ecf187600086b6605aab1b0432f57",
          "body": "…ripts from generated workers (#171)\n\n## TL;DR\n\n`create-cloudflare` imported config and scripts from C3 that clash with\nor duplicate the workspace and the plugin's inferred targets. This trims\nboth so generated workers rely on **workspace-level config + inferred\nWrangler targets** as the single sour\n[…]\noudflare.spec.ts`): the\nsame assertions against **real** C3 output, so a future C3 rename\nsurfaces.\n\n## Links\n\n- #159 (the create-cloudflare work this follows up; flagged there as an\noptional cleanup)",
          "is_bot": false,
          "headline": "fix(nx-cloudflare): drop C3 editor config and wrangler-duplicating sc…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-17T14:15:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0080fd97d2b26af18124e1d7fc91cd33fb7c8b38",
          "body": "…flare aliases (#159) (#169)\n\n## TL;DR\n\nThe `application` generator carried its own copies of Cloudflare's\nWorker templates (`fetch-handler`, `scheduled-handler`, `hono`) plus an\n`@nx/node` + `@nx/vitest` scaffolding path — a perpetual treadmill\nagainst C3's catalog. This PR makes **`application` an\n[…]\nc.ts` is now an `:app` alias smoke test (real C3).\nPackage: 80 tests, build, lint, format green; e2e green in CI.\n\n## Links\n\n- #159 (design + plan)\n- #167 (the create-cloudflare generator these alias)",
          "is_bot": false,
          "headline": "feat(nx-cloudflare)!: replace application generator with create-cloud…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-17T12:47:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "31e782de443c89fb9f1aea67ba6ae132193ed477",
          "body": "## TL;DR\n\nThe `application` generator ships its own copies of Cloudflare's Worker\ntemplates (`fetch-handler`, `scheduled-handler`, `hono`) — a permanent\ntreadmill against C3's evolving catalog (see #145, #155). This PR adds a\n`create-cloudflare` generator that wraps the real `create-cloudflare`\n(C3)\n[…]\ng`, `.vscode/`,\n`AGENTS.md`) that may clash with workspace config.\n\n## Links\n\n- #159 (design + plan)\n- #140 (superseded — its `useProjectJson` / solution-setup branching is\nfolded into this generator)",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): add create-cloudflare (C3) generator (#159) (#167)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-17T00:29:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "348220e72501f3bad495e381721971184c8eaabf",
          "body": "…ing (#108, #113, #104) (#160)\n\n## TL;DR\n\nThree follow-ups from PR #106's review hardened the Go build-constraint\nanalyzer: policy (`cgo`, Go version) was hardcoded inside `matchTag` and\ninvisible from the type; the shared default `BuildContext` was mutable\nand mapped cygwin to a non-existent GOOS; \n[…]\ngithub.com/naxodev/oss/issues/113)\n- [#104 — harden WASM loading for tree-sitter under\nJest](https://github.com/naxodev/oss/issues/104)\n- Parent review: [#106](https://github.com/naxodev/oss/pull/106)",
          "is_bot": false,
          "headline": "feat(gonx): harden build-constraint context and tree-sitter WASM load…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-09T02:35:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2b61e80b61a415a9dcccdf5d1b2d54e21b1aef3e",
          "body": "…(#166)\n\n## TL;DR\n\nThe `createNodesV2` inference plugin memoized computed targets in a\n`.nx/cache` file keyed by config path+content and plugin options — but\n**not** the plugin's own code version. So upgrading\n`@naxodev/nx-cloudflare` to a version that changes the inferred targets\nserved stale targe\n[…]\nred by\nthe richer five-target test). No behavior change to the inferred targets\nthemselves.\n\n## Links\n\n- Closes #164\n- Cache originated in #136 (#158); staleness surfaced in #137 (#162) ·\nPart of #115",
          "is_bot": false,
          "headline": "refactor(nx-cloudflare): drop the createNodesV2 targets-cache (#164) …",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-09T02:34:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c0df7b817d3d4d5e4030e381ddd8f908bc8c2fc1",
          "body": "…ted worker projects (#163) (#165)\n\n## TL;DR\n\nThe application generator already strips `@nx/node`'s `build`/`serve`\ntargets, but `@nx/node` *also* emits `prune`, `prune-lockfile`, and\n`copy-workspace-modules` — all `dependsOn: ['build']`. With `build`\ndeleted these dangle (`nx prune <app>` can't res\n[…]\nviving target `dependsOn` a\nstripped one — the future-`@nx/node` guard described above.\n\n30 unit tests pass; lint and format clean.\n\n## Links\n\n- Closes #163\n- Follow-up from #137 (#162) · Part of #115",
          "is_bot": false,
          "headline": "fix(nx-cloudflare): strip dangling @nx/node prune targets from genera…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-09T02:32:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "070a79c23b6d5d3be37910b59b0deeb209059813",
          "body": "…rgets (#137) (#162)\n\n## TL;DR\n\nThe `serve`/`deploy` executors duplicated what the #136 inference plugin\nnow provides, and the generator still wrote explicit executor targets\ninto `project.json` that **shadowed** the inferred ones. This deletes\nboth executors and stops generating those targets, so\n`\n[…]\nesV2 targets-cache on plugin\nversion change (cache key omits the plugin code version, so upgrades\nneed `nx reset`; pre-existing from #136).\n\n## Links\n\n- Closes #137\n- Builds on #136 (#158)\n- Epic #115",
          "is_bot": false,
          "headline": "feat(nx-cloudflare)!: replace serve/deploy executors with inferred ta…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-07T13:30:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8e3d82109de6c15010a05a991bf5d692587a955b",
          "body": "## TL;DR\n\nThis repo had no `CLAUDE.md`, so Claude Code started each session blind\nto the monorepo's non-obvious shape — independent per-project releases,\nthe shared-Verdaccio e2e setup, and the `createNodesV2` inference\nplugins. This adds one at the root covering commands, architecture, the\nrelease/\n[…]\nh a\nsanity check against your mental model.\n- **No release impact.** The file is workspace-root only and touches no\npublished project, so it won't trigger a version bump for `gonx` or\n`nx-cloudflare`.",
          "is_bot": false,
          "headline": "docs: add CLAUDE.md with repo guidance for Claude Code (#161)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-06T22:40:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bf4d6c9d46a2ac70205cef3ed3980ca68dcc1de0",
          "body": "## TL;DR\n\nThe plugin had no Nx 22 inference, so every Cloudflare Worker project\nhad to hand-write its `serve`/`deploy` targets in `project.json` — the\nonly `plugins/` entry was a Next.js webpack helper, not Crystal. This\nadds a `createNodesV2` plugin that globs `wrangler.{toml,jsonc,json}`\nand infer\n[…]\nalid + one invalid in a single invocation), cross-run cache identity,\nand graceful skip when the project directory is unreadable. Run with `nx\ntest nx-cloudflare`.\n\n## Links\n\n- Closes #136\n- Epic #115",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): add createNodesV2 inference plugin (#136) (#158)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-06T21:19:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "af70c30a66deffcf0e0196db8b0e28dd4f41d06b",
          "body": "…st config to v4 (#157)\n\n## TL;DR\n\nThe init generator scaffolds worker projects with stale toolchain\nversions — `vitest ^3.2.4`, `@cloudflare/vitest-pool-workers ^0.12.0`,\n`wrangler ^4.26.0`. This bumps all five scaffolded dependencies to\nlatest, which drags `vitest` across a major (3 → 4) and `pool\n[…]\n's tests.\n\n## Follow-up\n\nThe e2e gap is worth closing: add a \"generate app → run its vitest\ntests\" case to `nx-cloudflare-e2e` so future vitest/pool-workers bumps\nare caught in CI rather than by hand.",
          "is_bot": false,
          "headline": "feat(nx-cloudflare)!: bump scaffolded deps to latest and migrate vite…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-06T21:19:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1717a9805c49df6650b3a92d2a8ecf5a8cb4f9cf",
          "body": "…p, drop deep @nx imports (#141, #142, #139) (#153)\n\n## TL;DR\n\nCorrects the published-package shape after the Next.js drop: `@nx/*`\nstay in `dependencies` (matching every official Nx plugin — see below),\n`wrangler` becomes a `peerDependencies` (the `@nx/vite`→`vite` pattern),\nan `exports` map is add\n[…]\nNx's generator/executor resolution from the installed\ntarball and that the `wrangler` peer is satisfied.\n- `pnpm install --frozen-lockfile` in sync.\n\n## Links\n\n- Closes #141, #142, #139\n- Part of #115",
          "is_bot": false,
          "headline": "fix(nx-cloudflare): correct dependency classification, add exports ma…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-06T05:11:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b600fba56d8810ccdbf347494f0f9bf02255060f",
          "body": "…rmat option (#127) (#154)\n\n## TL;DR\n\nThe application generator emitted `wrangler.toml`, but Cloudflare\nrecommends `wrangler.jsonc` (C3 scaffolds it, some features are\nJSON-only) and JSONC is far safer to edit programmatically — which the\nupcoming binding generator depends on. The generator now emit\n[…]\nll suite green — 101 tests, lint, and build all pass; both\ntemplate folders ship to `dist`. Run with `nx test nx-cloudflare`.\n\n## Links\n\n- Closes #127\n- Part of #115 (nx-cloudflare modernization epic)",
          "is_bot": false,
          "headline": "feat(nx-cloudflare): generate wrangler.jsonc by default with configFo…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-06T04:21:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "712a9ab5748b092d8a3d1d0d81cc2f1b81f72037",
          "body": "…ck subsystem) (#126) (#152)\n\n## TL;DR\n\nThe Next.js integration was built on the deprecated\n`@cloudflare/next-on-pages`; rather than migrate to OpenNext, this drops\nit entirely. Removes the `next-build` executor, the vendored webpack\nsubsystem, the example app, and 14 now-dead dependencies — **46 fi\n[…]\nired checks)\nin the dashboard — it's not in the repo's control.\n- Orphaned React-ecosystem deps and `runs-on: ${{ matrix.os }}` in\n`ci.yml` — separate cleanups.\n\n## Links\n\n- Closes #126\n- Part of #115",
          "is_bot": false,
          "headline": "feat(nx-cloudflare)!: drop Next.js support (remove next-build + webpa…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-05T14:28:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "36e21b6dc2f27cbaa24751389c35c8a968cfe386",
          "body": "…Verdaccio (#143) (#151)\n\nMigrates **both** the `nx-cloudflare-e2e` and `gonx-e2e` suites from the\nlegacy `ensureNxProject` fixture (which copies the built `dist` into a\nworkspace) to `createTestProject` — creating a real Nx workspace and\ninstalling the plugin from the local Verdaccio registry. This\n[…]\n: `ci.yml` hardcodes\n`runs-on: ubuntu-latest` instead of `${{ matrix.os }}`, so the\n`macos-latest`/`windows-latest` matrix entries actually run on ubuntu —\nthe cross-OS coverage is currently illusory.",
          "is_bot": false,
          "headline": "test(e2e): migrate nx-cloudflare and gonx e2e to createTestProject + …",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-05T12:55:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dd2ca84639180a580ad5ac7e2d1bb718c5461b4b",
          "body": "…generators (#150)\n\nClears the Tier-0 correctness bugs from the nx-cloudflare modernization\nepic (#115). Each fix is its own commit and was developed test-first.\n\n## What's fixed\n\n**CLI / executors**\n- `createCliOptions` no longer drops `false`/`0`/`\"\"`, renders booleans\nas `--flag`/`--no-flag`, and\n[…]\n-options` (10), executor `schema-contract` (14),\n`project-paths` (4), public-API barrel (1), plus a\ncurrent-`compatibility_date` generator test. Package suite: **95\npassing**, lint clean, build green.",
          "is_bot": false,
          "headline": "fix(nx-cloudflare): correctness fixes for Wrangler v4, CLI args, and …",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-04T12:08:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "16864f968484190f3d66049089d807d054a4d660",
          "body": "## Summary\n\nBumps the Nx toolchain from **22.3.3 → 22.7.5** (all `@nx/*` packages\nand `nx`), along with related dev tooling, and applies the migrations\ngenerated by `nx migrate`.\n\n### Dependency bumps\n- `@nx/*` and `nx`: `22.3.3` → `22.7.5`\n- `nx-cloud`: `19.1.0` → `19.1.3`\n- `@swc-node/register`, `\n[…]\net default inputs\n- Disable Nx analytics in `nx.json`\n\n## Verification\n- `nx report` — loads cleanly at 22.7.5, all plugins register\n- `nx show projects` — project graph builds, all 8 projects resolve",
          "is_bot": false,
          "headline": "chore(core): migrate to nx 22.7.5 (#114)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-03T01:33:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5a507ee0184b5486a305c881ac8da116c2245a25",
          "body": "Closes #101, #107, #109, #110, #111, #112.\n\n## What\n\nAdds in-source Go build-constraint evaluation (`//go:build` and legacy\n`// +build`) to the gonx static-analysis pipeline. A file gated to a\ndifferent GOOS/GOARCH than the host no longer contributes edges to the\nproject graph.\n\nNow also includes th\n[…]\nass** (was 216 → 237 → 248 → 250 across\niterations)\n- `tsc --noEmit -p tsconfig.lib.json` → clean\n- `tsc --noEmit -p tsconfig.spec.json` → clean\n- `nx lint gonx` → 0 errors\n- `nx format:check` → clean",
          "is_bot": false,
          "headline": "feat(gonx): evaluate Go build tags during static analysis (#106)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-06-01T12:47:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c12c1d92e59f940ed2667864720d7b5fc954889d",
          "body": "Closes #103.\n\n## What\n\n- `packages/gonx/src/graph/static-analysis/index.ts` — replace `await\nimport('p-limit')` with a top-level static `import pLimit from\n'p-limit'`. Drop the workaround comment.\n- `packages/gonx/src/graph/create-dependencies.spec.ts` — replace the\nbare `jest.mock('./static-analysi\n[…]\ny\n\nNode 22.12+ supports `require()` of synchronous ESM modules, and the\nproject pins Node 22 (`.nvmrc`). Verified locally on Node 22.18 that\n`require('p-limit')` resolves the default export correctly.",
          "is_bot": false,
          "headline": "refactor(gonx): use static p-limit import (#105)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-05-30T20:48:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b9ba7679aefa406c38be12f1e9b77ec7e82d58c0",
          "body": "Continues and supersedes #99 by @chadxz, who authored the original\nimplementation. This branch carries his two commits unchanged and adds\none fix on top to get CI green so the work can land.\n\nAddresses #98.\n\n## What this does\n\nReplaces the Go-runtime dependency detection (`go list -m -json`) with a\n\n[…]\nng warnings only)\n- `nx build gonx` — pass\n- `nx test gonx` — 209/209 pass\n- `nx e2e gonx-e2e` (static-analysis) — 2/2 pass\n\n---------\n\nCo-authored-by: Chad McElligott <chad.mcelligott@convergint.com>",
          "is_bot": false,
          "headline": "feat(gonx): add static analysis dependency detection (#100)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-05-30T12:53:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3a4c42959367c5a15161e4f17e31e00f5af362c0",
          "body": "- project: nx-cloudflare 6.0.0",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-01-15T16:23:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6929e86fd3c003de55f9842cea4d619ef4280fbb",
          "body": "- project: gonx 3.0.0",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-01-15T16:19:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "590a2fc92597e7554d66c819e747f4ac18c4b983",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [x] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\nhavior?\n\nWe are using Nx 21\n\n## What is the new behavior?\n\nWe are migrating to Nx 22\n\n## Does this PR introduce a breaking change?\n\n```\n[x] Yes\n[ ] No\n```\n\n\nThe minimum supported version will be Nx 22",
          "is_bot": false,
          "headline": "chore(core)!: update to nx 22 (#97)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2026-01-15T16:09:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9ee46a242d692ce1066919ec8706d9a55f4a8949",
          "body": "- project: gonx 2.1.0",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-09-10T21:00:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f28015b0c0dcd74e7a17cbab09d265ea74fe270c",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [x] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\n application generator meaning no restrictions or limitations for\nusers to keep using the generator without being aware of the changes, it\nwill keep using the standard templates.\n\n## Other information",
          "is_bot": false,
          "headline": "feat(gonx): CLI and TUI templates for Go applications (#92)",
          "author_name": "Abel Penton",
          "author_login": "abelpenton",
          "committed_at": "2025-09-09T21:23:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "aac8a55e6c61b03b54b6dcd2a005473647fa2975",
          "body": "- project: nx-cloudflare 5.0.2",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-09-07T16:32:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd5aa7efafa925fc52ff4d78076adfeb387cf572",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [ ] Tests for the changes have been added (for bug fixes / features)\n- [x] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\nher... Please describe:\n```\n\n## What is the new behavior?\n\nWe have added @Destreyf  as a contributor in the all-contributor table.\n\n## Does this PR introduce a breaking change?\n\n```\n[ ] Yes\n[x] No\n```",
          "is_bot": false,
          "headline": "chore: add chris tunbridge as contributor (#96)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-09-07T16:30:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fc96bb6afb7855671588935c7f62cec9db69a313",
          "body": "…ng (#95)\n\nWrangler warns when PWD does not start with \"/\". In some shells/CI, PWD\nmay be unset or relative, triggering the warning.\n\nAlways provide an absolute PWD: prefer process.cwd(); if env.PWD is set\nbut not absolute, resolve it to an absolute path before passing to\nWrangler. This removes the \n[…]\ntroduce a breaking change?\n\n```\n[ ] Yes\n[X] No\n```\n\n<!-- If this PR contains a breaking change, please describe the impact\nand migration path for existing applications below. -->\n\n## Other information",
          "is_bot": false,
          "headline": "fix(nx-cloudflare/serve): make PWD absolute to silence Wrangler warni…",
          "author_name": "Chris Tunbridge",
          "author_login": "Destreyf",
          "committed_at": "2025-09-05T01:32:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "62084a6ccd6b22c39d06b9b1d538dd102e519be4",
          "body": "- project: nx-cloudflare 5.0.1",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "nacho-vazquez",
          "committed_at": "2025-08-24T01:50:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c6ad793a77d399b9638d3508da8bfd8875f2a22",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [ ] Tests for the changes have been added (for bug fixes / features)\n- [ ] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\n execution\n- Removed an extra comma in the package.json file\n- Simplified the normalized options\n- Update Nx to the latest version\n\n## Does this PR introduce a breaking change?\n\n```\n[ ] Yes\n[x] No\n```",
          "is_bot": false,
          "headline": "fix(nx-cloudflare): nx cloudflare project generation (#94)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-08-24T01:43:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e5680b5b3f203f08fbe3945efec75e3aafda5f68",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [ ] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nC\n[…]\ntroduce a breaking change?\n\n```\n[ ] Yes\n[x] No\n```\n\n<!-- If this PR contains a breaking change, please describe the impact\nand migration path for existing applications below. -->\n\n## Other information",
          "is_bot": false,
          "headline": "feat(gonx): cleanup go blueprint unnecessary files (#90)",
          "author_name": "Abel Penton",
          "author_login": "abelpenton",
          "committed_at": "2025-08-23T20:32:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e52aa981084d9c43f3d050863db05a005c5b6459",
          "body": "- project: gonx 2.0.2",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-28T03:07:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1c9471060a48c2c5a7c1fe618813b9d8febb548",
          "body": null,
          "is_bot": false,
          "headline": "fix: make gonx-docs an implicit dependency of gonx",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-28T03:03:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "89a1f73e8bfe64b764ad7e5f013091f2214f6b06",
          "body": null,
          "is_bot": false,
          "headline": "chore: make docs bump the version",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-28T02:57:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "defa90d427fbfdf75a438cd8136387a25090d5a1",
          "body": null,
          "is_bot": false,
          "headline": "docs(gonx): use the docs as the project page",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-28T02:52:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2dc00e395365539688f568d2c2d1d7ad9b4fdff2",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [ ] Tests for the changes have been added (for bug fixes / features)\n- [x] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\n Other... Please describe:\n```\n\n## What is the new behavior?\n\nWe have added the cloudflare workers configuration for the gonx docs\n\n## Does this PR introduce a breaking change?\n\n```\n[ ] Yes\n[x] No\n```",
          "is_bot": false,
          "headline": "docs: create docs cloudflare workers configuration (#89)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-28T02:05:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5bb7d63676ac1c7006c43d0c3158e1176eedd0f9",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [x] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\ne.json` with a `project.json` and now nx is\nproperly detecting the project.\n\nWe have also update to the latest minor version of Nx\n\n## Does this PR introduce a breaking change?\n\n```\n[ ] Yes\n[x] No\n```",
          "is_bot": false,
          "headline": "docs: fix gonx-docs nx configuration (#88)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-28T00:08:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7cc2391360efb47d55d7dfeefe73fbe7b262d20a",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [ ] Tests for the changes have been added (for bug fixes / features)\n- [x] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\n<\n[…]\ntroduce a breaking change?\n\n```\n[ ] Yes\n[x] No\n```\n\n<!-- If this PR contains a breaking change, please describe the impact\nand migration path for existing applications below. -->\n\n## Other information",
          "is_bot": false,
          "headline": "docs: Oficial documentation for OSS (#87)",
          "author_name": "Abel Penton",
          "author_login": "abelpenton",
          "committed_at": "2025-07-27T21:04:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f6b0e22f6e1bbe16cd7b8ff612eb86b7605dbc8a",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [ ] Tests for the changes have been added (for bug fixes / features)\n- [ ] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\non content changes\n[ ] Other... Please describe:\n```\n\n## What is the new behavior?\n\nAdd Abel Penton to the all contributors table.\n\n## Does this PR introduce a breaking change?\n\n```\n[ ] Yes\n[x] No\n```",
          "is_bot": false,
          "headline": "docs: add abel to all-contributors (#86)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-24T13:13:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8c87ad1c5b49d2a6fa3231298bf6df0c77335685",
          "body": "- project: gonx 2.0.1",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-23T15:46:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "961e17a1d4db788ad3e34ac65921e7bb84d2f8d0",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [ ] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\n describe the impact\nand migration path for existing applications below. -->\n\n## Other information\n\nWill be good to run the unit test in other platforms to double checks no\nbreaking changes were added",
          "is_bot": false,
          "headline": "fix: improve windows support (#85)",
          "author_name": "Abel Penton",
          "author_login": "abelpenton",
          "committed_at": "2025-07-23T15:33:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8f68a8794d518e5d2889797deb87e8eadc2ca8e5",
          "body": "- project: gonx 2.0.0",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-20T13:29:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "540e90083ebd0f7268d71c282cbe487d386a260f",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [ ] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\ngo-blueprint.\n\nThis combines the best of both worlds, giving GoNx all the excellent\nblueprints developed by @Melkeydev and @ujstor\n\n## Does this PR introduce a breaking change?\n\n```\n[ ] Yes\n[x] No\n```",
          "is_bot": false,
          "headline": "feat: add go-blueprint generator (#84)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-20T02:53:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c821a554d586a219ed7af12ab9792d4f8a4648bd",
          "body": "- project: gonx 2.0.0-beta.5",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-15T13:57:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26f8cd5b69b85d9ca86f68b3c2286a6f83261531",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [x] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\nit a dependency for\nboth he test and build executors.\n\n## Does this PR introduce a breaking change?\n\n```\n[x] Yes\n[ ] No\n```\n\nNow the build and test executors could fail if the generate executor\nfails.",
          "is_bot": false,
          "headline": "feat: add generate executor (#83)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-07-15T13:52:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7a2b462b581a5e49a39622329c21286c9b63066a",
          "body": "- project: gonx 2.0.0-beta.4",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-06-19T20:37:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20813aaa19e6344d2c13ae46dafd2e9bbec47869",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [x] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\ne main option back for serve and build, but instead of\nrunning the executors on the file itself, we now run them over its\nfolder.\n\n## Does this PR introduce a breaking change?\n\n```\t\n[ ] Yes\n[x] No\n```",
          "is_bot": false,
          "headline": "feat(gonx): add the main option back (#81)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-06-19T20:35:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6d3fd5d3793c1270e976de55f461a0982132da36",
          "body": "- project: gonx 2.0.0-beta.3",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-06-19T03:11:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "124d9f5e65de24f4fc1813d9c0009ff4eb47f89b",
          "body": "## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [x] Docs have been added / updated (for bug fixes / features)\n\n## PR Type\n\nW\n[…]\nes\n[ ] Other... Please describe:\n```\n\n## What is the new behavior?\n\nUse `./...` instead of `.` for running build and run commands.\n\n## Does this PR introduce a breaking change?\n\n```\n[ ] Yes\n[x] No\n```",
          "is_bot": false,
          "headline": "fix: use './...' for build and run (#80)",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-06-19T03:06:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "577da79d6ce460bb3eb257abee70d86d10870c13",
          "body": "- project: gonx 2.0.0-beta.2",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-06-19T02:37:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7165f4409288206f893d0e83c09f2eb2fb152054",
          "body": "…ds (#79)\n\n## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [x] Docs have been added / updated (for bug fixes / features)\n\n##\n[…]\nmands over the directory itself\nusing '.' relative path. This is the go way.\n\n## Does this PR introduce a breaking change?\n\n```\n[x] Yes\n[ ] No\n```\n\nThe `main` file configuration is no longer accepted.",
          "is_bot": false,
          "headline": "feat(gonx)!: remove main.go as the target of the build and run comman…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-06-19T02:33:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "08bc3edd534fe5e96212a14b89cdd62233d5f4bd",
          "body": "- project: gonx 2.0.0-beta.1",
          "is_bot": false,
          "headline": "chore(release): publish",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-06-18T21:01:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aa14607500f24dfdeb138df7b5ff34344587745c",
          "body": "… (#78)\n\n## PR Checklist\n\nPlease check if your PR fulfills the following requirements:\n\n- [x] The commit message follows our guidelines: CONTRIBUTING.md#commit\n- [x] Tests for the changes have been added (for bug fixes / features)\n- [ ] Docs have been added / updated (for bug fixes / features)\n\n## P\n[…]\n.\n- Remove the default `main` file from the server, and by default, it\nwill try to find the main file inside the project root.\n- Remove the `cwd` from the serve command to always use the project\nroot.",
          "is_bot": false,
          "headline": "fix(gonx)!: fix build and serve executors to work without the go.work…",
          "author_name": "Nacho Vazquez",
          "author_login": "NachoVazquez",
          "committed_at": "2025-06-18T15:18:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 67,
      "commits_last_year": 78,
      "latest_release_at": "2026-07-24T13:49:52Z",
      "latest_release_tag": "gonx@v4.1.1",
      "releases_from_tags": false,
      "days_since_last_push": 5,
      "active_weeks_last_year": 12,
      "days_since_latest_release": 5,
      "mean_days_between_releases": 35.2
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@naxodev/gonx",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "nx",
            "golang",
            "go",
            "plugin"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@naxodev/gonx",
          "is_deprecated": false,
          "latest_version": "4.1.1",
          "repository_url": "https://github.com/naxodev/oss",
          "versions_count": 54,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 116607,
          "first_published_at": "2025-04-14T14:30:10.551000Z",
          "latest_published_at": "2026-07-24T13:50:37.729000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "@naxodev/nx-cloudflare",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "nx",
            "cloudflare",
            "workers",
            "plugin"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@naxodev/nx-cloudflare",
          "is_deprecated": false,
          "latest_version": "7.1.0",
          "repository_url": "https://github.com/naxodev/oss",
          "versions_count": 45,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 7299,
          "first_published_at": "2023-08-06T12:38:23.857000Z",
          "latest_published_at": "2026-07-21T14:41:38.010000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 8
        }
      ]
    },
    "popularity": {
      "forks": 10,
      "stars": 48,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2024-05-08",
            "count": 1
          },
          {
            "date": "2025-01-20",
            "count": 1
          },
          {
            "date": "2025-02-04",
            "count": 1
          },
          {
            "date": "2025-04-04",
            "count": 1
          },
          {
            "date": "2025-05-19",
            "count": 2
          },
          {
            "date": "2025-05-22",
            "count": 1
          },
          {
            "date": "2025-07-21",
            "count": 1
          },
          {
            "date": "2025-09-03",
            "count": 1
          },
          {
            "date": "2026-01-26",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 10,
        "total_forks": 10
      },
      "star_history": null,
      "open_issues_and_prs": 4
    },
    "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": [
        "docs/gonx-docs/tsconfig.json",
        "docs/nx-cloudflare-docs/tsconfig.json",
        "packages/bun-test-plugin/tsconfig.json",
        "packages/e2e-utils/tsconfig.json",
        "packages/gonx-e2e/tsconfig.json",
        "packages/gonx/tsconfig.json",
        "packages/nx-cloudflare-e2e/tsconfig.json",
        "packages/nx-cloudflare/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 30882,
      "source_files_sampled": 167,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 8809
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 22,
        "malicious_count": 0,
        "assessed_package": "npm:@naxodev/gonx@4.1.1",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@astrojs/react",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@astrojs/sitemap",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@astrojs/starlight",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@astrojs/starlight-tailwind",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@naxodev/docs-theme",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@naxodev/gonx",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@naxodev/nx-cloudflare",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@tailwindcss/vite",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "astro",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "hono",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "react",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "react-dom",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "sharp",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "starlight-llms-txt",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "starlight-typedoc",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "tailwindcss",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "tslib",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "typedoc",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "typedoc-plugin-markdown",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@nx/devkit",
          "manifest": "packages/bun-test-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "^23.0.0"
        },
        {
          "name": "tslib",
          "manifest": "packages/gonx/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.3.0"
        },
        {
          "name": "npm-run-path",
          "manifest": "packages/gonx/package.json",
          "ecosystem": "npm",
          "version_constraint": "4.0.1"
        },
        {
          "name": "chalk",
          "manifest": "packages/gonx/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.2"
        },
        {
          "name": "@melkeydev/go-blueprint",
          "manifest": "packages/gonx/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.10.11"
        },
        {
          "name": "p-limit",
          "manifest": "packages/gonx/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.2.0"
        },
        {
          "name": "web-tree-sitter",
          "manifest": "packages/gonx/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.26.3"
        },
        {
          "name": "tree-sitter-go",
          "manifest": "packages/gonx/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.25.0"
        },
        {
          "name": "tslib",
          "manifest": "packages/nx-cloudflare/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.3.0"
        },
        {
          "name": "jsonc-parser",
          "manifest": "packages/nx-cloudflare/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.3.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@astrojs/react",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@astrojs/sitemap",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@astrojs/starlight",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@astrojs/starlight-tailwind",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@melkeydev/go-blueprint",
            "direct": true,
            "version": "0.10.11",
            "ecosystem": "npm"
          },
          {
            "name": "@melkeydev/go-blueprint",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/devkit",
            "direct": true,
            "version": "^23.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/devkit",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/vite",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "astro",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": true,
            "version": "^4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "hono",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "jsonc-parser",
            "direct": true,
            "version": "^3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": true,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": true,
            "version": "^6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "react",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "react-dom",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "sharp",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "starlight-llms-txt",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "starlight-typedoc",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "tailwindcss",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "tree-sitter-go",
            "direct": true,
            "version": "^0.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "tree-sitter-go",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": true,
            "version": "^2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "typedoc",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "typedoc-plugin-markdown",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "web-tree-sitter",
            "direct": true,
            "version": "0.26.3",
            "ecosystem": "npm"
          },
          {
            "name": "web-tree-sitter",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@angular-devkit/core",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@astrojs/check",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@cloudflare/vitest-pool-workers",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@cloudflare/workers-types",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/cli",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/config-conventional",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/eslintrc",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/angular",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/esbuild",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/eslint",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/eslint-plugin",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/js",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/node",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/plugin",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/react",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/vite",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/vitest",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/web",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@nx/workspace",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@swc-node/register",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/cli",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/helpers",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@testing-library/react",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@types/bun",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@types/fs-extra",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@types/kill-port",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react-dom",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@types/semver",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@types/tcp-port-used",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/eslint-plugin",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/coverage-v8",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/ui",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "cli-spinners",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-config-prettier",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-import",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-jsx-a11y",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-react",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-react-hooks",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "jsdom",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "jsonc-eslint-parser",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "kill-port",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "nx",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "nx-cloud",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "prettier",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "strip-indent",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "tcp-port-used",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "tree-kill",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "ts-node",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "tsx",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "verdaccio",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "wrangler",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 97,
        "direct_count": 32,
        "indirect_count": 65
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 135,
        "open_issues": 4,
        "closed_ratio": 0.949,
        "closed_issues": 75,
        "closed_unmerged_prs": 4
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "NachoVazquez",
          "commits": 175,
          "avatar_url": "https://avatars.githubusercontent.com/u/9338604?v=4"
        },
        {
          "type": "User",
          "login": "nacho-vazquez",
          "commits": 46,
          "avatar_url": "https://avatars.githubusercontent.com/u/149403662?v=4"
        },
        {
          "type": "User",
          "login": "abelpenton",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/32851047?v=4"
        },
        {
          "type": "User",
          "login": "Destreyf",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/967304?v=4"
        },
        {
          "type": "User",
          "login": "mpsanchis",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/33475618?v=4"
        },
        {
          "type": "User",
          "login": "terrxo",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/99985144?v=4"
        },
        {
          "type": "User",
          "login": "creadicted",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/1899013?v=4"
        }
      ],
      "contributors_sampled": 7,
      "top_contributor_share": 0.764
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "publish.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".eslintrc.json"
      ],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "23 out of 23 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": 0,
            "reason": "Found 0/28 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 6,
            "reason": "project has 2 contributing companies or organizations -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no 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": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 0 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": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "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": 10,
            "reason": "GitHub workflow tokens follow principle of least privilege",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "71 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "4a7b96d7f0b96a824cde19977a1d8abe3f52bce8",
        "ran_at": "2026-07-30T01:39:15Z",
        "aggregate_score": 5.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-25T04:07:20Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-24T13:48:32Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 42,
          "created_at": "2024-04-17T08:48:54Z",
          "last_comment_at": "2024-04-21T00:57:58Z",
          "last_comment_author": "NachoVazquez"
        },
        {
          "number": 115,
          "created_at": "2026-06-03T02:06:06Z",
          "last_comment_at": "2026-06-25T12:26:51Z",
          "last_comment_author": "NachoVazquez"
        },
        {
          "number": 147,
          "created_at": "2026-06-03T02:08:48Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 148,
          "created_at": "2026-06-03T02:08:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/naxodev/oss",
    "host": "github.com",
    "name": "oss",
    "owner": "naxodev"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "excellent",
      "name": "Overall health",
      "note": "The weighted overall 73 is calibrated to 87 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 73,
            "calibrated": 87,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 87,
      "inputs": {
        "security": 62,
        "vitality": 83,
        "community": 67,
        "governance": 60,
        "calibration": "2026-08-02",
        "engineering": 94,
        "ai_readiness": 69,
        "weighted_overall_raw": 73
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 83,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 71,
            "inputs": {
              "commits_last_year": 78,
              "human_commit_share": 1,
              "days_since_last_push": 5,
              "active_weeks_last_year": 12
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "12/52 weeks with commits",
                "points": 8.3,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 12
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "78 commits in the last year",
                "points": 17,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 78
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "exceptional",
            "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": 100,
            "inputs": {
              "releases_count": 67,
              "latest_release_tag": "gonx@v4.1.1",
              "releases_from_tags": false,
              "days_since_latest_release": 5,
              "mean_days_between_releases": 35.2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "67 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 67
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~35.2 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 35.2
                    }
                  }
                ],
                "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": "exceptional",
            "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": 11,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 11 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 11
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 67,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "weak",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 35,
            "inputs": {
              "forks": 10,
              "stars": 48,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "48 stars",
                "points": 27.1,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 48
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "10 forks",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "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": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": null,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "readme_badge_services": [],
              "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": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "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": 85,
            "inputs": {
              "packages": [
                "@naxodev/gonx",
                "@naxodev/nx-cloudflare"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 123906
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "123,906 downloads/month across npm",
                "points": 67.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 123906,
                      "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": "moderate",
        "name": "Sustainability & Governance",
        "value": 60,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 30,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 7,
              "top_contributor_share": 0.764
            },
            "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 76% of commits",
                "points": 5.3,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 76
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "7 contributors",
                "points": 9.5,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 79,
            "inputs": {
              "merged_prs": 135,
              "open_issues": 4,
              "closed_issues": 75,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": 0.949,
              "closed_unmerged_prs": 4,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "95% of issues closed",
                "points": 39.9,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 95
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "135/139 decided PRs merged",
                "points": 29.1,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 135,
                      "decided": 139
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/28 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "weak",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 46,
            "inputs": {
              "followers": 0,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "naxodev",
              "public_repos": 21,
              "account_age_days": 1096
            },
            "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": "0 followers of naxodev",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 0,
                      "login": "naxodev"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "21 public repos, account ~3 yr old",
                "points": 15.8,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 21
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 3
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@naxodev/gonx",
                "@naxodev/nx-cloudflare"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "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 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "54 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 54
                    }
                  }
                ],
                "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": "exceptional",
        "name": "Engineering Quality",
        "value": 94,
        "weight": 0.19,
        "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": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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.json",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.json"
                    }
                  }
                ],
                "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": "23 out of 23 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "exceptional",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "cloudflare",
                "nx",
                "cloudflare-workers",
                "nextjs",
                "go",
                "golang"
              ],
              "has_wiki": true,
              "homepage": "https://naxo.dev",
              "has_readme": true,
              "has_docs_dir": true,
              "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": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://naxo.dev",
                "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": "6 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 62,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 52,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 5.2
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "23 out of 23 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": "Found 0/28 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "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 detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 0 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 not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "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": "GitHub workflow tokens follow principle of least privilege",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "71 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "exceptional",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@naxodev/gonx@4.1.1 runtime dependency closure — what installing the published package pulls in — 22 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:@naxodev/gonx@4.1.1",
                  "assessed": 22
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 22,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "exceptional",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 22,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "exceptional",
            "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"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 5
            },
            "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": "good",
        "name": "AI Readiness",
        "value": 69,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 8809
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "CLAUDE.md"
                    }
                  }
                ],
                "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": "100 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 100,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "weak",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 46,
            "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": [
                "docs/gonx-docs/tsconfig.json",
                "docs/nx-cloudflare-docs/tsconfig.json",
                "packages/bun-test-plugin/tsconfig.json",
                "packages/e2e-utils/tsconfig.json",
                "packages/gonx-e2e/tsconfig.json",
                "packages/gonx/tsconfig.json",
                "packages/nx-cloudflare-e2e/tsconfig.json",
                "packages/nx-cloudflare/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0.01,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "docs/gonx-docs/tsconfig.json, docs/nx-cloudflare-docs/tsconfig.json, packages/bun-test-plugin/tsconfig.json, packages/e2e-utils/tsconfig.json, packages/gonx-e2e/tsconfig.json, packages/gonx/tsconfig.json, packages/nx-cloudflare-e2e/tsconfig.json, packages/nx-cloudflare/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "docs/gonx-docs/tsconfig.json, docs/nx-cloudflare-docs/tsconfig.json, packages/bun-test-plugin/tsconfig.json, packages/e2e-utils/tsconfig.json, packages/gonx-e2e/tsconfig.json, packages/gonx/tsconfig.json, packages/nx-cloudflare-e2e/tsconfig.json, packages/nx-cloudflare/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": "1 of the last 100 commits agent-authored or agent-credited",
                "points": 2,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 1,
                      "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 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "exceptional",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 30882,
              "source_files_sampled": 167,
              "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/167 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 167,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "top": [
        "library",
        "application"
      ],
      "labels": [
        "library",
        "web-ui"
      ],
      "scores": {
        "plugin": 2,
        "web-ui": 4,
        "library": 6
      },
      "primary": "library",
      "evidence": [
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:npm",
          "weight": 6
        },
        {
          "tier": "dependencies",
          "label": "web-ui",
          "source": "dep:react-dom",
          "weight": 4
        },
        {
          "tier": "tags",
          "label": "plugin",
          "source": "tag:plugin",
          "weight": 2
        }
      ],
      "artifacts": [],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": true
    },
    "metrics_version": "2.5.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-30T01:39:33.268811Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/n/naxodev/oss.svg",
  "full_name": "naxodev/oss",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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 v2.5.0, schema v0.27.0 — full methodology · metrics wiki.

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