Öffentliches Register
Software-GesundheitsberichtSchema 0.23.0 · Metriken 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 Sterne⑂ 3 Forksseit März 2026Auf GitHub ansehen ↗

usehelix/helix erreicht einen Gesundheitsindex von 58 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Engineering Quality (81/100) ab, am schwächsten bei Sustainability & Governance (43/100). Zuletzt vor 42 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

58
gesamt / 100
Mittel

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

58
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

Helix TechnologyOrganisation
2 Follower4 öffentliche Reposseit Mai 2026

Dieses Repository wird von einer Organisation getragen — geteilte, rechenschaftspflichtige Trägerschaft, die jeden einzelnen Maintainer überdauern kann.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
PyPIhelix-agent-sdkverweist auf ein anderes Repo — nicht bewertet0.2.0566vor 117 Tagenhelixai-agentsself-healingpaymentsweb3
npm@helix-agent/coreverweist auf ein anderes Repo — nicht bewertet2.8.120135vor 53 Tagenhelixvialosai-agentself-healingpaymentpcecgene-mapagent-reliabilitymppcoinbasecryptobudget-intelligenceagent-payment
npm@vial-agent/gene-map0.1.0291vor 98 Tagen
npm@vial-agent/coreverweist auf ein anderes Repo — nicht bewertet0.2.0462vor 114 Tagenself-healingautonomous-agentserror-repairreinforcement-learningpcecgene-map
npm@vial-agent/adapter-api0.1.0141vor 114 Tagenself-healingapihttpretryerror-recoveryvial

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

68Mittel · 22 % des Gesamtindex
Wie die Bewertung erfolgt
18/36Push-Aktualität — letzter Push vor 42 Tagen
6.9/36Commit-Rhythmus — 10/52 Wochen mit Commits
18/18Commit-Volumen — 326 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year326
human_commit_share1
days_since_last_push42
active_weeks_last_year10
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 5 Releases veröffentlicht
27/36Release-Aktualität — letztes Release vor 108 Tagen
27/27Release-Rhythmus — ein Release etwa alle 2 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count5
latest_release_tagv2.7.0
releases_from_tagsnein
days_since_latest_release108
mean_days_between_releases2
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

51Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
47.3/60Stars — 821 Stars
2.5/25Forks — 3 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks3
stars821
watchers0
growth_stateorganic
growth_factor_pct100
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
18/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
21.9/80Downloads pro Monat — 43 Downloads/Monat über npm
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packages@vial-agent/gene-map, @vial-agent/adapter-api
dependents
ecosystemsnpm
total_downloads
monthly_downloads43
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

43Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
5.4/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 76 % der Commits
5.4/13.5Breite der Beitragenden — 4 Beitragende
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Verwendete Eingangsdaten
bus_factor1
contributors_sampled4
top_contributor_share0,761
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — 0 % der Issues geschlossen
38.2/38.3PR-Annahme — 7/7 entschiedene PRs gemergt
1.5/15OpenSSF Scorecard: Code-Review — Found 1/8 approved changesets -- score normalized to 1
Verwendete Eingangsdaten
merged_prs7
open_issues4
closed_issues0
issue_closed_ratio0
closed_unmerged_prs0
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
3.4/25Reichweite des Inhabers — 2 Follower von usehelix
5.4/25Kontohistorie — 4 öffentliche Repos, Kontoalter ca. 0 Jahre
Verwendete Eingangsdaten
followers2
owner_typeOrganization
is_verified
owner_loginusehelix
public_repos4
account_age_days58
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 2 Paket(e) auf npm
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 98 Tagen
4/20Versionshistorie — 1 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packages@vial-agent/gene-map, @vial-agent/adapter-api
ecosystemsnpm
any_deprecatednein
min_days_since_publish98

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

81Gut · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 2 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 7 out of 7 merged PRs checked by a CI test -- score normalized to 10
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_confignein
has_precommit_confignein

Dokumentation

100Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://tryhelix.dev/
10/10Repository-Beschreibung
10/10Topics — 18 Topics
10/10Wiki
Verwendete Eingangsdaten
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_wikija
homepagehttps://tryhelix.dev/
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

45Gefährdet · 16 % des Gesamtindex

Sicherheitslage

31Gefährdet
Wie die Bewertung erfolgt
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.5Lizenz — 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 — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 87 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate3,1
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): signed_releases. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
25/25Indirekte Abhängigkeiten ohne bekannte Advisories — keine indirekte Abhängigkeit trägt ein bekanntes Advisory
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories0
affected_packages0
assessed_packages5
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. Abgeglichen wurde die Laufzeit-Abhängigkeitshülle von pypi:helix-agent-sdk@0.2.0 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 5 Paketen. Erreichbarkeit wird nicht analysiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

55Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 100 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — 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/10Reproduzierbare Umgebung — Dockerfile, lockfile
2/10Belegte Agentenpraxis — 1 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
2/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespackage-lock.json
has_dockerfileja
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
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
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — TypeScript (statisch typisiert)
55/55Handhabbare Dateigrößen — 0/360 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageTypeScript
largest_source_bytes44.797
source_files_sampled360
oversized_source_files0
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
20/20MCP-Server
40/40Lauffähige Beispiele — demos, examples
Verwendete Eingangsdaten
example_dirsdemos, examples
has_mcp_signalja
api_schema_files

Eckdaten

821GitHub-Sterne
4Mitwirkende
326Commits, letzte 12 Monate
42Tage seit letztem Push
5Releases
1Bus-Faktor
4offene Issues
npm, PyPIPaket-Ökosysteme

Warnungen zur Datenerhebung

  • 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

Weitere Details

Stern- und Fork-Verlauf 821 ★ / 3 ⇿
821Sterne
3Forks
5Releases

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

02004006008001.0008213342026-032026-052026-07
Major 0Minor 5Patch 0
OpenSSF Scorecard 3.1 / 10
3.1Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).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
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities87 existing vulnerabilities detected
Direkte Abhängigkeiten 30
RegistryPaketVersionsvorgabeManifest
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
Alle Abhängigkeiten nicht erhoben

Der aufgelöste Abhängigkeitssatz konnte für diesen Bericht nicht erhoben werden: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Abhängigkeits-Advisories 0

Die Installation von pypi:helix-agent-sdk@0.2.0 zieht 5 Pakete nach sich, direkt und transitiv: 0 tragen bekannte Advisories, davon 0 direkte Abhängigkeiten.

Keine bekannten Advisories betreffen die bewerteten Abhängigkeiten.

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "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"
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.23.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte StatistikenPyPI, npm.