Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 2.5.0 · 2026-07-30 01:39 UTC

naxodev / oss

Open Source Software (OSS) projects by naxodev

TypeScriptMIT★ 48 estrellas⑂ 10 forksdesde jul 2023Ver en GitHub ↗
TipoBibliotecaInterfaz webcómo se determina

naxodev/oss tiene un índice de salud de 87 sobre 100, lo que lo sitúa en la banda Excelente. Su puntuación más alta es Engineering Quality (94/100) y la más baja, Sustainability & Governance (60/100). Se actualizó por última vez hace 5 días. Una sola persona concentra la mayor parte del trabajo reciente.

87
global / 100
Excelente

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala estandarizada de 1 a 100. El resultado global parte de su media ponderada, calibrada contra la distribución del registro público para que las bandas tengan significado percentil; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe un límite «En riesgo» de 34.

87
Excepcional93-100El nivel más alto del registro (≈ el 5% superior); cumple prácticamente todos los criterios evaluados
Excelente80-92Sólido en todos los frentes; carencias menores
Bueno65-79Saludable; carencias limitadas y manejables
Moderado50-64Aceptable con carencias notables; se recomienda revisión
Débil35-49Debilidades sustanciales en varias áreas
En riesgo20-34Debilidades significativas; su adopción exige cautela
Crítico1-19Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

El resultado global ponderado 73 se calibra a 87 en la escala publicada del índice (calibración del registro 2026-08-02).

Titularidad

naxoOrganización
0 seguidores21 repositorios públicosdesde jul 2023

Este repositorio está respaldado por una organización: una custodia compartida y responsable que puede sobrevivir a cualquier mantenedor individual.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicaciónEtiquetas
npm@naxodev/gonx4.1.1116.60754hace 5 díasnxgolanggoplugin
npm@naxodev/nx-cloudflare7.1.0729945hace 8 díasnxcloudflareworkersplugin

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

83Excelente · 21% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 5 días
8.3/36Cadencia de commits — 12/52 semanas con commits
17/18Volumen de commits — 78 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year78
human_commit_share1
days_since_last_push5
active_weeks_last_year12
Cómo se puntúa
27/27Publica versiones — 67 versiones publicadas
36/36Recencia de las versiones — última versión hace 5 días
27/27Cadencia de publicación — una versión cada ~35,2 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count67
latest_release_taggonx@v4.1.1
releases_from_tagsno
days_since_latest_release5
mean_days_between_releases35,2
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

67Bueno · 17% del índice global
Cómo se puntúa
27.1/60Estrellas — 48 estrellas
8/25Forks — 10 forks
0/15Observadores — 1 observadores
Datos de entrada utilizados
forks10
stars48
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
18/18Guía CONTRIBUTING
13.5/13.5Código de conducta
0/7.2Plantilla de issues
6.3/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
readme_badges
has_contributing
has_issue_templateno
has_code_of_conduct
readme_badge_services
has_pull_request_template
Cómo se puntúa
67.9/80Descargas mensuales — 123.906 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packages@naxodev/gonx, @naxodev/nx-cloudflare
dependents
ecosystemsnpm
total_downloads
monthly_downloads123.906
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

60Moderado · 23% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
5.3/22.5Distribución de commits — el principal contribuyente firma el 76% de los commits
9.5/13.5Amplitud de contribuyentes — 7 contribuyentes
6/10OpenSSF Scorecard: Contributors — project has 2 contributing companies or organizations -- score normalized to 6
Datos de entrada utilizados
bus_factor1
contributors_sampled7
top_contributor_share0,764
Cómo se puntúa
39.9/42Resolución de issues — 95% de issues cerradas
29.1/30Aceptación de PR — 135/139 PR decididos fusionados
0/13Newcomer PR acceptance — ningún PR de un contribuyente primerizo decidido en 30 d
0/15OpenSSF Scorecard: Code-Review — Found 0/28 approved changesets -- score normalized to 0
Datos de entrada utilizados
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
Excluidos de la puntuación (sin datos o no aplicable): newcomer_pr_acceptance. Los pesos restantes se han renormalizado.
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
0/25Alcance del propietario — 0 seguidores de naxodev
15.8/25Trayectoria — 21 repos públicos, cuenta de ~3 años
Datos de entrada utilizados
followers0
owner_typeOrganization
is_verified
owner_loginnaxodev
public_repos21
account_age_days1096
Cómo se puntúa
25/25Publicado y resoluble — 2 paquete(s) en npm
35/35Recencia de publicación — última publicación hace 5 días
20/20Historial de versiones — 54 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packages@naxodev/gonx, @naxodev/nx-cloudflare
ecosystemsnpm
any_deprecatedno
min_days_since_publish5

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

94Excepcional · 19% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 2 flujo(s) de trabajo
24/24Pruebas presentes
16/16Configuración de linter — .eslintrc.json
0/9.6Hooks de pre-commit
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
Datos de entrada utilizados
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_configno

Documentación

100Excepcional
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://naxo.dev
10/10Descripción del repositorio
10/10Topics — 6 topics
10/10Wiki
Datos de entrada utilizados
topicscloudflare, nx, cloudflare-workers, nextjs, go, golang
has_wiki
homepagehttps://naxo.dev
has_readme
has_docs_dir
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

62Moderado · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — sin datos
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.5Licencia — 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 — sin datos
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 — sin datos
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
0/7.5Vulnerabilities — 71 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate5,2
Excluidos de la puntuación (sin datos o no aplicable): branch_protection, packaging, signed_releases. Los pesos restantes se han renormalizado.
Cómo se puntúa
35/35Dependencias directas libres de avisos conocidos — ninguna dependencia directa tiene un aviso conocido
25/25Dependencias indirectas libres de avisos conocidos — ninguna dependencia indirecta tiene un aviso conocido
0/40Sin avisos pendientes — ningún aviso tiene fecha de publicación
Datos de entrada utilizados
sourceosv
advisories0
affected_packages0
assessed_packages22
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Excluidos de la puntuación (sin datos o no aplicable): Sin avisos pendientes. Los pesos restantes se han renormalizado. Se cotejó el cierre de dependencias en tiempo de ejecución de npm:@naxodev/gonx@4.1.1 —lo que arrastra la instalación del paquete publicado—: 22 paquetes. No se analiza la alcanzabilidad.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Tiene un peso deliberadamente pequeño (4%): las herramientas para agentes son una señal real de mantenimiento, pero un repositorio sin ninguna puede alcanzar igualmente 100/100.

69Bueno · 4% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — CLAUDE.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 100 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share1
agent_instruction_filesCLAUDE.md
agent_instruction_max_bytes8809
Cómo se puntúa
0/18Arranque con un solo comando
22/22Pruebas automatizadas
11/11Configuración de lint / formato — .eslintrc.json
11/11Verificación estática de tipos — 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/10Entorno reproducible
2/10Práctica demostrada con agentes — 1 de los últimos 100 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Datos de entrada utilizados
has_nixno
has_tests
lockfiles
has_dockerfileno
typed_language
bootstrap_files
has_devcontainerno
has_linter_config
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
Cómo se puntúa
45/45Código verificable por tipos — TypeScript (tipado estático)
55/55Tamaños de archivo manejables — 0/167 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageTypeScript
largest_source_bytes30.882
source_files_sampled167
oversized_source_files0

Datos clave

48estrellas de GitHub
7contribuidores
78commits en los últimos 12 meses
5días desde el último push
67versiones publicadas
1factor bus
4issues abiertas
npmecosistemas de paquetes

Advertencias de recopilación de datos

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

Más detalle

Historial de estrellas y forks 0 ★ / 10 ⇿
0Estrellas
10Forks
43Versiones

Cuándo se añadió cada estrella y fork, recopilado de GitHub y agrupado por día. El crecimiento acumulado se sitúa justo encima de las adiciones diarias que lo componen, de modo que ambos se leen en conjunto: la acumulación orgánica sostenida no se parece en nada a un pico abrupto y efímero. Cuando esa diferencia es medible, se informa como autenticidad del crecimiento.

02468101022024-052025-032026-01
Mayor 2Menor 1Parche 3

Cada punto abarca 2 días.

OpenSSF Scorecard 5.2 / 10
5.2agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-30 01:39 UTC

10Binary-Artifactsno binaries found in the repo
n/dBranch-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/dPackagingpackaging 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/dSigned-Releasesno releases found
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
0Vulnerabilities71 existing vulnerabilities detected
Dependencias directas 29
RegistroPaqueteRestricción de versiónManifiesto
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
Todas las dependencias 97

Conjunto completo de dependencias resueltas según el grafo de dependencias de GitHub: 32 paquetes directos y 65 indirectos (transitivos). El cierre transitivo es completo cuando el repositorio incluye un lockfile.

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

Instalar npm:@naxodev/gonx@4.1.1 arrastra 22 paquetes, directos y transitivos: 0 tienen avisos conocidos, de los cuales 0 son dependencias directas.

Ningún aviso conocido afecta a las dependencias evaluadas.

Un aviso significa que la versión registrada en el grafo de dependencias cae dentro del rango afectado de un aviso. No se analiza la alcanzabilidad, y el grafo incluye fijaciones de desarrollo y prueba: un hallazgo puede referirse al utillaje y no al software distribuido.

Informe JSON sin procesar legible por máquina
{
  "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"
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v2.5.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasnpm.