Registro público
Informe de salud del softwareesquema 0.23.0 · métricas 1.13.0 · 2026-07-21 15:49 UTC

usehelix / helix

Self-healing infrastructure for AI agent payments. 90.3% auto-recovery.

TypeScript · HTMLMIT★ 821 estrellas⑂ 3 forksdesde mar 2026Ver en GitHub ↗

usehelix/helix tiene un índice de salud de 58 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es Engineering Quality (81/100) y la más baja, Sustainability & Governance (43/100). Se actualizó por última vez hace 42 días. Una sola persona concentra la mayor parte del trabajo reciente.

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

58
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

Helix TechnologyOrganización
2 seguidores4 repositorios públicosdesde may 2026

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

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicaciónEtiquetas
PyPIhelix-agent-sdkapunta a otro repositorio; no se puntúa0.2.0566hace 117 díashelixai-agentsself-healingpaymentsweb3
npm@helix-agent/coreapunta a otro repositorio; no se puntúa2.8.120135hace 53 díashelixvialosai-agentself-healingpaymentpcecgene-mapagent-reliabilitymppcoinbasecryptobudget-intelligenceagent-payment
npm@vial-agent/gene-map0.1.0291hace 98 días
npm@vial-agent/coreapunta a otro repositorio; no se puntúa0.2.0462hace 114 díasself-healingautonomous-agentserror-repairreinforcement-learningpcecgene-map
npm@vial-agent/adapter-api0.1.0141hace 114 díasself-healingapihttpretryerror-recoveryvial

Métricas por categoría

Vitalidad

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

68Moderado · 22% del índice global
Cómo se puntúa
18/36Recencia de push — último push hace 42 días
6.9/36Cadencia de commits — 10/52 semanas con commits
18/18Volumen de commits — 326 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year326
human_commit_share1
days_since_last_push42
active_weeks_last_year10
Cómo se puntúa
27/27Publica versiones — 5 versiones publicadas
27/36Recencia de las versiones — última versión hace 108 días
27/27Cadencia de publicación — una versión cada ~2 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count5
latest_release_tagv2.7.0
releases_from_tagsno
days_since_latest_release108
mean_days_between_releases2
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

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

51Moderado · 18% del índice global
Cómo se puntúa
47.3/60Estrellas — 821 estrellas
2.5/25Forks — 3 forks
0/15Observadores — 0 observadores
Datos de entrada utilizados
forks3
stars821
watchers0
growth_stateorganic
growth_factor_pct100
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
18/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_contributing
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
Cómo se puntúa
21.9/80Descargas mensuales — 43 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packages@vial-agent/gene-map, @vial-agent/adapter-api
dependents
ecosystemsnpm
total_downloads
monthly_downloads43
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

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

43En riesgo · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
5.4/22.5Distribución de commits — el principal contribuyente firma el 76% de los commits
5.4/13.5Amplitud de contribuyentes — 4 contribuyentes
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Datos de entrada utilizados
bus_factor1
contributors_sampled4
top_contributor_share0,761
Cómo se puntúa
0/46.8Resolución de issues — 0% de issues cerradas
38.2/38.3Aceptación de PR — 7/7 PR decididos fusionados
1.5/15OpenSSF Scorecard: Code-Review — Found 1/8 approved changesets -- score normalized to 1
Datos de entrada utilizados
merged_prs7
open_issues4
closed_issues0
issue_closed_ratio0
closed_unmerged_prs0
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
3.4/25Alcance del propietario — 2 seguidores de usehelix
5.4/25Trayectoria — 4 repos públicos, cuenta de ~0 años
Datos de entrada utilizados
followers2
owner_typeOrganization
is_verified
owner_loginusehelix
public_repos4
account_age_days58
Cómo se puntúa
25/25Publicado y resoluble — 2 paquete(s) en npm
35/35Recencia de publicación — última publicación hace 98 días
4/20Historial de versiones — 1 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packages@vial-agent/gene-map, @vial-agent/adapter-api
ecosystemsnpm
any_deprecatedno
min_days_since_publish98

Calidad de Ingeniería

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

81Bueno · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 2 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 — 7 out of 7 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

100Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://tryhelix.dev/
10/10Descripción del repositorio
10/10Topics — 18 topics
10/10Wiki
Datos de entrada utilizados
topicsai-agents, blockchain, coinbase, payments, privy, privy-developer-tools, self-healing, self-healing-ai, tempo, docker-image, python-app, agent, agentic-ai, ai, llms, multi-agent-systems, self-evolving, agentic-ai-self-evolving
has_wiki
homepagehttps://tryhelix.dev/
has_readme
has_docs_dir
has_description

Seguridad

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

45En riesgo · 16% del índice global
Cómo se puntúa
0/7.5Binary-Artifacts — binaries present in source code
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 7 out of 7 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.8/7.5Code-Review — Found 1/8 approved changesets -- score normalized to 1
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 3 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
1/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 87 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate3,1
Excluidos de la puntuación (sin datos o no aplicable): signed_releases. Los pesos restantes se han renormalizado.
Cómo se puntúa
35/35Dependencias directas libres de avisos conocidos — ninguna dependencia directa tiene un aviso conocido
25/25Dependencias indirectas libres de avisos conocidos — ninguna dependencia indirecta tiene un aviso conocido
0/40Sin avisos pendientes — ningún aviso tiene fecha de publicación
Datos de entrada utilizados
sourceosv
advisories0
affected_packages0
assessed_packages5
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Excluidos de la puntuación (sin datos o no aplicable): Sin avisos pendientes. Los pesos restantes se han renormalizado. Se cotejó el cierre de dependencias en tiempo de ejecución de pypi:helix-agent-sdk@0.2.0 —lo que arrastra la instalación del paquete publicado—: 5 paquetes. No se analiza la alcanzabilidad.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? 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.

55Moderado · 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 — 100 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
Cómo se puntúa
0/18Arranque con un solo comando
22/22Pruebas automatizadas
0/11Configuración de lint / formato
11/11Verificación estática de tipos — packages/adapter-api/tsconfig.json, packages/api/tsconfig.json, packages/cli/tsconfig.json, packages/core/tsconfig.json, packages/gene-map/tsconfig.json, packages/mcp/tsconfig.json, packages/vial-core/tsconfig.json, python/helix_agent/py.typed, scripts/circle-bench/seller/tsconfig.json, scripts/circle-bench/tsconfig.json, tsconfig.json
10/10Entorno reproducible — Dockerfile, lockfile
2/10Práctica demostrada con agentes — 1 de los últimos 100 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
2/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
Datos de entrada utilizados
has_nixno
has_tests
lockfilespackage-lock.json
has_dockerfile
typed_language
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configspackages/adapter-api/tsconfig.json, packages/api/tsconfig.json, packages/cli/tsconfig.json, packages/core/tsconfig.json, packages/gene-map/tsconfig.json, packages/mcp/tsconfig.json, packages/vial-core/tsconfig.json, python/helix_agent/py.typed, scripts/circle-bench/seller/tsconfig.json, scripts/circle-bench/tsconfig.json, tsconfig.json
agent_commit_share0,01
toolchain_manifests
dependency_bot_commit_share0
Cómo se puntúa
45/45Código verificable por tipos — TypeScript (tipado estático)
55/55Tamaños de archivo manejables — 0/360 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageTypeScript
largest_source_bytes44.797
source_files_sampled360
oversized_source_files0
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
20/20Servidor MCP
40/40Ejemplos ejecutables — demos, examples
Datos de entrada utilizados
example_dirsdemos, examples
has_mcp_signal
api_schema_files

Datos clave

821estrellas de GitHub
4contribuidores
326commits en los últimos 12 meses
42días desde el último push
5versiones publicadas
1factor bus
4issues abiertas
npm, PyPIecosistemas de paquetes

Advertencias de recopilación de datos

  • pypi package 'helix-agent-sdk' points at a different repository (https://github.com/adrianhihi/helix); excluded from ecosystem scoring
  • Could not fetch npm package '@helix-agent/api' from its registry
  • Could not fetch npm package '@vial-agent/cli' from its registry
  • Could not fetch npm package '@helix-agent/mcp' from its registry
  • npm package '@helix-agent/core' points at a different repository (https://github.com/adrianhihi/helix); excluded from ecosystem scoring
  • npm package '@vial-agent/core' points at a different repository (https://github.com/adrianhihi/vial); excluded from ecosystem scoring
  • Could not fetch npm package '@vial-agent/openclaw-hook' from its registry
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Más detalle

Historial de estrellas y forks 821 ★ / 3 ⇿
821Estrellas
3Forks
5Versiones

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

020040060080010008213342026-032026-052026-07
Mayor 0Menor 5Parche 0
OpenSSF Scorecard 3.1 / 10
3.1agregado

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-21 15:49 UTC

0Binary-Artifactsbinaries present in source code
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests7 out of 7 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
1Code-ReviewFound 1/8 approved changesets -- score normalized to 1
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 3 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
2Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 2
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities87 existing vulnerabilities detected
Dependencias directas 30
RegistroPaqueteRestricción de versiónManifiesto
npm@helix-agent/core*dashboard/package.json
npmexpress^4.18.0dashboard/package.json
npm@circle-fin/x402-batching^3.0.4package.json
npm@coinbase/cdp-sdk^1.46.1package.json
npm@coinbase/coinbase-sdk^0.25.0package.json
npm@privy-io/node^0.11.0package.json
npm@x402/core^2.12.0package.json
npm@x402/evm^2.12.0package.json
PyPIrequests>=2.28.0python/pyproject.toml
npm@helix-agent/core*packages/api/package.json
npmexpress^4.18.0packages/api/package.json
npm@anthropic-ai/sdk^0.24.3packages/cli/package.json
npm@octokit/rest^20.1.0packages/cli/package.json
npmaxios^1.7.0packages/cli/package.json
npmbetter-sqlite3^11.0.0packages/cli/package.json
npmchalk^4.1.2packages/cli/package.json
npmcommander^11.1.0packages/cli/package.json
npmexpress^4.18.0packages/cli/package.json
npmora^5.4.1packages/cli/package.json
npmconf^10.2.0packages/cli/package.json
npm@vial-agent/gene-map*packages/core/package.json
npm@vial-agent/runtime^0.1.0packages/core/package.json
npmbetter-sqlite3^11.0.0packages/core/package.json
npmviem^2.47.5packages/core/package.json
npmzod^4.3.6packages/core/package.json
npmbetter-sqlite3^11.0.0packages/gene-map/package.json
npm@helix-agent/core*packages/mcp/package.json
npm@modelcontextprotocol/sdk^1.0.0packages/mcp/package.json
npmbetter-sqlite3^11.0.0packages/vial-core/package.json
npm@circle-fin/developer-controlled-wallets^7.0.0scripts/circle-bench/package.json
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

Avisos de dependencias 0

Instalar pypi:helix-agent-sdk@0.2.0 arrastra 5 paquetes, directos y transitivos: 0 tienen avisos conocidos, de los cuales 0 son dependencias directas.

Ningún aviso conocido afecta a las dependencias evaluadas.

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

Informe JSON sin procesar legible por máquina
{
  "data": {
    "repo": {
      "topics": [
        "ai-agents",
        "blockchain",
        "coinbase",
        "payments",
        "privy",
        "privy-developer-tools",
        "self-healing",
        "self-healing-ai",
        "tempo",
        "docker-image",
        "python-app",
        "agent",
        "agentic-ai",
        "ai",
        "llms",
        "multi-agent-systems",
        "self-evolving",
        "agentic-ai-self-evolving"
      ],
      "is_fork": false,
      "size_kb": 4455,
      "has_wiki": true,
      "homepage": "https://tryhelix.dev/",
      "languages": {
        "HTML": 1045201,
        "Shell": 16368,
        "Python": 60297,
        "Dockerfile": 1103,
        "JavaScript": 70737,
        "TypeScript": 1693268
      },
      "pushed_at": "2026-06-09T09:13:16Z",
      "created_at": "2026-03-20T01:01:23Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-20T17:06:43Z",
      "description": "Self-healing infrastructure for AI agent payments. 90.3% auto-recovery.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript",
        "HTML"
      ]
    },
    "owner": {
      "blog": "https://tryhelix.dev",
      "name": "Helix Technology",
      "type": "Organization",
      "login": "usehelix",
      "company": null,
      "location": "United States of America",
      "followers": 2,
      "avatar_url": "https://avatars.githubusercontent.com/u/287284731?v=4",
      "created_at": "2026-05-23T18:35:47Z",
      "is_verified": null,
      "public_repos": 4,
      "account_age_days": 58
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2.7.0",
          "kind": "minor",
          "published_at": "2026-04-03T17:30:55Z"
        },
        {
          "tag": "v2.6.0",
          "kind": "minor",
          "published_at": "2026-03-29T07:00:28Z"
        },
        {
          "tag": "v2.5.0",
          "kind": "minor",
          "published_at": "2026-03-29T05:45:29Z"
        },
        {
          "tag": "v2.4.0",
          "kind": "minor",
          "published_at": "2026-03-27T02:09:34Z"
        },
        {
          "tag": "v2.3.0",
          "kind": "minor",
          "published_at": "2026-03-26T22:17:20Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "ead5271ff65a521a18c139b1a80ca4d907812114",
          "body": "docs: Add FAQ section for common questions",
          "is_bot": false,
          "headline": "Merge pull request #12 from meichuanyi/docs/add-faq-section",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-06-09T09:13:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ac26513446c4f65f51dfa924eb78e15933c96da",
          "body": null,
          "is_bot": false,
          "headline": "docs: Add FAQ section for common questions",
          "author_name": "meichuanyi",
          "author_login": "meichuanyi",
          "committed_at": "2026-06-01T21:17:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2847e168c86f2689603e5edcc48a7138c84433d",
          "body": "Release: @helix-agent/core 2.8.1",
          "is_bot": false,
          "headline": "Merge pull request #11 from usehelix/release/core-v2.8.1",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-28T20:55:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "225d51c576493244b288a6ed4f0de03957e891f3",
          "body": "…nds policy (L2) + honesty audit\n\nL1: auto-detect/applyOverrides + split_transaction no longer scalar-mutate\nnon-scalar amounts (e.g. Circle's amount: string[]) — type-guarded.\nL2: insufficient-funds defaults to hold_and_notify; reduce_request only with\nallowPartial:true. Added WrapOptions.freezeArg\n[…]\nes marked\nnonRepairable. Filed KI-1 (serialize_and_backoff no-op, #9) and KI-2 (immune-\nstat inflation, #10).\n\n650/650 tests pass.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "@helix-agent/core 2.8.1: fix amount corruption (L1) + insufficient-fu…",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-28T20:19:53Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e23c9338f4d18b6ad50ee67d21c627002cc6beec",
          "body": "Integrity pass over the Circle capsule seeds + changelog:\n- Zero out fabricated successCount/avgRepairMs on all seed genes;\n  non-zero values now require a real bench/telemetry artifact.\n- Drop 5 unvalidated Circle capsules to conservative q=0.50 priors\n  (gateway-rate-limit, gateway-nonce-used, cct\n[…]\nt a measured result.\n- CHANGELOG: 2.8.0 entry documenting all three Circle PRs with honest\n  provenance per capsule.\n- Bump package.json 2.7.3 → 2.8.0.\n\n623/623 tests pass. No fabricated metrics ship.",
          "is_bot": false,
          "headline": "chore(release): 2.8.0 — honest capsule provenance + changelog",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-28T05:43:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fe3833c87af3cbf2231a6651d4eb0af0f1056b7d",
          "body": " feat: Circle v2 strategies + 4 v1-vs-v2 benches (industry-default → Helix discovery)",
          "is_bot": false,
          "headline": "Merge pull request #7 from usehelix/feat/circle-v2-strategies-bench",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T07:48:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b265a4a60913298207c417e2a30e61c6f6c83e1b",
          "body": "Companion script to commit fd3ccf7 which captured Bench 2.4 results\nand refresh_metadata reachability analysis. Tests the three groups:\n- Group A: idempotencyKey deliberate trigger (strip_field path)\n- Group B: nil-UUID tokenId trigger (uuid_format violation path)\n- Group C: 'not-a-uuid' walletId trigger (hold_and_notify path)\n\nAllows independent reproduction of Bench 2.4 findings.",
          "is_bot": false,
          "headline": "bench: smart_param_repair e2e harness (used in Bench 2.4)",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T07:40:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd3ccf781164338e4260bd533fb85bfc438ee6a4",
          "body": "…ity analysis\n\n20 real Arc Testnet tx in Group A (idempotencyKey strip).\n20 correct holds in Group C (UUID format violation).\nGroup B revealed refresh_metadata action is design-intent only —\nCircle's actual tokenId error shapes route to hold_and_notify\nvia uuid_format (Rule 2) or catch-all (no errors[] array).\nDocumented for PR #4 numeric-code routing.",
          "is_bot": false,
          "headline": "bench: smart_param_repair e2e validation + refresh_metadata reachabil…",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T07:31:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e974bfffacb1ebaed8b03c158cea805e6f851fe8",
          "body": "feat: Circle v2 strategies + v1-vs-v2 benches (industry-default → Helix discovery)",
          "is_bot": false,
          "headline": "Merge pull request #6 from usehelix/feat/circle-v2-strategies-bench",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T06:49:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2443ad18667d57bccd484dedf6a0af0fe558845b",
          "body": "JSON results files for the three v1-vs-v2 benches.\n\nIncludes v1-serialize-and-backoff-anomaly.md documenting the\nsustained-load anomaly discovered during Bench 2.1: v1's 5 retries\nfire concurrently and re-trigger the rate limit, losing 24% of\ntransfers. Marked for fix in PR #4 alongside Gene Map multi-strategy.",
          "is_bot": false,
          "headline": "bench: capture v1 vs v2 results + v1 anomaly doc",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T06:41:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4adca22185a78c16a35ab4214e354c332c765037",
          "body": "Three bench scripts comparing Helix v1 strategies against v2:\n- v1-vs-v2-rate-limit.ts: 20-concurrent × 5 trials on Arc Testnet\n- v1-vs-v2-param-repair.ts: 100 attempts, 5 synthetic Circle error shapes\n- v1-vs-v2-metadata-trust.ts: 4 scenarios × 50 iterations\n\nAll bench data saved to scripts/circle-bench/results/ as JSON.",
          "is_bot": false,
          "headline": "bench: v1 vs v2 comparison harness for 3 Circle capsules",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T06:41:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5997535faef0c4713cc0eb37f184c2a0c07a3424",
          "body": "…ta verification\n\nGeneralizes v1 override_api_decimals to check all token metadata fields,\nnot just decimals. Bench 2.3 shows v1 misses symbol drift entirely\n(USDC vs USDC.e silent substitution), creating fund-safety risk for\nagents. v2 verifies decimals + symbol + contract address via on-chain\nread\n[…]\ntion ('on-chain' vs 'ground-truth-table' vs 'api-trusted').\n\nCache layer for repeated verification of the same token. NATIVE_USDC_DECIMALS\ntable covers Arc, Base, Avalanche, Ethereum (all 6 decimals).",
          "is_bot": false,
          "headline": "feat(strategies/circle-v2): metadata-trust — generalized token-metada…",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T06:41:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bf5b09d46e7ac7df378b080b4c91773cea598501",
          "body": "…ecovery\n\nIndustry-default 4xx-no-retry is over-conservative: Bench 2.2 shows 80%\nof Circle param errors are deterministic and auto-fixable (idempotencyKey\nstrip, amount type coercion, address normalization, fee injection,\ntokenId refresh). v1 hold_and_notify routed all 100 attempts to human\nreview \n[…]\ninistic cases (UUID format errors).\n\nTwo-function API: smartParamRepair(error) -> ParamRepairAction, plus\napplyParamRepair(args, action) for arg mutation. 8 action types,\nTypeScript exhaustive switch.",
          "is_bot": false,
          "headline": "feat(strategies/circle-v2): smart_param_repair — routed param-error r…",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T06:40:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5d6febbd6f3382013550987af3024d85a10b4d20",
          "body": "…acing\n\nIndustry-default serialize_and_backoff loses 24% of transfers under\nsustained load (Bench 2.1: 20-concurrent × 5 trials on Arc Testnet,\n24 of 100 transfers permanently lost when retries hit the same rate\nlimit in parallel).\n\nchunk_concurrent paces requests under Circle's per-wallet concurren\n[…]\n300ms vs\n4760ms in the bench), in exchange for 100% reliability vs 76%.\n\nStandalone module — does NOT integrate with PCEC engine in this PR.\nGene Map multi-strategy support is PR #4 (post-grant work).",
          "is_bot": false,
          "headline": "feat(strategies/circle-v2): chunk_concurrent — proactive rate-limit p…",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T06:40:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9a25f4812d305709841bb3940b201afec8641c6d",
          "body": "feat: Circle experimental capsules — decimals & stale_quote",
          "is_bot": false,
          "headline": "Merge pull request #5 from usehelix/feat/circle-experimental-capsules",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T03:10:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "864587dfeb13fdc4e44d4394ed69436db282a6f2",
          "body": "late_discover (reorder to think → discover → pay) is valid only when\nthe think step does not consume the quote. Bench Exp D used a\ncontrolled think-as-sleep design that satisfied this constraint.\n\nReal-world agents typically have think that consumes the quote\n(e.g., 'is $X worth it?'). For those, op\n[…]\nand post-quote price-check\n  (b) request longer quote TTL\n  (c) refresh quote between think and pay\n\nUpdated stale_quote seed-gene params and Scenario 5 console output\nto document all repair patterns.",
          "is_bot": false,
          "headline": "docs(circle): clarify stale_quote repair options",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T02:40:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "982c88cf6b9a14397004d47115adda5565313cfb",
          "body": "feat: Circle experimental capsules — decimals & stale_quote (2 of 2)",
          "is_bot": false,
          "headline": "Merge pull request #4 from usehelix/feat/circle-experimental-capsules",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T02:24:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b53b1c6c230ffa0d7c38f731903868d12903630d",
          "body": "Scenario 4 — Decimals override (Exp A reproduction):\n  Naive agent uses API's wrong decimals=18 for Arc USDC (real value 6)\n  Sends inflated amount → insufficient funds\n  Helix perceive heuristic catches the amount/balance > 10^9 ratio\n  Override strategy uses ground-truth table for native asset\n  R\n[…]\n\n  observe strategy records the failure but does NOT auto-fix\n  Console surfaces reorder recommendation backed by 932-tx bench data\n  Agent's preflight is responsible for applying the workflow reorder",
          "is_bot": false,
          "headline": "examples: scenarios 4 and 5 reproduce Exp A and Exp D",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T02:00:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "90cc5e6b66eeac0b2dd0ca28b34ef76a8ef30989",
          "body": "Tier 1 (caller-emit, explicit context):\n  decimals-metadata-mismatch: when context provides expected_decimals\n    and api_reported_decimals\n  stale_quote: when context.stale_quote=true OR response.data.code='STALE_QUOTE'\n    OR /stale.*quote|quote.*expired/i message match\n\nTier 2 (heuristic for decimals):\n  If requested_amount / available_balance > 10^9, suspect a decimals\n  bug rather than a true insufficient funds error.\n  (10^12 ratio is the 18-vs-6 case; 10^9 catches it comfortably)",
          "is_bot": false,
          "headline": "feat(circle/perceive): two-tier detection for new capsules",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T02:00:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b209e39f64280e370b65a5fbea7a74ccb832caf5",
          "body": "decimals-metadata-mismatch + override_api_decimals:\n  q=0.95 from Exp A on Arc Testnet\n  Real tx: 0x113addf13baa75d60cd402360d2ecb67512c31b4214750f56ace81c749781d07\n\nstale_quote + observe:\n  q=0.96 from Exp D on Arc Testnet\n  48/50 success across 932 confirmed transfers (96% E2E vs 0% bare)\n  Advisory pattern — Helix records, caller preflights with reorder",
          "is_bot": false,
          "headline": "feat(seed): 2 experimentally-validated capsules from April 2026",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T02:00:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "edebc1ab32593d396421fd44646966c076171b8a",
          "body": "Three priorities for resolving correct decimals:\n  1. on-chain ERC-20.decimals() if context.publicClient + tokenAddress\n  2. ground-truth table for native USDC (arc-testnet, base-sepolia, etc.)\n  3. caller-supplied via context.expected_decimals\n\nStrategy returns _helix_actual_decimals + _helix_repair_source so\nparameterModifier knows how to apply the correction.",
          "is_bot": false,
          "headline": "feat(provider): override_api_decimals with 3-priority resolution",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T02:00:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5582de1283e0d489d5ae26ee532a0c00ef415f3c",
          "body": "stale_quote uses 'observe' (existing pass-through strategy, no whitelist\nneeded — advisory pattern records the failure for caller's preflight).",
          "is_bot": false,
          "headline": "feat(llm): whitelist override_api_decimals strategy",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T02:00:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3bad496db665310edd8c4656adb7990139bc32e1",
          "body": "ErrorCode union:\n  decimals-metadata-mismatch  (Exp A April 2026, Arc Testnet)\n  stale_quote                  (Exp D April 2026, x402 facilitator)\n\nFailureCategory union:\n  infrastructure  (token metadata bugs, native vs ERC-20 confusion)\n\nFailureClassification.chain (optional string):\n  identifies the blockchain context for chain-specific bugs\n  e.g. 'arc-testnet', 'base-sepolia', 'avalanche-fuji'",
          "is_bot": false,
          "headline": "feat(types): add chain field, 2 ErrorCodes, 1 FailureCategory",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T01:59:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fcd3c3ef69cdf0f1defde8b94587371217fe9d14",
          "body": "feat: Circle Developer Wallets integration (foundation PR, 1 of 4)",
          "is_bot": false,
          "headline": "Merge pull request #3 from usehelix/feat/circle-integration",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T00:21:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74abc777f984636968b8779144251342b14836f8",
          "body": "perceive-trace.ts: verify which platform adapter claims a given error\nprobe-error-shapes.ts: dump raw Circle SDK error shapes for analysis\n\nUsed during PR development to diagnose the dual-SDK-shape and\nadapter-chain ordering issues. Kept as permanent debug harnesses.",
          "is_bot": false,
          "headline": "scripts: diagnostic harnesses for Circle adapter",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T00:09:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68ae84c89013b48819c65a956f28d4fff837b2d1",
          "body": "Three Circle Wallets API failure scenarios + Helix repair:\n1. Rate limit (10 concurrent → IMMUNE → serialize_and_backoff)\n2. Param invalid (idempotencyKey trigger → IMMUNE → hold_and_notify)\n3. Insufficient funds (over-draft → IMMUNE → reduce_request)\n\nRuns against Circle Sandbox + Arc Testnet, generates real Arc tx hashes\nverifiable on testnet.arcscan.app.",
          "is_bot": false,
          "headline": "examples: end-to-end Circle Sandbox demo (3 scenarios)",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T00:09:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9411b0b233e9bbf10871d7228de5f36ed9398ed8",
          "body": "- perceive.ts: dual-SDK error shape support (v7 raw AxiosError +\n  v10 wrapped), numeric Circle code routing via response.data.code,\n  apiLayer gating to prevent over-claiming on plain noise\n- strategies.ts: 15 construct() branches covering 4 telemetry-validated\n  codes plus 11 Circle Web SDK numeric codes\n- Reordered defaultAdapters with circle first (most-specific URL\n  fingerprint precedes Privy's generic /429/ regex)",
          "is_bot": false,
          "headline": "feat(circle): Circle platform adapter",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T00:09:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ded19a8f7378a94aaba397c9af71efd92ff55606",
          "body": "Q-values derived from Helix experiments (Apr 2026, Arc Testnet):\n- wallets-api-rate-limit + serialize_and_backoff (q=0.95, Exp B)\n- gateway-rate-limit + burst_then_pace (q=0.70)\n- gateway-nonce-used + rotate_authorization (q=0.92)\n- cctp-attestation-pending + wait_attestation (q=0.98)\n- circle-param-invalid + hold_and_notify (q=0.85)\n\napiLayer set explicitly to ensure correct Gene Map lookup matching\npost v14 migration.",
          "is_bot": false,
          "headline": "feat(seed): add 5 telemetry-validated Circle capsules",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T00:09:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e63f277f30ac174b083ea91c8ec691337a20a5e",
          "body": "- serialize_and_backoff: Wallets API concurrency lock recovery\n- burst_then_pace: Gateway throughput window pacing\n- rotate_authorization: EIP-3009 nonce regeneration\n- wait_attestation: CCTP iris-api polling",
          "is_bot": false,
          "headline": "feat(provider): implement 4 Circle-specific repair strategies",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T00:09:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "53bff6c1b3f82ef8d9f3ebf5b4f49268296d32d4",
          "body": "serialize_and_backoff, burst_then_pace,\nrotate_authorization, wait_attestation",
          "is_bot": false,
          "headline": "feat(llm): whitelist 4 Circle repair strategies",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T00:09:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "243d196f6635a0fdc9024253af7fe5ae23acbf04",
          "body": "Maps to Circle's published Web SDK ErrorCode enum and\nDeveloper-Controlled Wallets numeric error codes:\n- code:1-11 (auth, service, retry, customer state)\n- code:155104, 155203, 155258, 155264 (session, balance, policy)\n- cctp-attestation-pending (for CCTP integration)",
          "is_bot": false,
          "headline": "feat(types): add 12 Circle ErrorCode union entries",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-26T00:09:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aebc7662c3a920098fb582139e9dbc3bac9e8598",
          "body": "- ErrorCategory enum + HelixError class with remediation\n- Factories for 20+ common errors (auth, network, GitHub, Claude, business)\n- wrapGitHubCall + wrapClaudeCall convert raw errors to HelixError\n- withRetry for transient errors with exponential backoff\n- displayError formats user-facing output,\n[…]\n→ save diff, don't push, give recovery command\n- engine.ts: PR create fails → keep branch, give manual gh command\n- --skip-tests flag with warning in PR body\n\n20 new tests, all existing tests passing.",
          "is_bot": false,
          "headline": "feat(errors): HelixError system with graceful degradation",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-20T18:54:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6cc8fb31accd47403a7a463b93dec7f26c6c3e06",
          "body": "- buildWebhookApp now accepts WebhookDeps interface\n- Production entry point: buildProductionWebhookApp()\n- Tests construct mock deps directly, no more _setXImplForTesting\n- Pattern reusable for GitHub App + Linear webhook handlers\n\nNo behavior change. All 9 webhook tests still pass.",
          "is_bot": false,
          "headline": "refactor(jira): replace test seams with explicit dependency injection",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-20T18:27:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "356264f0decd6d3b46c662d96023c0e9ad787009",
          "body": "- New IssueRef type unifies GitHub / Jira / Linear\n- executeplan accepts IssueRef instead of GHIssue\n- Capsule metadata records issue_source + issue_id (migration #18)\n- Removes number=-1 hack from Jira path\n- Branch naming, PR title, close-line all source-aware\n\nPrepares for GitHub App + Linear webhook (no more per-source hacks)",
          "is_bot": false,
          "headline": "refactor(execution): abstract IssueRef for multi-source support",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-20T18:25:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b3c02b6581bafaf931ae2cf69e053faddd551c49",
          "body": null,
          "is_bot": false,
          "headline": "fix(planner): strip markdown fence from Claude JSON output",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-20T17:50:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d037b2ecc5d320f50d019b3c4161cf6ee02b3cac",
          "body": "- migration #17: jira_webhooks + jira_credentials tables\n- JiraClient (axios) with ADF-format addComment\n- buildWebhookApp + processWebhook: secret check → label gate → triage → run\n- vial jira connect / webhook start / sync commands\n- AES-256-GCM encryption for stored API tokens\n- ADF → plain text adapter for description bodies\n- programmatic.ts: triageProgrammatic + runProgrammatic for non-interactive callers\n- triage --source jira mode\n\nTested: 32 cli + 570 root passing (20 new Jira tests)",
          "is_bot": false,
          "headline": "feat(jira): webhook listener + end-to-end pipeline",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-20T17:49:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "359e6e354a85785fab60bbf61798b960b943d140",
          "body": "- evaluateHintUsage(): keyword overlap, zero LLM cost\n  used(≥30% overlap)=+15%, ignored(<30%)=+5%, n/a=+10%\n- detectAndCorrectMisclassification(): haiku-driven, async\n  wrong capsule: q-0.08 / correct capsule: create at q=0.50\n- hint_used_count + hint_ignored_count columns (migration #16)\n- vial gene: hint:xx% column\n- Tested: 12/12 cli unit tests pass; live reclassification demo pending\n- 570/570 root tests passing",
          "is_bot": false,
          "headline": "feat(pcec): hint usage scoring + reverse classification",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-20T06:16:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51769a104700e9866426d002a07724eaebc98fd3",
          "body": "- perceive.ts: 15 bug types, keyword fast-path + LLM fallback\n- construct.ts: Gene Map lookup, capsule hint injection\n- commit.ts: q-value upsert after every run (success/failure)\n- gene command: list capsules with q_value + usage stats\n- migration #15: gene_capsules_coding table\n- ~/.helix/gene-map.db bootstrapped on vial init",
          "is_bot": false,
          "headline": "feat(pcec): Gene Map learning loop",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-20T05:28:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f6b65948681364b79c0b41f146be793709f8e36",
          "body": "- Claude-driven execution plan with 30s interactive approval\n- Finds files, applies fix, runs tests, opens PR\n- Validated: 90% similarity to human fix on calcom/cal.diy#29233\n- 87s wall clock, ~$0.10 per run",
          "is_bot": false,
          "headline": "feat(cli): vial run — issue → plan → fix → PR",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-20T05:26:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a13ad4b465d3aef0090c069812e148bb6cc23ae6",
          "body": "- vial init: GitHub OAuth + repo config\n- vial triage: 5-condition scoring, auto-comment on needs_info\n- Tested on calcom/cal.diy (1,098 issues, correct 3-way classification)",
          "is_bot": false,
          "headline": "feat(cli): vial triage — actionability scoring on GitHub Issues",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-20T05:25:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a345c32f175d6bd2b9ce6d9160d265cd173dd5b2",
          "body": "20 JSON result files removed from tracking. Files stay on local disk\n(directory still useful for ongoing experiment runs). Future writes\nto experiment-results/ are ignored.\n\nHistory still contains the JSONs — this only hides them from HEAD.",
          "is_bot": false,
          "headline": "chore: untrack experiment-results/ from git",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-19T17:52:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c07612c243aa98550b31c8738ce15d83b40259c",
          "body": "…apsules\n\nExp A2 found serialize_and_backoff (correct for Wallets API) makes\nGateway WORSE due to different throttle mechanisms:\n  Wallets API: concurrency lock -> serialize works\n  Gateway:     throughput window -> burst_then_pace works\n\nChanges:\n  packages/gene-map: schema v7, api_layer column + U\n[…]\nes, updateReasoning, recordFailureAnalysis, combine().\n\nNOTE: Three parallel Gene Map implementations exist. This change\napplied to gene-map + core. vial-core is vestigial. Cleanup tracked\nseparately.",
          "is_bot": false,
          "headline": "feat: Gene Map api_layer field — distinguish Wallets API vs Gateway c…",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-19T16:46:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "62fab4be5ffd7dd595668e1daaed95596218c921",
          "body": "Arc burn → session boundary crash → Base Sepolia mint via Helix\n\nBurn TX (Arc):  0x415bd6d007997a0295d70396d5cad07637e2dcf04569055cdb33dbd7c2ce90d7\nMint TX (Base): 0x2e648be4aac5573cd11d74b2e9df2cd083591ba868f2ae8eeb48b628b47deff8\n\nAttestation latency: 0.2s (CCTP V2 Fast Transfer)\nCrash duration:   \n[…]\nint\n  Gene Map holds burn_tx + message_bytes across session boundary\n  Agent restart: auto-detect pending state → poll attestation → mint\n  Without Helix: 0.1 USDC stuck permanently (no recovery path)",
          "is_bot": false,
          "headline": "feat: CCTP Exp E — partial success recovery, end-to-end",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-19T15:45:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a6829f7189d8708ca32868b8dd49f56f10bf7309",
          "body": "Clean A/B: both arms make real payment, only logging behavior differs.\n\nBare:  Payment-Signature: eyJ4NDAyVmVyc2lvbiI6Mi... (full 7-day token in log)\nHelix: Payment-Signature: [REDACTED-BY-HELIX] (safe)\n\nRisk prevented:\n  Datadog/Splunk/CloudWatch: captures replay token -> redacted\n  Stack traces wi\n[…]\ne\n  Strategy: install_fetch_redaction_wrapper\n  Headers: Payment-Signature, X-Payment-Authorization, X-Payment-Token\n\nAlso: commit exp-d-validity-window.ts patched decoder (payload.authorization path)",
          "is_bot": false,
          "headline": "feat: Nanopayments Exp D2 — Helix redacts Payment-Signature from logs",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-19T00:57:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ede159ab20bd8ef213c71a939c29ff07643cf973",
          "body": "Clean A/B: both arms call client.pay() with replayed nonce.\n\nBare:  'Payment failed: Payment settlement failed' (opaque)\nHelix: same SDK error + intercepted reason = 'nonce_already_used'\n\nHelix installs fetch interceptor before client.pay():\n  Snoop raw HTTP body before SDK swallows it\n  Save reason\n[…]\nponses\n  Zero impact on success path\n\nResult: bare retries forever; Helix classifies -> DO NOT retry\n\nGene Capsule: gateway-sdk-error-reason-stripping\n  Strategy: install_fetch_interceptor (~10 lines)",
          "is_bot": false,
          "headline": "feat: Nanopayments Exp C2 — Helix recovers SDK-stripped error reason",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-19T00:55:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "acc706506a07e55144cea5e5c2b36be50dc9ba9e",
          "body": "Key finding: Wallets API strategy (serialize) is wrong for Gateway.\nGateway has sliding-window throughput throttle, not concurrency lock.\n\n4 runs:\n  Run 1 (naive serialize):       bare 98%, helix 62%  (-36pp)\n  Run 2 (calibrated serialize):  bare 100%, helix 97% (-3pp)\n  Run 3 (burst_then_pace N=30)\n[…]\n80s+) would approach 100%.\n\nGene Capsule fix needed:\n  circle-api-rate-limit -> split into:\n  wallets-api-rate-limit (serialize_and_backoff)\n  gateway-rate-limit (burst_then_pace, batch=10, pause=20s)",
          "is_bot": false,
          "headline": "feat: Nanopayments Exp A2 — Gateway rate limit, 4-run arc",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-19T00:46:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "97cc85786734a62a9c6d75e2cade919ebdd70974",
          "body": "Finding 1: Gateway idempotency works correctly\n  Replayed EIP-3009 signature rejected with HTTP 402\n  reason: nonce_already_used (machine-readable at wire level)\n  No double-spend risk on the Gateway protocol itself.\n\nFinding 2: SDK strips error reasons (more important)\n  Raw facilitator API: {reaso\n[…]\neason-stripping\n  Strategy: intercept underlying facilitator response directly\n  OR use BatchFacilitatorClient instead of high-level pay()\n  OR infer from latency + context (Exp B finding) as fallback",
          "is_bot": false,
          "headline": "feat: Nanopayments Exp C — idempotency + SDK error stripping",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T23:43:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "aa82baf4aee2ed0c9d6d52835de8464cc90cc67b",
          "body": "Original hypothesis: balance exhaustion produces distinct error.\nActual finding: Gateway throttled at ~30 sequential calls in ~10s.\nBalance was NOT exhausted (would need ~60min slow-drain).\n\nKey finding (stronger than expected):\n  ALL Gateway failure modes return identical string:\n  'Payment failed:\n[…]\nl error)\n\nGene Capsule: gateway-error-classification-via-latency-and-context\n  Agent must use latency profile + spend tracking to disambiguate\n  rather than relying on error code (which doesn't exist)",
          "is_bot": false,
          "headline": "feat: Nanopayments Exp B — sustained rate limit + opaque errors",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T23:36:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6801fcaee0e9c14dcefedfe3223f121c23184dd1",
          "body": "Gateway concurrency vs Wallets API:\n  Wallets API: fails at N≥5 (code:5, no Retry-After)\n  Gateway:     N=20→100%, N=50→96%, N=100→0%\n  ~10× higher concurrency tolerance\n\nTwo Gateway failure modes:\n  N=50 (290ms avg): settlement race condition\n  N=100 (148ms avg): upstream burst gate rejection\n\nKey \n[…]\ntinguish rate-limit vs settlement bug vs balance issue.\nGene Capsule: gateway-opaque-error-classification\n\nSeller fix: facilitatorUrl required for 402 flow\nDeps: @x402/core + @x402/evm peer deps added",
          "is_bot": false,
          "headline": "feat: Nanopayments Exp A — Gateway rate limit ceiling",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T23:29:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a3c6e238cfc231f0b1dcadacf5eee572ccb612c5",
          "body": "SDK: @circle-fin/x402-batching@3.0.4\nBuyer:  0x4cD6945227E67d7FE5291D477a429fC40e023440 ($3 wallet + $2 Gateway)\nSeller: 0x1B79fE420a211f55F88B46Ad58390572C1473A33\n\nERC-20 USDC on Arc: 0x3600...0000, decimals()=6 (confirms Exp A)\nGateway deposit tx: 0x3e628a2d...\n\nScripts:\n  setup.ts          — depo\n[…]\ncurrent nanopayments\n  exp-b-balance-exhaustion.ts — drain until 3 consecutive failures\n  exp-c-idempotency.ts      — replay EIP-3009 signature\n  exp-d-validity-window.ts  — analyze validBefore window",
          "is_bot": false,
          "headline": "feat: Group 1 Nanopayments experiment setup",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T23:15:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "14ec7b29085fad39a17a1d6170df4a5de47861d5",
          "body": "All numbers from real experiment JSON files.\nRegistry queries are live. No fake animations.\nRate limit scene reads Exp B JSON instead of calling API.",
          "is_bot": false,
          "headline": "refactor: circle-live-demo v2 — honest live data only",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T22:30:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a993ee52a28c89ad0854281728ff20732d6bb87",
          "body": "N=50 workflows × 10 hops, fail_rate=0.01 (production-level noise)\n  Bare:  82.0% (41/50) — matches 0.99^20=81.8% theoretical\n  Helix: 100.0% (50/50)\n  Delta: +18pp\n\nHelix p99 better than bare (31.6s vs 47.7s) — retries prevent\nlate-workflow failures that waste all prior hops.\n115 extra attempts for 50 workflows = clean cost.\n\nBoth runs confirm: compounding failure is real and measurable.",
          "is_bot": false,
          "headline": "data: Experiment D fail_rate=0.01 run — 82%→100% (+18pp)",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T22:22:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fb2dcc767544ebf70e047bcb0c946ee7888373ac",
          "body": "circle-client.ts: shared SDK init for all circle-bench scripts\ncircle-live-demo.ts: 5-scene terminal demo for Circle meeting\n  Scene 1: 5/5 LLMs trapped by Arc decimals bug\n  Scene 2: Helix repair live (failed tx → fix → success tx)\n  Scene 3: Rate limit A/B (10 concurrent, 60%→100%)\n  Scene 4: Gene Registry inheritance (537ms, Agent B)\n  Scene 5: Summary (all numbers + tx hashes)",
          "is_bot": false,
          "headline": "feat: Circle live demo script + shared client helper",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T22:01:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49f1e7cbe994e695e6091f021a29763926a14724",
          "body": "N=50 workflows × 10 hops, fail_rate=0.05\n  Bare:  36.0% (18/50) — matches 0.95^20=35.8% theoretical\n  Helix: 96.0% (48/50)\n  Delta: +60pp\n\nHelix caught 100% of seller_timeout failures (30/30).\nOnly 2 circle_other errors untouched (non-retryable, out of scope).\nMath: 2 seller calls per hop → 0.95^20=35.8% (not 0.95^10=59.9%)\n\nworkers/mock-seller: Cloudflare Worker with configurable fail_rate",
          "is_bot": false,
          "headline": "feat: Experiment D — 10-hop agent commerce A/B, +60pp",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T21:52:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3559adf52392cbe1472d8fe01deab6cc6eeac86",
          "body": "Agent B (fresh, empty local Gene Map) queries Gene Registry\nfor decimals-metadata-mismatch capsule seeded by Agent A.\nRegistry hit in 537ms. Agent B succeeds first attempt.\n\nAgent A: failed first (5×10^18), diagnosis, 2 tx attempts, ~3200ms\nAgent B: registry query 537ms, correct decimals, 1 tx, 3172\n[…]\n agents, 1445 repairs\n4 Arc-specific capsules seeded:\n  decimals-metadata-mismatch (q=0.95)\n  circle-api-rate-limit (q=0.75)\n  gateway-idempotency-missing (q=0.75)\n  x402-long-validity-window (q=0.75)",
          "is_bot": false,
          "headline": "feat: Experiment C — Gene Registry cross-agent inheritance",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T20:20:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1b3a23a2c5bebea895abdf70fc4300edd78d3e9f",
          "body": null,
          "is_bot": false,
          "headline": "chore: add tx hash polling utility (reusable for future experiments)",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T20:06:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8404a079990b6725bfb2b529a7b32433dd2447c4",
          "body": "- N=10 concurrent txs on Arc Testnet\n- Without Helix: 50-60% success (code:5 rate limit, no Retry-After)\n- With Helix: 100% — serialize_and_backoff strategy\n- 1 backoff retry caught and recovered (tx index 9, 500ms)\n- Helix p50 faster (186ms vs 389ms); honest p99 tradeoff (804ms)\n\nFinding: ~5 concurrent tx cap, token-bucket behavior (not fixed int).\nSerialization alone handles most cases; backoff covers edge.",
          "is_bot": false,
          "headline": "feat: Experiment B — Circle rate limit A/B, +40pp improvement",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T19:57:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7baf2c217beba430b31f8992690742bd1aa81e5",
          "body": "- 5/5 frontier LLMs produce wrong atomic-unit amounts\n  when given Circle's actual Arc API response (decimals=18)\n- 0/5 identified that USDC actual decimals = 6\n- Helix PCEC detects revert, calls on-chain decimals(),\n  retries with correct value — success in 0.52s\n- Gene Map seeded with 4 Arc-specif\n[…]\n75, seeded)\n  x402-long-validity-window (q=0.75, seeded)\n- Live tx: 0x113addf1...781d07 on Arc Testnet (arcscan.app)\n\nModels: Claude Opus 4.6, Sonnet 4.6, GPT-5.4,\n        GPT-4o-mini, GPT-5.5 Instant",
          "is_bot": false,
          "headline": "feat: Experiment A — Arc USDC decimals bug, 5/5 LLMs trapped",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-18T19:44:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "22ef9f7480ce5ce4323c826234f907620e6b81c3",
          "body": "SQLite WAL/SHM sidecars should never have been tracked. Removing\nfrom the index (files stay on disk locally, just no longer in git):\n\n  helix-genes.db-shm                   (root, 32 KB)\n  helix-genes.db-wal                   (root, 0 bytes)\n  packages/core/helix-genes.db-shm     (32 KB)\n  packages/\n[…]\nhm, *.db-wal, *.sqlite,\n*.sqlite3 alongside the existing *.db pattern so the matching\n.db files keep being ignored AND the sidecars stay ignored from\nnow on.\n\nRepo hygiene only — no functional change.",
          "is_bot": false,
          "headline": "chore(repo): untrack transient SQLite sidecar files",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-17T23:26:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "700b16bd54b1011941c6b30876e78e39fd8cb3a6",
          "body": "Adds a second experiment to scripts/circle-bench/: do agents on a chain\ninherit the accumulated failure experience of every agent that ran\nbefore them? Two-arm test: a shared Gene Map across N=50 agents vs a\nfresh isolated Gene Map per agent. 1 agent = 1 ten-hop workflow.\n\nHeadline (N=50 each arm, f\n[…]\nepth for wallet-info.json,\n    recovery_file_*, *.db / *.db-shm / *.db-wal / *.sqlite.\n\nThe deck and partner-facing materials are NOT in this commit and\nwill be drafted separately after Circle review.",
          "is_bot": false,
          "headline": "feat(bench): cross-agent knowledge transfer — N=50 shared vs isolated",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-17T23:25:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2fa3506d1981d17a74a01a2119bd6fe7d052d953",
          "body": "…infra-failure excl\n\nPhase 5 packaging round on top of the N=50×4 results. No new experiments.\n\nCorrections (vs prior commit eee54fe):\n- README's claim \"the 2 helix stale_quotes are cold-start\" was wrong.\n  Each helix arm has exactly 1 cold-start (W1, Gene Map empty) AND\n  1 pay-tail-latency failure\n[…]\nogy, scope limitations\n- summary.cjs: ECONNRESET → infrastructure bucket, excl-infra E2E\n- .gitignore: .venv/\n\nThe deck (Part D) and the cross-agent transfer experiment continue\nin subsequent commits.",
          "is_bot": false,
          "headline": "docs(bench): Phase 5 — charts, corrected stale-quote classification, …",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-17T07:37:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "39b0ed60574003c65ac2ebfbd5cb98475fed59de",
          "body": "Clarified the comparison of Helix workflows and their value delivery versus waste.",
          "is_bot": false,
          "headline": "Update README with Helix workflow value comparison",
          "author_name": "Nicholas",
          "author_login": "nicholasvandy",
          "committed_at": "2026-05-17T05:41:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eee54fe77f5aa14888530ae9867bfd75b9540d1f",
          "body": "CEO-facing README for Scenario #1:\n- What was run (bare vs helix, N=50 × 4 arms)\n- Results table + deltas (+96pp at fail=0, +52pp at fail=0.05)\n- \"Known scope limitations\" section flagging mock x402 seller, the\n  authorization-TTL-timing vs x402 Issue #1062 facilitator-timeout\n  distinction, the 8s \n[…]\nsetup → create-wallet → seller deploy\n  → smoke → single arm → 4-arm overnight queue)\n- Pointers to the 4 N=50 manifests committed in runs/\n\nNo experimental claims added beyond what the data supports.",
          "is_bot": false,
          "headline": "docs(bench): scripts/circle-bench/README.md — honest scope writeup",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-16T20:54:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4813e1c79e98970511214fb0e4e4fecc906e98e6",
          "body": "…ence\n\n@vial-agent/core wrap() gains an optional `preflight(args)` hook that runs\nbefore fn() on every attempt and may return modifiedArgs. This is the first\npre-execution surface in the wrap — prior PCEC machinery only engaged after\na thrown error. Enables agents to consult the Gene Map and reshape\n[…]\n x402 Cloudflare Worker\n  scripts/circle-bench/runs/                         per-workflow JSONs + manifests\n  scripts/circle-bench/output/overnight-summary.txt  is gitignored; see runs/manifest-*.json",
          "is_bot": false,
          "headline": "feat(bench): Circle × Helix scenario 1 — preflight hook + N=50×4 evid…",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-16T20:50:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ce331a8b79e1177c650fa15f9d15ed393ecdaecf",
          "body": "helix-agent/core now bridges to the Registry that shipped this morning:\n- PCEC commit success → fire-and-forget POST /v1/capsules\n- Local Gene Map miss → 200ms blocking query, hit becomes synthetic\n  RepairCandidate with source='registry'\n- Tight timeout + silent fallback: Registry down ⇒ behaves as\n[…]\nM is\navailable — same-Mac dual-DB is sufficient proof of the reuse logic.\n\nTests: 557 → 570 (+13 unit tests for registry-bridge), all green.\nZero regression.\n\nReports: reports/dogfood-dual-run-may8.md",
          "is_bot": false,
          "headline": "feat(core): consume Gene Registry Cloud — cross-DB experience reuse",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-09T02:16:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "af2c9dc254fe92c8091c787d2386afe9c863fbd7",
          "body": "Borrowed from Hermes Self-Evolution / GEPA paper (ICLR 2026 Oral).\n\nConstruct's LLM fallback now includes the last 3 same-error-code traces\nfrom repair_audit (LEFT JOIN failed_repairs for ✗ context) instead of\njust the bare error code + 200-char message. The LLM sees attempted\nstrategies, outcomes (\n[…]\nt local widen).\n\nTests: 553 → 557 (+3 unit + 1 e2e), all green (61 files).\nmax_tokens: 200 → 300 when traces present (existing 200 when not).\n\nHardcoded model IDs left as-is — separate cleanup commit.",
          "is_bot": false,
          "headline": "feat(construct): trace-aware LLM fallback prompt",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-09T00:26:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5e7d0c0b5f627d3e52cf8fed8034f6a03caf1ac7",
          "body": "Worker (helix-telemetry) gains 3 D1-backed endpoints alongside the existing\nKV telemetry endpoints:\n\n- GET  /v1/capsules?code=&category=&platform=  → highest-q_value capsule, public\n- POST /v1/capsules                            → upsert from local Gene Map,\n                                         \n[…]\n key / wrong key) → POST 200 → GET 200 →\nseed 27/27 → stats reports 27 capsules → cleanup → final 27.\n\nNot publishing @vial-agent/gene-map yet — dogfooding the registry for ~1\nweek before npm release.",
          "is_bot": false,
          "headline": "feat(registry): Gene Registry Cloud MVP — D1-backed shared capsule store",
          "author_name": "Haimo Bai",
          "author_login": "adrianhihi",
          "committed_at": "2026-05-08T21:58:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "49c448a818494e9ef3e1225aa81f192426f637fb",
          "body": "Domain-agnostic Gene Map package extracted from @helix-agent/core.\nSame SQLite schema (v6), same Q-value RL, same adaptive alpha +\nThompson sampling. No helix-specific deps — uses plain strings\ninstead of union types.\n\nAPI: GeneMap(dbPath), upsertGene(), findBest(), updateQValue(),\ngetAll(), seed(),\n[…]\n audit, gene links.\n\nHelix core keeps its enhanced GeneMap (seeds, predictions, context\nsimilarity) and adds @vial-agent/gene-map as a workspace dep.\n\n7 standalone tests + all 553 helix tests passing.",
          "is_bot": false,
          "headline": "feat: @vial-agent/gene-map — standalone procedural memory substrate",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-14T08:09:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "677c80c48b746ca3315488c620c6956d9ef16aec",
          "body": null,
          "is_bot": false,
          "headline": "docs: roadmap — restore Phase 1 detail items, remove duplicate",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-14T07:55:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20d0e2f4e7ab55cf27b73ae83b9c34313b95b9b2",
          "body": null,
          "is_bot": false,
          "headline": "docs: rewrite roadmap around procedural memory narrative (4 phases)",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-14T07:53:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2524e815c4588d8b6e39e2360c7b88b64cd8b068",
          "body": null,
          "is_bot": false,
          "headline": "docs: add agentfolded + n8n node to roadmap, update Budget Intelligence",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-14T07:34:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "892d7c3131ae58c459d8c0453f89e4f0c411a376",
          "body": "- Tests: 526+ → 553+ across 59 files\n- Add Benchmarks section with Base mainnet A/B test + LLM eval results\n- Move Federated Learning to uncompleted in roadmap\n- Add experiments/README.md with eval harness index",
          "is_bot": false,
          "headline": "docs: update README stats, add benchmarks section, experiments README",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-14T07:30:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8860e23edb867739fb46ff34558be8ce0754b7ff",
          "body": null,
          "is_bot": false,
          "headline": "chore: gitignore .env.save, .wrangler/, kv-keys.json",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-14T06:19:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "938efce94138a5972695870b0cb97fb257340b64",
          "body": "- Experiment A: gas cost of LLM misclassification (static analysis)\n- Experiment B: CoT vs bare prompt (Claude Opus 90% → 100%)\n- Experiment C: multi-step failure chain compounding\n- Add openai package for GPT-5.4 experiment\n- x402-v2 concurrency test script",
          "is_bot": false,
          "headline": "feat: experiments A/B/C scripts + results, openai dep, concurrency test",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-14T06:18:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "126694a54bf20ca01a72ba64b92e0adec968fdd6",
          "body": "Previously best_strategy was overwritten on every event and just\nreflected \"the last strategy written\", not the actually best one.\nNow each genemap:* entry tracks per-strategy {total, success} buckets,\nand best_strategy is recomputed every write as the highest success_rate\namong strategies with ≥3 s\n[…]\nession tracking, and the total>3 cold-start threshold all untouched.\n\nVerified live on helix-telemetry against the existing auth_401 entry\n(legacy 50/40 → upgraded → 51/41, confidence 0.80 preserved).",
          "is_bot": false,
          "headline": "fix(worker): per-strategy tracking in genemap KV schema",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-10T02:55:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ada1029395b8227148a086c94183a7a7ad1cb6a2",
          "body": "Reads any agent log file, finds every failed transaction, classifies\neach via PCEC pattern matching, and reports what's repairable. Includes\nrealistic 76-line sample log with 12 failures across 5 error classes.\n\nRun modes:\n  npx tsx demo/scan.ts                  scan + report\n  npx tsx demo/scan.ts --apply          also simulate repairs\n  npx tsx demo/scan.ts <path/to/log>    scan a different file",
          "is_bot": false,
          "headline": "feat: agent log scanner — diagnostic mode",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-09T22:33:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "786e08fde1e8836f19dcaa3bdf837f568f5df16c",
          "body": "A 'show how it works' demo for live presentations. Runs the same\nUniswap swap function twice — without Helix it fails on bare\n'execution reverted'; with helix.wrap() PCEC walks through all 6\nstages (perceive→construct→evaluate→commit→verify→gene), mutates\namountOutMinimum, and the swap succeeds. No animations, no ASCII art,\njust clean narrated stdout. Run: npx tsx demo/live.ts",
          "is_bot": false,
          "headline": "feat: live demo — side-by-side naive vs helix.wrap()",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-09T22:30:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea7dfbff1b2cc7ab94d348a0233c25dbbeb0fe3e",
          "body": "Single-file TypeScript demo with no extra deps. Walks through:\nproblem → Exp 7 benchmark → Exp B CoT → Exp C compounding →\nExp 8 on-chain proof → PCEC stages → final stats. Uses true-color\nANSI, animated bars, typing effects, box drawing.\n\nModes:\n  npx tsx demo/showcase.ts          interactive (ENTER to advance)\n  npx tsx demo/showcase.ts --auto   auto-advance every 3s\n  npx tsx demo/showcase.ts --fast   no delays (testing)",
          "is_bot": false,
          "headline": "feat: terminal showcase demo for live presentations",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-09T22:09:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "317fab839282bb658e9411dd58d55d42f98b1b76",
          "body": "On-chain Uniswap V3 proof on Base mainnet. GPT-5.4 (OpenAI flagship)\nclassifies bare \"execution reverted\" as \"other\" with 0.18 confidence —\nno actionable fix. PCEC pattern-matches slippage_too_tight, lowers\namountOutMinimum → swap succeeds. 0/3 vs 3/3, 6 tx hashes on BaseScan.",
          "is_bot": false,
          "headline": "feat: Experiment 8v2 — GPT-5.4 vs PCEC on bare \"execution reverted\"",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-09T00:22:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cfb2a328b5c0c421773213dcb13226fe1f160bf5",
          "body": "First fully on-chain experiment proving LLM misclassification cost.\nE08 \"replacement transaction underpriced\": GPT-4o-mini classifies as\ninsufficient_gas → increases gas → still fails (nonce is stale).\nPCEC classifies as nonce_conflict → refreshes nonce → succeeds.\n3 rounds, 3 PCEC tx hashes verifiable on BaseScan.",
          "is_bot": false,
          "headline": "feat: Experiment 8 — on-chain wrong fix vs correct fix (0/3 vs 3/3)",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-09T00:03:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b89a64899d53efd7c9e4f7fe49c2ff353b7a3cc1",
          "body": "| Model | Correct | Accuracy |\n| GPT-4o-mini | 5/10 | 50% |\n| GPT-4o | 8/10 | 80% |\n| Claude Opus 4.6 | 9/10 | 90% |\n| GPT-5.4 | 9/10 | 90% |\n| GPT-5.4-mini | 9/10 | 90% |\n| PCEC (Helix) | 18/18 | 100% |\n\nAll models fail on bare 'execution reverted' (E03).\nGPT-4o also fails STF (E05). GPT-4o-mini fails all opaque codes.\nFixed max_completion_tokens for GPT-5.x models.",
          "is_bot": false,
          "headline": "data: Experiment 7 full results — 6 models tested",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T23:00:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a486fbe466b90346cda20a324ec73c0ee425f41",
          "body": "| Model | Correct | Accuracy |\n| GPT-4o-mini | 5/10 | 50% |\n| GPT-4o | 8/10 | 80% |\n| Claude Opus 4.6 | 9/10 | 90% |\n| PCEC (Helix) | 18/18 | 100% |\n\nGPT-4o-mini classified STF, SPL, LOK, bare revert all as 'other'.",
          "is_bot": false,
          "headline": "data: GPT-4o-mini scores 50% — all opaque codes misclassified",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T22:56:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7cd06f650d85a199baed7c4454045a0d2d6c3ad4",
          "body": "Added OpenAI client support to llm_classifier.py.\nGPT-4o: 8/10 (80%) — missed bare revert + STF (thought it was slippage).\nClaude Opus 4.6: 9/10 (90%) — missed bare revert only.\nPCEC: 18/18 (100%).",
          "is_bot": false,
          "headline": "feat: Experiment 7 supports OpenAI + GPT-4o results (80%)",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T22:49:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "533e1719c12a7c308ad31d0a4abdb3a96ec79f9d",
          "body": "9/10 correct. Only miss: bare 'execution reverted' (no message) classified as 'other' instead of slippage_too_tight.\nOpaque codes (STF, SPL, LOK) all correctly identified.",
          "is_bot": false,
          "headline": "data: Experiment 7 results — Claude Opus 4.6 scores 90% vs PCEC 100%",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T22:26:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56eb5eb2fbb51c9240f56c03094dd2bbd816f796",
          "body": "10 real EVM revert messages from Base mainnet experiments 2-6.\nIncludes opaque Uniswap codes: SPL, STF, LOK.\nCompares LLM natural classification vs PCEC accuracy (18/18).\n\nRun: ANTHROPIC_API_KEY=sk-... python3 experiments/exp7-llm-vs-pcec/llm_classifier.py claude-opus-4-6",
          "is_bot": false,
          "headline": "feat: Experiment 7 — LLM vs PCEC error classification benchmark",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T22:22:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c7db04a71345641a891d0e2468d6a7d4695d702",
          "body": "Added GET /v1/event?ec=&p=&ok=&src= — no JSON, no escaping.\nSKILL.md v0.6.3: all curl commands use simple GET URLs.\nTelemetry flows reliably from exec() calls.",
          "is_bot": false,
          "headline": "fix: GET endpoint for /v1/event + SKILL.md v0.6.3",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T09:00:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d9c435a2f0d8a5365f04b9df4a96c867b161ad7",
          "body": "…mpound",
          "is_bot": false,
          "headline": "fix: split exec commands — two simple calls instead of one complex co…",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T08:49:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5fc5fb10cdb36aa6ba41c9c0da96889aa980ba1",
          "body": "Each protocol now sends anonymous event to Gene Map automatically.\nFormat: {e, ec, p, ok, src} — no PII, no user content.\nNon-blocking (background &), 2s timeout, silent (-sf).",
          "is_bot": false,
          "headline": "feat: SKILL.md v0.6.1 — default telemetry on every protocol",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T08:37:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0553d8e8b29ddb9122a5bf6d5bfb53b4273750f9",
          "body": "SKILL.md v0.6: 8 protocols total\n  Protocol 8: Agent Role Guard — orchestrator drift detection\n  Gene Map lookup for role_drift, behavioral_7a, behavioral_7b\n\nHook v0.3: after_tool_call role enforcement (Protocol 8)\n  Injection via openclaw agent --message (zero external API)\n\nGene Map: 3 new baselines (role_drift, behavioral_7a, behavioral_7b)",
          "is_bot": false,
          "headline": "feat: Vial v0.6 — Protocol 8 + hook v0.3 + Gene Map baselines",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T08:23:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb3e60a6a238c949833649adcd48e3618c5cdadb",
          "body": "Protocol 7 — Behavioral Failure Detection:\n  7a: Silent Abandonment (said will do, didn't execute)\n  7b: Wrong Completion (sessions_spawn verification)\n  7c: Instruction Drift (did Y instead of X)\n\nHook v0.2 — after_tool_call + agent:turn:complete:\n  Injection via: openclaw agent --message (existing\n[…]\nng OpenClaw tools\n  Loop detection: textOnlyTurns >= 2 → inject interrupt\n  Auth/rate/timeout: detect from tool result → inject protocol\n\nNative loop detection: scripts/clawdi/enable-loop-detection.sh",
          "is_bot": false,
          "headline": "feat: Protocol 7 + Tier 2 hook v0.2 — zero Clawdi dependency",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T08:02:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7b422cf719511211ebd56f37386177abd36af52f",
          "body": null,
          "is_bot": false,
          "headline": "fix: SKILL.md v0.4 — explicit error code table for Gene Map queries",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T06:55:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc57f5062dc58d54b3878f7f0aac5f3776f9b542",
          "body": "Gene Map API:\n  GET /v1/repair?ec=&platform= → {strategy, confidence, based_on, source}\n  Baseline: 14 static strategies with initial confidence\n  Data-driven: aggregates from /v1/event telemetry (after 10+ samples)\n\nSKILL.md: queries Gene Map before applying protocols.\n/v1/event now aggregates into genemap: KV keys for lookup.\n\nThis is the moat: protocols are copyable, accumulated data is not.",
          "is_bot": false,
          "headline": "feat: Gene Map /v1/repair API + SKILL.md queries Gene Map",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T06:27:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c19be7491be588d88ca999849779b72dda537dda",
          "body": "Changes:\n- MANDATORY → RECOMMENDED (removes aggressive language)\n- Declared telemetry endpoint + data sent in metadata\n- Added privacy note (no PII, no credentials transmitted)\n- Scoped re-auth: uses OpenClaw connector flows only\n- exec log commands marked optional with || true fallback\n- Added 'always ask before destructive actions' to Protocol 2\n- Clarified re-auth does not access/store/transmit credentials",
          "is_bot": false,
          "headline": "fix: SKILL.md v0.3 — address ClawHub security scan concerns",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T06:10:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30a7bc07836ed12c0aa7832e263d750321d8bf55",
          "body": "…ility\n\n- metadata now single-line JSON (required by AgentSkills parser)\n- Added user-invocable: true (exposes /vial slash command)\n- Added homepage field",
          "is_bot": false,
          "headline": "fix: SKILL.md frontmatter — single-line metadata for ClawHub compatib…",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T05:44:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e84cd0e42a2787098232cefd916073f0b82ef9e",
          "body": null,
          "is_bot": false,
          "headline": "fix: add openclaw.extensions to hook package.json",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T05:25:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92bae9b2d4e06d07d975e0a6327a77ba8b419465",
          "body": "integrations/openclaw-hook/:\n  HOOK.md: metadata, events (agent:bootstrap, command:new/reset)\n  handler.ts: loop detection, error interception, telemetry\n  package.json: @vial-agent/openclaw-hook\n\nTier 2: hook runs at gateway level — agent cannot ignore.\nLoop detection injects interrupt after 2+ text-only turns.\nTool errors classified and sent to Vial telemetry.\n\nInstall: openclaw plugins install @vial-agent/openclaw-hook",
          "is_bot": false,
          "headline": "feat: Vial OpenClaw hook — gateway layer self-healing",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T05:20:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce8805d6bcbe16dec5de54af118bb791c5624e71",
          "body": "Major changes:\n1. Added proper YAML frontmatter (ClawHub compatible)\n2. MANDATORY before/after hooks — proactive not reactive\n3. Session start check — agent reports repair history\n4. Cleaner protocol format with immediate action steps\n5. Clawdi agent-specific notes (CEO/Crypto/Stock)",
          "is_bot": false,
          "headline": "improve: SKILL.md v0.2 — active protocols + AgentSkills frontmatter",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T05:04:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cccbfe4bdb86064b6e4a8eda45a2c76329cda180",
          "body": null,
          "is_bot": false,
          "headline": "test: Vial SKILL.md auth repair before/after validation script",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T04:38:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ea64943adddcc2be48a568cfeab38763070154d",
          "body": null,
          "is_bot": false,
          "headline": "fix: relax telemetry validation — only e and ec required, ra/ok optional",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T04:23:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "586dac17b3ff669ffa0b19bd645ae935e378c7aa",
          "body": "Each protocol now sends anonymous repair events to Vial telemetry:\n  POST https://helix-telemetry.haimobai-adrian.workers.dev/v1/event\n  Payload: {e, ec, p, ok, src} — no PII, no user content\n\nAlso writes to /tmp/vial.log for local debugging.",
          "is_bot": false,
          "headline": "feat: add telemetry to SKILL.md — repair events feed Gene Map",
          "author_name": "Haimo Bai",
          "author_login": "hbaidoordash",
          "committed_at": "2026-04-08T04:02:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 5,
      "commits_last_year": 326,
      "latest_release_at": "2026-04-03T17:30:55Z",
      "latest_release_tag": "v2.7.0",
      "releases_from_tags": false,
      "days_since_last_push": 42,
      "active_weeks_last_year": 10,
      "days_since_latest_release": 108,
      "mean_days_between_releases": 2
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "helix-agent-sdk",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "helix",
            "ai-agents",
            "self-healing",
            "payments",
            "web3",
            "Development Status :: 4 - Beta",
            "Intended Audience :: Developers",
            "License :: OSI Approved :: MIT License",
            "Programming Language :: Python :: 3",
            "Topic :: Software Development :: Libraries"
          ],
          "ecosystem": "pypi",
          "matches_repo": false,
          "registry_url": "https://pypi.org/project/helix-agent-sdk/",
          "is_deprecated": false,
          "latest_version": "0.2.0",
          "repository_url": "https://github.com/adrianhihi/helix",
          "versions_count": 6,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 56,
          "first_published_at": "2026-03-25T19:41:29.228159Z",
          "latest_published_at": "2026-03-26T06:34:39.631893Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 117
        },
        {
          "name": "@helix-agent/core",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "helix",
            "vialos",
            "ai-agent",
            "self-healing",
            "payment",
            "pcec",
            "gene-map",
            "agent-reliability",
            "mpp",
            "coinbase",
            "crypto",
            "budget-intelligence",
            "agent-payment"
          ],
          "ecosystem": "npm",
          "matches_repo": false,
          "registry_url": "https://www.npmjs.com/package/@helix-agent/core",
          "is_deprecated": false,
          "latest_version": "2.8.1",
          "repository_url": "https://github.com/adrianhihi/helix",
          "versions_count": 35,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 201,
          "first_published_at": "2026-03-21T06:54:06.652000Z",
          "latest_published_at": "2026-05-28T20:18:55.505000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 53
        },
        {
          "name": "@vial-agent/gene-map",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@vial-agent/gene-map",
          "is_deprecated": false,
          "latest_version": "0.1.0",
          "repository_url": null,
          "versions_count": 1,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 29,
          "first_published_at": "2026-04-14T08:14:43.181000Z",
          "latest_published_at": "2026-04-14T08:14:43.409000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 98
        },
        {
          "name": "@vial-agent/core",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "self-healing",
            "autonomous-agents",
            "error-repair",
            "reinforcement-learning",
            "pcec",
            "gene-map"
          ],
          "ecosystem": "npm",
          "matches_repo": false,
          "registry_url": "https://www.npmjs.com/package/@vial-agent/core",
          "is_deprecated": false,
          "latest_version": "0.2.0",
          "repository_url": "https://github.com/adrianhihi/vial",
          "versions_count": 2,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 46,
          "first_published_at": "2026-03-29T05:31:23.761000Z",
          "latest_published_at": "2026-03-29T06:38:11.998000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 114
        },
        {
          "name": "@vial-agent/adapter-api",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "self-healing",
            "api",
            "http",
            "retry",
            "error-recovery",
            "vial"
          ],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@vial-agent/adapter-api",
          "is_deprecated": false,
          "latest_version": "0.1.0",
          "repository_url": null,
          "versions_count": 1,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 14,
          "first_published_at": "2026-03-29T06:38:19.612000Z",
          "latest_published_at": "2026-03-29T06:38:19.838000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 114
        }
      ]
    },
    "popularity": {
      "forks": 3,
      "stars": 821,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2026-04-09",
            "count": 1
          },
          {
            "date": "2026-06-01",
            "count": 1
          },
          {
            "date": "2026-07-07",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 3,
        "total_forks": 3
      },
      "star_history": {
        "days": [
          {
            "date": "2026-03-26",
            "count": 5
          },
          {
            "date": "2026-03-27",
            "count": 1
          },
          {
            "date": "2026-03-29",
            "count": 3
          },
          {
            "date": "2026-03-31",
            "count": 1
          },
          {
            "date": "2026-04-01",
            "count": 24
          },
          {
            "date": "2026-04-02",
            "count": 34
          },
          {
            "date": "2026-04-03",
            "count": 9
          },
          {
            "date": "2026-04-04",
            "count": 28
          },
          {
            "date": "2026-04-05",
            "count": 21
          },
          {
            "date": "2026-04-06",
            "count": 23
          },
          {
            "date": "2026-04-07",
            "count": 20
          },
          {
            "date": "2026-04-08",
            "count": 15
          },
          {
            "date": "2026-04-09",
            "count": 20
          },
          {
            "date": "2026-04-10",
            "count": 26
          },
          {
            "date": "2026-04-11",
            "count": 18
          },
          {
            "date": "2026-04-12",
            "count": 18
          },
          {
            "date": "2026-04-13",
            "count": 26
          },
          {
            "date": "2026-04-14",
            "count": 18
          },
          {
            "date": "2026-04-15",
            "count": 21
          },
          {
            "date": "2026-04-16",
            "count": 13
          },
          {
            "date": "2026-04-18",
            "count": 3
          },
          {
            "date": "2026-04-24",
            "count": 1
          },
          {
            "date": "2026-05-08",
            "count": 2
          },
          {
            "date": "2026-05-09",
            "count": 15
          },
          {
            "date": "2026-05-10",
            "count": 9
          },
          {
            "date": "2026-05-11",
            "count": 23
          },
          {
            "date": "2026-05-12",
            "count": 18
          },
          {
            "date": "2026-05-13",
            "count": 15
          },
          {
            "date": "2026-05-14",
            "count": 20
          },
          {
            "date": "2026-05-15",
            "count": 15
          },
          {
            "date": "2026-05-16",
            "count": 17
          },
          {
            "date": "2026-05-17",
            "count": 25
          },
          {
            "date": "2026-05-18",
            "count": 22
          },
          {
            "date": "2026-05-19",
            "count": 22
          },
          {
            "date": "2026-05-20",
            "count": 19
          },
          {
            "date": "2026-05-21",
            "count": 12
          },
          {
            "date": "2026-05-22",
            "count": 16
          },
          {
            "date": "2026-05-23",
            "count": 20
          },
          {
            "date": "2026-05-24",
            "count": 20
          },
          {
            "date": "2026-05-25",
            "count": 19
          },
          {
            "date": "2026-05-26",
            "count": 24
          },
          {
            "date": "2026-05-27",
            "count": 17
          },
          {
            "date": "2026-05-28",
            "count": 15
          },
          {
            "date": "2026-05-29",
            "count": 14
          },
          {
            "date": "2026-05-30",
            "count": 16
          },
          {
            "date": "2026-05-31",
            "count": 22
          },
          {
            "date": "2026-06-01",
            "count": 18
          },
          {
            "date": "2026-06-02",
            "count": 14
          },
          {
            "date": "2026-06-03",
            "count": 15
          },
          {
            "date": "2026-06-04",
            "count": 3
          },
          {
            "date": "2026-06-05",
            "count": 1
          },
          {
            "date": "2026-06-09",
            "count": 1
          },
          {
            "date": "2026-06-23",
            "count": 1
          },
          {
            "date": "2026-06-28",
            "count": 1
          },
          {
            "date": "2026-07-03",
            "count": 1
          },
          {
            "date": "2026-07-05",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 821,
        "total_stars": 821
      },
      "open_issues_and_prs": 4
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "demos",
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "packages/adapter-api/tsconfig.json",
        "packages/api/tsconfig.json",
        "packages/cli/tsconfig.json",
        "packages/core/tsconfig.json",
        "packages/gene-map/tsconfig.json",
        "packages/mcp/tsconfig.json",
        "packages/vial-core/tsconfig.json",
        "python/helix_agent/py.typed",
        "scripts/circle-bench/seller/tsconfig.json",
        "scripts/circle-bench/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 44797,
      "source_files_sampled": 360,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "dashboard/package.json",
        "package.json",
        "python/pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 5,
        "assessed_package": "pypi:helix-agent-sdk@0.2.0",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "@helix-agent/core",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "*"
        },
        {
          "name": "express",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.18.0"
        },
        {
          "name": "@circle-fin/x402-batching",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.0.4"
        },
        {
          "name": "@coinbase/cdp-sdk",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.46.1"
        },
        {
          "name": "@coinbase/coinbase-sdk",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.25.0"
        },
        {
          "name": "@privy-io/node",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.11.0"
        },
        {
          "name": "@x402/core",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.12.0"
        },
        {
          "name": "@x402/evm",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.12.0"
        },
        {
          "name": "requests",
          "manifest": "python/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.28.0"
        },
        {
          "name": "@helix-agent/core",
          "manifest": "packages/api/package.json",
          "ecosystem": "npm",
          "version_constraint": "*"
        },
        {
          "name": "express",
          "manifest": "packages/api/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.18.0"
        },
        {
          "name": "@anthropic-ai/sdk",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.24.3"
        },
        {
          "name": "@octokit/rest",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^20.1.0"
        },
        {
          "name": "axios",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.7.0"
        },
        {
          "name": "better-sqlite3",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.0.0"
        },
        {
          "name": "chalk",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.2"
        },
        {
          "name": "commander",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.0"
        },
        {
          "name": "express",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.18.0"
        },
        {
          "name": "ora",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.4.1"
        },
        {
          "name": "conf",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.2.0"
        },
        {
          "name": "@vial-agent/gene-map",
          "manifest": "packages/core/package.json",
          "ecosystem": "npm",
          "version_constraint": "*"
        },
        {
          "name": "@vial-agent/runtime",
          "manifest": "packages/core/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.1.0"
        },
        {
          "name": "better-sqlite3",
          "manifest": "packages/core/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.0.0"
        },
        {
          "name": "viem",
          "manifest": "packages/core/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.47.5"
        },
        {
          "name": "zod",
          "manifest": "packages/core/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.3.6"
        },
        {
          "name": "better-sqlite3",
          "manifest": "packages/gene-map/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.0.0"
        },
        {
          "name": "@helix-agent/core",
          "manifest": "packages/mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "*"
        },
        {
          "name": "@modelcontextprotocol/sdk",
          "manifest": "packages/mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.0"
        },
        {
          "name": "better-sqlite3",
          "manifest": "packages/vial-core/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.0.0"
        },
        {
          "name": "@circle-fin/developer-controlled-wallets",
          "manifest": "scripts/circle-bench/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.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": 0,
        "merged_prs": 7,
        "open_issues": 4,
        "closed_ratio": 0,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "hbaidoordash",
          "commits": 248,
          "avatar_url": "https://avatars.githubusercontent.com/u/89813563?v=4"
        },
        {
          "type": "User",
          "login": "adrianhihi",
          "commits": 75,
          "avatar_url": "https://avatars.githubusercontent.com/u/6823112?v=4"
        },
        {
          "type": "User",
          "login": "nicholasvandy",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/55884527?v=4"
        },
        {
          "type": "User",
          "login": "meichuanyi",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/35057768?v=4"
        }
      ],
      "contributors_sampled": 4,
      "top_contributor_share": 0.761
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "docker.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 0,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "7 out of 7 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": 1,
            "reason": "Found 1/8 approved changesets -- score normalized to 1",
            "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 3 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": 2,
            "reason": "dependency not pinned by hash detected -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "87 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "ead5271ff65a521a18c139b1a80ca4d907812114",
        "ran_at": "2026-07-21T15:49:06Z",
        "aggregate_score": 3.1,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/usehelix/helix",
    "host": "github.com",
    "name": "helix",
    "owner": "usehelix"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 58,
      "inputs": {
        "security": 45,
        "vitality": 68,
        "community": 51,
        "governance": 43,
        "engineering": 81
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 68,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 53,
            "inputs": {
              "commits_last_year": 326,
              "human_commit_share": 1,
              "days_since_last_push": 42,
              "active_weeks_last_year": 10
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 42 days ago",
                "points": 18,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 42
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "10/52 weeks with commits",
                "points": 6.9,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 10
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "326 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 326
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 3 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": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 90,
            "inputs": {
              "releases_count": 5,
              "latest_release_tag": "v2.7.0",
              "releases_from_tags": false,
              "days_since_latest_release": 108,
              "mean_days_between_releases": 2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "5 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 108 days ago",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 108
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~2 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 51,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "forks": 3,
              "stars": 821,
              "watchers": 0,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "821 stars",
                "points": 47.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 821
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "3 forks",
                "points": 2.5,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "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": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "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": 18,
                "status": "met",
                "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
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "critical",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 27,
            "inputs": {
              "packages": [
                "@vial-agent/gene-map",
                "@vial-agent/adapter-api"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 43
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "43 downloads/month across npm",
                "points": 21.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 43,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "at_risk",
        "name": "Sustainability & Governance",
        "value": 43,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 23,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 4,
              "top_contributor_share": 0.761
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 76% of commits",
                "points": 5.4,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 76
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "4 contributors",
                "points": 5.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "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": "at_risk",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "merged_prs": 7,
              "open_issues": 4,
              "closed_issues": 0,
              "issue_closed_ratio": 0,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "0% of issues closed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 0
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "7/7 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 7,
                      "decided": 7
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 1/8 approved changesets -- score normalized to 1",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 39,
            "inputs": {
              "followers": 2,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "usehelix",
              "public_repos": 4,
              "account_age_days": 58
            },
            "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": "2 followers of usehelix",
                "points": 3.4,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 2,
                      "login": "usehelix"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "4 public repos, account ~0 yr old",
                "points": 5.4,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 4
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "good",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "packages": [
                "@vial-agent/gene-map",
                "@vial-agent/adapter-api"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 98
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "2 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 2,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 98 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 98
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "1 published versions",
                "points": 4,
                "status": "partial",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 81,
        "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": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": 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": "7 out of 7 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "ai-agents",
                "blockchain",
                "coinbase",
                "payments",
                "privy",
                "privy-developer-tools",
                "self-healing",
                "self-healing-ai",
                "tempo",
                "docker-image",
                "python-app",
                "agent",
                "agentic-ai",
                "ai",
                "llms",
                "multi-agent-systems",
                "self-evolving",
                "agentic-ai-self-evolving"
              ],
              "has_wiki": true,
              "homepage": "https://tryhelix.dev/",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://tryhelix.dev/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "18 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 18
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 45,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 31,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 3.1
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "7 out of 7 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 1/8 approved changesets -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "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 3 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 2",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "87 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:helix-agent-sdk@0.2.0 runtime dependency closure — what installing the published package pulls in — 5 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "pypi:helix-agent-sdk@0.2.0",
                  "assessed": 5
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 5,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 5,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 4
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 55,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "100 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 100,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 47,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "packages/adapter-api/tsconfig.json",
                "packages/api/tsconfig.json",
                "packages/cli/tsconfig.json",
                "packages/core/tsconfig.json",
                "packages/gene-map/tsconfig.json",
                "packages/mcp/tsconfig.json",
                "packages/vial-core/tsconfig.json",
                "python/helix_agent/py.typed",
                "scripts/circle-bench/seller/tsconfig.json",
                "scripts/circle-bench/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0.01,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "packages/adapter-api/tsconfig.json, packages/api/tsconfig.json, packages/cli/tsconfig.json, packages/core/tsconfig.json, packages/gene-map/tsconfig.json, packages/mcp/tsconfig.json, packages/vial-core/tsconfig.json, python/helix_agent/py.typed, scripts/circle-bench/seller/tsconfig.json, scripts/circle-bench/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "packages/adapter-api/tsconfig.json, packages/api/tsconfig.json, packages/cli/tsconfig.json, packages/core/tsconfig.json, packages/gene-map/tsconfig.json, packages/mcp/tsconfig.json, packages/vial-core/tsconfig.json, python/helix_agent/py.typed, scripts/circle-bench/seller/tsconfig.json, scripts/circle-bench/tsconfig.json, tsconfig.json"
                    }
                  }
                ],
                "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": "1 of the last 100 commits agent-authored or agent-credited",
                "points": 2,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 1,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 44797,
              "source_files_sampled": 360,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/360 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 360,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "moderate",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "example_dirs": [
                "demos",
                "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": "demos, examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "demos, 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": [
    "pypi package 'helix-agent-sdk' points at a different repository (https://github.com/adrianhihi/helix); excluded from ecosystem scoring",
    "Could not fetch npm package '@helix-agent/api' from its registry",
    "Could not fetch npm package '@vial-agent/cli' from its registry",
    "Could not fetch npm package '@helix-agent/mcp' from its registry",
    "npm package '@helix-agent/core' points at a different repository (https://github.com/adrianhihi/helix); excluded from ecosystem scoring",
    "npm package '@vial-agent/core' points at a different repository (https://github.com/adrianhihi/vial); excluded from ecosystem scoring",
    "Could not fetch npm package '@vial-agent/openclaw-hook' 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-21T15:49:24.918633Z",
  "schema_version": "0.23.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/u/usehelix/helix.svg",
  "full_name": "usehelix/helix",
  "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.23.0 — metodología completa · wiki de métricas.

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