Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-25 11:03 UTC

Polar-Team / diffusion

Framework written in Go to simplify testing of ansible roles.

Go · PythonMIT★ 0 estrellas⑂ 0 forksdesde nov 2025Ver en GitHub ↗

Polar-Team/diffusion tiene un índice de salud de 57 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es Vitality (92/100) y la más baja, Community & Adoption (24/100). Se actualizó por última vez hace 5 días. Una sola persona concentra la mayor parte del trabajo reciente.

57
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.

57
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

Polar TeamOrganización
1 seguidor7 repositorios públicosdesde ene 2025

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

Métricas por categoría

Vitalidad

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

92Excelente · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 5 días
21.5/36Cadencia de commits — 31/52 semanas con commits
18/18Volumen de commits — 434 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year434
human_commit_share1
days_since_last_push5
active_weeks_last_year31
Cómo se puntúa
27/27Publica versiones — 76 versiones publicadas
36/36Recencia de las versiones — última versión hace 5 días
27/27Cadencia de publicación — una versión cada ~7,7 días
10/10OpenSSF Scorecard: Signed-Releases — 5 out of the last 5 releases have a total of 10 signed artifacts.
Datos de entrada utilizados
releases_count76
latest_release_tagv0.7.7
releases_from_tagsno
days_since_latest_release5
mean_days_between_releases7,7

Comunidad y Adopción

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

24Crítico · 18% del índice global
Cómo se puntúa
0/60Estrellas — 0 estrellas
0/25Forks — 0 forks
0/15Observadores — 0 observadores
Datos de entrada utilizados
forks0
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno

Sostenibilidad y Gobernanza

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

46En riesgo · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
8.7/22.5Distribución de commits — el principal contribuyente firma el 62% de los commits
4.1/13.5Amplitud de contribuyentes — 3 contribuyentes
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Datos de entrada utilizados
bus_factor1
contributors_sampled3
top_contributor_share0,615
Cómo se puntúa
38.9/46.8Resolución de issues — 83% de issues cerradas
36.7/38.3Aceptación de PR — 73/76 PR decididos fusionados
0/15OpenSSF Scorecard: Code-Review — Found 0/10 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs73
open_issues3
closed_issues15
issue_closed_ratio0,833
closed_unmerged_prs3
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 Polar-Team
9.7/25Trayectoria — 7 repos públicos, cuenta de ~1 años
Datos de entrada utilizados
followers1
owner_typeOrganization
is_verified
owner_loginPolar-Team
public_repos7
account_age_days568

Calidad de Ingeniería

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

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

Documentación

65Moderado
Cómo se puntúa
30/30README
25/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
10/10Descripción del repositorio
0/10Topics
0/10Wiki
Datos de entrada utilizados
topics
has_wikino
homepage
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
7.5/7.5Binary-Artifacts — no binaries found in the repo
2.2/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 12 out of 12 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.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Licencia — license file detected
7.5/7.5Maintained — 30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
5/5SAST — SAST tool detected
0/5Security-Policy — security policy file not detected
7.5/7.5Signed-Releases — 5 out of the last 5 releases have a total of 10 signed artifacts.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 33 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.

60Moderado · 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 — 99 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,99
agent_instruction_files
agent_instruction_max_bytes
Cómo se puntúa
18/18Arranque con un solo comando — Makefile, mcp/Makefile
22/22Pruebas automatizadas
0/11Configuración de lint / formato
11/11Verificación estática de tipos — Go (tipado estático)
10/10Entorno reproducible — Dockerfile, lockfile
0/10Práctica demostrada con agentes — ningún commit con autoría de agente entre los últimos 100
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Datos de entrada utilizados
has_nixno
has_tests
lockfilesgo.sum, uv.lock
has_dockerfile
typed_language
bootstrap_filesMakefile, mcp/Makefile
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifestsgo.mod
dependency_bot_commit_share0
Cómo se puntúa
45/45Código verificable por tipos — Go (tipado estático)
54.4/55Tamaños de archivo manejables — 1/90 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageGo
largest_source_bytes81.418
source_files_sampled90
oversized_source_files1
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
20/20Servidor MCP
40/40Ejemplos ejecutables — examples
Datos de entrada utilizados
example_dirsexamples
has_mcp_signal
api_schema_files

Datos clave

0estrellas de GitHub
3contribuidores
434commits en los últimos 12 meses
5días desde el último push
76versiones publicadas
1factor bus
3issues abiertas
Go, PyPIecosistemas de paquetes

Advertencias de recopilación de datos

  • Could not fetch pypi package 'diffusion-mcp' from its registry
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

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-25 11:02 UTC

10Binary-Artifactsno binaries found in the repo
3Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests12 out of 12 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
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
10SASTSAST tool detected
0Security-Policysecurity policy file not detected
10Signed-Releases5 out of the last 5 releases have a total of 10 signed artifacts.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities33 existing vulnerabilities detected
Dependencias directas 10
RegistroPaqueteRestricción de versiónManifiesto
Gogithub.com/BurntSushi/tomlv1.5.0go.mod
Gogithub.com/hashicorp/terraform-plugin-frameworkv1.19.0go.mod
Gogithub.com/hashicorp/terraform-plugin-logv0.10.0go.mod
Gogithub.com/hashicorp/vault-client-gov0.4.3go.mod
Gogithub.com/mattn/go-isattyv0.0.20go.mod
Gogithub.com/spf13/cobrav1.10.1go.mod
Gogopkg.in/yaml.v3v3.0.1go.mod
PyPImcp>=1.0.0mcp/pyproject.toml
PyPIpyyaml>=6.0mcp/pyproject.toml
PyPItomli>=2.0.0mcp/pyproject.toml
Todas las dependencias no recopilado

No fue posible recopilar el conjunto de dependencias resuelto para este informe: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Informe JSON sin procesar legible por máquina
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 14672,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "Go": 677937,
        "Shell": 4096,
        "Python": 81516,
        "Makefile": 18960,
        "Dockerfile": 3954,
        "PowerShell": 7860
      },
      "pushed_at": "2026-07-20T08:54:45Z",
      "created_at": "2025-11-29T03:35:25Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-19T15:01:58Z",
      "description": "Framework written in Go to simplify testing of ansible roles.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Go",
      "significant_languages": [
        "Go",
        "Python"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Polar Team",
      "type": "Organization",
      "login": "Polar-Team",
      "company": null,
      "location": null,
      "followers": 1,
      "avatar_url": "https://avatars.githubusercontent.com/u/193595423?v=4",
      "created_at": "2025-01-03T10:59:26Z",
      "is_verified": null,
      "public_repos": 7,
      "account_age_days": 568
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.7.7",
          "kind": "patch",
          "published_at": "2026-07-19T15:06:39Z"
        },
        {
          "tag": "v0.7.6",
          "kind": "patch",
          "published_at": "2026-07-19T15:06:35Z"
        },
        {
          "tag": "v0.7.5",
          "kind": "patch",
          "published_at": "2026-07-19T15:03:50Z"
        },
        {
          "tag": "v0.7.4",
          "kind": "patch",
          "published_at": "2026-07-19T14:12:25Z"
        },
        {
          "tag": "v0.7.3",
          "kind": "patch",
          "published_at": "2026-07-05T16:05:53Z"
        },
        {
          "tag": "v0.7.2",
          "kind": "patch",
          "published_at": "2026-07-05T08:19:35Z"
        },
        {
          "tag": "v0.7.1",
          "kind": "patch",
          "published_at": "2026-07-05T08:19:31Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-07-04T15:31:50Z"
        },
        {
          "tag": "v0.6.5",
          "kind": "patch",
          "published_at": "2026-06-13T16:19:48Z"
        },
        {
          "tag": "v0.6.4",
          "kind": "patch",
          "published_at": "2026-05-11T16:38:20Z"
        },
        {
          "tag": "v0.6.3",
          "kind": "patch",
          "published_at": "2026-05-11T15:37:08Z"
        },
        {
          "tag": "v0.6.2",
          "kind": "patch",
          "published_at": "2026-05-11T15:36:57Z"
        },
        {
          "tag": "v0.6.1",
          "kind": "patch",
          "published_at": "2026-05-10T10:35:19Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-05-02T11:47:13Z"
        },
        {
          "tag": "v0.5.22",
          "kind": "patch",
          "published_at": "2026-05-02T08:14:31Z"
        },
        {
          "tag": "v0.5.21",
          "kind": "patch",
          "published_at": "2026-04-26T16:47:33Z"
        },
        {
          "tag": "v0.5.20",
          "kind": "patch",
          "published_at": "2026-04-26T16:20:28Z"
        },
        {
          "tag": "v0.5.19",
          "kind": "patch",
          "published_at": "2026-04-26T15:47:01Z"
        },
        {
          "tag": "v0.5.18",
          "kind": "patch",
          "published_at": "2026-04-26T15:17:24Z"
        },
        {
          "tag": "v0.5.14",
          "kind": "patch",
          "published_at": "2026-04-26T13:56:19Z"
        },
        {
          "tag": "v0.5.17",
          "kind": "patch",
          "published_at": "2026-04-26T15:16:24Z"
        },
        {
          "tag": "v0.5.16",
          "kind": "patch",
          "published_at": "2026-04-26T15:15:26Z"
        },
        {
          "tag": "v0.5.15",
          "kind": "patch",
          "published_at": "2026-04-26T14:58:57Z"
        },
        {
          "tag": "v0.5.13",
          "kind": "patch",
          "published_at": "2026-04-26T10:16:01Z"
        },
        {
          "tag": "v0.5.12",
          "kind": "patch",
          "published_at": "2026-04-19T13:03:53Z"
        },
        {
          "tag": "v0.5.11",
          "kind": "patch",
          "published_at": "2026-04-19T11:31:05Z"
        },
        {
          "tag": "v0.5.10",
          "kind": "patch",
          "published_at": "2026-04-19T08:36:26Z"
        },
        {
          "tag": "v0.5.9",
          "kind": "patch",
          "published_at": "2026-04-05T11:34:23Z"
        },
        {
          "tag": "v0.5.8",
          "kind": "patch",
          "published_at": "2026-04-04T19:43:42Z"
        },
        {
          "tag": "v0.5.7",
          "kind": "patch",
          "published_at": "2026-04-04T17:27:39Z"
        },
        {
          "tag": "v0.5.6",
          "kind": "patch",
          "published_at": "2026-04-04T17:12:18Z"
        },
        {
          "tag": "v0.5.5",
          "kind": "patch",
          "published_at": "2026-03-28T18:47:22Z"
        },
        {
          "tag": "v0.5.4",
          "kind": "patch",
          "published_at": "2026-03-09T14:38:42Z"
        },
        {
          "tag": "v0.5.3",
          "kind": "patch",
          "published_at": "2026-03-09T14:36:20Z"
        },
        {
          "tag": "v0.5.2",
          "kind": "patch",
          "published_at": "2026-03-01T14:18:48Z"
        },
        {
          "tag": "v0.5.1",
          "kind": "patch",
          "published_at": "2026-02-22T14:00:19Z"
        },
        {
          "tag": "v0.4.19",
          "kind": "patch",
          "published_at": "2026-02-01T13:03:32Z"
        },
        {
          "tag": "v0.4.18",
          "kind": "patch",
          "published_at": "2026-02-01T12:07:54Z"
        },
        {
          "tag": "v0.4.17",
          "kind": "patch",
          "published_at": "2026-02-01T10:56:19Z"
        },
        {
          "tag": "v0.4.16",
          "kind": "patch",
          "published_at": "2026-02-01T08:30:48Z"
        },
        {
          "tag": "v0.4.15",
          "kind": "patch",
          "published_at": "2026-02-01T07:01:04Z"
        },
        {
          "tag": "v0.4.14",
          "kind": "patch",
          "published_at": "2026-02-01T06:51:03Z"
        },
        {
          "tag": "v0.4.13",
          "kind": "patch",
          "published_at": "2026-02-01T06:39:34Z"
        },
        {
          "tag": "v0.4.12",
          "kind": "patch",
          "published_at": "2026-02-01T06:24:54Z"
        },
        {
          "tag": "v0.4.11",
          "kind": "patch",
          "published_at": "2026-02-01T06:09:56Z"
        },
        {
          "tag": "v0.4.10",
          "kind": "patch",
          "published_at": "2026-02-01T06:02:44Z"
        },
        {
          "tag": "v0.4.9",
          "kind": "patch",
          "published_at": "2026-01-31T10:00:05Z"
        },
        {
          "tag": "v0.4.8",
          "kind": "patch",
          "published_at": "2026-01-31T08:29:37Z"
        },
        {
          "tag": "v0.4.7",
          "kind": "patch",
          "published_at": "2026-01-31T08:26:52Z"
        },
        {
          "tag": "v0.4.6",
          "kind": "patch",
          "published_at": "2026-01-25T08:44:10Z"
        },
        {
          "tag": "v0.4.5",
          "kind": "patch",
          "published_at": "2026-01-17T16:09:37Z"
        },
        {
          "tag": "v0.4.4",
          "kind": "patch",
          "published_at": "2026-01-16T16:13:03Z"
        },
        {
          "tag": "v0.4.3",
          "kind": "patch",
          "published_at": "2026-01-15T18:24:44Z"
        },
        {
          "tag": "v0.4.2",
          "kind": "patch",
          "published_at": "2025-12-30T14:14:03Z"
        },
        {
          "tag": "v0.4.1",
          "kind": "patch",
          "published_at": "2025-12-27T18:24:16Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2025-12-27T17:18:45Z"
        },
        {
          "tag": "v0.3.14",
          "kind": "patch",
          "published_at": "2025-12-23T13:09:03Z"
        },
        {
          "tag": "v0.3.13",
          "kind": "patch",
          "published_at": "2025-12-23T13:06:11Z"
        },
        {
          "tag": "v0.3.12",
          "kind": "patch",
          "published_at": "2025-12-23T12:06:43Z"
        },
        {
          "tag": "v0.3.11",
          "kind": "patch",
          "published_at": "2025-12-23T11:41:10Z"
        },
        {
          "tag": "v0.3.10",
          "kind": "patch",
          "published_at": "2025-12-23T10:39:26Z"
        },
        {
          "tag": "v0.3.9",
          "kind": "patch",
          "published_at": "2025-12-22T19:49:37Z"
        },
        {
          "tag": "v0.3.8",
          "kind": "patch",
          "published_at": "2025-12-22T19:02:26Z"
        },
        {
          "tag": "v0.3.7",
          "kind": "patch",
          "published_at": "2025-12-22T18:54:19Z"
        },
        {
          "tag": "v0.3.6",
          "kind": "patch",
          "published_at": "2025-12-22T15:13:24Z"
        },
        {
          "tag": "v0.3.5",
          "kind": "patch",
          "published_at": "2025-12-22T15:07:22Z"
        },
        {
          "tag": "v0.3.4",
          "kind": "patch",
          "published_at": "2025-12-22T15:01:27Z"
        },
        {
          "tag": "v0.3.1",
          "kind": "patch",
          "published_at": "2025-12-22T14:52:23Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2025-12-22T14:28:18Z"
        },
        {
          "tag": "v0.2.9",
          "kind": "patch",
          "published_at": "2025-12-21T17:42:32Z"
        },
        {
          "tag": "v0.2.8",
          "kind": "patch",
          "published_at": "2025-12-21T17:30:16Z"
        },
        {
          "tag": "v0.2.7",
          "kind": "patch",
          "published_at": "2025-12-21T17:19:52Z"
        },
        {
          "tag": "v0.2.5",
          "kind": "patch",
          "published_at": "2025-12-21T16:41:21Z"
        },
        {
          "tag": "v0.2.4",
          "kind": "patch",
          "published_at": "2025-12-21T12:11:30Z"
        },
        {
          "tag": "v0.2.3",
          "kind": "patch",
          "published_at": "2025-12-20T16:23:32Z"
        },
        {
          "tag": "v0.2.2",
          "kind": "patch",
          "published_at": "2025-12-20T15:30:07Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "7cf4ca07526c8900877861ffecee59898b88652c",
          "body": "…base64-to-container",
          "is_bot": false,
          "headline": "Merge pull request #94 from Polar-Team/feature/add-ssh-key-pass-text-…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-19T15:01:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87db70c6a94598b1b9e7d06c252d682c7d47bb74",
          "body": "…ction\n\n- Add SSHKeyBase64 field to DeployConfig for storing base64-encoded SSH private keys\n- Add --ssh-key-base64 CLI flag to deploy command for passing encoded keys\n- Decode base64 SSH key and write to temporary file with restricted permissions (0o600)\n- Inject decoded key path into host variable\n[…]\n so key paths are included in rendered YAML\n- Add base64 import and update Deploy function documentation\n- Enables Terraform integration where SSH keys are generated dynamically and not stored on disk",
          "is_bot": false,
          "headline": "feat(deploy): add base64-encoded SSH key support for dynamic key inje…",
          "author_name": "Morshimus",
          "author_login": "Morshimus",
          "committed_at": "2026-07-19T14:50:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4866810502c0c4d97e30112b5724b9ac9d44d117",
          "body": "…-prompts",
          "is_bot": false,
          "headline": "Merge pull request #93 from Polar-Team/chore/agents-kiro-optimization…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-19T14:41:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e58a98858c69e31e817c28772dd55bfd77aa843",
          "body": "…iles\n\n- Extract inline prompt strings from agent JSON configs to separate .prompt.md files\n- Create prompt files for code-reviewer, devops-senior-engineer, go-senior-developer, and senior-qa-tester agents\n- Add new team-lead agent with dedicated configuration and prompt\n- Update agent JSON configs \n[…]\nting prompt content from agent metadata\n- Upgrade devops-senior-engineer model from claude-sonnet-4 to claude-sonnet-5\n- Enable easier prompt versioning and collaboration on agent behavior definitions",
          "is_bot": false,
          "headline": "feat(.kiro/agents): externalize agent prompts to dedicated markdown f…",
          "author_name": "Morshimus",
          "author_login": "Morshimus",
          "committed_at": "2026-07-19T14:14:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4fcf986896a9e0be67fcbc5a563f55a785e3f9b1",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #92 from Polar-Team/fix/deploy-logic-optimization",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-19T13:54:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4bf7bb7ad204ae5f26c0bc7d58c7ff959647af17",
          "body": "…rsions",
          "is_bot": false,
          "headline": "Merge pull request #91 from Polar-Team/chore/update-mcp-dockerfile-ve…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-19T06:44:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36b84bf7936ae2a675430425cdc79a5868c0cb52",
          "body": "…odernize type hints\n\n- Extract container execution logic from RunDeployContainer into reusable DockerRunDeployContainer helper\n- Move docker run/rm command handling to utils package for better code organization\n- Inject container name generation into args rather than managing it separately\n- Replac\n[…]\nainer.go (now imported in helpers.go)\n- Improve error messages to include container name for better debugging\n- Consolidate container lifecycle guarantees (defer cleanup) into single reusable function",
          "is_bot": false,
          "headline": "refactor(deploy): extract docker container lifecycle management and m…",
          "author_name": "Morshimus",
          "author_login": "Morshimus",
          "committed_at": "2026-07-18T12:30:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0fc96d6488c05651b36ecb48e934299c2e3b3456",
          "body": "…terns\n\n- Add generateSessionID() function to create unique UUIDv4 identifiers for container naming\n- Update RunDeployContainer to use dynamic container names (diffusion-deploy-<session-id>)\n- Add defer cleanup to ensure containers are forcefully removed on exit or failure\n- Update buildDeployDocker\n[…]\nes.Contains from standard library\n- Add documentation comment for stripScenarioPrefix function\n- Improves container lifecycle management and reduces container name collisions in concurrent deployments",
          "is_bot": false,
          "headline": "feat(deploy): add session-based container naming and improve code pat…",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-18T12:17:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e4e6b8c589489619662febeb81bd5d287687aa94",
          "body": "- Go: 1.26.5\n- Python: 3.13.14-slim\n- UV: 0.11.28",
          "is_bot": false,
          "headline": "chore(mcp): update Dockerfile versions",
          "author_name": "Morshimus",
          "author_login": "Morshimus",
          "committed_at": "2026-07-13T09:22:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aad364ff708b6a7b4e331d96261c07d8a09d3376",
          "body": "…-duplications-change",
          "is_bot": false,
          "headline": "Merge pull request #90 from Polar-Team/fix/diffusion-docs-vars-proper…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-05T16:01:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74aa3f84f04bf00d19528a4708af0189362303d4",
          "body": "… vars\n\n- Update fixture comment in vars/main.yml to indicate static role binding reference instead of duplicate flag\n- Revise e2e-docs.sh test to check for \"also in\" indicator instead of \"duplicate\" warning\n- Align test expectations with improved cross-reference documentation feature\n- Ensures CI validation matches updated duplicate vs. cross-reference distinction logic",
          "is_bot": false,
          "headline": "ci(e2e-docs): update test fixture and validation for cross-referenced…",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-05T15:30:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a167a700ad1b55cc254b975fd749493212129693",
          "body": "…efaults/vars\n\n- Add HasVarsRef field to RoleVariable to track vars that exist in both defaults/ and vars/\n- Update duplicate detection logic to differentiate true duplicates (multiple sources of same type) from cross-references (one defaults + one vars)\n- Mark cross-referenced variables with ℹ️ ind\n[…]\n- Update duplicate legend to clarify that duplicates are within the same source type\n- Improve inline comments explaining the distinction between critical duplicates and informational cross-references",
          "is_bot": false,
          "headline": "feat(docs): distinguish between duplicate vars and cross-referenced d…",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-05T14:48:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3cdf0f51fe280d7d6f46a8f9c4b1136430434b5f",
          "body": "…tter-coverage-during-tests-and-update",
          "is_bot": false,
          "headline": "Merge pull request #89 from Polar-Team/chore/mcp-actualization-for-be…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-05T14:40:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ccd6f9ce403c1e67dab6ee3f0d7da0b5f296b289",
          "body": "…ults directory\n\n- Update description to reflect scanning all files under defaults/ directory, not just main.yml\n- Add note explaining that variables can be split across multiple defaults/ files (main.yml, network.yml, database.yml, etc.)\n- Clarify that documentation comments can be placed above or \n[…]\nl, defaults/database.yml) in documentation\n- Update example command output to show docs generation from all files in defaults/\n- Improves user understanding of the docs command's multi-file capability",
          "is_bot": false,
          "headline": "feat(mcp): expand docs command to support multiple YAML files in defa…",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-05T14:36:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4742cdd133e06748362a637f28972548c7e97058",
          "body": "…tter-coverage-during-tests-and-update",
          "is_bot": false,
          "headline": "Merge pull request #88 from Polar-Team/chore/mcp-actualization-for-be…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-05T14:25:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5b01137aff2cddf1e00f5f639f1b6abe56dd58e",
          "body": "…rence docs\n\n- Add docker_in_docker_in_molecule tool to execute commands inside scenario containers for troubleshooting\n- Support optional working directory and configurable timeout parameters\n- Enhance CLI reference documentation for required (#-!) and optional (#-&) variable markers with clearer u\n[…]\ne instructions\n- Fix string quote consistency in example YAML documentation (use double quotes)\n- Improve marker syntax documentation to clarify relationship between type, name, and description fields",
          "is_bot": false,
          "headline": "feat(mcp): add docker_in_docker_in_molecule tool and improve CLI refe…",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-05T14:24:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "26305d5558f1d16a85ddac49dcc576deca2b5a04",
          "body": "…tter-coverage-during-tests-and-update",
          "is_bot": false,
          "headline": "Merge pull request #87 from Polar-Team/chore/mcp-actualization-for-be…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-05T13:54:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4b32a04c7f669b2e6a7c465bfd308bce399df0d",
          "body": "…d marker syntax\n\n- Clarify `#-!` (required variable) marker: emphasize OMITTED status and specify syntax format with variable name only\n- Clarify `#-&` (optional/Jinja2 default) marker: emphasize OMITTED status and specify syntax format with variable name only\n- Add `syntax` field to both markers d\n[…]\nyml file\n- Update usage descriptions to clarify that markers document variables with no YAML declarations\n- Improve consistency and precision of marker documentation for better developer understanding",
          "is_bot": false,
          "headline": "feat(mcp): enhance Diffusion CLI reference documentation with improve…",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-05T13:49:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cdf48432b66fa6f8ba9315cf5574eb76a4e0d45f",
          "body": "…tter-coverage-during-tests-and-update",
          "is_bot": false,
          "headline": "Merge pull request #86 from Polar-Team/chore/mcp-actualization-for-be…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-05T13:13:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ed42ba9036c86642e7b3b5da0680171e29f2768",
          "body": "- Convert multi-line f-strings to triple-quoted strings for improved readability\n- Standardize quote usage in string literals for consistency throughout the file\n- Change type annotation values from string to list format for clarity\n- Update Terraform provider reference examples to use consistent quote style\n- Simplify list assignment formatting for get_requirements_yml function\n- Add blank lines between function definitions for improved code organization",
          "is_bot": false,
          "headline": "style(mcp): fix string formatting and quote consistency in server.py",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-05T13:00:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8be2a97f1e89bb5518b694966d25f4c69f783cf3",
          "body": "- Add comprehensive \"docs\" command reference with marker syntax (#-|, #-?, #-!, #-&)\n- Include documentation for type annotations, descriptions, required/optional variables\n- Provide usage examples and annotation block patterns for the docs command\n- Add update_diffusion_docs() MCP tool to run `diff\n[…]\nle_scenarios() to scan only scenarios/ directory\n- Add \"docs --dry-run\" to the list of supported diffusion commands\n- Improves inline documentation generation for role defaults and variable management",
          "is_bot": false,
          "headline": "feat(mcp): add docs command support and refactor scenario discovery",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-05T12:45:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "861dc0878132d83de5d3e2f2c88d11ae03917dcc",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #85 from Polar-Team/fix/ai-agent-tty-commands-failed",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-05T08:17:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e27a265b25879d5e87d739787f1bdbae17a56799",
          "body": "- Add terminal.go with IsTerminal() and IsInteractive() helpers to detect TTY availability\n- Introduce go-isatty dependency for cross-platform terminal detection (Cygwin support)\n- Promote go-isatty from indirect to direct dependency in go.mod\n- Replace hardcoded ciMode checks with IsInteractive() c\n[…]\nnal_test.go with tests for IsTerminal, IsInteractive, and TTY detection\n- Fixes behavior in non-TTY environments (CI, agent/MCP execution, piped output) by automatically disabling interactive features",
          "is_bot": false,
          "headline": "feat(utils): add terminal detection and interactive mode helpers",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-05T08:02:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "eb292fbb0d086e373afc243acdcd3ff0fcdce471",
          "body": "…rsions",
          "is_bot": false,
          "headline": "Merge pull request #84 from Polar-Team/chore/update-mcp-dockerfile-ve…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-05T08:02:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8bfefbcb00ee32436bd1d9b48f104b57f3745822",
          "body": "- Go: 1.26.4\n- Python: 3.13.14-slim\n- UV: 0.11.26",
          "is_bot": false,
          "headline": "chore(mcp): update Dockerfile versions",
          "author_name": "Morshimus",
          "author_login": "Morshimus",
          "committed_at": "2026-07-05T07:36:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28bc7a13006c4652a31b16a473b79cbefe826a92",
          "body": null,
          "is_bot": false,
          "headline": "added: submodule of terraform module",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-04T15:31:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3eda49a94f7e64119925b812b52effefe79246f3",
          "body": "feat: add diffusion-docs command for role variable documentation",
          "is_bot": false,
          "headline": "Merge pull request #83 from Polar-Team/feature/diffusion-docs",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-07-04T15:29:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "869743b48d59f3e2d4b9067e002fdb2de200620f",
          "body": "- Remove dependency on cmp utility for file comparison\n- Use shell variable assignment and string equality check instead\n- Read file contents directly with cat into variables\n- Compare files using [ \"$FILE_A\" = \"$FILE_B\" ] syntax\n- Improves portability by eliminating reliance on external tools",
          "is_bot": false,
          "headline": "ci: replace cmp with shell comparison in e2e docs test",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-04T15:09:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e37dc895853f30a4e295512b4ee60905e87792b8",
          "body": "- Replace diff with cmp for binary comparison (always available in coreutils)\n- Remove debug output and whitespace-only diff fallback logic\n- Fail immediately on any difference to ensure strict idempotency\n- Simplify control flow by removing conditional branches",
          "is_bot": false,
          "headline": "ci: simplify idempotency check in e2e docs test",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-04T15:01:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5cd842846c2bf7d9b9dc30b837ca1333999ac94f",
          "body": "- Fix cp command to use `/.` syntax instead of `/*` for more robust fixture copying across systems\n- Add fallback README.md creation to handle cp implementations that skip hidden/special files\n- Enhance idempotency test with detailed diff output for debugging\n- Gracefully handle whitespace-only differences in generated output as non-critical\n- Improve test failure diagnostics with explicit diff output when idempotency check fails",
          "is_bot": false,
          "headline": "ci: improve e2e docs test fixture handling and idempotency checks",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-04T14:54:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "025b3460e34d5900edd6cb2fc23b759aae46b20e",
          "body": "- Fix directory copying to properly handle nested fixture structure using /* glob expansion\n- Create work directory explicitly before copying fixtures to ensure parent exists\n- Disable set -e temporarily to allow manual test assertion handling without premature exit\n- Rename idempotency test variables for clarity (readme_first → readme_after_first)\n- Suppress stderr output during second docs run to prevent broken pipe noise\n- Improve test comments to document idempotency verification flow",
          "is_bot": false,
          "headline": "ci: improve e2e docs test robustness and idempotency checks",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-04T14:41:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d77d842d1afc95fff9658b46e572ba17fa5128d8",
          "body": "- Add e2e-docs.sh script with comprehensive test suite for `diffusion docs`\n- Create e2e-docs-fixtures directory with defaults/, vars/, and templates/\n- Add fixture files demonstrating typed variables, required/optional fields, and Jinja2 templating\n- Update e2e.yml workflow to integrate docs comman\n[…]\nst coverage includes dry-run mode, doc generation, idempotency, and marker replacement\n- Verify variable extraction, deduplication detection, and proper filtering of loop iterators and local variables",
          "is_bot": false,
          "headline": "ci: add e2e fixtures and script for docs command testing",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-04T14:33:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9b3232fef0e53a110b05ff88a6b8e9f572f1f5ff",
          "body": "- Create fixture role with typed variables, required vars, and multi-line comments\n- Add defaults/main.yml with string, int, list types and required variable markers\n- Add vars/main.yml to test duplicate variable detection\n- Add templates/app.conf.j2 with Jinja2 for-loops and set statements\n- Add ta\n[…]\ne excluded from documentation\n- Test idempotency: running docs generation multiple times produces consistent results\n- Update e2e.yml workflow with comprehensive docs smoke test suite across matrix OS",
          "is_bot": false,
          "headline": "ci: add comprehensive docs command E2E smoke tests",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-07-04T14:23:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "17071274f06445d3b32dabe3ca2888faa3e19825",
          "body": "Previously only defaults/main.yml and vars/main.yml were scanned.\nNow all .yml/.yaml files in the defaults/ and vars/ directories are\nscanned recursively for variable declarations with type and description\nannotations.",
          "is_bot": false,
          "headline": "feat: scan all YAML files under defaults/ and vars/ directories",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-07-04T13:18:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74a1472efc673ac1f982c6bb88df4548541e5feb",
          "body": "Revert e2e.yml to its original state (before docs tests were added).\nThe docs feature is covered by unit tests in internal/docs/ and\ninternal/cli/docs_cmd_test.go.",
          "is_bot": false,
          "headline": "revert(ci): remove docs E2E smoke tests from workflow",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-07-04T13:06:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d0b497f9f1f53383fe966dba829d73066ed2a8d",
          "body": "- Set go-version to '1.25' (matches go.mod requirement go 1.25.4)\n- Exclude internal/registry and internal/galaxy from unit tests since\n  they require AWS/GCP CLI tools not available in the CI runner\n- These packages are tested implicitly via the smoke tests which run\n  inside Docker containers with proper tool setup",
          "is_bot": false,
          "headline": "fix(ci): use Go 1.25 and exclude external-tool-dependent tests",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-07-04T10:46:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1d258b7e37713e0adb1d72566f3d59b298a39d6",
          "body": "Move all informational/progress output (Scanning..., Found N variables,\nvariable summary, success message) to stderr. Only the dry-run generated\ndocumentation section goes to stdout.\n\nThis follows Unix conventions (stdout=data, stderr=status) and prevents\nSIGPIPE/broken pipe errors when stdout is piped or closed early.",
          "is_bot": false,
          "headline": "fix: send progress messages to stderr to prevent broken pipe",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-06-30T03:45:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b45aa7489b3298fc200e5680742069961496ad4",
          "body": "Redirect dry-run output to a file instead of piping directly to grep -q.\nWhen grep -q finds a match it closes stdin immediately, causing the Go\nbinary to receive SIGPIPE and print 'write /dev/stdout: broken pipe'.",
          "is_bot": false,
          "headline": "fix(ci): avoid broken pipe in docs dry-run smoke test",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-06-30T03:40:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2922c0380db3375bea2dc93119e3a6282d60c404",
          "body": "Change setup-go to use 'stable' which installs the latest stable Go\nrelease. This ensures compatibility with go.mod requiring go 1.25.4\nwithout relying on toolchain auto-download from an older Go version.\n\nResolves the exit code 127 error in E2E checks where the binary\nfailed to build due to Go version mismatch.",
          "is_bot": false,
          "headline": "fix(ci): use go-version stable to resolve exit 127",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-06-30T03:36:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "048d200739390dfb9b7dcf279e1ea671be25d9d6",
          "body": "The hardcoded go-version '1.21' cannot compile go 1.25.4 code when\nthe toolchain auto-download fails. Using go-version-file: 'go.mod'\nensures setup-go installs the exact Go version the project requires,\npreventing binary build failures that cause exit code 127 in E2E tests.",
          "is_bot": false,
          "headline": "fix(ci): use go-version-file to match project Go version",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-06-30T03:27:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b967330cb2e74ac8a46012407f8e06716d3cdb9c",
          "body": "Fix exit code 127 in E2E workflow by:\n- Using printf with single-quoted args (same pattern as deploy tests)\n- Using regular dash (#-|, #-?) instead of em-dash for type/description\n  annotations (both are supported by the regex parser)\n- Removing heredoc approach which breaks inside sh -c single-quoted blocks",
          "is_bot": false,
          "headline": "fix(ci): use regular dash in E2E docs fixtures and printf pattern",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-06-30T03:22:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d371a4ad5f6e177c81d23248db2e09235770c7d",
          "body": "Add 5 smoke tests for the 'diffusion docs' command in the E2E workflow:\n1. Dry-run mode outputs variables without writing\n2. Generate mode inserts begin/end markers in README.md\n3. Typed variables (string, int, bool) are correctly documented\n4. Multiline defaults (list, map) are shown in compact format\n5. Idempotent: re-running replaces content, no duplication\n\nTests use a temporary fixture role with defaults/main.yml, templates,\nand tasks to validate full end-to-end documentation generation.",
          "is_bot": false,
          "headline": "ci: add docs command E2E smoke tests",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-06-30T03:13:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d2204fde3b37b8ca11958a21eaefdc8cef1068c",
          "body": "Add tests for all new packages and functions:\n\ninternal/docs/docs_test.go:\n- TestIsBuiltinVariable: verifies builtin variable filtering\n- TestFormatMultiLineDefault: list/map serialization to compact format\n- TestScanYAMLFile_*: simple vars, multiline values, no annotations,\n  indented key skipping,\n[…]\nguration\n- TestRunDocs_*: valid role, dry-run mode, nonexistent path, file path,\n  empty role, current directory, existing README update\n- TestRunDocs_FullIntegration: end-to-end test with all sources",
          "is_bot": false,
          "headline": "test: add comprehensive tests for diffusion-docs feature",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-06-29T20:07:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "711afcaf917b1a3c05944a87a0e64558f23a3cc9",
          "body": "- Fix redundant newline in fmt.Println (go vet error)\n- Collect list/map indented content as default value representation\n- Lists display as: [item1, item2, item3]\n- Maps display as: {key1: val1, key2: val2}",
          "is_bot": false,
          "headline": "fix: resolve test failures and show multiline default values",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-06-29T19:55:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9edc8514b1e923c2d2d8a226f6cd9aff52016144",
          "body": "Add new 'diffusion docs' CLI command that scans Ansible role directories\nfor variables and generates documentation in README.md.\n\nFeatures:\n- Scans defaults/main.yml and vars/main.yml for variable declarations\n- Extracts type annotations from #—| comments above declarations\n- Extracts descriptions f\n[…]\n- internal/docs/readme.go - README.md generation and update logic\n- internal/cli/docs_cmd.go - CLI command registration\n\nCo-authored-by: Daniel Dalavurak <106514761+Morshimus@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add diffusion-docs command for role variable documentation",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-06-29T19:30:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0b81c23291ce29a32cf692ea1ab39208dcdf6839",
          "body": "…aform-plugin",
          "is_bot": false,
          "headline": "Merge pull request #82 from Polar-Team/feature/add-deploy-module-terr…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-06-28T14:25:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0229a2cc88248b6b12c865750cf7b650f7751fb",
          "body": "- Add extractSSHKeyDirs() function to parse inventory YAML and identify SSH key directories outside ~/.ssh\n- Mount additional SSH key directories as read-only volumes in container during deploy and ping probe phases\n- Rewrite SSH key paths in inventory using sed when extra directories are mounted to\n[…]\nment formatting in buildDeployDockerArgs() for Go standard compliance\n- Enables Terraform-generated project-local SSH keys and other non-standard key locations to work with container-based deployments",
          "is_bot": false,
          "headline": "feat(deploy): support SSH keys outside ~/.ssh directory",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-06-28T13:55:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f994863bd9e6fb34815006e3c9ea1b87b24afc89",
          "body": "…rsions",
          "is_bot": false,
          "headline": "Merge pull request #79 from Polar-Team/chore/update-mcp-dockerfile-ve…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-06-20T15:26:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e0da281ebeb79584353c772895abaa5792687c22",
          "body": "- Go: 1.26.4\n- Python: 3.13.14-slim\n- UV: 0.11.21",
          "is_bot": false,
          "headline": "chore(mcp): update Dockerfile versions",
          "author_name": "Morshimus",
          "author_login": "Morshimus",
          "committed_at": "2026-06-15T12:09:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7db5686022ed944b45cd3382c8ca602ca920b856",
          "body": "…nario-flag",
          "is_bot": false,
          "headline": "Merge pull request #80 from Polar-Team/fix/ansible-remote-tmp-and-sce…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-06-13T18:23:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce9957db1bc31d4e34eb8c3ae712cd3a7aada80e",
          "body": "- Add ANSIBLE_REMOTE_TMP=/tmp/.ansible/tmp env var to converge, lint,\n  verify, and idempotence steps to prevent 'Failed to create temporary\n  directory' errors in CI environments where ~/.ansible/tmp is not writable\n- Fix lint and verify steps to use '--scenario ${{ inputs.scenario }}'\n  instead of bare '${{ inputs.scenario }}' (matching converge and\n  idempotence steps)\n\nCo-authored-by: Daniel Dalavurak <106514761+Morshimus@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: set ANSIBLE_REMOTE_TMP and fix --scenario flag in molecule steps",
          "author_name": "Kiro Agent",
          "author_login": "kiro-agent",
          "committed_at": "2026-06-13T17:01:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd48b821e220e52e38e8dd4bdd8d7eb370223a10",
          "body": null,
          "is_bot": false,
          "headline": "added: Terraform provider repositoty",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-06-13T15:58:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4ff7eb27e268fa6b052fda55cc73dfe2583e98b2",
          "body": null,
          "is_bot": false,
          "headline": "fix: Moved terraform provider to seperate repository",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-06-13T15:52:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a60947edc482f7166e6d153857cab22fbcc242f5",
          "body": "…aform-plugin",
          "is_bot": false,
          "headline": "Merge pull request #77 from Polar-Team/feature/add-deploy-module-terr…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-06-13T15:45:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d0898358b5bc366919f76bd3bc4e32ea8950096",
          "body": null,
          "is_bot": false,
          "headline": "chore: Increase dive efficency rate.",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-06-13T12:42:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb74ac6625f24e8fccd1138dcd00445a9cb5ad4f",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into feature/add-deploy-module-terraform-plugin",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-06-07T15:47:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "925af73e04467cebfe37674a53349919a8a832e6",
          "body": "…rsions",
          "is_bot": false,
          "headline": "Merge pull request #78 from Polar-Team/chore/update-mcp-dockerfile-ve…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-06-07T09:12:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd58f581f95ef0ddbc55693a0a30b1c0e14d8799",
          "body": "- Go: 1.26.3\n- Python: 3.13.13-slim\n- UV: 0.11.17",
          "is_bot": false,
          "headline": "chore(mcp): update Dockerfile versions",
          "author_name": "Morshimus",
          "author_login": "Morshimus",
          "committed_at": "2026-06-01T11:30:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bafa92770124a6e027a1b99d2de723c0b7a35137",
          "body": null,
          "is_bot": false,
          "headline": "fixed: Error in text replaceing",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-31T16:26:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ebc2204954fb878687603571f46d7db11cd1c5a3",
          "body": null,
          "is_bot": false,
          "headline": "ci: fix heredoc terminators breaking YAML block scalar in e2e workflow",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-31T16:18:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bccbc7fdc37af055f336e67258a6a38f67c68fd9",
          "body": null,
          "is_bot": false,
          "headline": "ci: merge deploy smoke tests into e2e matrix job",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-31T16:14:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "357787e96fb60782c2719cc78e5ca86bb0e77ecb",
          "body": "…ures\n\ngit init defaults to 'master' on older Git versions; the role-source\nversion=main shallow-clone failed with 'Remote branch main not found'.\nAdd git branch -M main after the initial commit in both the CI workflow\nfixture and the Go acceptance test helper.",
          "is_bot": false,
          "headline": "fix: rename git branch to main in deploy E2E and acceptance test fixt…",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-31T15:44:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10b0e720b2cba33e53c979dcb089cb4030bd2fca",
          "body": "…d before.",
          "is_bot": false,
          "headline": "fix: Not required go tests for Terraform Module as it's already teste…",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-31T15:01:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ed8ee5e3f1925599142ce30c67eddfd195757ab",
          "body": "CLI unit tests (internal/cli/deploy_test.go):\n- parseKVPairs: valid pairs, value-with-equals, URL values, empty, missing\n  equals, trailing comma\n- parseRoleSources: galaxy/git happy paths, name+apply_to, multiple sources,\n  missing scm/version/url/galaxy, bad scm, empty input\n- parseHosts: happy pa\n[…]\n   2. Multiple role sources with apply_to\n    3. Skip-period idempotence (first run + second run)\n    4. Auto-generated playbook (no --playbook flag)\n  - Terraform provider unit tests via go test -run",
          "is_bot": false,
          "headline": "test: add E2E and unit tests for deploy command and Terraform provider",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-31T14:54:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "170c82a04b1c0876c7f30bf87aa2a1dcba84ef89",
          "body": "- Add \\diffusion deploy\\ CLI subcommand (internal/cli/deploy.go,\n  internal/deploy/*)\n  - Fetches diffusion.lock from remote role repos (git / Galaxy)\n  - Merges dependency constraints across multiple lock files\n  - Auto-generates Ansible playbook grouped by apply_to pattern\n  - Installs roles/colle\n[…]\non_deploy resource, diffusion_inventory data source)\n\n- Update mcp/diffusion_mcp/server.py: deploy entry in CLI reference,\n  deploy added to safe allowlist, new get_terraform_provider_reference\n  tool",
          "is_bot": false,
          "headline": "feat: add diffusion deploy command and Terraform provider",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-31T14:34:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "10caaa8165126cb679074b7bbdca307cfb101e7c",
          "body": "…rsions",
          "is_bot": false,
          "headline": "Merge pull request #76 from Polar-Team/chore/update-mcp-dockerfile-ve…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-26T18:18:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b075174bfd6b59545a956e1afe98ae3c8e35f1f3",
          "body": "- Go: 1.26.3\n- Python: 3.13.13-slim\n- UV: 0.11.16",
          "is_bot": false,
          "headline": "chore(mcp): update Dockerfile versions",
          "author_name": "Morshimus",
          "author_login": "Morshimus",
          "committed_at": "2026-05-25T10:02:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f49573d6e8bd798878519e62cafd5f63b4f03f4",
          "body": "…d-update-actions-scenario-option",
          "is_bot": false,
          "headline": "Merge pull request #75 from Polar-Team/chore/add-to-diffusion-test-an…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-24T12:23:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6214af27ea6b6b5bb7a2ced41cbe276d2aa30aa",
          "body": "…te action",
          "is_bot": false,
          "headline": "chore: add scenario input and remove cache inputs from diffusion-upda…",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-24T12:23:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e5ba4413fd2b80c891b21d5409ce3810004d2fb",
          "body": "…d-update-actions-scenario-option",
          "is_bot": false,
          "headline": "Merge pull request #74 from Polar-Team/chore/add-to-diffusion-test-an…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-24T12:11:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c463dec737ae431fa79e0164f88e4e4cb361bbe1",
          "body": null,
          "is_bot": false,
          "headline": "fix: wrong interpolation sign in github action",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-24T12:10:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "39ae2adeb76f5db3452f3d0cb1de8c80f1977edf",
          "body": "…d-update-actions-scenario-option",
          "is_bot": false,
          "headline": "Merge pull request #73 from Polar-Team/chore/add-to-diffusion-test-an…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-24T12:06:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57629869f0faaa773cf45fa8ed68f8c6f268678a",
          "body": null,
          "is_bot": false,
          "headline": "fix: error with space",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-24T12:06:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fcbc92c660168d7362e2f3740f9f6df3d16a0cd4",
          "body": "…d-update-actions-scenario-option",
          "is_bot": false,
          "headline": "Merge pull request #72 from Polar-Team/chore/add-to-diffusion-test-an…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-24T12:02:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "23b6d914f1185fa4ae69076875e65743285d115d",
          "body": "…rsions",
          "is_bot": false,
          "headline": "Merge pull request #71 from Polar-Team/chore/update-mcp-dockerfile-ve…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-24T11:54:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b85a8d9c67bfc7b4f1093647d823d5d781a9ed7",
          "body": null,
          "is_bot": false,
          "headline": "chore: Added scenario flag in test action in CI",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-24T11:53:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8afc53303dc1f375c1ab24e61b5e5ea041b5f50",
          "body": "- Go: 1.26.3\n- Python: 3.13.13-slim\n- UV: 0.11.14",
          "is_bot": false,
          "headline": "chore(mcp): update Dockerfile versions",
          "author_name": "Morshimus",
          "author_login": "Morshimus",
          "committed_at": "2026-05-18T10:00:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "169b3c1ae9a482e86b9ef9399f4efd0856978cb4",
          "body": "…-inside-diffusion-container",
          "is_bot": false,
          "headline": "Merge pull request #70 from Polar-Team/fix/molecule-add-scenario-flag…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-11T16:34:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98e7224dbb5f48a93bb002eec77d397575439118",
          "body": "Add table-driven test covering empty, default, and custom scenarios\nto ensure proper -s flag generation logic.",
          "is_bot": false,
          "headline": "test(molecule): add test coverage for scenarioFlag helper",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-11T16:27:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4bb729cfbc249eb4b26b3b6351bcbfd38ce8b06c",
          "body": "…ify/idempotence/destroy\n\nAdd scenarioFlag helper that appends '-s <scenario>' to molecule\ncommands when scenario is not 'default'. Omits the flag entirely\nwhen using the default scenario.",
          "is_bot": false,
          "headline": "feat(molecule): pass -s scenario flag to molecule create/converge/ver…",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-11T16:19:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cac5fe7260483d8c0cc42c5335cde4fe81795f18",
          "body": "…tion",
          "is_bot": false,
          "headline": "Merge pull request #68 from Polar-Team/chore/fix-update-mcp-docker-ac…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-11T15:55:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7693321aeb69fe79f99bb89288a7e6220905a127",
          "body": "…rsions",
          "is_bot": false,
          "headline": "Merge pull request #69 from Polar-Team/chore/update-mcp-dockerfile-ve…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-11T15:42:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c74bd126c22537ff518e12cbf714bb597984ef7",
          "body": "- Go: 1.26.3\n- Python: 3.13.13-slim\n- UV: 0.11.13",
          "is_bot": false,
          "headline": "chore(mcp): update Dockerfile versions",
          "author_name": "Morshimus",
          "author_login": "Morshimus",
          "committed_at": "2026-05-11T15:41:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2577b0a4d46b74c7c994615b54cba0a9ccd71d99",
          "body": "- Add regex validation to filter out timestamps from go.dev API\n- Use GitHub API as fallback if go.dev returns invalid data\n- Use head -1 to ensure only first line is processed",
          "is_bot": false,
          "headline": "fix(ci): improve Go version parsing with fallback and validation",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-11T15:39:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e14479e6e0da11a58c429cc3dbe8aa3918336fd",
          "body": "…ent-in-cli",
          "is_bot": false,
          "headline": "Merge pull request #67 from Polar-Team/fix/molecule-flag-scenario-abs…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-11T15:32:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed757f3fdf0fe32672976711210cd9d06fa9eec6",
          "body": "…rsions",
          "is_bot": false,
          "headline": "Merge pull request #66 from Polar-Team/chore/update-mcp-dockerfile-ve…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-11T15:21:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ce39607aa99c393a054eadbe103ed5ed75f4d24",
          "body": "Expose RoleScenario as a CLI flag so users can specify a custom\nmolecule scenario during interaction. Add flag registration test.",
          "is_bot": false,
          "headline": "feat(cli): add --scenario/-s flag to molecule command",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-11T15:20:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c56d0d96942370551b967e8dce5093b625028d85",
          "body": "- Go: 1.26.3time 2026-05-04T20:36:18Z\n- Python: 3.13.13-slim\n- UV: 0.11.13",
          "is_bot": false,
          "headline": "chore(mcp): update Dockerfile versions",
          "author_name": "Morshimus",
          "author_login": "Morshimus",
          "committed_at": "2026-05-11T13:50:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3fe6cafd9fdbc47994c4f31502ea44a7d98269ce",
          "body": "…-workflow-fix",
          "is_bot": false,
          "headline": "Merge pull request #64 from Polar-Team/chore/update-mcp-docker-action…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-11T13:49:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe92abeb4efe302efa57ba1a354c313b860d7796",
          "body": null,
          "is_bot": false,
          "headline": "fix(ci): remove strict validation, keep newline stripping",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-11T13:12:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22fb1f2f8e890acd12f1760cf8c94c36ffbfda8c",
          "body": null,
          "is_bot": false,
          "headline": "fix(ci): add validation and strip newlines in version parsing",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-11T13:11:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d504337d42b68edc6736992d6ecdb9d09941955",
          "body": "- Quote GITHUB_OUTPUT variable to prevent shell expansion\n- Use proper variable substitution syntax\n- Resolves 'Invalid format' error in Get latest versions step",
          "is_bot": false,
          "headline": "fix(ci): fix GITHUB_OUTPUT format in update-mcp-dockerfile workflow",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-11T13:06:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75f94e3810bae9ac198b5eac303750a076a0a7e8",
          "body": "…ner-wrong-command",
          "is_bot": false,
          "headline": "Merge pull request #63 from Polar-Team/fix/docker-login-inside-contai…",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-10T10:32:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b68256000960e348f9ac711ac2f5b486a87c894",
          "body": null,
          "is_bot": false,
          "headline": "fix: Stupid typo seemed by replacement of in+whitespace to - sign.",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-10T10:17:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2be8f5dfecb991ed968c2f982ea7ccfa41f008a8",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #62 from Polar-Team/chore/create-mcp-server",
          "author_name": "Daniel Dalavurak",
          "author_login": "Morshimus",
          "committed_at": "2026-05-03T15:24:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6ee0dc6bdac352477053e6f5ae2f15f7bd39bf1",
          "body": "- Replace local Docker image tag with published GHCR image reference\n- Use latest-amd64 tag for consistent multi-arch support\n- Update MCP settings to reference ghcr.io/polar-team/diffusion-mcp-server\n- Enables use of pre-built container images instead of local builds",
          "is_bot": false,
          "headline": "chore(mcp): Update diffusion MCP server image reference",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-03T15:08:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "990495a6c559735d72cc58c3da0ab12ad4a7b075",
          "body": "- Add hadolint configuration and linting job to docker-mcp workflow\n- Create update-mcp-dockerfile.yml workflow for weekly dependency version checks\n- Pin UV version in Dockerfile and make it configurable via ARG\n- Update Python version to 3.13.1-slim for security and stability\n- Refactor Dockerfile\n[…]\n\n- Copy Docker CLI binary from docker-builder stage to final runtime image\n- Add version management markers in Dockerfile for automated updates\n- Improve Dockerfile best practices and build efficiency",
          "is_bot": false,
          "headline": "ci(mcp): Add Dockerfile linting and automated version updates",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-03T15:05:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2465454a759765734cee3010388720d47708b8ed",
          "body": "- Add mcp.json settings file for Kiro MCP server integration\n- Configure diffusion MCP server to run via Docker container\n- Mount Docker socket and project directory for container access\n- Define auto-approved tools for diffusion operations (config, locks, CLI reference, version, requirements, molecule containers/scenarios, verification checks, and command execution)\n- Enable seamless integration between Kiro and diffusion-mcp-server for automated testing workflows",
          "is_bot": false,
          "headline": "chore(mcp): Add MCP server configuration for diffusion",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-03T15:04:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a4711f71dab8b73367c5e1aa01aa242ac5900dd",
          "body": "- Remove `if: startsWith(github.ref, 'refs/tags/v')` condition from check-tag job\n- Allow check-tag job to run on all events, not just tag pushes\n- Simplifies workflow logic for more flexible triggering",
          "is_bot": false,
          "headline": "ci(docker-mcp): Remove tag-based condition from check-tag job",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-03T13:25:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1adcbf8c30bc1f02653dbe6c951b7587c074022f",
          "body": "- Remove version tag filter from push trigger\n- Keep branch-based trigger on main for continuous builds\n- Simplify workflow to build on every main branch push",
          "is_bot": false,
          "headline": "ci(docker-mcp): Remove tag-based trigger from workflow",
          "author_name": "Daniel Dalavurak",
          "author_login": "AnotherDD",
          "committed_at": "2026-05-03T13:24:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 76,
      "commits_last_year": 434,
      "latest_release_at": "2026-07-19T15:06:39Z",
      "latest_release_tag": "v0.7.7",
      "releases_from_tags": false,
      "days_since_last_push": 5,
      "active_weeks_last_year": 31,
      "days_since_latest_release": 5,
      "mean_days_between_releases": 7.7
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 37,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 0,
      "stars": 0,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 5
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": true,
      "bootstrap_files": [
        "Makefile",
        "mcp/Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "go.mod"
      ],
      "largest_source_bytes": 81418,
      "source_files_sampled": 90,
      "oversized_source_files": 1,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "go.mod",
        "mcp/pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "github.com/BurntSushi/toml",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.5.0"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-framework",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.19.0"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-log",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.10.0"
        },
        {
          "name": "github.com/hashicorp/vault-client-go",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.4.3"
        },
        {
          "name": "github.com/mattn/go-isatty",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.0.20"
        },
        {
          "name": "github.com/spf13/cobra",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.10.1"
        },
        {
          "name": "gopkg.in/yaml.v3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        },
        {
          "name": "mcp",
          "manifest": "mcp/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.0.0"
        },
        {
          "name": "pyyaml",
          "manifest": "mcp/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0"
        },
        {
          "name": "tomli",
          "manifest": "mcp/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.0"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 2,
        "merged_prs": 73,
        "open_issues": 3,
        "closed_ratio": 0.833,
        "closed_issues": 15,
        "closed_unmerged_prs": 3
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "AnotherDD",
          "commits": 236,
          "avatar_url": "https://avatars.githubusercontent.com/u/121803478?v=4"
        },
        {
          "type": "User",
          "login": "Morshimus",
          "commits": 135,
          "avatar_url": "https://avatars.githubusercontent.com/u/106514761?v=4"
        },
        {
          "type": "User",
          "login": "kiro-agent",
          "commits": 13,
          "avatar_url": "https://avatars.githubusercontent.com/u/244629292?v=4"
        }
      ],
      "contributors_sampled": 3,
      "top_contributor_share": 0.615
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "docker-mcp.yml",
        "e2e.yml",
        "release.yml",
        "update-mcp-dockerfile.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum",
        "uv.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 3,
            "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": "12 out of 12 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": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 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 detected",
            "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": 10,
            "reason": "5 out of the last 5 releases have a total of 10 signed artifacts.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "33 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "7cf4ca07526c8900877861ffecee59898b88652c",
        "ran_at": "2026-07-25T11:02:49Z",
        "aggregate_score": 4.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-20T08:54:49Z",
      "oldest_open_prs": [
        {
          "number": 95,
          "created_at": "2026-07-19T16:10:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 96,
          "created_at": "2026-07-20T08:54:45Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-19T15:01:43Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 8,
          "created_at": "2026-01-15T17:26:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 29,
          "created_at": "2026-03-01T15:25:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 59,
          "created_at": "2026-05-02T11:33:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/Polar-Team/diffusion",
    "host": "github.com",
    "name": "diffusion",
    "owner": "Polar-Team"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 57,
      "inputs": {
        "security": 48,
        "vitality": 92,
        "community": 24,
        "governance": 46,
        "engineering": 67
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 92,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 86,
            "inputs": {
              "commits_last_year": 434,
              "human_commit_share": 1,
              "days_since_last_push": 5,
              "active_weeks_last_year": 31
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "31/52 weeks with commits",
                "points": 21.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 31
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "434 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 434
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "releases_count": 76,
              "latest_release_tag": "v0.7.7",
              "releases_from_tags": false,
              "days_since_latest_release": 5,
              "mean_days_between_releases": 7.7
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "76 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 76
                    }
                  }
                ],
                "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 ~7.7 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 7.7
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "5 out of the last 5 releases have a total of 10 signed artifacts.",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 5,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 5 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "critical",
        "name": "Community & Adoption",
        "value": 24,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 0,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "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": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "at_risk",
        "name": "Sustainability & Governance",
        "value": 46,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 3,
              "top_contributor_share": 0.615
            },
            "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 62% of commits",
                "points": 8.7,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 62
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "3 contributors",
                "points": 4.1,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "merged_prs": 73,
              "open_issues": 3,
              "closed_issues": 15,
              "issue_closed_ratio": 0.833,
              "closed_unmerged_prs": 3
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "83% of issues closed",
                "points": 38.9,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 83
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "73/76 decided PRs merged",
                "points": 36.7,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 73,
                      "decided": 76
                    }
                  }
                ],
                "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": 42,
            "inputs": {
              "followers": 1,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "Polar-Team",
              "public_repos": 7,
              "account_age_days": 568
            },
            "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 Polar-Team",
                "points": 2.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1,
                      "login": "Polar-Team"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "7 public repos, account ~1 yr old",
                "points": 9.7,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 7
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 1
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 67,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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": "12 out of 12 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 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": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "12 out of 12 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 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected",
                "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": "5 out of the last 5 releases have a total of 10 signed artifacts.",
                "points": 7.5,
                "status": "met",
                "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": "33 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 60,
        "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.99,
              "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": "99 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 99,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 61,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum",
                "uv.lock"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [
                "Makefile",
                "mcp/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile, mcp/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile, mcp/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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 81418,
              "source_files_sampled": 90,
              "oversized_source_files": 1
            },
            "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": "1/90 source files over 60KB",
                "points": 54.4,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 90,
                      "oversized": 1
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "moderate",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Could not fetch pypi package 'diffusion-mcp' from its registry",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-25T11:03:06.177685Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/p/Polar-Team/diffusion.svg",
  "full_name": "Polar-Team/diffusion",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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

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

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