Registro público
Informe de salud del softwareesquema 0.26.0 · métricas 1.13.0 · 2026-07-22 03:15 UTC

devr-tools / szr

Go-native cli proxy that reduces token usage

GoApache-2.0★ 5 estrellas⑂ 0 forksdesde may 2026Ver en GitHub ↗

devr-tools/szr tiene un índice de salud de 61 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es Engineering Quality (86/100) y la más baja, Security (48/100). Se actualizó por última vez hoy. Una sola persona concentra la mayor parte del trabajo reciente.

61
global / 100
Moderado

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

61
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas 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.

Titularidad

devrOrganización
1 seguidor5 repositorios públicosdesde may 2026

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ón
Gogithub.com/devr-tools/szrv0.19.1-23hace 5 días

Métricas por categoría

Vitalidad

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

71Bueno · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 0 días
4.8/36Cadencia de commits — 7/52 semanas con commits
18/18Volumen de commits — 327 commits en el último año
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Datos de entrada utilizados
commits_last_year327
human_commit_share0,98
days_since_last_push0
active_weeks_last_year7
Cómo se puntúa
27/27Publica versiones — 22 versiones publicadas
36/36Recencia de las versiones — última versión hace 5 días
27/27Cadencia de publicación — una versión cada ~1,6 días
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Datos de entrada utilizados
releases_count22
latest_release_tagv0.19.1
releases_from_tagsno
days_since_latest_release5
mean_days_between_releases1,6

Comunidad y Adopción

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

48En riesgo · 18% del índice global
Cómo se puntúa
9.8/60Estrellas — 5 estrellas
0/25Forks — 0 forks
0/15Observadores — 1 observadores
Datos de entrada utilizados
forks0
stars5
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonbelow_threshold
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (Apache-2.0)
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
has_contributing
has_issue_templateno
has_code_of_conduct
has_pull_request_template

Sostenibilidad y Gobernanza

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

50Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
0/22.5Distribución de commits — el principal contribuyente firma el 100% de los commits
1.4/13.5Amplitud de contribuyentes — 1 contribuyentes
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Datos de entrada utilizados
bus_factor1
contributors_sampled1
top_contributor_share1
Cómo se puntúa
0/46.8Resolución de issues — sin issues o sin datos
37.8/38.3Aceptación de PR — 76/77 PR decididos fusionados
0/15OpenSSF Scorecard: Code-Review — Found 0/10 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs76
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs1
Excluidos de la puntuación (sin datos o no aplicable): Resolución de issues. Los pesos restantes se han renormalizado.
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
2.2/25Alcance del propietario — 1 seguidores de devr-tools
6/25Trayectoria — 5 repos públicos, cuenta de ~0 años
Datos de entrada utilizados
followers1
owner_typeOrganization
is_verified
owner_logindevr-tools
public_repos5
account_age_days62
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en go
35/35Recencia de publicación — última publicación hace 5 días
20/20Historial de versiones — 23 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesgithub.com/devr-tools/szr
ecosystemsgo
any_deprecatedno
min_days_since_publish5

Calidad de Ingeniería

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

86Excelente · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 4 flujo(s) de trabajo
24/24Pruebas presentes
16/16Configuración de linter — .golangci.yml
0/9.6Hooks de pre-commit
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 10 out of 10 merged PRs checked by a CI test -- score normalized to 10
Datos de entrada utilizados
has_ci
has_tests
has_editorconfigno
has_linter_config
has_precommit_configno

Documentación

90Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://devrtools.com/szr
10/10Descripción del repositorio
10/10Topics — 7 topics
0/10Wiki
Datos de entrada utilizados
topicsai, go, tool-suite, ai-agents, ai-tools, sizer, szr
has_wikino
homepagehttps://devrtools.com/szr
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?

48En riesgo · 16% del índice global
Cómo se puntúa
6.8/7.5Binary-Artifacts — binaries present in source code
3.8/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 10 out of 10 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/10 approved changesets -- score normalized to 0
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Licencia — license file detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
5/5Packaging — packaging workflow detected
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 — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate4,8

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

74Bueno · 0% del índice global
Cómo se puntúa
0/45Instrucciones para agentes — sin CLAUDE.md / AGENTS.md / reglas de editor
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 91 de 98 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,929
agent_instruction_files
agent_instruction_max_bytes
Cómo se puntúa
18/18Arranque con un solo comando — Makefile
22/22Pruebas automatizadas
11/11Configuración de lint / formato — .golangci.yml
11/11Verificación estática de tipos — Go (tipado estático)
10/10Entorno reproducible — Dockerfile
10/10Práctica demostrada con agentes — 36 de los últimos 100 commits con autoría o crédito de agente
8/8Mantenimiento automatizado — 2 de los últimos 100 commits son 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_dockerfile
typed_language
bootstrap_filesMakefile
has_devcontainerno
has_linter_config
typecheck_configs
agent_commit_share0,36
toolchain_manifestsgo.mod
dependency_bot_commit_share0,02
Cómo se puntúa
45/45Código verificable por tipos — Go (tipado estático)
55/55Tamaños de archivo manejables — 0/479 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageGo
largest_source_bytes33.173
source_files_sampled479
oversized_source_files0

Datos clave

5estrellas de GitHub
1contribuidores
327commits en los últimos 12 meses
0días desde el último push
22versiones publicadas
1factor bus
0issues abiertas
Goecosistemas de paquetes

Más detalle

OpenSSF Scorecard 4.8 / 10
4.8agregado

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-22 03:15 UTC

9Binary-Artifactsbinaries present in source code
5Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests10 out of 10 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/10 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
10Packagingpackaging workflow 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
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Todas las dependencias 0

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

RegistroPaqueteVersiónRelación
Avisos de dependencias sin evaluar

El cotejo de avisos no pudo ejecutarse para este informe: No resolved dependencies to assess

Informe JSON sin procesar legible por máquina
{
  "data": {
    "repo": {
      "topics": [
        "ai",
        "go",
        "tool-suite",
        "ai-agents",
        "ai-tools",
        "sizer",
        "szr"
      ],
      "is_fork": false,
      "size_kb": 8897,
      "has_wiki": false,
      "homepage": "https://devrtools.com/szr",
      "languages": {
        "Go": 2584824,
        "Ruby": 901,
        "Shell": 21343,
        "Python": 4520,
        "Makefile": 4927,
        "JavaScript": 1608
      },
      "pushed_at": "2026-07-21T16:09:06Z",
      "created_at": "2026-05-21T02:05:34Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-22T00:47:27Z",
      "description": " Go-native cli proxy that reduces token usage",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": "https://devrtools.com",
      "name": "devr",
      "type": "Organization",
      "login": "devr-tools",
      "company": null,
      "location": "United States of America",
      "followers": 1,
      "avatar_url": "https://avatars.githubusercontent.com/u/286476778?v=4",
      "created_at": "2026-05-20T21:13:14Z",
      "is_verified": null,
      "public_repos": 5,
      "account_age_days": 62
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.19.1",
          "kind": "patch",
          "published_at": "2026-07-17T01:31:21Z"
        },
        {
          "tag": "v0.19.0",
          "kind": "minor",
          "published_at": "2026-07-15T22:33:52Z"
        },
        {
          "tag": "v0.18.1",
          "kind": "patch",
          "published_at": "2026-07-15T21:10:31Z"
        },
        {
          "tag": "v0.18.0",
          "kind": "minor",
          "published_at": "2026-07-15T20:26:50Z"
        },
        {
          "tag": "v0.17.0",
          "kind": "minor",
          "published_at": "2026-07-03T16:59:34Z"
        },
        {
          "tag": "v0.16.0",
          "kind": "minor",
          "published_at": "2026-07-03T15:18:54Z"
        },
        {
          "tag": "v0.15.0",
          "kind": "minor",
          "published_at": "2026-07-03T05:21:59Z"
        },
        {
          "tag": "v0.14.0",
          "kind": "minor",
          "published_at": "2026-07-03T04:40:40Z"
        },
        {
          "tag": "v0.13.0",
          "kind": "minor",
          "published_at": "2026-07-03T03:22:34Z"
        },
        {
          "tag": "v0.12.1",
          "kind": "patch",
          "published_at": "2026-07-03T02:03:51Z"
        },
        {
          "tag": "v0.12.0",
          "kind": "minor",
          "published_at": "2026-07-03T00:35:34Z"
        },
        {
          "tag": "v0.11.0",
          "kind": "minor",
          "published_at": "2026-07-02T20:42:53Z"
        },
        {
          "tag": "v0.10.0",
          "kind": "minor",
          "published_at": "2026-07-02T19:35:55Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-07-02T18:47:42Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-06-24T03:23:29Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-06-22T16:12:11Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-05-27T21:41:07Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2026-05-26T21:27:53Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2026-05-26T13:38:46Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2026-05-26T02:00:24Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2026-05-25T22:06:27Z"
        },
        {
          "tag": "v0.1.1",
          "kind": "patch",
          "published_at": "2026-05-25T15:54:37Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "4848f81f4eebf09f4c7f8d2513fbbe615fc59d99",
          "body": "fix(diagnostics): flush exporter on command exit",
          "is_bot": false,
          "headline": "Merge pull request #78 from devr-tools/updates1",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-21T16:08:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9dd8bbb49b228cbabb3dba3814c060081f6d473",
          "body": null,
          "is_bot": false,
          "headline": "fix(diagnostics): flush exporter on command exit",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-21T03:01:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd06ce011ac5fb7328623b1942145d75f156bb36",
          "body": "…ub-actions-f8f59c81ec\n\nchore(deps): bump the github-actions group across 1 directory with 4 updates",
          "is_bot": false,
          "headline": "Merge pull request #77 from devr-tools/dependabot/github_actions/gith…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T22:47:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e0b1b9ade2134071b69d0fb2e91c5adb433e984",
          "body": "…59c81ec",
          "is_bot": false,
          "headline": "Merge branch 'main' into dependabot/github_actions/github-actions-f8f…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T22:42:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "173d7f33c506392cd74da2e6cb8e69c3057b682c",
          "body": "Codeguard execution cleanup",
          "is_bot": false,
          "headline": "Merge pull request #75 from devr-tools/codeguard-execution-cleanup",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T22:32:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5dfcf1994b10b0ea50d293c36deb6460b700fe6c",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into codeguard-execution-cleanup",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T22:24:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f5c7439dd490f8d75ed7ecc032170a41cc9baf10",
          "body": "…updates\n\nBumps the github-actions group with 4 updates in the / directory: [actions/setup-go](https://github.com/actions/setup-go), [devr-tools/codeguard](https://github.com/devr-tools/codeguard), [actions/setup-node](https://github.com/actions/setup-node) and [actions/setup-python](https://github.\n[…]\non\n  dependency-version: '7'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the github-actions group across 1 directory with 4 …",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-20T22:07:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5a86adf530cd84d3eb483f3e5d06eb877526ac0f",
          "body": null,
          "is_bot": false,
          "headline": "refactor: simplify execution completion flow",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T22:07:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e3030620bce25d8fe411ebc871002d46f4c9248",
          "body": "feat: add privacy-safe diagnostics and gateway budget hints",
          "is_bot": false,
          "headline": "Merge pull request #74 from devr-tools/new-feat",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T22:04:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0f1dfd77f1fb06830649bd7948ffdd1cba4ff41",
          "body": null,
          "is_bot": false,
          "headline": "fix: satisfy gateway quality checks",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T22:04:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b50d02e3b7aa6fe1e30541fbf4d2d876d36455f",
          "body": null,
          "is_bot": false,
          "headline": "fix: preserve config contracts and close errors",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T20:18:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "249c8df6da5520739c31f1f0cef7560016d93b39",
          "body": null,
          "is_bot": false,
          "headline": "fix: preserve config contracts and close errors",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T18:32:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b04c68f73a23e705cf2476d8fede7766868e490f",
          "body": null,
          "is_bot": false,
          "headline": "fix: satisfy gateway quality checks",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T18:21:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ec7b678b0bdfa95bcc3cc7f7a9b42c2eecf26259",
          "body": null,
          "is_bot": false,
          "headline": "refactor: reduce execution codeguard baseline",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T18:13:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "053d7d9f22c6aa9580637108e073801e00abd876",
          "body": null,
          "is_bot": false,
          "headline": "feat: add privacy-safe diagnostics and gateway budget hints",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-20T17:35:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca5d5455c301a72bc529f24f41c150f62243074a",
          "body": "…--components--szr\n\nchore(main): release 0.19.1",
          "is_bot": false,
          "headline": "Merge pull request #73 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-17T01:31:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "902ebc26335f91a4e52babed3e2a951f0f370f71",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.19.1",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-17T01:22:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "edda75b0f4b46fe24550bfed9322e92a8ba271e3",
          "body": null,
          "is_bot": false,
          "headline": "fix: require szr for git workflow installer guidance",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-17T01:22:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75a432708879457f55c53b54d611a2af0a89d6ce",
          "body": "Fix: installer command guidance",
          "is_bot": false,
          "headline": "Merge pull request #72 from devr-tools/fix/installer-command-guidance",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-17T00:49:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "303d02e1e645b4c5a1e52eebd089a7664f334934",
          "body": null,
          "is_bot": false,
          "headline": "require szr for git workflows",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-16T21:17:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2548244cebf7faa446b49458469854da20bc171c",
          "body": null,
          "is_bot": false,
          "headline": "fix installer command guidance",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-16T21:11:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "169fadaf98ef24dfb25a44929360391388033994",
          "body": "…--components--szr\n\nchore(main): release 0.19.0",
          "is_bot": false,
          "headline": "Merge pull request #70 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T22:33:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0dc4108f3d1bc56243c90abfe9d0a86aa25642fc",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.19.0",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T22:29:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45306f35a80104c0f31d1c7d5290972b86a23922",
          "body": "feat: per-agent usage breakdown and interactive session picker",
          "is_bot": false,
          "headline": "Merge pull request #69 from devr-tools/alexj-usage-agents",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T22:29:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90f0be57a5d5bb7438eb7d7c433251b358d9a2e2",
          "body": "- szr usage sessions gain an agents column; --session drill-down\n  renders per-subagent turns and token usage with a main row, with\n  totals guaranteed to equal main plus agents\n- --json adds additive main/agents/agent_count fields\n- on a terminal, szr usage numbers the sessions and offers a prompt\n  loop (pick a session, y to view agents, q to quit); piped, --json,\n  --session, and --no-input paths stay byte-identical\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: per-agent usage breakdown and interactive session picker",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T22:08:53Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "bff03e20020a5c63d5d5e66426c597e7b48d10e1",
          "body": "…--components--szr\n\nchore(main): release 0.18.1",
          "is_bot": false,
          "headline": "Merge pull request #68 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T21:10:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "353c550f5400d4d6de5952b6866f1b68723e68c8",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.18.1",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T21:05:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52c32cfa55b4ec42d400c4ea9c6ad901e7999c40",
          "body": "fix: verify auto-update results and add self doctor --refresh",
          "is_bot": false,
          "headline": "Merge pull request #67 from devr-tools/alexj-update-fixes",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T21:05:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "65887cad5711efcd277a12ac7b98886a58239527",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: keep exported Doctor signature stable via DoctorWithOptions",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T21:00:27Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "83eb3404b4ba7e597bb004225cb3c3166b4f103a",
          "body": "- szr self doctor --refresh bypasses the release-check cache for a live\n  lookup and rewrites the cache, preserving auto-update state fields\n  (live checks previously wiped them)\n- auto-update only records success after the installed binary actually\n  reports the target version; a package-source no-\n[…]\np (e.g. stale\n  formula) is surfaced as an honest error instead of a false success\n- the brew path refreshes the formula source before upgrading\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: verify auto-update results and add self doctor --refresh",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T20:57:37Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "73fa13639c1c373c2de1f6be1831b8cfe5b98fe8",
          "body": "…--components--szr\n\nchore(main): release 0.18.0",
          "is_bot": false,
          "headline": "Merge pull request #65 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T20:26:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f51063d6929fca2a330fafdc453916358eade70",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.18.0",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T20:21:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4669f3d10c2d4c7d819b77e693038a3c6fb7097",
          "body": "feat: land user-defined filters, transcript insight commands, and coverage batch on main",
          "is_bot": false,
          "headline": "Merge pull request #66 from devr-tools/alexj-clean",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T20:20:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28b247c34850be8209f8be87c03008a2417ac0eb",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into alexj-clean",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T20:16:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2666200be3e084d42c44100c7f58af8cf7fdb210",
          "body": "feat: user-defined filters, transcript insight commands, and coverage batch",
          "is_bot": false,
          "headline": "Merge pull request #64 from devr-tools/alexj-followups",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T20:07:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "82cefd89a041d2026bf94a8296911d38980ceb09",
          "body": "feat: output-guard invariant, tee retention, transparent prefixes, and new profiles",
          "is_bot": false,
          "headline": "Merge pull request #63 from devr-tools/alexj-clean",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T20:06:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2553d2b8b2596b5a6580bcc924d968456c8b54e",
          "body": "… batch\n\n- User-defined declarative filter specs load from the config dir and,\n  trust-gated, from .szr/filters/; builtins never silently shadowed\n- New `szr discover` scans local agent transcripts read-only for\n  commands that ran unwrapped and estimates missed savings from the\n  user's own per-pro\n[…]\ntext-window anchor\n- New profiles: gradle-build, pulumi-diff, aws-log-events,\n  aws-lambda-functions, aws-stack-events, aws-s3-ls, aws-ecs-state\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: user-defined filters, transcript insight commands, and coverage…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T19:59:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d192301c6569cdbc548e6b591cc5cf4ca2e17f28",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into alexj-clean",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T18:15:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bbb892100c5cef22e00bd21f6a5a5748dde3a0f4",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: extract helpers to satisfy lint maintainability gates",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T17:32:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "00faa8fc2c31356060833d30bf33201ba9cd765a",
          "body": "…d new profiles\n\n- Filtered output (including recovery suffixes) never exceeds raw token\n  cost; failure renders expand within raw size instead of past it\n- Stream-preference profiles render compact stderr when stdout is empty\n  instead of falling back to raw (fixes kubectl-get fallback churn)\n- His\n[…]\n-images,\n  glab-pipeline; per-execution token-estimate memoization (~13% faster\n  render pipeline) and update checks moved off the dispatch path\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: output-guard invariant, tee retention, transparent prefixes, an…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-15T17:22:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "15be3c6c51be15b50eb988fd817390a163e88c9e",
          "body": "…ub-actions-fb194b0f86\n\nchore(deps): bump the github-actions group with 3 updates",
          "is_bot": false,
          "headline": "Merge pull request #62 from devr-tools/dependabot/github_actions/gith…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-14T22:02:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "612406b4856cab38f332ada0fc03db7629ff03bd",
          "body": "Bumps the github-actions group with 3 updates: [devr-tools/codeguard](https://github.com/devr-tools/codeguard), [actions/setup-node](https://github.com/actions/setup-node) and [actions/setup-python](https://github.com/actions/setup-python).\n\n\nUpdates `devr-tools/codeguard` from 0.6.1 to 0.8.1\n- [Rel\n[…]\non\n  dependency-version: '6'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the github-actions group with 3 updates",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-09T11:44:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2e2aff7570047c60fc9e3f98ebd693add8f7a137",
          "body": "docs(readme): add npm and PyPI version badges",
          "is_bot": false,
          "headline": "Merge pull request #61 from devr-tools/docs/npm-pypi-badges",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T17:12:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c27da72c0583d1c91f0f55d1e7a03fd9fa03197c",
          "body": "szr is now published to npm (@devr-tools/szr) and PyPI (szr). Add version\nbadges alongside the existing release badge for discoverability. Install\ninstructions for both were already present.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(readme): add npm and PyPI version badges",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T17:07:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4d288634f9715e9310fe1969955bc7fe26932fa6",
          "body": "…--components--szr\n\nchore(main): release 0.17.0",
          "is_bot": false,
          "headline": "Merge pull request #60 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T16:59:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "37624b85687d6b1c4f4da87e954fa9990536c457",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.17.0",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T16:56:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "60be976b910b52869ab24738fc3793b38379f97b",
          "body": "fix(cd): grant id-token to the release.yml caller",
          "is_bot": false,
          "headline": "Merge pull request #59 from devr-tools/fix/cd-oidc-permissions",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T16:55:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8439fa7074ec863bb55665fb8659dddd81d7859",
          "body": "Merging the npm/PyPI packaging added publish-npm/publish-pypi jobs to\nrelease.yml that request `id-token: write` for OIDC trusted publishing.\nrelease.yml is a reusable workflow called by cd.yml's prerelease job, and\nGitHub validates a called workflow's job permissions statically at startup —\neven fo\n[…]\nrite` on the prerelease caller job so validation passes.\nThe publish jobs remain stable-only and never run on the prerelease path.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cd): grant id-token to the release.yml caller",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T16:51:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "23157e0a0e9d6b211b03af1331dfeb530d29b5ac",
          "body": "feat(packaging): distribute szr via npm and PyPI",
          "is_bot": false,
          "headline": "Merge pull request #58 from devr-tools/feat/npm-pypi-packaging",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T16:46:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "942771ce53fc88fc502d42f315636d3b850586b4",
          "body": "Add wrapper packaging that ships the prebuilt GoReleaser binaries through npm\nand PyPI, so users can `npm install -g @devr-tools/szr` or `pip install szr`\nwithout a Go toolchain and without any network access at install time.\n\n- npm: esbuild-style optionalDependencies. A launcher package\n  (@devr-to\n[…]\nn, npm publish --dry-run,\nwheel install (executable) + twine check, and a live `npm install -g\n@devr-tools/szr` from the registry.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(packaging): distribute szr via npm and PyPI",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T16:42:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "112bd4a776823cdae43c5a622e1258f2310b0052",
          "body": "…--components--szr\n\nchore(main): release 0.16.0",
          "is_bot": false,
          "headline": "Merge pull request #57 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T15:18:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6494d98af81487cac314c7ad106ee1ec25354b2",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.16.0",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T15:10:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "86ef530169038414e9cd765dd86326ef61aee079",
          "body": "feat: route shell-wrapped and node inline-eval commands to real profiles",
          "is_bot": false,
          "headline": "Merge pull request #56 from devr-tools/wrapper-routing",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T15:10:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f30b23a2b602f2b23117487c639dac59c921a2fa",
          "body": "…ofiles\n\nCommands invoked through a shell wrapper (sh/bash/zsh/dash/ksh -c, with\ncombined or separate login/interactive flags) are now unwrapped for\nclassification and matching: simple inner commands route directly, and\nsetup-prefixed chains (source/cd/export followed by the real command)\nroute on t\n[…]\nessages and [eval] stack anchors.\nThese two shapes previously fell through to passthrough despite being\namong the most common agent invocations.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(engine): route shell-wrapped and inline-eval commands to real pr…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T11:32:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "aa51eac0157c9e4f75497768ac4a97abcc066948",
          "body": "…--components--szr\n\nchore(main): release 0.15.0",
          "is_bot": false,
          "headline": "Merge pull request #55 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T05:21:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "382c97963861ad13f9bd5e27560bd3b97c0adf2e",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.15.0",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T05:17:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e5fa2cf1ae66e3ce8bb58d2bcc81032dca94260",
          "body": "feat: delta rendering, swarm context scopes, and stdin pipe mode",
          "is_bot": false,
          "headline": "Merge pull request #54 from devr-tools/boundary-wave-3",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T05:16:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b170dac27881b7d193969c292ae345babf27cef",
          "body": "'<cmd> | szr pipe' filters output already in flight: content sniffing\nroutes logs to the streaming severity summary, JSON and NDJSON to the\nstructured renders including tabular arrays, binary streams to\nprintable-string digests, and everything else through the generic\nsignal-aware reducer, with --hi\n[…]\nxplicit truncation\nnote; opt-in --tee preserves the raw stream byte-exact). Pipe mode\nnever fabricates exit-dependent framing it cannot observe.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): stdin pipe mode with content-sniffed summarization",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T05:11:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6c1ecd521b09bdbda93eaa1166f7e4e8a317567c",
          "body": "…copes\n\nWhen a command's output changed since a recent run of the same command,\nszr can now render a change digest instead of a full summary: 'since\nlast run (2m ago): +N -M lines' with the changed lines themselves,\nnewly-critical failure lines first and exempt from every cap, plus an\nexpandable bas\n[…]\ntext scope with a single export; reference expansion remains\ncontent-addressed and scope-free. Enabled via advanced.delta_render\n(default true).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(engine): delta rendering for changed re-runs and swarm context s…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T05:11:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6c7265ac2d795c421995fad506172c41171ec03b",
          "body": "The guarantee now covers the display after artifact suffixes are\nattached: when a complete tiny raw output is strictly cheaper than the\nrender plus its recovery pointer, the raw output wins and no pointer is\nemitted - it omits nothing. Canonical summaries lose their size slack\nentirely (the marker o\n[…]\nly breaks equal-size ties), so no summary of a\ntiny output can cost more than the output itself. Failures always keep\ntheir recovery references.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(engine): enforce never-worse-than-raw on the final display",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T04:49:58Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8b50973b09c2ef8fe7f6edad54533ed676f36855",
          "body": "…--components--szr\n\nchore(main): release 0.14.0",
          "is_bot": false,
          "headline": "Merge pull request #53 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T04:40:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d06451d547d5d61538899ebca686ecd35096f8bc",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.14.0",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T04:37:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5213cc2661718e819037b2c6ded4e84fcc83d3f5",
          "body": "feat: session dedup with reference expansion, tabular JSON, and fidelity depth",
          "is_bot": false,
          "headline": "Merge pull request #52 from devr-tools/boundary-wave-2",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T04:36:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a857564a96225bdfbcf19385c95592033fa8ffe",
          "body": "…rotocol\n\nInstalled agent instructions now cover the dedup reference format (do\nnot re-run; expand on demand), retention-verifier missing-detail\nsections, and the agent reasoning budget mode.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(installers): teach agents the reference-expansion and verifier p…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T04:33:40Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3ae65fdf1869c39740610156d15567c15ec2bec6",
          "body": "… rendering\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: highlight fidelity guarantees, session dedup, and anomaly-aware…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T04:29:58Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1d64b091b10b8d0505ae0b260986abeb8283e91c",
          "body": "A canonical summary may exceed tiny raw output by at most a quarter -\nbeyond that the raw lines win, eliminating negative-savings renders on\nsmall file lists and reads. A successful display equal to the complete\nraw stream no longer carries a redundant recovery pointer (and a stale\nomission claim ca\n[…]\n an actual improvement signal - poor compression or\na fallback-heavy path - so well-compressing high-volume commands stop\nappearing as problems.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(engine): honest small-output summaries and hotspot selection",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T04:24:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6e5fe242ed65755dad1f9a05fdb177972d2b55e4",
          "body": "…endering\n\nFilters now spend the compression-contract budget by priority tier -\nfailing-test names, diagnostic headers, and lint identifiers form an\nirreducible inventory that survives any cap, with details filling the\nremaining allowance - instead of competing in a generic density contest.\nApplied \n[…]\naped output renders as a byte count plus deduped printable\nstrings in both file reads and the fallback path. Adds a uniform-array\nbench fixture.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(filters): tier-priority self-capping and binary-aware fallback r…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T04:24:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2dcf4f83846fd8409ba2f2f275a46e76e90522f0",
          "body": "Arrays of uniform objects (at least 5 items sharing one key set) render\nas a header plus value rows: keys declared once, priority-ordered\ncolumns, quoted cells that keep null and \"null\" distinct, anomaly rows\nalways included, and explicit +N more markers. Halves the token cost of\nlist-shaped API res\n[…]\non compared to the previous\npreview, and applies to both json-query and gh api renders; every other\nJSON shape keeps the existing typed preview.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(filters): tabular rendering for uniform JSON arrays",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T04:24:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4c375cf4d4a97c84dd7616c6a2205a7c3600b3c7",
          "body": "Byte-identical re-runs of a command (same cwd, same exit code, within a\n30-minute window) now render as a two-line reference - the summary or\ncritical failure lines plus 'unchanged from previous run (x N)' with a\nref - and szr expand <ref> recovers the original raw output byte-exact.\nThe raw source \n[…]\nabled by\ndefault via advanced.session_dedup; artifacts live in a size-capped\nself-compacting store; verifier telemetry lands on history records.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(engine): session dedup with reference expansion",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T04:24:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d2cf9c272cd58ff17b5864e64b1388fd9f319d71",
          "body": "…--components--szr\n\nchore(main): release 0.13.0",
          "is_bot": false,
          "headline": "Merge pull request #51 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T03:22:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25e73c7f99bf20e955d0918168a68da43acabc50",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.13.0",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T03:10:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b4d1067142b164de2e8461816fad463084608cb",
          "body": "feat: retention verifier and fidelity-depth improvements across renders",
          "is_bot": false,
          "headline": "Merge pull request #50 from devr-tools/boundary-wave-1",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T03:09:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "77037e6cff8e285766196b744751d43688294be9",
          "body": "pnpm text-reporter failure, registry 404, cargo build error, and dotnet\nbuild failure fixtures assert the failing spec names, package specs, and\ndiagnostic codes survive rendering, with measured savings floors.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test(bench): pin runner identifiers with four new fidelity fixtures",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T03:01:35Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "522f315c0fabab84ed0060f77cc36b0203d3a3eb",
          "body": "…ling loosen advice\n\nThe poor-savings table previously ranked by residual volume with no\nsavings gate, so high-savings fingerprints with large outputs appeared\nas problems; rows now qualify only below 40% average savings (or\nnegative) and rank by residual tokens. Budget-loosen suggestions are\nskippe\n[…]\nnts failing more than 80% of runs - a fallback-heavy\nsignal on an always-failing command means the command errors, not that\nthe budget is tight.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): spread surfaces genuinely poor savings and skips always-fai…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T03:01:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "00d35faf66f3e8fb0f5453127c08da6634ee111e",
          "body": "… build detail\n\nList and table renders now always keep anomalous rows - minority states\nin cloud inventories (the one stopped instance among running), rare\nvalues in low-cardinality SQL/table columns (the past_due row) - plus\nexact counts. Huge git diffs render a complete directory-grouped file\ninve\n[…]\nrrors keep the undefined-symbol window, and glab commands map\nonto the GitHub profiles with a new list summarizer for gh/glab\npr/mr/issue lists.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(filters): anomaly-aware lists, full diff inventories, and deeper…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T03:01:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ec317507ae1984513fb95d3aeb701779e6deca15",
          "body": "…r renders\n\nPlain-text JS test output now leads with every failing spec name plus\nits assertion; registry errors keep the decoded package spec and error\ncode; cargo renders guarantee every error[ENNNN] header and clippy lint\nname survives any budget; the pytest short-summary parser no longer\nstops a\n[…]\n package covers msbuild diagnostics\n(CS/MSB/NETSDK codes with file anchors) and VSTest failures (test name,\nassert message, first stack anchor).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(filters): keep failing-test identifiers and error codes in runne…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T03:01:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7eb537caafbfb2f882f2b8ccf4d48c3e9b4b53e2",
          "body": "…acts\n\nAfter the full render pipeline, szr now extracts critical facts from raw\noutput - error lines, file:line anchors, diagnostic codes, failing-test\nidentifiers, and summary counts - and verifies their identifying tokens\nsurvived the render. Missing facts are repaired by appending a compact\n'miss\n[…]\nreference: a\ncompact view that omitted lines is lossy and may never replace a\nstructured render, and only a drastic size win justifies the swap.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(engine): retention verifier repairs renders that drop critical f…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T03:01:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "086fc8ad162c84d191f313ca857bb576b655953c",
          "body": "…--components--szr\n\nchore(main): release 0.12.1",
          "is_bot": false,
          "headline": "Merge pull request #49 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T02:03:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f282b84b59f3bbcbaf204b35a13c46f7237dd015",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.12.1",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T01:40:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "575e7c8f8c5a6856f6160e9688199d2c14a53a75",
          "body": "fix: post-render guards must not compare against truncated capture",
          "is_bot": false,
          "headline": "Merge pull request #48 from devr-tools/fix-guard-truncated-capture",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T01:40:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fdc6af84f534670c0791876f2e9bc59d85ef410e",
          "body": "…ated\n\nWith stream capture limited to the preview window, the\nnever-worse-than-raw guard and the terse-render preference compared\ncorrect summaries against only the HEAD of the output and replaced\nthem - a failing test run rendered as pass noise with every failing\ntest name dropped. Both guards now \n[…]\n when capture was truncated,\nmirroring the compression contract's true-raw-token fix. Regression\ntests reproduce the exact swap on unfixed code.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(engine): post-render guards must stand down when capture is trunc…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T01:30:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7fb5b8deec8885c1b5d38d6bd7518275c94d5bc5",
          "body": "…--components--szr\n\nchore(main): release 0.12.0",
          "is_bot": false,
          "headline": "Merge pull request #47 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:35:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17a5074f90e7a142be1cdf281983b33402aa6dad",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.12.0",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:29:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db8d6bdc325a509fbcacf91d20a471b9517c011d",
          "body": "fix: fidelity-first filtering — never destroy the answer",
          "is_bot": false,
          "headline": "Merge pull request #46 from devr-tools/fidelity-fixes",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:29:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd846bc45b58346bc61952eee258cda5f3ce4827",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into fidelity-fixes",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:25:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "efbdbf1545a6a30b100771f848e6deb89add44b4",
          "body": "feat: summarize raw gh api JSON responses",
          "is_bot": false,
          "headline": "Merge pull request #45 from devr-tools/gh-api-profile",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:25:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd36457f09394d0cbeb4ce08dbd2ce731102ffdb",
          "body": "RunLS/RunGrep/RunFind keep their original (int) signatures as deprecated\nwrappers; the handled-sentinel variants move to TryRunLS/TryRunGrep/\nTryRunFind, which the CLI routing uses. Resolves the codeguard\nexported-contract break without losing the native-delegation behavior.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): restore exported localcmd signatures for API compatibility",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:17:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "98eabf75b7cc2ea3d66037f95069261ceac7c70d",
          "body": "Executing a freshly written script can race a concurrent fork that\nbriefly holds the write descriptor open before its own exec, failing\nwith 'text file busy' on Linux. Start now retries up to 5 times with a\n10ms delay, rebuilding the command and pipes each attempt (a failed\nStart closes the parent pipe ends). Fixes the flaky\nTestExecuteRemovesIncrementalTeeOnSuccess CI failure and hardens real\nagent workflows that write-then-run scripts.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(engine): retry command start on ETXTBSY",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:17:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "68879a4ba69b1727113c46a08ea715916f12a100",
          "body": "…lity fixes\n\nAdds the service-log-severity fixture (95.9% measured savings, errors\nand histogram as must-keep content) and updates find/clean-pass\nexpectations for the verbatim-list and terse-pass renders.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test(bench): add service-log fixture and align expectations with fide…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:06:41Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f8033f28a75a5ef4fbee30369204a6270a8ad969",
          "body": "…th its headline\n\nShort file lists are the payload the agent asked for: find now lists\nevery path verbatim up to the budget and only buckets by extension and\ndirectory beyond it. gh pr view renders a dense header line first\n(number, state, title, review, branches) and self-caps its file list,\nso capping can never drop the title in favor of path-dense churn lines.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(filters): list small find results verbatim and lead gh pr view wi…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:06:41Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "742b4ab5d7314f68661279f2c9f32adfc713f7bb",
          "body": "cat on log-shaped files (extension plus timestamp/level content sniff)\nnow renders a severity histogram, every distinct ERROR/FATAL message\nwith exact counts and first-to-last time ranges (never dropped\nregardless of budget), and top messages per level - instead of relaying\nverbatim head lines that \n[…]\nental dedup map with bounded memory, so large logs never buffer\nfully. A 696KB service log now renders in 587 bytes with all errors\nfirst-class.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(filters): severity-aware summaries for log files",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:06:41Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "bffdd3fc442f4d2cac3b61da5b6069138fca8260",
          "body": "…fs keep content\n\ngit log -5 keeps the requested count and format instead of being\nrewritten to 20 oneline commits; plain git diff runs the user's exact\narguments and summarizes from the full patch, keeping whole filenames,\nconflict markers, and verbatim changed lines for small diffs; git show\nno longer injects --no-patch over an explicit --stat.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(profiles): git rewrites respect explicit user flags and small dif…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:06:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8e80a3b683baf7a367dd2fb2de7df01c0d5b852a",
          "body": "The 1/5 hard cap no longer arms below 200 raw tokens and never retains\nfewer than 48, so small diagnostics stop being crushed to ellipses.\nhardCapTokens keeps whole highest-value lines (headline first) instead\nof producing word salad, failing commands can never render content-free\noutput (recovering\n[…]\n capture was stream-limited),\nand passing runs of Prepare-rewritten commands prefer a render no larger\nthan the original command's plain output.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(engine): fidelity floor for the compression contract",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:06:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0b207f58a54892cabc4b8125daa7cf0c2e977a46",
          "body": "Builtin grep/find/ls emulations now return a handled sentinel and route\nanything they cannot fully parse through the engine with the user's\noriginal argv, so profiles still filter the output and exit codes match\nthe native command. The grep-to-rg rewrite checks LookPath and falls\nback to real grep w\n[…]\nmatch exit 1 is no\nlonger swallowed. Previously these paths lost all output and mutated\nexit codes on standard flags like find -name and ls -la.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): delegate unsupported builtin argv to native binaries",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-03T00:06:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b13d9f35f754d5cf612bd71beae826389736b22b",
          "body": "…utput hotspots\n\nWith proxied runs kept in token totals, the headline savings percentage\nwas computed over all input tokens, so a proxy-heavy sample reported\n0.1% even when the filter saved most of what it actually touched. The\nheadline now shows savings over filtered traffic (with the overall\nfigur\n[…]\n Hotspot and fingerprint analysis now skip\nzero-output records, which previously could surface a command with\nnothing to save as the top action.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): report spread savings over filtered traffic and skip zero-o…",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-02T21:46:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "eee2d1f4a54fd6dfd02ec43c9600d7be9b502072",
          "body": "gh api output previously fell through to passthrough (0% savings on\nJSON payloads). It now renders through the bounded JSON value preview,\nmatching only when the user has not already filtered with --jq,\n--template, or --silent; the request itself is never rewritten, and\nnon-JSON responses fall back to compact lines.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(profiles): summarize raw gh api JSON responses",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-02T20:57:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "67e5e15e0598b8ddbe7da2ade4a7e114ba429ccf",
          "body": "…--components--szr\n\nchore(main): release 0.11.0",
          "is_bot": false,
          "headline": "Merge pull request #44 from devr-tools/release-please--branches--main…",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-02T20:42:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ccfa616628905fa174b18126ff905bcc69c949f3",
          "body": null,
          "is_bot": false,
          "headline": "chore(main): release 0.11.0",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-02T20:38:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "491ba8509622b66df3322ade7d2b53f49e570819",
          "body": "fix: correct compression-contract budgeting and clean up spread analytics",
          "is_bot": false,
          "headline": "Merge pull request #43 from devr-tools/spread-quality-fixes",
          "author_name": "alex",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-02T20:38:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "107553ae51c30092076d78fc88d3c287c7a03d06",
          "body": "Pipeline-style grep with no file operand (reading stdin) previously fell\nthrough to passthrough because the matcher required a recursive flag.\nStdin invocations now match, are never rewritten (flag injection would\ncorrupt pipeline output), and render through compact line folding since\nstdin matches carry no file:line prefixes for the grouped renderer.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(profiles): route pattern-only grep through the grep profile",
          "author_name": "Alex Wilkerson John",
          "author_login": "alxxjohn",
          "committed_at": "2026-07-02T20:25:35Z",
          "body_truncated": false,
          "is_coding_agent": true
        }
      ],
      "releases_count": 22,
      "commits_last_year": 327,
      "latest_release_at": "2026-07-17T01:31:21Z",
      "latest_release_tag": "v0.19.1",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 7,
      "days_since_latest_release": 5,
      "mean_days_between_releases": 1.6
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/devr-tools/szr",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/devr-tools/szr",
          "is_deprecated": false,
          "latest_version": "v0.19.1",
          "repository_url": "https://github.com/devr-tools/szr",
          "versions_count": 23,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T01:31:09Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 5,
      "watchers": 1,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [
          {
            "date": "2026-07-22",
            "count": 5
          }
        ],
        "complete": true,
        "collected": 5,
        "total_stars": 5
      },
      "open_issues_and_prs": 1
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "go.mod"
      ],
      "largest_source_bytes": 33173,
      "source_files_sampled": 479,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "go.mod"
      ],
      "advisories": {
        "error": "No resolved dependencies to assess",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go"
      ],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [],
        "collected": true,
        "truncated": false,
        "total_count": 0,
        "direct_count": 0,
        "indirect_count": 0
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 1,
        "merged_prs": 76,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 1
      },
      "bus_factor": 1,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "alxxjohn",
          "commits": 320,
          "avatar_url": "https://avatars.githubusercontent.com/u/53851759?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "cd.yml",
        "ci.yml",
        "homebrew-validation.yml",
        "release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".golangci.yml"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 9,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 5,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "10 out of 10 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/10 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "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": 10,
            "reason": "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": 0,
            "reason": "project was created within the last 90 days. Please review its contents carefully",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 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": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "4848f81f4eebf09f4c7f8d2513fbbe615fc59d99",
        "ran_at": "2026-07-22T03:15:15Z",
        "aggregate_score": 4.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-21T16:09:09Z",
      "oldest_open_prs": [
        {
          "number": 76,
          "created_at": "2026-07-20T22:05:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-21T16:08:40Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/devr-tools/szr",
    "host": "github.com",
    "name": "szr",
    "owner": "devr-tools"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 61,
      "inputs": {
        "security": 48,
        "vitality": 71,
        "community": 48,
        "governance": 50,
        "engineering": 86
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 71,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 59,
            "inputs": {
              "commits_last_year": 327,
              "human_commit_share": 0.98,
              "days_since_last_push": 0,
              "active_weeks_last_year": 7
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "7/52 weeks with commits",
                "points": 4.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "327 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 327
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 22,
              "latest_release_tag": "v0.19.1",
              "releases_from_tags": false,
              "days_since_latest_release": 5,
              "mean_days_between_releases": 1.6
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "22 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 22
                    }
                  }
                ],
                "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 ~1.6 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 1.6
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 48,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 10,
            "inputs": {
              "forks": 0,
              "stars": 5,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "below_threshold"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "5 stars",
                "points": 9.8,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "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,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "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 (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "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
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 50,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 10,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "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 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 71,
            "inputs": {
              "merged_prs": 76,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 1
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "76/77 decided PRs merged",
                "points": 37.8,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 76,
                      "decided": 77
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/10 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 38,
            "inputs": {
              "followers": 1,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "devr-tools",
              "public_repos": 5,
              "account_age_days": 62
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "1 followers of devr-tools",
                "points": 2.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1,
                      "login": "devr-tools"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "5 public repos, account ~0 yr old",
                "points": 6,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 5
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/devr-tools/szr"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "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": "23 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 23
                    }
                  }
                ],
                "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": "excellent",
        "name": "Engineering Quality",
        "value": 86,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "4 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "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": ".golangci.yml",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "10 out of 10 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "ai",
                "go",
                "tool-suite",
                "ai-agents",
                "ai-tools",
                "sizer",
                "szr"
              ],
              "has_wiki": false,
              "homepage": "https://devrtools.com/szr",
              "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://devrtools.com/szr",
                "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": "7 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 48,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": null,
            "notes": [],
            "value": 48,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 18,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 0,
              "scorecard_aggregate": 4.8
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "10 out of 10 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/10 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "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": "update tool detected",
                "points": 7.5,
                "status": "met",
                "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": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 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": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 2
            },
            "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": 74,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.929,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "91 of 98 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 91,
                      "sampled": 98
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.36,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0.02
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "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": ".golangci.yml",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "36 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 36,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "2 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 2,
                      "sampled": 100
                    }
                  }
                ],
                "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": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 33173,
              "source_files_sampled": 479,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/479 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 479,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [],
  "report_type": "repository",
  "generated_at": "2026-07-22T03:15:31.673068Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/d/devr-tools/szr.svg",
  "full_name": "devr-tools/szr",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

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 v1.13.0, esquema v0.26.0 — metodología completa · wiki de métricas.

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